Alsa - como posso dizer que minha saída de áudio padrão é cartão 2 e dispositivo 0, não hdmi?

5

como posso dizer que a saída de som padrão do meu sistema é o cartão 2 e o dispositivo 0 não cartão 2 dispositivo 3 ou 7 ou 1?

Eu fiz isso, mas não tenho som.

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Device [C-Media USB Audio Device], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: PCH [HDA Intel PCH], device 1: ALC892 Digital [ALC892 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

$ cat /etc/asound.conf
#pcm.!default { 
#  type plug; 
#  slave { pcm "hw:2" } 
#} 
pcm.!default {
    type hw
    card 2
    device 0
}
    
por YumYumYum 01.10.2013 / 08:18

2 respostas

4

Para definir o dispositivo padrão, você não deve redefinir o dispositivo default , mas simplesmente colocar o seguinte em /etc/asound.conf :

defaults.pcm.card 2      # or better "PCH"
defaults.pcm.device 0

Isso funcionará apenas para programas que realmente usam um dispositivo padrão sem especificar explicitamente um dispositivo. Se algum programa como o PulseAudio ou o VLC tiver sido configurado para algum dispositivo de saída específico, você deverá alterar essa configuração.

    
por 01.10.2013 / 09:42
3

Se você achar que suas placas de som continuam alternando os índices, não será possível codificar defaults.pcm.card 2 em /etc/asound.conf . Uma abordagem (complexa) pode funcionar, é configurar os módulos de kernel de som com a prioridade desejada.

Esta abordagem é descrita em Debian Bug # 614113 :

  1. run alsamixer;
  2. use F6 and research available sound devices
  3. set correct levels for playing on devices;
  4. run some sound player that allow select sound devices (audacious for example);
  5. play with you sound devices (with repeating steps 2,3) and decide what should be default;
  6. exit alsamixer and player;
  7. login as root;
  8. run lsmod | grep snd and try to understood what modules corresponds to physical sound devices;
  9. if unsure that you correctly determine modules on step 2: go to /sys/module and inspect all directories wich names begins with "snd". This directories names exactly as modules. If you will see "drivers" directory in inspected directory - then name of inspected directory is name of module that corresponds to physical sound device. Remember (wrote in notepad) all such modules.
  10. run modinfo <module name> | grep desc for each module that yo found at steps 2 and 3. Read descriptions and make decidion about priorities of this modules. This will be priorities of corresponding sound devices.
  11. go to /etc/modprobe.d;
  12. create snd_cards_priorities.conf;
  13. write to snd_cards_priorities.conf something like this:

    alias snd-card-0 <module for highest priority card>
    options <module for highest priority card> index=0
    alias snd-card-1 <module for lower priority card>
    options <module for lower priority card> index=1
    
  14. save file;
  15. restart alsa with /usr/sbin/alsa force-reload command;
  16. run cat /proc/asound/cards command and check that sound devices are in correct order (device #0 has highest priority);
  17. repeat steps 9, 10 several times and check that sound devices order is not changing;
  18. exit root;

  19. run alsamixer and configure you default sound device, exit alsamixer.

  20. use you favorite sound player to test you new configuration.
    
por 25.04.2014 / 23:38