10/27/07

Gutsy e gravação de áudio no Acer 5100 (5102 wlmi)

(atualizado em 06/02/08)

Me aconteceu algo estranho: quando tinha o Gutsy Tribe 5 instalado, a gravação de som funcionava perfeitamente no meu Acer 5102Wlmi. Depois, quando instalei a versão final, parou de funcionar, ficou tão ruim quanto no Feisty. A solução? Compilar a última versão do alsa! (novidade)
Minha placa de som é reconhecida como ATI HDA SB (Realtek ALC883). Segui os passos encontrados neste post do Ubuntu Forums (em inglês), que vou reproduzir aqui:

  1. Versão do Alsa utilizada: 1.0.15 (stable)
    Cheque sua versão do kernel: no terminal, digite
    uname -r
    .
    A minha é 2.6.22-14-generic.

  2. Instale os seguintes pacotes:
    sudo apt-get install linux-headers-`uname -r` build-essential libncurses5-dev libncursesw5-dev ncurses-term alsa-tools-gui gettext po-debconf debhelper quilt alsa-base libc6-dev

    e remova estes:
    sudo apt-get remove --purge alsa-base alsa-tools

    CUIDADO: Não remova o pacote alsa-utils, ou seu gdm será removido também.

  3. Faça um backup da sua configuração atual:
    tar -zcvf original-drivers.tgz /lib/modules/`uname -r`/kernel/sound

  4. Faça um diretório para os pacotes a serem baixados (não é realmente necessário, mas fica melhor organizado):
    mkdir ~/alsa
    cd ~/alsa

  5. Faça o download dos arquivos de código-fonte do Alsa:
    Acesse http://www.alsa-project.org/main/index.php/Download e baixe a última versão estável (stable), ou use os comandos abaixo no terminal:
    wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.15.tar.bz2 
    wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.15.tar.bz2
    wget ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.15.tar.bz2
    wget ftp://ftp.alsa-project.org/pub/firmware/alsa-firmware-1.0.15.tar.bz2
    wget ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-1.0.15.tar.bz2

  6. Extraia os arquivos:
    tar -xjf alsa-driver-1.0.15.tar.bz2 
    tar -xjf alsa-lib-1.0.15.tar.bz2
    tar -xjf alsa-utils-1.0.15.tar.bz2
    tar -xjf alsa-firmware-1.0.15.tar.bz2

  7. Instale o driver:
    Obs 1.: Os comandos 'sudo make clean' e 'sudo make mrproper' servem para limpar sua instalação anterior, caso você já tenha usado os comandos 'sudo make install' para instalar os drivers.
    Obs 2.: Eu alterei o comando ./configure ... depois de ler a ajuda dele, não sei se faz diferença. Você pode tentar sem o --with-card-options e, se funcionar, deixe um comentário aqui :-) .

    cd alsa-driver-1.0.15
    sudo make clean
    sudo make mrproper
    sudo ./configure --with-oss=yes --with-cards=hda-intel --with-card-options=hda-codec-realtek,hda-codec-analog,hda-generic
    sudo make
    sudo make install

  8. Instale alsa-lib:
    De novo, eu alterei o comando ./configure. Adicionei o --with-ctl-plugins=all e --with-pcm-plugins=all. Não sei se teria feito diferença, só sei que aparecem vários programas de configuração de placas de som exóticas (provavelmente devido ao --with-ctl-plugins=all). Se funcionar sem eles, deixe um comentário aqui também.
    cd alsa-lib-1.0.15
    sudo make clean
    sudo ./configure --with-ctl-plugins=all --with-pcm-plugins=all
    sudo make
    sudo make install

  9. Instale o alsa-utils:
    cd alsa-utils-1.0.15
    ./configure
    sudo make clean
    sudo make
    sudo make install

  10. Instale o alsa-firmware:
    cd alsa-firmware-1.0.15
    ./configure
    sudo make clean
    sudo make
    sudo make install

  11. Instale o alsa-oss:
    cd alsa-oss-1.0.15
    ./configure
    sudo make clean
    sudo make
    sudo make install

  12. Agora é necessário adicionar os módulos ao kernel:
    modprobe snd-pcm-oss
    modprobe snd-mixer-oss
    modprobe snd-seq-oss

    Caso você receba um erro do tipo ""init_module: No such device"", você precisa remover antes todos os módulos relacionados a som. Use lsmod para listar os módulos e rmmod para removê-lo.

  13. Depois que tudo tiver sido compilado e instalado (sem erros, espera-se), reinicie o computador.
    Após o reboot, rode alsamixer, aumente todos os volumes e habilite os que estão mudos (apertando M para ligar/desligar o mudo, TAB para passar da tela de controles de reprodução para a tela de controles de gravação e assim por diante, as setas para cima/para baixo para aumentar/diminuir o volume e as setas para direita/esquerda para se mover entre os controles, ESC para sair).

  14. Novamente no terminal, digite:
    sudo /etc/init.d/alsa-utils stop

  15. Digite o comando:
    sudo /usr/sbin/alsaconf

    Quando o programa perguntar, escolha a opção hda-intel e diga sim quando ele pedir para escrever os arquivos de configuração.

  16. Digite no terminal:
    sudo /etc/init.d/alsa-utils start

  17. O alsaconf deve ter criado algumas linhas no arquivo /etc/modprobe.d/sound. Acrescente as seguintes linhas, se necessário. (ATENÇÃO: Este guia é feito para a placa ALC883 da Realtek. Caso você esteja compilando para outra placa, consulte o site do Alsa Project para os dados específicos da sua placa.)
    alias sound-service-0-0 snd-mixer-oss
    alias sound-service-0-1 snd-seq-oss
    alias sound-service-0-3 snd-pcm-oss
    alias sound-service-0-8 snd-seq-oss
    alias sound-service-0-12 snd-pcm-oss


    Para fazer os módulos serem carregados automaticamente em cada boot, adicione as seguintes linhas ao arquivo /etc/modules:
    snd-hda-intel
    snd-pcm-oss
    snd-mixer-oss
    snd-seq-oss

  18. O make install do driver ALSA cria o arquivo /etc/init.d/alsasound que cuida de salvar e carregar as configurações dos mixers, entre outros, a cada boot (se não estiver lá, estará na pasta alsa-driver-xxx, onde xxx é a versão usada, e deve ser copiado para /etc/init.d, e aplicado o comando chmod 755). Porém, você deve criar esses links manualmente, senão os volumes serão resetados a cada boot (tudo no mudo):
    ln -s /etc/init.d/alsasound /etc/rcS.d/S59alsasound
    ln -s /etc/init.d/alsasound /etc/rc1.d/K15alsasound
    ln -s /etc/init.d/alsasound /etc/rc6.d/K15alsasound
  19. E tudo deve funcionar! Agora tenho som E gravação de som.

