Resolvendo problema do som ter parado de funcionar após instalar outros dispositivos de áudio no Linux
Dica publicada em Linux / Hardware
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:
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":
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:
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:
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
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
- HDA NVidia at 0xddff8000 irq 11
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:
- http://alsa.opensrc.org/index.php/MultipleCards
- http://www.linuxtv.org/v4lwiki/index.php/...#Current_status
Apesar do modprobe.conf do mandriva ser diferente do seu exemplo, pude resolver um bug no meu desktop tendo por base sua dica...
Valew!!!
;-))