Я запускаю nixos на lenovo x220t. При запуске он находит аналоговые динамики и показывает только их в alsamixer (или pavucontrol). Однако при подключении к hdmi монитору/телевизору я могу воспроизводить звук через динамики, например, с помощью speaker-test -c 2 -D hw:0,3
.
Немного покопавшись в интернете, я пришел к этому сценарию,
pcm.!default{
type plug
slave.pcm "hdmivol"
}
pcm.hdmi-playback{
type hw
card 0
device 3
}
pcm.hdmivol{
type softvol
slave.pcm "hdmi-playback"
control {
name "Master"
card 0
}
}
который, если вызван, ~/.asoundrc
будет воспроизводить звук через мой hdmi tv/monitor. Но чтобы переключить пакет на мой ноутбук, мне нужно переименовать скрипт, выйти из системы и снова войти в систему.
Очевидно, что все работает, но я не понимаю: 1. Почему я могу видеть и использовать все устройства напрямую (например, с помощью теста динамика), но alsamixer и pulseaudio их не «видят»? 2. Может ли кто-нибудь дать некоторое представление о структуре asoundrc. Я не особо продвинулся с руководством, и мне не ясно, почему в этом скрипте три версии устройства ссылаются друг на друга. И я подозреваю, что есть способ указать псевдоним для hw:0,0 и hw:0,3, который позволит мне переключать их без необходимости выходить из системы и входить в нее.
Заранее спасибо.