Alsa — как узнать, что аудиовыходом по умолчанию является карта 2 и устройство 0, а не HDMI?

Alsa — как узнать, что аудиовыходом по умолчанию является карта 2 и устройство 0, а не HDMI?

Как узнать, что в моей системе по умолчанию используется звуковой выход карты 2 и устройства 0, а не карта 2, устройство 3, 7 или 1?

Я это сделал, но звука нет.

$ 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
}

решение1

Если вы обнаружите, что ваши звуковые карты постоянно переключают индексы, вы не сможете жестко закодировать defaults.pcm.card 2. /etc/asound.confОдин (сложный) подход может сработать — настроить модули звукового ядра с желаемым приоритетом.

Этот подход описан вОшибка Debian № 614113:

  1. бегать alsamixer;
  2. используйте F6 и найдите доступные звуковые устройства
  3. установить правильные уровни для игры на устройствах;
  4. запустить какой-нибудь звуковой проигрыватель, который позволяет выбирать звуковые устройства ( audaciousнапример);
  5. поиграйте со своими звуковыми устройствами (повторяя шаги 2,3) и решите, что должно быть по умолчанию;
  6. выход alsamixerи плеер;
  7. войдите в систему как пользователь root;
  8. запустить lsmod | grep sndи попытаться понять, какие модули соответствуют физическим звуковым устройствам;
  9. если не уверены, что правильно определили модули на шаге 2: перейдите /sys/moduleи проверьте все каталоги, имена которых начинаются с "snd". Эти каталоги называются точно так же, как модули. Если в проверенном каталоге вы увидите каталог "drivers" - значит, имя проверенного каталога - это имя модуля, соответствующего физическому звуковому устройству. Запомните (запишите в блокноте) все такие модули.
  10. запустите modinfo <module name> | grep desc для каждого модуля, который вы нашли на шагах 2 и 3. Прочитайте описания и примите решение о приоритетах этих модулей. Это будут приоритеты соответствующих звуковых устройств.
  11. идти к /etc/modprobe.d;
  12. создавать snd_cards_priorities.conf;
  13. напишите в snd_cards_priorities.conf что-то вроде этого:

    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. сохранить файл;
  15. перезапустите alsa с помощью /usr/sbin/alsa force-reload команды;
  16. выполните cat /proc/asound/cards команду и проверьте, что звуковые устройства находятся в правильном порядке (устройство № 0 имеет наивысший приоритет);
  17. повторите шаги 9, 10 несколько раз и проверьте, что порядок звуковых устройств не меняется;
  18. выход из корня;

  19. запустите alsamixerи настройте звуковое устройство по умолчанию, выйдите alsamixer.

  20. используйте ваш любимый звуковой проигрыватель для проверки новой конфигурации.

решение2

Чтобы установить устройство по умолчанию, вам не нужно переопределять устройство default, а просто вставить следующее /etc/asound.conf:

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

Это будет работать только для программ, которые фактически используют устройство по умолчанию без явного указания устройства. Если какая-то программа, например PulseAudio или VLC, была настроена для определенного выходного устройства, вы должны изменить эту конфигурацию.

Связанный контент