除了alsactl存储以外,还有什么方法可以保存alsamixer设置?


9

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

这个问题及其答案表明,sudo alsactl store一旦我取消对S / PDIF输出的静音,它将存储alsamixer设置,但是在启动时,S / PDIF输出再次被静音。

/var/lib/alsa/asound.statepastebin)中,有一个PDIF条目,我将其设置为“ true”并保存;这导致解决了我的“幻影杰克”的自动静音问题,但是在asound.state中没有“ true” S / PDIF的其他条目可供我手动调整。

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

Answers:


9

我在PC上
也遇到了同样的问题:似乎在启动过程中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.local alsactl restore在引导时运行,也可以。但是使用.profile和混合器,无需“ sudo”,并且它将在每次会话启动时取消静音。


1

我改编了@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

0

当我运行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文件中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.