在启动时设置Ubuntu的音量

7
Ubuntu的启动/登录声音可能非常响亮,但我喜欢有这个声音。我编写了一个脚本,使用amixer将音量设置为25%。这是我喜欢的水平,但当我使用电视输出或耳机时,我必须调高音量。我似乎无法让脚本在播放登录声音之前运行。我尝试过cron @reboot,在/etc/rc3.d/中放置脚本的符号链接和在我的.bash_profile脚本中添加脚本,只有第三种方法实际上正确地设置了音量,但在登录声音播放后才生效。
理想情况下,我希望可以在晚上退出登录或Ubuntu登录屏幕显示之前运行该脚本。
以下是设置音量的命令:
`/usr/bin/amixer -c 0 sset Master,0 25% > /dev/null`

感谢您的建议,我们非常乐意尝试其他方法。

类似问题:http://askubuntu.com/a/136832/75050(更近期的答案,对我有效)。 - fuenfundachtzig
7个回答

3
你可能想尝试将该行添加到/etc/rc.local中。不过这可能不够及时,因为rc.local会在gdm之后被调用。
还要注意,在Ubuntu上,默认的运行级别是2,而不是3。你在rc3.d中的链接可能没有起作用,只是因为你没有使用运行级别3。默认的运行级别是由/etc/event.d/rc-default设置的。

这个方法在我的Ubuntu 9.04和9.10中停止工作。还没有在10.04中尝试过。 - Rob
将其添加到运行级别2仅对我部分有效。当我可以输入密码时听到的声音现在是25%的音量,但是在我登录后,它与关闭计算机时的声音音量相同。我使用sudo ln -s /etc/init.d/sound.sh /etc/rc2.d/S20sound创建了符号链接,这正确吗? - Martin Thoma

1
创建一个单元配置并启用它以进行启动。
假设使用ALSA和systemd(Ubuntu在14版本之后使用systemd版本)。

/etc/systemd/system/alsavolume.service

在这里创建一个单元文件。您可以调整要运行的命令/usr/bin/amixer sset PCM -- 97%。记住不要使用引号(否则systemd将把整个内容解释为一个命令)。
[Unit]
Description="Set volume level."
After=sound.target

[Service]
Type=simple
ExecStart=/usr/bin/amixer sset PCM -- 97%

[Install]
WantedBy=multi-user.target

启用它(这意味着创建一个符号链接到/etc/systemd/system/multi-user.target.wants以在启动时运行,但以下命令会为您处理。)

  1. 重新加载守护程序

    systemctl daemon-reload

  2. 启用服务

    systemctl enable alsavolume.service

    您可以添加参数--now立即运行该单元。


1

我相信Ubuntu的启动脚本已经包含了"alsactl restore"。你应该能够运行"alsactl store",并将音量设置为25%,影响所有未来的重启。


这是在Ubuntu 19.04上对我有效的方法。 - Head Geek

1

Rob,

我正在尝试解决同样的问题。我采用了你上面的“amixer”命令,并进行了大量探索学习运行级别、/etc/rc#.d文件夹和update-rc.d命令。虽然还不完美,但已经有了一些进展,只是在重新启动时它仍不能按照我想要的方式运行。

欢迎提出改进建议。

以下是我的代码...

sudo echo "#!/bin/bash" > /etc/init.d/lowvol.sh

sudo echo "/usr/bin/amixer -c 0 sset Master,0 35% > /dev/null" >> /etc/init.d/lowvol.sh

sudo chmod +x /etc/init.d/lowvol.sh

sudo chown root:root /etc/init.d/lowvol.sh

sudo update-rc.d lowvol.sh stop 20 0 6 .


很遗憾,我在将Ubuntu更新到新版本后从未解决过这个问题。祝你好运。 - Rob

1

啊,是的,但它们在关机时是否也包含“alsactl store”呢?


0

我以前在 Arch Linux 上使用 this 方法实现过这个,但是现在我对 Ubuntu 使用的 init 系统不是太熟悉,但我想你可以尝试将其适应到Ubuntu。


0
你可以编写一个脚本,在关闭计算机时降低音量。类似这样的代码:
#!/bin/sh

amixer -- sset Master playback -40dB

exit 1 

然后在关机时运行此脚本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接