Bitacoreando

11/11/2004

FC2 Sound Volume / Mixer settings not saved

Well, for some reason, the linux 2.6 kernel sound architecture got really convoluted when it was implemented in FC2. At least when FC2 performs an upgrade, but for what I’ve read around the web, it’s also when you perform a fresh install.

The problem is the really complicated /etc/modprobe sound entries:

install snd-card-0 /sbin/modprobe --ignore-install snd-card-0 && {/usr/sbin/alsactl restore >/dev/null 2>&1 || :; }
remove snd-card-0 {/usr/sbin/alsactl store >/dev/null 2>&1 || :; }; /sbin/modprobe -r –ignore-remove

These lines try to do a “load the kernel sound modules and restore mixer settings” and “save mixer settings before unloading the sound module” command sequence. I don’t know why, but it just doesn’t work. :-/

SO, the fix is really simple. Comment those lines in your /etc/modprobe file. I only have one sound card, so maybe if you have more sound cards, there would be more than one line for install and remove, also, the lines could not be exactly the same, but you get the idea.

Then, edit the /etc/rc.d/rc.local file and add the following line:

alsactl restore

at the end. Reboot. Test from the command line: aplay /usr/share/sounds/KDE_Startup_new.wav

You may ask where does the system save the mixer settings? I found it around line 66 of /etc/rc.d/init.d/halt
….

# Save mixer settings, here for lack of a better place.
grep -q “(alsa)” /proc/devices
if [ $? = 0 -a -x /usr/sbin/alsactl ]; then
runcmd $”Saving mixer settings” alsactl store
fi

So, we completely bypass the “muck with mixer settings at module manipulation time” approach, and use a more down-to-earth “use the regular start/stop steps into the system initialization to save and restore the mixer settings” approach

Cheers

Filed under: Bitacoreando — ruben @ 11:01 am

Powered by WordPress