A diferença deste how-to pra outros que eu achei foi compilar junto o alsa-firmware.

Mais links com how-to's úteis:
  • https://help.ubuntu.com/community/HdaIntelSoundHowto

  • http://alsa.opensrc.org/index.php/Quick_Install

3 comments:

caqui said...
This comment has been removed by the author.
caqui said...

deu um pau no meio...vou tentar seguir o protocolo e ver no que dá.

aquitemcaqui:/home/caqui/programas/alsa/alsa-oss-1.0.15# modprobe snd-seq-oss
WARNING: Error inserting snd_seq_device (/lib/modules/2.6.18-6-amd64/kernel/sound/acore/seq/snd-seq-device.ko): Unknown symbol in module, or unknown parameter (see dmesg)
WARNING: Error inserting snd_seq (/lib/modules/2.6.18-6-amd64/kernel/sound/acore/seq/snd-seq.ko): Unknown symbol in module, or unknown parameter (see dmesg)
WARNING: Error inserting snd_seq_midi_event (/lib/modules/2.6.18-6-amd64/kernel/sound/acore/seq/snd-seq-midi-event.ko): Unknown symbol in module, or unknown parameter (see dmesg)FATAL: Error inserting snd_seq_oss (/lib/modules/2.6.18-6-amd64/kernel/sound/acore/seq/oss/snd-seq-oss.ko): Unknown symbol in module, or unknown parameter (see dmesg)

caqui said...

Bom, tentei seguir o protocolo mesmo com o erro que mencionei acima e o som funcionou, embora não em sites como o youtube, por exemplo....

porém, ao reiniciar o pc, a configuração não se mantém e os volumes voltam para o zero, mesmo com a criação dos links.

ocorreram osseguintes problemas:

passos 14 3 16 - tive que ignorá-los, pois não existe o arquivo alsa-utils em /etc/init.d

é preciso ressaltar que estou usando o alsa 1.0.16, não o .15 e meu kernel é o 2.6.18-6-amd64.

valeu