Есть ли способ сохранить настройки alsamixer, кроме alsactl store?

9

Основная проблема: по какой-то причине при загрузке Ubuntu 14.04 отключает (отключает) выход S / PDIF на моей звуковой карте.

Этот вопрос и ответы на него указывают на то sudo alsactl store, что настройки alsamixer будут сохранены после того, как я включил звук на выходе S / PDIF, но при загрузке выход S / PDIF снова отключится.

В /var/lib/alsa/asound.state( pastebin ) есть одна запись PDIF, которую я установил в "true" и сохранил; это привело к автоматическому отключению звука для моего «фантомного гнезда», но в asound.state нет другой записи для «истинного» S / PDIF, которую я могу настроить вручную.

В /var/lib/alsa/asound.state.lockкаталоге также есть пустой файл (11 байт, пустой в gedit) /alsa/. Я должен иметь с этим дело?

JeanSibelius
источник

Ответы:

9

У меня та же проблема на моем компьютере:
похоже, что alsa восстанавливает состояние SPDIF «без звука» во время загрузки, но затем pulseaudio отключает его при запуске сеанса пользователя.
Чтобы убедиться, что восстановление alsa в порядке, просто запустите sudo alsactl restoreв терминале и посмотрите , включает ли он SPDIF.
Чтобы убедиться в том, что pulseaudio является проблемой, просто запустите pulseaudio -kдля повторного запуска pulseaudio: вы должны увидеть, что SPDIF отключен.

Так как я не знаю, как установить pulseaudio, чтобы не отключать звук, это обходной путь, вдохновленный этим :

  • Попробуйте, если эта команда включает канал SPDIF:
    amixer set IEC958 unmute
  • Если да, создайте скрытый файл .unmute:
    gedit .unmute
    вставьте в него 4 строки:

    #!/bin/bash
    sleep 10 
    /usr/bin/amixer set IEC958 unmute 
    exit
    

сохранить и закрыть.
Теперь, отредактируйте .profileфайл:
gedit .profile
добавьте эту строку в конце:

bash .unmute &

сохранить и закрыть.

Теперь проверьте возобновление сеанса или перезагрузку.

Примечание : в приведенной выше ссылке от Mageia они используют /etc/rc.local для запуска alsactl restoreво время загрузки, это тоже нормально. Но используя .profileи amixer, не нужно «sudo», и он будет включать звук при каждом запуске сеанса для вашего логина.

laugeo
источник
1

Я адаптировал ответ @ laugeo, чтобы исправить проблему с наушниками.

Проблема была в том, что наушники были настроены на включение звука, но он был на 00 громкости.

Я хотел, чтобы это было 100, поэтому я добавил это: /usr/bin/amixer -c 0 set Headphone playback 100% unmute

И .unmuteскрипт выглядит так:

#!/bin/bash
sleep 10 
/usr/bin/amixer -c 0 set Headphone playback 100% unmute
exit

Если вы хотите включить звук и установить громкость на 100%, просто измените канал. Например, для основного канала:

#!/bin/bash
sleep 10 
/usr/bin/amixer -c 0 set Master playback 100% unmute
exit
Герман Акоста
источник
0

Когда я запускаю sudo alsactl storeэто дает мне следующую ошибку

alsactl: get_controls:567: snd_ctl_open error: Invalid argument.

Мне нужно было включить звук Мастер канала, используя

amixer set Master 100 unmute

и это отлично работало для выбранной на данный момент звуковой карты. Но главный канал всегда отключался снова после загрузки, поэтому я создал сценарий с именем unmute.shи настроил его chmod 700так, чтобы другие пользователи не могли его запустить. Я заполнил сценарий следующим содержанием:

#!/bin/bash
amixer set Master 100 unmute

и сохранил его в ~/.kde/Autostartкаталог. Если у вас есть Kubuntu или другой дистрибутив с KDE, все скрипты в этом каталоге будут автоматически запускаться при загрузке.

Если у вас нет KDE, вы можете попробовать добавить amixerкоманду в ~/.profileфайл.

user2513149
источник