重启后音量设置调到最大的解决方法

重启后音量设置调到最大的解决方法

我最近将我的 Dell E6510 笔记本电脑升级到了 12.04(Ubuntu 和 Unity)。我注意到每次重启后,音量总是会重置为最大级别。

当我尝试弄清楚这是否是一个错误时,我想知道是否可以在登录或启动时执行某些操作来使系统音量静音(或者只是降低)。

在检查了 reverendj1 的回答后,我尝试了,pacmd set-sink-volume 0 0然后sudo alsactl store在第一个命令失败后。

我还右键单击了音量指示器,然后转到“声音设置...” - 从那里,我选择了内置音频输出选项卡上的模拟输出(这是我唯一的选择,但由于某种原因它没有突出显示)。

在此故障排除过程中,我重新启动了几次。我不能 100% 确定模拟输出设置是否曾经从安装默认值更改过,但我记录了该设置以供后人参考,以防其他人遇到这种情况:

模拟输出设置

答案1

要静音,您可以使用以下命令:

pacmd set-sink-volume 0 0

第一个 0 是接收器,第二个 0 是您要设置的音量。音量范围从 0 到 65536,因此要将其设置为半音量,您只需使用以下命令:

pacmd set-sink-volume 0 32768

以下是有关使用PulseAudio CLI(pacmd)

答案2

下载并提取 ponymixhttps://github.com/falconindy/ponymix

sudo apt-get install libpulse-dev
sudo make
sudo cp ponymix /usr/bin/ponymix
sudo chmod +x /usr/bin/ponymix

测试它是否正常工作

ponymix get-volume

制作启动脚本

sudo gedit /usr/bin/load-sound

将其添加到文件 /usr/bin/load-sound:

#! /bin/sh
cat /opt/pulse-volume | xargs /usr/bin/ponymix set-volume
exit 0

激活登录脚本 (load-sound) 打开“启动应用程序” 单击添加 名称:加载 pulseaudio 音量 命令:load-sound

制作注销脚本(保存声音):

sudo gedit /usr/bin/save-sound

将其添加到文件 /usr/bin/save-sound:

#! /bin/sh
su -c "/usr/bin/ponymix get-volume > /opt/pulse-volume" YOUR_CURRENT_USERNAME
exit 0

激活注销脚本(将以 root 身份运行):

sudo gedit /etc/lightdm/lightdm.conf

将其添加到文件 /etc/lightdm/lightdm.conf:

[SeatDefaults]
session-cleanup-script=/usr/bin/save-sound

重启。

答案3

自从两年前开始使用 Linux 以来,我就遇到了这个问题,重启后音量重置为 100%。

基本上,GigabyteProductions 给出的建议让我找到了正确的方向,它应该真的有效,但它在我的系统上不起作用。所以我不得不再多看看,虽然有些痛苦,但我学到了很多东西。

参考错误报告https://bugs.launchpad.net/ubuntu/+source/alsa-utils/+bug/449783我找到了一些有用的线索来解决我的问题。在默认的 /etc/pulse/default.pa 中,您将找到以下条目:
### Automatically restore the volume of streams and devices load-module module-device-restore load-module module-stream-restore load-module module-card-restore

在上面提到的错误报告中的评论#13用户提到,通过添加load-module module-volume-restore到 default.pa,已经为他解决了这个问题,尽管在评论 #16 中指出,从命令行启动的 pulseaudio 警告模块已被弃用,并改用 module-stream-restore。P​​ulseaudio 尝试加载 module-stream-restore 两次,然后导致其崩溃。重新启动时,pulseaudio 不会启动,并且最后的 ALSA 主卷会自动恢复。出于各种原因,这不是一个好主意。如果目标是在重新启动或一般启动后仅恢复 alsa 卷,而不是让 pulseaudio 因弃用的模块而挂起/崩溃,那么更好的选择是完全删除 PulseAudio。

我最终感到不满,并删除了 PulseAudio,以为没有它我也可以活下去,因为我有一个相当基本的音频设置,但我只花了很短的时间就发现了它的缺点,然后我又重新安装了它。回到原点,我浏览了所有可用的在线资源,以在 PulseAudio 服务器同时运行的情况下恢复音量。什么都没用……

ALSA 音量设置使用以下命令保存:

# alsactl store

默认情况下,音量设置会保存到。要保存这些设置,并使用root 权限/var/lib/alsa/asound.state检索它们。# alsactl restore

我在 /etc/init.d 中设置了一个启动脚本(并更新了 update-rc.d),但事实证明它无效。该脚本可以正确运行,但结果在 PulseAudio 登录后不久就被取消,最终音量再次设置为 100%。我认为领先于 PulseAudio 的唯一方法是关闭服务器,重新启动它,然后在服务器运行时恢复设置,登录后,恢复 alsa 设置。

另一种方法是指示 alsactl 将卷设置存储到主文件夹,以便您可以运行一个无需 root 权限即可调用它的脚本。我创建了目录/home/<user>/.config/alsa/并输入:

alsactl -f /home/<user>/.config/alsa/asound.state store

我在“设置”-->“会话和启动”菜单中添加了一个新条目,输入名称“alsa-restore”和命令alsactl restore -f /home/<user>/.config/alsa/asound.state,然后重新启动。我又一次没有运气,我几乎已经没有选择,也没有耐心了。

但后来,我看到了曙光!我编写了一个 shell 脚本,将其命名为sound-restore.sh,并将其放在我的主目录中的一个名为的文件夹中,/home/<user>/scripts/其中包含以下行:

#! /bin/sh pulseaudio -k #just in case pulseaudio is already running pulseaudio -D alsactl -f /home/<user>/.config/alsa/asound.state restore

我使用 使文件可执行sudo chmod+x,然后返回“会话和启动”对话框,将自动启动项中的命令更改为sh /home/<user>/scripts/sound-restore.sh。确保未选中名为“PulseAudio Sound System”的预设启动项。下次重新启动后,音量设置终于恢复到以前的设置!我已经测试了一段时间,它运行良好,pulseaudio 守护程序在后台顺利运行。

系统:
Linux Mint 17.1 XFCE
硬件:
AthlonXP +2600
PCI 声卡:ESS Technology ES1938 Solo-1

答案4

抱歉,我费了好大劲才回答这个问题,但我仔细检查了一下我的答案,发现它有很多漏洞。我在 Linux Mint 论坛上写了一个完整的教程,我想推荐给任何正在寻找这个特定答案的人。所以,这是链接。

[已解决] 修复 ALSA 音量在启动/重启时重置为 100% 的问题

相关内容