sound issues in -current
I have been battling sound issues for quite a while now with no success. The problems seem to get more difficult with each batch of updates. Upon reboot I will have no sound, pulseaudio will even eventually crash. After restarting kaudio sound will return I assume falling back to ALSA. The problem seems to go all the way back to the boot process:
Code:
[ 5.206907] udevd[1991]: failed to execute '/lib/udev/udev-acl' 'udev-acl --action=add --device=/dev/sg1': No such file or directory This seems to be the most logical place to start, I'll jump the pulseaudio hurdles once I get this sorted out. |
Just a shot in the dark, because I'm not familiar enough with what does what and when on the boot process, but maybe you need to add your sound modules into the initrd if udev is trying to add entries to /dev/ before /usr/ is mounted.
On second look, maybe it's actually /lib/ not mounting soon enough, and it can't find the command /lib/udev/udev-acl? |
If /usr is on its own partition, the initrd won't find udev-acl.
Code:
cranium@hp635:/boot/initrd-tree$ ls -l lib/udev/udev-acl |
Code:
bash-4.3# lsblk |
I'm not very familiar with this since I don't run a separate /usr/ partition, but you could try extracting your initrd, adding the files needed to run that command, and then repack the initrd. Assuming it doesn't need to call any additional files, it might be enough to get that command to run before /usr/ is mounted.
(If you called your initrd.gz something else, make sure you take that into account) Code:
su - Richard Cranium might have a better suggestion on how to handle this, because I believe he uses a separate /usr/ partition and might've ran into something similar. |
I've been experimenting with editing /etc/rc.d/rc.S and placing...
Code:
# reload udev rules. Code:
# Start cgmanager (or cgproxy in a container): You'll still get errors during the initrd boot, but you never have all of /usr during that portion of the boot anyways. |
Is this correct:
Quote:
|
Quote:
Thanks! |
I like the simplicity and logic behind Richard Cranium's solution. I have implemented that and it seems to eliminate the error messages. The original messages are still there but now when I see "Reload udev rules" message during startup there are no more errors. Now it seems time to start fighting with pulseaudio. If pulse audio is running kmix shows nothing and sound is mute. If I kill all pulseaudio processes and chmod -x pulseaudio to keep it from coming back I can get kmix to show the proper audio controls, but still no sound.
Code:
|
Are you talking about removing the execute permission of rc.pulseaudio? Because that isn't supposed to be executable (read the file for more info).
|
bassmadrigal No. Even after changing to autostart=no pulse audio would restart itself after I killed it so to ensure it stayed dead I removed execute permission from /usr/bin/pulseaudio. Since this has accomplished nothing, /usr/bin/pulseaudio is once again executable.
|
Try running pavucontrol instead of kmix.
|
Success!!!! Pavucontrol showed me a more usable error which suggested I run start-pulseaudio-x11 manually, which in turn rendered a cryptic but eventually even more usable error message. Chasing this down it turns out that (as usual) I was my own worst enemy. I had built a library that pulseaudio required sometime in the past from SBo. I forget which one now because excitement begets poor documentation. I had SBo packages blacklisted in slackpkg/blacklist. The lesson here is that every once in a while one should un-blacklist SBo packages and see if Pat has incorporated the same into Slackware. Thank you all for the help.
|
You might want to take out the change to rc.S to see if it still works. :)
|
I'm actually thinking about playing with udev and getting it to stop trying to load too early. I think you are right though, it will probably work just fine without the reload step.
|
All times are GMT -5. The time now is 12:53 AM. |