我遇到了 alsa 设置无法在重新启动后幸存的问题。我有一个运行 15.04 的无头服务器,使用声音进行 shairport-sync。当我重新启动时,我得到了凌乱的 alsa 设置(卷)。尝试恢复以前的配置给了我奇怪的值。恢复为超级用户工作;恢复为普通用户不会,除非我指定一个文件,否则它可以工作。
$ alsactl restore
alsactl: state_lock:125: file /var/lib/alsa/asound.state lock error: File exists
alsactl: load_state:1683: Cannot open /var/lib/alsa/asound.state for reading: File exists
Found hardware: "HDA-Intel" "Realtek ALC892" "HDA:10ec0892,1849d892,00100302" "0x1849" "0xd892"
Hardware is initialized using a generic method
$ sudo alsactl restore
[works]
$ alsactl --file ~/asound.state restore
[works too]
Run Code Online (Sandbox Code Playgroud)
/var/lib/alsa/asound.state 和 ~/asound.state 应该是相同的。
另外,我在重新启动后无法恢复工作;目前用的是rc.local,不好吗?
好吧,我没有找到问题的实际解决方案,而是找到了解决方法。
rc.local alsactl --file ~/.asound.state store/etc/init.d/shairport-sync添加/usr/bin/sudo /usr/sbin/alsactl --file /home/[username]/.asound.state restoredo_start() {现在,每次shairport-sync启动时,卷都会被重置,并且由于它在启动时启动,我的目标就实现了。尽管如此,我仍然无法解释这种奇怪的行为。