views:

2327

answers:

7

The Ubuntu startup/login sound can be very loud, but I do like having it. I wrote a script that uses amixer to set the volume to 25%. This is the level I like to have it at, but when I use TV out or headphones I have to turn up the volume. I cannot seem to get the script to run before the login sound plays. I have tried a cron @reboot, and putting a symlink to the script in /etc/rc3.d/, and in my .bash_profile script. Only the 3rd method actually sets the volume correctly, but after the login sound plays.

Ideally I want to have the script run when I am logging out for the night, or just before the ubuntu login screen displays.

Here is the command to set the volume:

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

Suggestions for other methods to try are appreciated.

+2  A: 

You might want to try adding that line to your like to /etc/rc.local This may not be soon enough though, since rc.local will be called after gdm.

Also note, the default runlevel on Ubuntu is 2, not 3. Your link in rc3.d probably didn't work simply because you where not using runlevel 3. The default runlevel is setup by /etc/event.d/rc-default

Zoredache
Adding the script to runlevel 2 worked. Thanks for the help
Rob
This method stopped functioning for me in Ubuntu 9.04, and in 9.10. Have not yet tried in 10.04
Rob
A: 

I've used this method to achieve that before, but on Arch Linux. Now, I'm not too familiar with the init system Ubuntu uses, but I guess you could try adapting this to Ubuntu.

oyvindio
A: 

I believe that Ubuntu's startup scripts already include an "alsactl restore". You should be able to run "alsactl store" with the volume already set to 25% and affect all future reboots.

Sparr
A: 

Ahh, yes, but do they also contain an "alsactl store" on shutdown?

devyn
A: 

What you can do is to write a script to lower down your volume when you shut down your computer. Something like this:

#!/bin/sh

amixer -- sset Master playback -40dB

exit 1

then run this script at shutdown.

Maksim
A: 

Rob, could you please share exact updates and files you updated. I Use Xubuntu 9.04 and have the same problem and I cant solve it by putting command to: /etc/rc.local /etc/event.d/rc-default even created by me /etc/rc2.d/S70unmute

Nothing helped me.

Since Jaunty, I have not been able to get this to function at all, sorry
Rob
A: 

Rob,

I am trying to solve the same issue. I took you "amixer" line above and did alot of poking around learning about runlevels, the /etc/rc#.d folders and the update-rc.d command. It's not perfect. It still doesn't run during a restart the way I would want it to, but its a start.

Suggestions to improve it would would be welcome.

And, here is my code below.....

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 .

Pete
Unfortunately I never solved this issue after updating Ubuntu to a new version. Good luck
Rob