7

Ubuntu 启动/登录声音可能非常响亮,但我确实喜欢它。我写了一个脚本,使用 amixer 将音量设置为 25%。这是我喜欢的音量,但是当我使用电视输出或耳机时,我必须调高音量。在登录声音播放之前,我似乎无法让脚本运行。我尝试了一个 cron @reboot,并在 /etc/rc3.d/ 和我的 .bash_profile 脚本中放置了一个指向脚本的符号链接。只有第三种方法实际上正确设置了音量,但是在登录声音播放之后。

理想情况下,我希望在我晚上注销时或在 ubuntu 登录屏幕显示之前运行脚本。

这是设置音量的命令:

`/usr/bin/amixer -c 0 sset Master,0 25% > /dev/null`

其他方法尝试的建议表示赞赏。

4

7 回答 7

3

您可能想尝试将该行添加到您的喜欢中,/etc/rc.local 但这可能还不够快,因为 rc.local 将在 gdm 之后调用。

另请注意,Ubuntu 上的默认运行级别是2,而不是3。您在 rc3.d 中的链接可能无法正常工作,因为您没有使用运行级别 3。默认运行级别由 /etc/event.d/rc-default 设置

于 2009-01-06T00:50:22.537 回答
1

我相信 Ubuntu 的启动脚本已经包含“alsactl restore”。您应该能够在音量已设置为 25% 的情况下运行“alsactl store”并影响所有未来的重新启动。

于 2009-01-06T02:59:56.067 回答
1

啊,是的,但是它们在关机时是否还包含“alsactl 商店”?

于 2009-05-10T06:06:59.113 回答
1

抢,

我正在尝试解决同样的问题。我把你带到上面的“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 停止 20 0 6 。

于 2010-08-15T19:03:41.690 回答
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以立即运行该单元。

于 2017-10-29T15:57:07.230 回答
0

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

于 2009-01-06T01:12:36.223 回答
0

您可以做的是编写一个脚本以在您关闭计算机时降低音量。像这样的东西:

#!/bin/sh

amixer -- sset Master playback -40dB

exit 1 

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

于 2009-05-25T06:22:56.240 回答