Сброс настроек входа AlsaMixer при перезагрузке

Я работаю над аудиопроектом с Raspberry Pi 3 (работает последняя версия Raspbian Jessie), используя AudioInjector SoundCard ( http://www.audioinjector.net/) для ввода / вывода. Я пытаюсь сохранить настройки ввода с помощью хранилища sudo alsactl, но после перезагрузки настройки ввода продолжают сбрасываться. Я просто пытаюсь включить линейный ввод по умолчанию.

Я изменяю свои настройки в alsamixer, чтобы включить линейный ввод и запустить:

sudo alsactl store 0

Я вижу, что настройки изменились в /var/lib/alsa/asound.state, но они все еще возвращаются при перезагрузке, в том числе в файле asound.state. Я смотрю в asound.state на:

state.audioinjectorpi {
...
control.4{
iface MIXER
name 'Line Capture Switch'
value.0 false
value.1 false
comment{
access 'read write'
type BOOLEAN
count 2
}
}
...
}

Я также попробовал обходной путь, где я добавляю строку:

sudo amixer -c 0 sset Line,0 100%, 100% unmute cap > /home/pi/Desktop/result.txt

в мой /etc/rc.local, который успешно запускает и создает файл result.txt, который показывает, что команда преуспела в включении линейного ввода, но когда я открываю alsamixer Line Input Capture снова отключается.

Кажется, может быть, что-то еще происходит в какой-то момент во время загрузки, которая загружается с другими настройками и отключает линейный вход.

Есть идеи, что здесь происходит?

2 ответа

Я использую ту же звуковую карту, и после того, как много копаю в этом, я обнаружил, что путь по умолчанию - /etc/asound.state

После ввода конфигурации в этот путь и перезагрузите устройство обратно в правильном порядке, как определено в файле состояния.

Если это не предусмотрено вашим дистрибутивом, вы можете использовать systemd-service , как показано ниже.

      > systemctl cat alsa-restore.service 
# /lib/systemd/system/alsa-restore.service
#
# Note that two different ALSA card state management schemes exist and they
# can be switched using a file exist check - /etc/alsa/state-daemon.conf .
#

[Unit]
Description=Save/Restore Sound Card State
Documentation=man:alsactl(1)
ConditionPathExists=!/etc/alsa/state-daemon.conf
ConditionPathExistsGlob=/dev/snd/control*
After=alsa-state.service

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=-/usr/sbin/alsactl -E HOME=/run/alsa -E XDG_RUNTIME_DIR=/run/alsa/runtime restore
ExecStop=-/usr/sbin/alsactl -E HOME=/run/alsa -E XDG_RUNTIME_DIR=/run/alsa/runtime store
Другие вопросы по тегам