Я бегу 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, который позволил бы мне переключать их без необходимости выхода из системы и входа в систему.

Заранее спасибо.

0