Resolvendo problema do som ter parado de funcionar após instalar outros dispositivos de áudio no Linux

Publicado por Cláudio Henrique Fortes Félix em 15/11/2007

[ Hits: 14.325 ]

Blog: http://www.helpo.com.br

 


Resolvendo problema do som ter parado de funcionar após instalar outros dispositivos de áudio no Linux



Após instalarmos um segundo dispositivo de áudio no Linux, é bastante comum acontecer da ordem de carregamento dos drivers de dispositivo mudar, podendo inclusive ser diferente a cada boot. Com isso, programas que esperavam achar a placa de som principal em /dev/dsp, por exemplo, acabam achando a placa secundária e pronto... nada mais de som. Como num passe de mágica, após um reboot o som pode voltar a funcionar se a ordem de carregamento do driver for invertida novamente, dificultando ainda mais o entendimento do problema.

Com essa dica pretendo mostrar uma forma simples de forçarmos a ordem de carregamento dos drivers de áudio, de forma que não tenhamos mais essas surpresas desagradáveis. Estou utilizando o Slackware com kernel 2.6, sendo que os módulos são carregados automaticamente pelo UDEV. Em outras distros o procedimento pode ser ligeiramente diferente, mas creio que o método seja geral o bastante.

No meu caso específico tenho 3 dispositivos de áudio: uma placa de som onboard, o microfone de minha webcam USB e a entrada de áudio de uma placa de captura de vídeo. Os respectivos drivers são os seguintes:
  • placa de som: hda_intel
  • webcam USB: usb_audio
  • placa de captura: cx88_alsa

Você pode descobrir quais são seus drivers com o comando lsmod (normalmente é necessário que você esteja como usuário root). Geralmente os drivers de som ALSA começam com o prefixo snd_ - os meus por exemplo aparecem como: snd_hda_intel, snd_usb_audio e cx88_alsa (este caiu na exceção :P).

Descobertos os nomes dos drivers, basta especificar a ordem de carregamento dos mesmos no arquivo /etc/modprobe.conf através da diretiva "index":
options hda_intel index=0
options usb_audio index=1
options cx88_alsa index=2

Dessa forma, após o próximo reboot, /dev/dsp será a placa de som, /dev/dsp1 o áudio da webcam e /dev/dsp2 o dispositivo de áudio da placa de captura. Esses são os nomes de dispositivos compatíveis com o sistema de som antigo (OSS). Você pode verificar que a ordem de carregamento dos drivers ALSA também é a mesma com o seguinte comando:

$ cat /proc/asound/cards

Resultado no meu sistema:
O [NVidia          ]: HDA-Intel - HDA NVidia
                          HDA NVidia at 0xddff8000 irq 11
1 [U0x46d0x8b2 ]: USB-Audio - USB Device 0x46d:0x8b2
                           USB Device 0x46d:0x8b2 at usb-0000:00:02.0-1, full speed
2 [CX8801         ]: CX88x - Conexant CX8801
                           Conexant CX8801 at 0xde000000

Se você quiser alterar a ordem de carregamento, basta reordenar os "index" conforme desejado no arquivo /etc/modprobe.conf.

Bom, é isso aí. Dê boas vindas ao som perdido!

Referências:
Outras dicas deste autor

Corrigindo problema do Acrobat Reader 7.0 no Slackware 12

Leitura recomendada

Instalação de placa de rede sem fio Ralink RT3090 no Ubuntu 10.04

Configuração de impressoras no Debian

Como resolver o travamento do Ubuntu nos Avell W1511/G1511

CPU-G: Capturando informações de hardware no Linux

Positivo Mobile V43 + Fedora 10

  

Comentários
[1] Comentário enviado por removido em 18/11/2007 - 00:13h

Parabéns.
Apesar do modprobe.conf do mandriva ser diferente do seu exemplo, pude resolver um bug no meu desktop tendo por base sua dica...
Valew!!!
;-))

[2] Comentário enviado por flavioc em 15/08/2008 - 19:33h

Oi Cláudio. To com um problema, quem sabe pode me ajudar. Tenho uma placa de TV USB Pixelview prolink usb 2 (módulo em28xx). Quando uso o tv time, pra pegar a tv, faça a conexão dos tres cabos RCA (amarelo, branco e vermelho) do decodificador da tv a cabo nessa placa que possui tres entradas RCA. No programa TvTime, coloco a configuração de entrada no composite1(video composto). A imagem é perfeita, mas não tem som. Tenho dos os módulos rodando normalmente (snd-usb-audio, em28xx_alsa). No diretório /dev tenho /dsp1 /dsp2. Dando o comando cat /proc/asound/cards aparece o seguinte:
[root@localhost flavio]# cat /proc/asound/cards
0 [Intel]: HDA-Intel - HDA Intel
HDA Intel at 0xf0000000 irq 21
1 [Video]: USB-Audio - USB 2821 Video
USB 2821 Video at usb-0000:00:1d.7-5, high speed
2 [Em28xx Audio]: Empia Em28xx AudEm28xx Audio - Em28xx Audio
Empia Em28xx Audio
[root@localhost flavio]#
O que será que ta acontecendo que o som não sai? No windows funciona normalmente. Obrigado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts