Как узнать, что в моей системе по умолчанию используется звуковой выход карты 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:
- бегать
alsamixer
;- используйте F6 и найдите доступные звуковые устройства
- установить правильные уровни для игры на устройствах;
- запустить какой-нибудь звуковой проигрыватель, который позволяет выбирать звуковые устройства (
audacious
например);- поиграйте со своими звуковыми устройствами (повторяя шаги 2,3) и решите, что должно быть по умолчанию;
- выход
alsamixer
и плеер;- войдите в систему как пользователь root;
- запустить
lsmod | grep snd
и попытаться понять, какие модули соответствуют физическим звуковым устройствам;- если не уверены, что правильно определили модули на шаге 2: перейдите
/sys/module
и проверьте все каталоги, имена которых начинаются с "snd". Эти каталоги называются точно так же, как модули. Если в проверенном каталоге вы увидите каталог "drivers" - значит, имя проверенного каталога - это имя модуля, соответствующего физическому звуковому устройству. Запомните (запишите в блокноте) все такие модули.- запустите
modinfo <module name> | grep desc
для каждого модуля, который вы нашли на шагах 2 и 3. Прочитайте описания и примите решение о приоритетах этих модулей. Это будут приоритеты соответствующих звуковых устройств.- идти к
/etc/modprobe.d
;- создавать
snd_cards_priorities.conf
;напишите в 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
- сохранить файл;
- перезапустите alsa с помощью
/usr/sbin/alsa force-reload
команды;- выполните
cat /proc/asound/cards
команду и проверьте, что звуковые устройства находятся в правильном порядке (устройство № 0 имеет наивысший приоритет);- повторите шаги 9, 10 несколько раз и проверьте, что порядок звуковых устройств не меняется;
выход из корня;
запустите
alsamixer
и настройте звуковое устройство по умолчанию, выйдитеalsamixer
.- используйте ваш любимый звуковой проигрыватель для проверки новой конфигурации.
решение2
Чтобы установить устройство по умолчанию, вам не нужно переопределять устройство default
, а просто вставить следующее /etc/asound.conf
:
defaults.pcm.card 2 # or better "PCH"
defaults.pcm.device 0
Это будет работать только для программ, которые фактически используют устройство по умолчанию без явного указания устройства. Если какая-то программа, например PulseAudio или VLC, была настроена для определенного выходного устройства, вы должны изменить эту конфигурацию.