Я бегу 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 / монитор Но чтобы переключить пакет на мой ноутбук, я должен переименовать скрипт, выйти и снова войти в систему.
Очевидно, что все работает, но я не понимаю:1. Почему я могу видеть и использовать все устройства напрямую (например, с тестом динамика), но alsamixer и pulseaudio их не "видят"? 2. Может кто-нибудь дать некоторое представление о структуре asoundrc. Я не особо продвинулся в руководстве, и мне не ясно, почему в этом скрипте три версии устройства, ссылающиеся друг на друга. И я подозреваю, что есть способ указать псевдоним для hw:0,0 и hw:0,3, который позволил бы мне переключать их без необходимости выхода из системы и входа в систему.
Заранее спасибо.