Após a instalação do
Ubuntu 12.04, estava sem som em uma placa-mãe
ECS P4M800Pro-M. Outra placa-mãe que aparenta apresentar o mesmo comportamento é a
ASUS A7V8X. Estranhei devido a este ser o primeiro problema que tive com "drivers" no Ubuntu na empresa onde trabalho.
Ao utilizar o comando "
lsmod | grep snd" (sem aspas) no Terminal, o driver de som (snd_via82xx) foi carregado corretamente:
snd_via82xx 33448 3
gameport 17936 1 snd_via82xx
snd_mpu401_uart 11264 1 snd_via82xx
snd_seq_dummy 5764 0
snd_seq_oss 38912 0
snd_seq_midi 10688 0
snd_rawmidi 29856 2 snd_mpu401_uart,snd_seq_midi
snd_seq_midi_event 10112 2 snd_seq_oss,snd_seq_midi
snd_via82xx_modem 18572 0
snd_ac97_codec 123224 2 snd_via82xx,snd_via82xx_modem
ac97_bus 3840 1 snd_ac97_codec
snd_pcm_oss 47648 0
snd_mixer_oss 20224 1 snd_pcm_oss
snd_seq 63232 6 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_mid i_event
snd_seq_device 10644 5 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi ,snd_seq
snd_pcm 92168 4 snd_via82xx,snd_via82xx_modem,snd_ac97_codec,snd_p cm_oss
snd_timer 27912 2 snd_seq,snd_pcm
snd_page_alloc 13200 3 snd_via82xx,snd_via82xx_modem,snd_pcm
snd 70856 19 snd_via82xx,snd_mpu401_uart,snd_seq_dummy,snd_seq_ oss,snd_rawmidi,snd_via82xx_modem,snd_ac97_codec,s nd_pcm_oss,snd_mixer_oss,snd_seq,snd_seq_device,sn d_pcm,snd_timer
soundcore 10400 1 snd
Solução
Minha primeira tentativa, após a identificação do problema, foi a atualização do Ubuntu 12.04 para a versão 14.04. Como a interface
Unity 2D deixou de existir, a lentidão no sistema tornou-se notável. Alterando para a
GNOME Flashback (Metacity), o sistema voltou a ter uma performance aceitável. Mas o som continuou não funcionando.
Algumas pessoas relataram no Launchpad que, ao alterar a "Saída" (Output) nas Configurações de som para "Saída analógica / Sem amplificador" (Analog Output / No Amplifier), o som havia voltado a funcionar normalmente. [1]
Aqui, a sugestão acima não funcionou. Pesquisando mais a fundo, pude encontrar a solução do problema no Launchpad [1]: O gabinete não possuía saídas frontais, consequentemente não possuía o conector FP_AUDIO ou, na ausência deste, Jumpers nos pinos 5-6 e 9-10 na placa-mãe.
Em placas-mãe antigas, eles são responsáveis por dar continuidade ao sinal recebido para as saídas de som traseiras. Removemos os Jumpers para conectarmos o FP_AUDIO, o que é o procedimento correto. As saídas de áudio frontais enviam o sinal recebido para as saídas traseiras quando não há nada conectado na frente, para que as saídas de som traseiras possam continuar funcionando. Esta função é desempenhada pelos Jumpers na ausência do conector FP_AUDIO. [2]
Para testar esta teoria, removi dois Jumpers de dois HDs IDE condenados e as inseri nas saídas 5-6 e 9-10 da placa-mãe, e o som voltou a funcionar normalmente!
De acordo com o manual da placa-mãe (ECS P4M800Pro-M), os pinos 5-6 são responsáveis pelos sinal de áudio do canal direito para as saídas frontais, e os pinos 9-10 do canal esquerdo.
Verifique o manual da sua placa-mãe para verificar o local correto dos pinos na sua placa-mãe.
Caso o som ainda não retorne, você pode tentar adicionar a linha abaixo ao arquivo
/etc/modprobe.d/alsa-base [3] (você pode adicionar a linha abaixo a qualquer arquivo dentro de /etc/modprobe.d):
sudo nano /etc/modprobe.d/alsa-base
Obs.: adicione a linha abaixo ao final do arquivo:
options snd_via82xx dxs_support=1
Agora, pressione "Ctrl+x" para salvar as alterações do arquivo e sair do editor
Nano. Após a alteração, no terminal, digite o comando:
# update-modules
Reinicie o computador.
Conclusão
O suporte a
DXS (Direct Sound Support/Hardware Mixing ou Hardware buffering/Direct Sound hardware acceleration no Windows) permite dois ou mais aplicativos reproduzirem som ao mesmo tempo. [4] No caso do
Linux, as fabricantes raramente lançam drivers com suporte a Hardware Mixing e, quando adicionam, distribuem apenas o firmware binário que precisa ser carregado a cada iniciação do sistema.
A presença do Hardware mixing aumenta a performance por não sobrecarregar a CPU com operações de áudio, realizando-as em um hardware dedicado. Operações como
Conversão de Sample Rate e Atenuação de áudio que, sem a presença do Hardware mixing, precisam ser realizadas por Software mixing (utilizando a CPU). O alsamix utiliza Hardware mixing de um dispositivo de som quando ele é suportado. [5]
Os valores são:
- 0 - o valor padrão; suporta apenas o modo 48000 Hz na maioria dos casos, com exceção de algumas placas-mãe (que estão adicionadas a whitelist).
- 1 - habilita suporte completo ao DXS (a qualquer sample rate suportado).
- 2 - desabilita o suporte a DXS completamente. Neste caso, ainda que o alsamix suporte Hardware mixing para seu hardware, esta capacidade do chip não será utilizada (no lugar, a CPU será utilizada para operações de áudio).
- 3 - usa o DXS a 48000 Hz.
- 4 - habilita o DXS a qualquer sample rate suportada, mas sempre configura o codec para 48000 Hz (aparentemente algumas placas-mãe funcionam melhor do que utilizando este modo do que dxs_support=1).
Primeiro tente 'dxs_support=1'. Verifique a qualidade do som (teste arquivos de áudio com sample rate tanto de 44100 Hz quanto 48000 Hz).
Se a qualidade do som ficar ruim ou ele ainda não funcionar, use 'dxs_support=4' e tente novamente. Se nenhuma destas opções funcionarem, você pode desabilitar o DXS totalmente utilizando 'dxs_support=2'; então o software mixing será utilizado para reproduzir diversos sons simultaneamente. [6]
Referências:
- LAUNCHPAD. No Sound with VIA 8237 (snd-via82xx) using pulseaudio s.l., 2008 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/297744 (acessado em 26 outubro 2015)
- ANANDTECH. No Rear Audio on ECS P4M800PRO-M s.l., 2007 http://forums.anandtech.com/showthread.php?t=72169 (acessado em 26 outubro 2015)
- UBUNTU FORUMS. howto: via8237 sound working - snd_via82xx module - 2.6.10 kernel s.l., 2005 http://ubuntuforums.org/showthread.php?t=10672 (acessado em 26 outubro 2015).
- ALSA WIKI. Hardware mixing, software mixing s.l., 2013 http://alsa.opensrc.org/Hardware_mixing,_software_mixing (acessado em 26 outubro 2015)
- WIKIPÉDIA, A ENCICLOPÉDIA LIVRE. Hardware mixing s.l., s.d. , https://en.wikipedia.org/wiki/Hardware_mixing (acessado em 26 outubro de 2015)
- ALSA WIKI. Via8233 s.l., 2013 http://alsa.opensrc.org/Via8233 (acessado em 26 outubro 2015).