Alsa sound broken after update (FC4 x86_64)
I recently applied a whole bundle of updates including alsa-lib on my Fedora Core 4 x86_64 desktop. Since then I started getting the error message
ALSA lib control.c:817:(snd_ctl_open_noupdate) Invalid CTL default
Open error: No such file or directory
whenever I tried to open alsamixer, and similar errors and crashes running other apps that expected to be able to use the Alsa sound system (which worked quite well before the update).
It turned out that an update of alsa-libs (yeah, I'm lookin' at you, alsa-lib-1.0.10-26.rhfc4.at.x86_64 from atrpms) might not have upgraded cleanly. Doing an strace on the failed alsamixer showed that it was getting a loop error trying to open the alsa config file. ie, the output of strace alsamixer gave this:
stat("/usr/share/alsa/alsa.conf", 0x7fffff936ef0) = -1 ELOOP (Too many levels of symbolic links)
That made it pretty easy to spot the problem. It seems that at some point a package upgrade made a mess of the config files. /etc/alsa/alsa.conf and two other config files under /etc/alsa/pcm were symlinks to themselves. This might have been caused by a brainfart related to their being a symlink to /etc/alsa in /usr/share/alsa. Fortunately rpm chose not to overwrite these entries and it had left .rpmnew files for each of the affected config files. Nuking the self-referencing symlinks and replacing them with the .rpmnew versions got all the alsa stuff up and running again.
Just thought you'd like to know :-)
Update 2005/01/30: After another alsa update (!) I found the broken symlinks on the pcm/d(snoop|mix).conf files came back. Not overly happy. After messing about for a bit (since there were no rpmnew files this time) I did some searching - none of which was particularly helpful, but I'll include the links for you anyway. In the end, running as root:
~# ainit stop
~# ainit start
Got the files recreated ok. Replace with your own account name, of course. The ainit script regenerates the dmix.conf and dsnoop.conf files from the templates, so providing you still have the template files there you should be ok. Will wait and see if this works the next time we have an alsa update :-)
For the record, some links that may or may not be helpful:
- Redhat bug 175255 - to be fixed in FC5 - some useful evidence in there but it's a mess of various bugs shoved into a random whine-pool with no clear solutions.
- ATrpms list post appears to hint at the same problem, links to the bug above and also to another ATrpms posting.
Please feel free to drop a comment here if you have any further info on this (and/or update the bug on redhat to help others too).