Как сохранить настройки AlsaMixer?

77

Здравствуйте, я попробовал программу "EarCandy", теперь у меня было / у меня много проблем. Сначала у меня не было звука, а сейчас очень низкая громкость. PS Earcandy теперь удален с моего жесткого диска.

Когда я открываю Alsamixer с:

alsamixer

Я вижу, что громкость динамиков равна нулю. Теперь я нажимаю на максимальную громкость. Но после каждого перезапуска я должен снова открыть alsamixer и снова установить громкость на максимум. Могу ли я сохранить настройки для alsamixer или есть другой способ решить проблему? введите описание изображения здесь

jsterr
источник

Ответы:

75

Выполнение:

sudo alsactl store

Это должно сохранить настройки alsamixer, /etc/asound.stateкоторые загружаются при каждом запуске.

Сеппо Эрвиаля
источник
14
Мой ноутбук продолжает сбрасывать мою конфигурацию, даже после запуска вышеуказанной команды. Он утверждает, что хранит его /var/lib/alsa/asound.state. Есть ли другая причина, по которой он не работает?
Азмисов
1
У меня точно такая же проблема и точно такое же поведение, когда я пробую sudo alsactl store.
Жан Сибелиус
1
@Azmisov: Вы можете дополнительно поэкспериментировать с системой следующим образом: (1) сохранить конфигурацию (2) запустить alsamixerи изменить мастер-уровень (2) восстановить конфигурацию (3) проверить, что мастер-уровень был восстановлен. Если выше, как и ожидалось, убедитесь, что восстановление действительно запускается при загрузке системы ( chkconfig alsa-utilsдолжно отображаться alsa-utils on).
dma_k
Этот ответ решил мою проблему с SPDIF: askubuntu.com/questions/541847/…
neves
1
Когда я запускаю sudo alsactl storeэто дает мне следующую ошибку alsactl: get_controls:567: snd_ctl_open error: Invalid argument.
user2513149
24

Вы также можете сохранить настройки микшера в специальный файл с помощью alsactl:

alsactl --file ~/.config/asound.state store

Перезарядка:

alsactl --file ~/.config/asound.state restore
palacsint
источник
2
Лучший ответ не работал для меня, но это сработало! Я создал файл конфигурации и поместил его в /etc/asound.stateи добавил строку перезагрузки к моему /etc/rc.local.
Джон
Это было правильное решение для меня ... но я должен был указать абсолютный путь к файлу .config внутри rc.local(хотя он должен работать даже с относительным, потому что это тот же пользователь .. но это не так). спасибо, и я надеюсь, что моя подсказка также поможет кому-то
davidhq
12

Ответ Сеппо Эрвиаля правильный, но не полный. Как уже отмечал dma_k, man alsactlв конце ясно сказано, что

/var/lib/alsa/asound.state (или любой файл, который вы указываете с флагом -f) используется для хранения текущих настроек ваших звуковых карт.

Palacsinit правильно отметил, что вы можете сохранить конфигурацию в свой файл с

alsactl --file ~/.config/asound.state store

и перезагрузите с

alsactl --file ~/.config/asound.state restore

Это можно улучшить, поместив вторую строку команды восстановления в файл .desktop.

Вам нужно будет запустить nano ~/.config/autostart/alsarestore.desktop, который откроет текстовый редактор nano и создаст ~/.config/autostart/alsarestore.desktopфайл. Записи в ~/.config/autostart/каталоге используются для автоматического запуска программ и сервисов для конкретного пользователя при запуске / графическом входе в систему.

Содержимое файла .desktop должно быть следующим:

[Desktop Entry]
Type=Application
Terminal=false
Name=alsarestore
Exec=alsactl --file ~/.config/asound.state restore

Помимо прочего, вы можете сохранить свой конфигурационный файл /etc/asound.stateи сослаться на него /var/lib/alsa/asound.state, но это скорее совет, а не проверенное решение.

Сергей Колодяжный
источник
Это был единственный способ, с помощью которого я работал на Ubuntu Xenial 16.04
Франциско Коста
1
Команды «store» и «restore» прекрасно работают для ручного управления. Однако, когда я настраивал файл автозапуска с помощью команды «restore», я вижу, что настройка микрофона в alsamixer перезаписывается, чтобы отключить звук, и результат является статическим. Если я вручную выполнить команду восстановления, все в порядке. Почему настройка микрофона изменяется и не корректируется соответствующим образом сохраненным файлом конфигурации при автозапуске ???
Брэд Хорн
@BradHorn, возможно, у вас есть что-то еще, перезаписывающее вашу команду. Он запускается, но потом что-то еще отменяет его изменения
Сергей Колодяжный,
есть идеи, что это может быть?
Брэд Хорн
1
@BradHorn не из головы, нет. Попробуйте изменить Execстроку в .desktopфайле, чтобы быть Exec=bash -c "sleep 5 && alsactl --file ~/.config/asound.state restore". Это приведет к 5-секундной задержке, поэтому все настройки, которые будут перезаписаны, будут выполняться первыми, а затем будет выполняться команда восстановления. Попробуйте поиграть со sleepзначениями, если они по-прежнему переопределяют ваши настройки.
Сергей Колодяжный
2

После 2 месяцев попыток заставить "sudo alsactl store" работать, мне наконец удалось это сделать. Сначала введите в терминале «alsamixer», чтобы войти в пользовательский интерфейс alsamixer. Затем выполните необходимые настройки (например, увеличьте уровень громкости динамиков / наушников или включите звук, нажав «m» на клавиатуре). Теперь самая важная часть. Перед выходом из alsamixer откройте новый терминал и выполните: «sudo su», чтобы получить высокие привилегии (будьте очень осторожны с командами, которые вы используете в режиме «sudo su», потому что вы можете уничтожить вашу систему), а затем выполните «alsactl store» для сохранения настройки alsa. Затем закройте оба терминала и перезагрузите компьютер. Это сделает работу.

tisfo
источник
Это не работает для меня.
kleinfreund
У меня работает, не совсем так, как здесь, а с sudo su.
Дмитрий Полянин
1

Решение Сергея Колодяжного сработало для меня. Хотя мне пришлось добавить модификацию Exec=bash -c "sleep 5 .... На самом деле это происходит потому, что PulseAudio модифицирует ALSA.
Другое решение - отключить PulseAudio во время загрузки (см. Здесь ):

sudo cp /etc/pulse/client.conf /etc/pulse/client.confbackup
sudo nano /etc/pulse/client.conf

Найдите ; autospawn = yes, удалите ;и измените его на:

autospawn = no

Это решение также сработало для меня, хотя Ubuntu выдавала мне ошибку системной программы при запуске. Поскольку я ненавижу подобные сообщения, я использовал первое решение.

мешок
источник
0

Alsa-Json-Gateway https://github.com/fulup-bzh/AlsaJsonGateway поддерживает сохранение / восстановление сеансов звуковых карт из JSON / REST API

  • список сессий / jsonapi? запрос = сессия-список & cardid = hw: 0
  • сохранить сессию / jsonapi? request = сессия-хранилище & cardid = hw: 0 & args = MySoundConfig
  • restore / jsonapi? request = session-load & cardid = hw: 0 & args = MySoundConfig
fulup
источник
0

Для тех, у кого ответ @Sergiy Kolodyazhnyy не сработал, попробуйте заменить alsactlего полным путем (независимо от того, which alsactlчто вам вернули).

dev93
источник