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


77

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

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

alsamixer

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

Ответы:


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

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. Затем закройте оба терминала и перезагрузите компьютер. Это сделает работу.


Это не работает для меня.
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

0

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.