sean <tech.j...@myfairpoint.net> posted 4a4b6572.8000...@myfairpoint.net, excerpted below, on Wed, 01 Jul 2009 09:32:34 -0400:
>> This sounds to me like one of the sound modules isn't loaded. ALSA has >> always started muted, until it's unmuted, but that can't be it, as xine >> should then play, it'd just be muted. But if one of the necessary >> modules wasn't loaded, xine would presumably detect that by the failure >> to open the device at all, thus the xine-out.wav. > > All modules are loaded. In fact I just rebuilt my kernel yesterday and > repopulated the modules that are to load on startup, and still the same > problem. > > As a regular user, if I start alsamixer and see basically a display with > no channels, I need to rerun alsaconf as root. Once done, alsamixer > looks proper with all the channels. The only channel that is muted after > this, is the mic channel. So you're saying that it only happens as a regular user? You can run alsamixer as root and see all channels when you can't as a regular user, and that running alsaconf (as root) fixes it then? If you see them as root but not as a normal user, it's a permissions problem. Just to check, your user is in the audio group, right? (I expect so since otherwise you'd likely have problems even after running alsaconf as root, since it's going to assume that.) What's the permissions on all the components in the /dev/snd dir? Check both before and after running alsaconf, to see if there's a change, either in devices listed or in permissions. Here's what I have here: ls -l /dev/snd total 0 crw-rw---- 1 root audio 116, 0 2009-06-30 14:05 controlC0 crw-rw---- 1 root audio 116, 24 2009-06-30 14:05 pcmC0D0c crw-rw---- 1 root audio 116, 16 2009-07-01 07:26 pcmC0D0p crw-rw---- 1 root audio 116, 25 2009-06-30 14:05 pcmC0D1c crw-rw---- 1 root audio 116, 1 2009-06-30 14:05 seq crw-rw---- 1 root audio 116, 33 2009-06-30 14:05 timer If you're not seeing similar, and/or the group isn't audio, and/or you're not seeing 660 perms (read/write on group is what we're after), then that's likely the problem... Years ago, there was a pam-console module that could screw up permissions. The idea back then was to set the owner to the actual logged-in user and only allow them access. The reasoning went something like this: Consider the scenario of an office, with a multi-user system, with one user logged in locally and perhaps others logged in remotely, from other areas of the office. Now, imagine all those users are in the audio group. Now, imagine some wiseguy at the other end of the office logging in, turning the sound volume up, and having it play... say a nasty fart... or a porno soundtrack, or something. The poor user actually logged in at the console would have no idea... but be extremely embarrassed! Unfortunately that didn't work so well, because for various reasons, X sessions weren't always counted as logins, so it was quite possible to have someone logged into X but not at the text console, and not have sound permissions as a result. Combine this with the fact that multiple- user logins, at least at the same time (and remote) are far less common these days, and it was a huge hassle for very little gain. Many people ended up either setting pam-console permissions for that sort of stuff to 660 audio group or 666 world writable, if they could figure out pam- console's settings to do so, or having to jump thru hoops like keeping a text console logged in, in ordered to have sound in X. pam-console has been obsolete on Gentoo for years now, I think, but perhaps you are still running it? Unlikely, since I don't even see it listed as available any more, but one never knows. Alternatively, consolekit is supposed to be the modern version of pam- console, I think. X requires it, and I have it installed, but I haven't the foggiest how it works and its config is 100% default here. However, it's possible there's a similar issue with it. Unfortunately, as I said, I haven't the foggiest on it. Then there's udev. At least with the ~arch version I have installed (udev-141-r1), its permission rules for alsa seem to be in /lib64/udev/rules.d/40-alsa.rules . That doesn't appear to be CONFIG_PROTECTed by default, so any changes made to the rules there will be overwritten when you update udev. FWIW, here's the file as I have it: # do not edit this file, it will be overwritten on update SUBSYSTEM=="sound", GROUP="audio" KERNEL=="controlC[0-9]*", NAME="snd/%k" KERNEL=="hwC[D0-9]*", NAME="snd/%k" KERNEL=="pcmC[D0-9cp]*", NAME="snd/%k" KERNEL=="midiC[D0-9]*", NAME="snd/%k" KERNEL=="timer", NAME="snd/%k" KERNEL=="seq", NAME="snd/%k" KERNEL=="mixer0", SYMLINK+="mixer" As you can see, it's set to create all devices in the audio group, so that's what you should see, unless something strange is going on. FWIW, you'd put any changes in a file in /etc/udev/rules.d, which should be CONFIG_PROTECTed. Of course you may not be running udev, preferring a static /dev. In that case, changes you make to the device permissions should remain. Depending on your config, you may also have some devices copied into dev from a state dir, as part of the udev setup. I disabled that right away as udev was working fine on its own and I didn't want anything screwing up its work, but Gentoo was using a state tarball by default for some time, and for all I know, still is. But I think that's part of baselayout/openrc, and I've been on baselayout-2/openrc for long enough now I've quite forgotten how baselayout-1 worked, so you'll have to find that stuff on your own if you're still using it (which you likely are if you're on stable). -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman