[SOLVED] Slackware 15.0+ plasma kde desktop not recognizing motherboard on board audio device
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Slackware 15.0+ plasma kde desktop not recognizing motherboard on board audio device
I just built a new PC with a Slackware distribution and cannot get the audio to work. I have another PC that I build last year with the same MB, processor, and RAM, basically the same machine and the audio works on it. I have attached screenshots from the Configure audio devices of the plasma KDE desktop. As can be noticed on the configure audio settings of the working box it shows drop downs for port and profile in the upper right whereas the non working box does not show these. I have tried to find the answer on line, but don't seem to have tripped upon it yet. I have run these commands and still can't seem to find the issue.
These commands listed the same thing on both the working and non working boxes:
From the commands above it appears that everything is in place, but still the configure audio settings don't see it. Anybody have any ideas? Many thanks in advance.
Another thing I came across was to try this for a test:
on the working box:
Code:
root@robrutrm:~# speaker-test -D hw:0 -t wav -c 2
speaker-test 1.2.11
Playback device is hw:0
Stream parameters are 48000Hz, S16_LE, 2 channels
WAV file(s)
Playback open error: -16,Device or resource busy
On the non-working box:
Code:
root@robrutrm:~# speaker-test -D hw:0 -t wav -c 2
speaker-test 1.2.11
Playback device is hw:0
Stream parameters are 48000Hz, S16_LE, 2 channels
WAV file(s)
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 64 to 1048576
Period size range from 32 to 524288
Periods = 4
was set period_size = 12000
was set buffer_size = 48000
0 - Front Left
1 - Front Right
Time per period = 2.251493
0 - Front Left
1 - Front Right
Time per period = 2.999628
0 - Front Left
1 - Front Right
Time per period = 3.000607
0 - Front Left
1 - Front Right
Time per period = 2.999962
0 - Front Left
1 - Front Right
^CTransfer failed: Bad address
root@robrutrm:~#
Even though it appears the sound test was working on the non-working one still no sound out of the speakers.
After much reading I finally resolved the issue. It was a matter of permissions. One post I read, https://www.linuxquestions.org/quest...oogle_vignette , was self explanatory. All the commands I had executed before to troubleshoot the problem had been from root. I dropped back to the specific user, which is where I launched KDE from and got this:
Code:
robby@robrutrm:~$ aplay -l
aplay: device_list:279: no soundcards found...
It is a permissions thing. Had me tearing my hair out for a while too, but I finally found it - cd into /dev/snd and do "chmod a+rw *".
I ran the chmod command as suggested and it worked. I now had sound working from my specific user. The only issue was that it wasn't persistent, it didn't stay after reboot. Checking further I saw on the working box that this user was in several groups:
Code:
root@robrutrm:/home/robby/pug/data# groups robby
robby : users lp wheel floppy audio video cdrom plugdev power netdev scanner polkitd mythtv
The non working box was only in two groups:
Code:
root@robrutrm:~# groups robby
robby : users wheel
After appending the additional groups to the non working box as I saw on the working box, users lp wheel floppy audio video cdrom plugdev power netdev scanner polkitd mythtv, voila I have working sound from the box that wasn't working with the kde launched as the specific user.
Yes, adding your user to the audio group does the trick. Another solution which also would be persistent between boots would be to make audio devices accessible by all users with an udev rule in some file in /etc/udev/rules.d, the content of that rule would be something like:
For good and bad, an udev rule like the one above allows all users to access audio devices. If you prefer to have audio access only for a few selected users your current solution with adding those users to the audio group might be a better choice.
Among other things, sound works here out-of-the-box without adding groups.
Code:
$ groups
users
When you log in (locally), elogind adds you to the Access Control List (ACL) of the needed device files. (By a udev rule in /lib/udev/rules.d/71-seat.rules). To see the ACLs, try e.g.:
Code:
getfacl -Rs /dev
It should show the user rw rights have been added to you for several files, like the bolded line below:
root@robrutrm:~# lsof /dev/snd/*
lsof: WARNING: can't stat() fuse.portal file system /home/robby/.cache/doc
Output information may be incomplete.
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /home/robby/.gvfs
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
pulseaudi 2387 robby mem CHR 116,2 644 /dev/snd/pcmC0D0p
pulseaudi 2387 robby 16u CHR 116,12 0t0 673 /dev/snd/controlC0
pulseaudi 2387 robby 23u CHR 116,12 0t0 673 /dev/snd/controlC0
pulseaudi 2387 robby 28u CHR 116,12 0t0 673 /dev/snd/controlC0
pulseaudi 2387 robby 41u CHR 116,12 0t0 673 /dev/snd/controlC0
pulseaudi 2387 robby 44u CHR 116,2 0t0 644 /dev/snd/pcmC0D0p
and the one that doesn't work:
Code:
root@robrutrm:~# lsof /dev/snd/*
lsof: WARNING: can't stat() fuse.portal file system /home/robby/.cache/doc
Output information may be incomplete.
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /home/robby/.gvfs
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
pulseaudi 20120 pulse 10u CHR 116,12 0t0 692 /dev/snd/controlC0
pulseaudi 20120 pulse 17u CHR 116,12 0t0 692 /dev/snd/controlC0
The first one has pulseaudio running as robby and the second one as pulse. Maybe you had set the executable bit of /etc/rc.d/rc.pulseaudio of the second one? (You shouldn't have.)
Last edited by Petri Kaukasoina; 04-21-2024 at 09:03 AM.
Thanks henca and Petri Kaukasoina. To henca I believe I would prefer audio to work for only selected users, I am the only user that actively uses this box, so I would like to leave things as is.
In response to Petri Kaukasoina...I see a /lib/udev/rules.d/71-seat.rules. I also see two entries for sound in it:
Working box
Code:
TAG=="uaccess", SUBSYSTEM!="sound", TAG+="seat"
SUBSYSTEM=="sound", KERNEL=="card*", TAG+="seat"
and
# 'Plugable' USB hub, sound, network, graphics adapter
SUBSYSTEM=="usb", ATTR{idVendor}=="2230", ATTR{idProduct}=="000[13]", ENV{ID_AUTOSEAT}="1"
was non-working box
Code:
TAG=="uaccess", SUBSYSTEM!="sound", TAG+="seat"
SUBSYSTEM=="sound", KERNEL=="card*", TAG+="seat"
and
# 'Plugable' USB hub, sound, network, graphics adapter
SUBSYSTEM=="usb", ATTR{idVendor}=="2230", ATTR{idProduct}=="000[13]", ENV{ID_AUTOSEAT}="1"
root@robrutrm:/lib/udev/rules.d# ls -l /etc/rc.d/rc.pulseaudio
-rw-r--r-- 1 root root 1171 Jan 26 2016 /etc/rc.d/rc.pulseaudio
From the date of this file it seems this system was originally installed before the 14.2 release and you have upgraded it since. I wonder if there is something missing and/or something old left. For example, you should not have package ConsoleKit2. Do you have .new files not moved in place, for example in /etc/pam.d ? (There are lines there loading the pam_elogind.so module which registers the user sessions.)
who uses utmp, the old method for login records. The new method to manage logins is elogind (extracted from systemd) but it seems you have managed to log in without adding a session.
Quote:
I could change that user to robby for the second box I was working on, but not sure if that would "break" things.
When you start playing audio, pulseaudio starts automatically, running as you (robby). Your second lsof listing showed pulseaudio running as user pulse, and it could have been caused by running /etc/rc.d/rc.pulseaudio. But maybe it runs as user pulse also when it starts after you run aplay as root.
Last edited by Petri Kaukasoina; 04-23-2024 at 12:57 AM.
In response to your comment on "it seems this system was originally installed before the 14.2 release and you have upgraded it since", this is true. I built my first slacker system, I believe, in 2014 or 2015, and I think it was 14.0 then. I do not however have package consolekit2:
Code:
root@robrutrm:/etc/pam.d# slackpkg info consolekit2
No packages found! Try:
slackpkg search consolekit2
and choose one (and ONLY one package).
root@robrutrm:/etc/pam.d# ls /var/log/packages | grep consolekit
root@robrutrm:/etc/pam.d# ls /var/log/packages | grep consolekit2
root@robrutrm:/etc/pam.d#
I see four packages that are new in /etc/pam.d, the login and systemauth are from 2020 and the sshd and xdm are from this year:
Code:
root@robrutrm:/etc/pam.d# ls -l
total 188
-rw-r--r-- 1 root root 146 Feb 19 2020 chage
-rw-r--r-- 1 root root 192 Feb 14 2020 chfn
-rw-r--r-- 1 root root 146 Feb 19 2020 chgpasswd
-rw-r--r-- 1 root root 146 Feb 19 2020 chpasswd
-rw-r--r-- 1 root root 192 Feb 14 2020 chsh
-rw-r--r-- 1 root root 70 May 16 2020 cups
-rw-r--r-- 1 root root 157 Feb 12 2020 dovecot
-rw-r--r-- 1 root root 394 Mar 14 14:34 elogind-user
-rw-r--r-- 1 root root 146 Feb 19 2020 groupadd
-rw-r--r-- 1 root root 146 Feb 19 2020 groupdel
-rw-r--r-- 1 root root 146 Feb 19 2020 groupmems
-rw-r--r-- 1 root root 146 Feb 19 2020 groupmod
-rw-r--r-- 1 root root 351 May 19 2022 kde
-rw-r--r-- 1 root root 426 May 21 2020 kde-np
-rw-r--r-- 1 root root 658 Feb 19 2020 login
-rw-r--r-- 1 root root 1014 Jun 18 2020 login.new
-rw-r--r-- 1 root root 126 May 16 2020 netatalk
-rw-r--r-- 1 root root 146 Feb 19 2020 newusers
-rw-r--r-- 1 root root 155 Nov 8 2018 other
-rw-r--r-- 1 root root 186 Feb 19 2020 passwd
-rw-r--r-- 1 root root 155 May 16 2020 polkit-1
-rw-r--r-- 1 root root 231 Nov 15 2018 postlogin
-rw-r--r-- 1 root root 183 May 16 2020 ppp
-rw-r--r-- 1 root root 1014 Jun 18 2020 remote
-rw-r--r-- 1 root root 200 Feb 19 2020 runuser
-rw-r--r-- 1 root root 150 Feb 19 2020 runuser-l
-rw-r--r-- 1 root root 77 May 16 2020 screen
-rw-r--r-- 1 root root 944 Aug 8 2023 sddm
-rw-r--r-- 1 root root 848 Aug 8 2023 sddm-autologin
-rw-r--r-- 1 root root 533 Aug 8 2023 sddm-greeter
-rw-r--r-- 1 root root 965 May 16 2020 sshd
-rw-r--r-- 1 root root 1228 Mar 11 12:43 sshd.new
-rw-r--r-- 1 root root 545 Feb 19 2020 su
-rw-r--r-- 1 root root 210 Feb 19 2020 su-l
-rw-r--r-- 1 root root 2480 Feb 19 2020 system-auth
-rw-r--r-- 1 root root 2443 Jun 16 2020 system-auth.new
-rw-r--r-- 1 root root 256 Apr 5 12:07 tigervnc
-rw-r--r-- 1 root root 146 Feb 19 2020 useradd
-rw-r--r-- 1 root root 146 Feb 19 2020 userdel
-rw-r--r-- 1 root root 146 Feb 19 2020 usermod
-rw-r--r-- 1 root root 97 Nov 9 11:50 vlock
-rw-r--r-- 1 root root 314 May 16 2020 vsftpd
-rw-r--r-- 1 root root 260 May 16 2020 xdm
-rw-r--r-- 1 root root 293 Apr 5 12:41 xdm.new
-rw-r--r-- 1 root root 61 Mar 14 14:32 xfce4-screensaver
-rw-r--r-- 1 root root 154 May 16 2020 xlock
-rw-r--r-- 1 root root 50 May 16 2020 xscreensaver
In addition I cannot find package utmp:
Code:
root@robrutrm:/etc/pam.d# slackpkg info utmp
No packages found! Try:
slackpkg search utmp
and choose one (and ONLY one package).
root@robrutrm:/etc/pam.d# ls /var/log/packages | grep utmp
root@robrutrm:/etc/pam.d#
root@robrutrm:/etc/pam.d# slackpkg search utmp
Looking for utmp in package list. Please wait... DONE
No package name matches the pattern.
root@robrutrm:/etc/pam.d#
robby@robrutrm:~/src$ find utmp
find: 'utmp': No such file or directory
robby@robrutrm:~/src$ whereis utmp
utmp: /usr/man/man5/utmp.5.gz
robby@robrutrm:~/src$
One sidenote is that even though package utmp is not found, the whereis command found an entry in the /usr/man/ directory.
Also since I managed to get the sound working on the box that was not working the lsof shows user robby now:
Code:
root@robrutrm:~# lsof /dev/snd/*
lsof: WARNING: can't stat() fuse.portal file system /home/robby/.cache/doc
Output information may be incomplete.
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /home/robby/.gvfs
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
pulseaudi 2115 robby mem CHR 116,2 663 /dev/snd/pcmC0D0p
pulseaudi 2115 robby 17u CHR 116,12 0t0 692 /dev/snd/controlC0
pulseaudi 2115 robby 24u CHR 116,12 0t0 692 /dev/snd/controlC0
pulseaudi 2115 robby 39u CHR 116,12 0t0 692 /dev/snd/controlC0
pulseaudi 2115 robby 42u CHR 116,2 0t0 663 /dev/snd/pcmC0D0p
root@robrutrm:~#
...and this is either from root or user robby.
I hope this doesn't mean I have a "broken" install. Over the years I just kept doing the updates and thought that kept all my boxes, I have three slacker boxes running, current. I really did not, nor do not, want to install from scratch and re-build what I have working. The main thing is I run mythtv on all of my slacker boxes and I had to install a lot, and I mean a lot, of dependencies to get mythtv working so I especially didn't want to have to re-build mythtv and all of its dependencies.
Last edited by rocknrobin; 04-23-2024 at 11:18 AM.
Your problem is right here. You should move all those .new files in place, including login.new which solves the problem. For example 'mv login.new login'. You have the original /etc/pam.d/login when it was first added to package util-linux-2.35.1-x86_64-6 (May 16, 2020). You have the corrected file still with suffix .new from package util-linux-2.35.2-x86_64-3.txz (Jun 18, 2020) when support for pam_elogind.so was added. After that the pam file uses elogind to add your session when you log in at the terminal. Similarly, if you log in using sshd, the file sshd.new is waiting to be used for supporting pam_elogind.so and so on.
You should usually move all .new files in place unless you have a good reason not to.
Quote:
In addition I cannot find package utmp:
It's not a package but a file (/var/run/utmp) where some programs write records and some programs read them.
Thanks again for the response. Sorry for getting the syntax wrong on ConsoleKit2. There still appears to be no ConsoleKit2 after correcting the case.
Code:
root@robrutrm:/var/run# ls /var/log/packages | grep ConsoleKit2
You have new mail in /var/mail/root
root@robrutrm:/var/run#
root@robrutrm:/etc/rc.d# slackpkg info ConsoleKit2
No packages found! Try:
slackpkg search ConsoleKit2
and choose one (and ONLY one package).
root@robrutrm:/etc/rc.d#
root@robrutrm:/var/run# slackpkg search ConsoleKit2
Looking for ConsoleKit2 in package list. Please wait... DONE
No package name matches the pattern.
root@robrutrm:/# whereis ConsoleKit2
ConsoleKit2:
root@robrutrm:/# find ConsoleKit2
find: 'ConsoleKit2': No such file or directory
root@robrutrm:/#
so that answers that.
I then made the changes suggested to
Quote:
move all those .new files in place, including login.new which solves the problem
I tried to stop/start rc.sshd, but sshd wouldn't start again, some error of no hostkeys. I rebooted and now ssh is working, but I still don't get anything from the commands suggested.
I also listed the version of loginctl, I am assuming that is the lastest, greatest version?
There has been some hustle with elogind versions in the -current ChangeLog.txt these days, but your version should work. The version of today is elogind-255.4_r2-x86_64-2.
A couple of things you could check.
The eudev package replaced udev (Nov 20, 2015). So, you should not have the old udev but only this:
Code:
$ ls /var/log/packages | grep udev
eudev-3.2.14-x86_64-1
libgudev-238-x86_64-1
You may want to check .new files in /etc/rc.d, too. If you use slackpkg, 'slackpkg new-config' helps doing that. If you don't use slackpkg, the UPGRADE.TXT file gives this advice:
Code:
5. Fix your config files. Some of the config files in /etc are going to
need your attention. You'll find the new incoming config files on
your system with the ".new" extension. You may need to fill these in
with information from your old config files and then move them over.
Feel brave? You can use this little script to install most of the
.new config files in /etc. If you've made any local changes you'll
need to add them to the newly installed files. Your old config files
will be copied to *.bak. Anyway, it might be an easier starting
point. Here it is:
#!/bin/sh
cd /etc
find . -name "*.new" | while read configfile ; do
if [ ! "$configfile" = "./rc.d/rc.inet1.conf.new" \
-a ! "$configfile" = "./rc.d/rc.local.new" \
-a ! "$configfile" = "./group.new" \
-a ! "$configfile" = "./passwd.new" \
-a ! "$configfile" = "./shadow.new" ]; then
cp -a $(echo $configfile | rev | cut -f 2- -d . | rev) \
$(echo $configfile | rev | cut -f 2- -d . | rev).bak 2> /dev/null
mv --verbose $configfile $(echo $configfile | rev | cut -f 2- -d . | rev)
fi
done
You might also wish to move this config file over:
/usr/share/vim/vimrc.new
I do use slackpkg and I do the updates from -current once a week pretty much religiously. I know I get a message after updates that there are .new config files asking what I want to do with them and I always select keep. I didn't realize that normally I need to address each of them every week. I am currently out of town until next week so given the number of .new files in /etc/rc.d I think I'll wait until I get home to address those. It may take some time, but am I too assume that every week I do updates I need to address all the new files? This seems like a dumb question, but I've never had much guidance in this direction.
so I do have the old udev package. Would I just delete or rename it?
Code:
slackpkg remove udev
You probably have some other obsolete packages. To see a list without removing them yet, try:
Code:
slackpkg -batch=on -default_answer=n clean-system
All third party packages you have installed and want to keep are also listed there.
Quote:
I do use slackpkg and I do the updates from -current once a week pretty much religiously. I know I get a message after updates that there are .new config files asking what I want to do with them and I always select keep. I didn't realize that normally I need to address each of them every week. I am currently out of town until next week so given the number of .new files in /etc/rc.d I think I'll wait until I get home to address those. It may take some time, but am I too assume that every week I do updates I need to address all the new files? This seems like a dumb question, but I've never had much guidance in this direction.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.