除了 alsactl store 之外,还有其他方法可以保存 alsamixer 设置吗?

除了 alsactl store 之外,还有其他方法可以保存 alsamixer 设置吗?

根本问题:由于某种原因,在启动时,Ubuntu 14.04 禁用(静音)了我的声卡上的 S/PDIF 输出。

这个问题及其答案表示sudo alsactl store一旦我取消 S/PDIF 输出静音,就会存储 alsamixer 设置,但在启动时,S/PDIF 输出再次静音。

/var/lib/alsa/asound.state粘贴箱)有一个 PDIF 条目,我已将其设置为“true”并保存;这已解决我的“Phantom Jack”的自动静音问题,但 asound.state 中没有其他“true”S/PDIF 条目可供我手动调整。

目录中还有一个空/var/lib/alsa/asound.state.lock文件(11 字节,在 gedit 中为空白)/alsa/。我应该处理这个问题吗?

答案1

我的电脑也出现了同样的问题:
看来 alsa 在启动期间有效地恢复了 SPDIF“未静音”状态,但当用户会话启动时 pulseaudio 会将其静音。
要验证 alsa 恢复是否正常,只需sudo alsactl restore在终端中运行并查看它是否取消了 SPDIF 的静音。
要验证 pulseaudio 是问题所在,只需运行pulseaudio -k以重新启动 pulseaudio:您应该会看到 SPDIF 已静音。

由于我不知道如何设置 pulseaudio 不静音,这是一个解决方法,灵感来自那里

  • 尝试此命令是否可以取消 SPDIF 通道的静音:
    amixer set IEC958 unmute
  • 如果是,请创建 .unmute 隐藏文件:
    gedit .unmute
    在其中粘贴 4 行:

    #!/bin/bash
    sleep 10 
    /usr/bin/amixer set IEC958 unmute 
    exit
    

保存并关闭。
现在,编辑.profile文件:
gedit .profile
在末尾添加以下行:

bash .unmute &

保存并关闭。

现在测试重新打开会话或重新启动。

笔记:在上面的 Mageia 链接中,他们使用 /etc/rc.localalsactl restore在启动时运行,这也是可以的。但是使用.profileamixer,不需要“sudo”,它会在您登录时每次启动会话时取消静音。

答案2

我适应了@laugeo 的回答解决我的耳机问题。

问题是耳机已设置为取消静音,但音量却是 00。

我希望它是 100,所以我添加了这个:/usr/bin/amixer -c 0 set Headphone playback 100% unmute

脚本.unmute如下:

#!/bin/bash
sleep 10 
/usr/bin/amixer -c 0 set Headphone playback 100% unmute
exit

如果您想取消静音并将音量设置为 100%,只需更改频道即可。例如对于主频道:

#!/bin/bash
sleep 10 
/usr/bin/amixer -c 0 set Master playback 100% unmute
exit

答案3

当我运行时sudo alsactl store它出现以下错误

alsactl: get_controls:567: snd_ctl_open error: Invalid argument.

我需要使用

amixer set Master 100 unmute

并且它完美地适用于当前选定的声卡。但是主通道在启动后总是再次静音,所以我创建了一个名为unmute.sh并设置的脚本chmod 700,以便其他用户无法运行它。我在脚本中填写了以下内容:

#!/bin/bash
amixer set Master 100 unmute

并将其保存到~/.kde/Autostart目录中。如果您有 Kubuntu 或其他带有 KDE 的发行版,则该目录中的所有脚本将在启动时自动运行。

如果您没有 KDE,您可以尝试将amixer命令添加到~/.profile文件中。

答案4

是的,在我尝试了许多其他解决方案之后,它对我有用:

  1. (根)打开 /et/pulse/default.pa

  2. 在包含 module-device-restore 的行开头添加 #

  3. 正确设置 alsamixer 取消所有静音

4 重启

非常感谢 !

hp600 Debian 11.7

相关内容