Eu comprei uma placa de som USB. Gostaria de configurar minha área de trabalho Linux para que ele prefira o dispositivo USB, se estiver conectado e alterne automaticamente à medida que o dispositivo estiver (des) conectado. É possível e como?
Eu comprei uma placa de som USB. Gostaria de configurar minha área de trabalho Linux para que ele prefira o dispositivo USB, se estiver conectado e alterne automaticamente à medida que o dispositivo estiver (des) conectado. É possível e como?
Respostas:
Encontre seu cartão com
$ cat /proc/asound/cards
Para obter nomes de cartões ALSA válidos, use aplay
:
$ aplay -l
e crie /etc/asound.conf
com o seguinte:
pcm.!default {
type hw
card 1
}
ctl.!default {
type hw
card 1
}
Substitua "cartão 1" pelo número ou nome do seu cartão determinado acima.
Como alternativa, você pode alterar a ordem dos seus cartões para que o seu cartão USB seja o cartão 0 e funcione sem edição asound.conf
.
defaults.pcm.card 1 defaults.ctl.card 1
forum.palemoon.org/viewtopic.php?t=9661#p66016
este é o método para selecionar a placa de som padrão no Alsa. Convém instalar o Alsa para que esse método funcione se você estiver usando o Pulse Audio.
cat / proc / asound / modules
listará seus módulos de som. A saída do comando será assim (por exemplo):
0 snd_hda_intel
1 snd_usb_intel
você pode facilmente entender qual é a sua placa de som USB de cima.
nano /etc/modprobe.d/alsa-base.conf
edite este alsa-base.conf de forma que o seu cartão preferido tenha um índice = -2 / 0 e o outro cartão tenha um índice = -1 / 1 (use -2 e -1)
opções snd_hda_intel index = -1
opções snd_usb_intel index = -2
neste caso, o dispositivo usb é o dispositivo preferido.
se você estiver tendo duas placas diferentes com o mesmo nome da saída, assim:
opções snd_hda_intel
opções snd_hda_intel
emita este comando para descobrir qual é qual:
cat / proc / asound / cards
edite os módulos desta maneira:
opções snd_hda_intel enable = 1 index = 0
opções snd_hda_intel enable = 0 index = 1
uma reinicialização pode ser necessária. para que você precise alternar manualmente as placas de som.
Também não consegui obter saída do meu dispositivo USB. Minha cat /proc/asound/modules
saída foi:
0 snd_hda_intel
1 snd_hda_intel
2 snd_usb_audio
Eu tentei as duas respostas descritas aqui, que não ajudaram (com muitas combinações de índices e muitas reinicializações). Acho que o problema foi o meu dispositivo USB inicializar após a inicialização. Seja como for, minha solução de trabalho está na lista negra de outros 2 dispositivos de som, atualizando /etc/modprobe.d/blacklist.conf
como:
blacklist snd_hda_intel
A resposta de Matija Nalis apenas metade funcionou para mim (o alsamixer mudou o padrão, mas outras coisas como aplay e firefox teimosamente ficaram com o padrão errado). Este exemplo do wiki debian funcionou para mim (no laptop CentOS-6):
defaults.pcm.!card Generic_1
defaults.ctl.!card Generic_1
defaults.pcm.!device 0
defaults.ctl.!device 0
Para constar: o ALSA está mal documentado, e especialmente esse material muito simples, como selecionar qual cartão usar é muito difícil. Pior, parece mudar entre os sistemas. Além disso, recebi a tag "Generic_1" em aplay -l, onde aparece como "card 1" na lista. Outras pessoas pareciam estar usando, então eu fiz o mesmo ... o que significa que não posso dizer.
Embora você possa alterar o cartão alsa padrão editando .asoundrc ou o sistema asound.conf, existem alguns problemas significativos nessa abordagem.
É frágil e requer que as reinicializações de aplicativos sejam respeitadas.
Se você deseja trocar as placas rapidamente, realmente precisa usar um servidor de som que abstraia os aplicativos da placa de som corretamente, como o pulseaudio.
Aqui está uma variante das respostas de Matija Nalis e Tel. Isto é o que funcionou para mim:
~ / .asoundrc
defaults.pcm.!card 1
defaults.ctl.!card 1
(Odroid C0, Debian Jessie, áudio HDMI como placa 0 e USB Sound Card como placa 1 de acordo com aplay -l)
Nota: outros métodos não funcionaram para mim, pois / proc / asound / modules não existe e não existe um módulo de áudio HDMI na lista negra ou colocado em baixa prioridade, ele está incorporado no kernel. Parece que eu teria que recompilar o kernel sem suporte a áudio HDMI para desativá-lo completamente.