aslactl 存储/恢复问题

aslactl 存储/恢复问题

我遇到了 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]

/var/lib/alsa/asound.state 和 ~/asound.state 应该相同。

另外,我重启后无法恢复工作;目前使用 rc.local,这不是很好吗?

答案1

嗯,我没有找到问题的实际解决方案,但是找到了一种变通方法。

  1. 剥去部分rc.local
  2. 将 alsa-config 保存到文件:alsactl --file ~/.asound.state store
  3. 编辑后/etc/init.d/shairport-sync添加/usr/bin/sudo /usr/sbin/alsactl --file /home/[username]/.asound.state restoredo_start() {

现在,每次shairport-sync启动时,卷都会被重置,而且由于它在启动时启动,所以我的目的就实现了。不过,我无法解释这种奇怪的行为。

相关内容