Headaches Using Slackware-11.0's ALSA Loopback Device (kernel 2.4.33.3)
by username_11011 from LinuxQuestions.org on (#6FEBZ)
I'm not sure if people here would be willing to help me with this crazy Frankenstein problem I've created or not. I'm attempting to pipe sound output from a Qemu system running Slackware-11.0 (yep-- *that* Slackware-11.0). And, I try to load the included ALSA loopback device from Slackware-11.0's alsa-driver package (modprobe snd-aloop). And, I get *this* crazy crap:
Warning: /lib/modules/2.4.33.3/kernel/sound/drivers/snd-aloop.o.gz symbol for parameter pcm_devs not found
Module snd-aloop loaded, with warnings
And, I check aplay -l. And, it shows the expected devices:
**** List of PLAYBACK Hardware Devices ****
card 0: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 0: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
And so, that's cool. So, I try piping the listening device (the playing device "hw:0,0,0" will be the system default and the listening device that repeats its output will be "hw:0,1,0" for those not familiar with ALSA loopback devices) to a port (port 9598 is forwarded to host port 10622 via Qemu Slirp, if that's relevant):
arecord -D "hw:0,1,0" -f S16_LE -c 2 -t raw -r 44100 | nc -l -p 9598
And then, I try playing a file using the ol' mpg321:
mpg321 a_statue_of_the_king.mp3
And-- the system completely freezes. I can switch to a new terminal and log in. But if I try to acquire a process ID (ps -fu user | grep mpg321) or simply kill any mpg321 process (killall mp321), then *that* terminal locks up (lol). And so, I'm kind of unsure where I would like to go from here. I've already got a similar setup working perfectly fine using Slackware-12.0 on top of Qemu. Since Slackware-12.0 comes with a 2.6 kernel, it has no alsa-driver package. And (coincidentally), it has no pre-built ALSA loopback module (either Volkerding accidentally did not build one or the kernel simply did not have the feature, yet). So, I compiled alsa-driver-1.0.14 (and prompted configure to build the loopback device driver: "--with-cards=loopback"). And, I can modprobe snd-aloop. And, everything works perfectly fine.
So, I've tried rebuilding Slackware-11.0's alsa-driver package (using its included source and SlackBuild). And, I added the same configure option to the SlackBuild (why not, right?) And, everything just builds. But I mean, I get the same message when I modprobe snd-aloop. And, the only really strange thing I see is a configure message "*** NO PREDEFINED KERNEL COMPILER IS DETECTED ***" when I configure the package build system. This is like-- the only piece of viable information I have to go on. And (honestly), I don't see why this would cause a problem (it seems to me that the configure script is simply trying to verify that the kernel wasn't compiled with GCC version 2 and-- that's the only purpose for this test). And, I can't seem to find any other posts where people experienced this problem compiling ALSA packages and actually got the configure message to go away (or that this helped).
I also built (successfully) Slackware-12.0's ALSA packages for Slackware-11.0. And then, I built alsa-driver-1.0.14. And, I get the same pcm_devs warning when I modprobe *its* snd-aloop device as well. So, I really don't know what to do from here. I'm not sure what level of interest other Linux Questions users have in repairing Slackware-11.0. But, I would appreciate any insights people are willing to share with me regarding its ALSA loopback module. Um, I would *really* like to understand the "symbol for parameter pcm_devs not found" message itself (so-- maybe there's a pcm_devs feature missing from the kernel and it needs to be rebuilt with this feature enabled??)
Warning: /lib/modules/2.4.33.3/kernel/sound/drivers/snd-aloop.o.gz symbol for parameter pcm_devs not found
Module snd-aloop loaded, with warnings
And, I check aplay -l. And, it shows the expected devices:
**** List of PLAYBACK Hardware Devices ****
card 0: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 0: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
And so, that's cool. So, I try piping the listening device (the playing device "hw:0,0,0" will be the system default and the listening device that repeats its output will be "hw:0,1,0" for those not familiar with ALSA loopback devices) to a port (port 9598 is forwarded to host port 10622 via Qemu Slirp, if that's relevant):
arecord -D "hw:0,1,0" -f S16_LE -c 2 -t raw -r 44100 | nc -l -p 9598
And then, I try playing a file using the ol' mpg321:
mpg321 a_statue_of_the_king.mp3
And-- the system completely freezes. I can switch to a new terminal and log in. But if I try to acquire a process ID (ps -fu user | grep mpg321) or simply kill any mpg321 process (killall mp321), then *that* terminal locks up (lol). And so, I'm kind of unsure where I would like to go from here. I've already got a similar setup working perfectly fine using Slackware-12.0 on top of Qemu. Since Slackware-12.0 comes with a 2.6 kernel, it has no alsa-driver package. And (coincidentally), it has no pre-built ALSA loopback module (either Volkerding accidentally did not build one or the kernel simply did not have the feature, yet). So, I compiled alsa-driver-1.0.14 (and prompted configure to build the loopback device driver: "--with-cards=loopback"). And, I can modprobe snd-aloop. And, everything works perfectly fine.
So, I've tried rebuilding Slackware-11.0's alsa-driver package (using its included source and SlackBuild). And, I added the same configure option to the SlackBuild (why not, right?) And, everything just builds. But I mean, I get the same message when I modprobe snd-aloop. And, the only really strange thing I see is a configure message "*** NO PREDEFINED KERNEL COMPILER IS DETECTED ***" when I configure the package build system. This is like-- the only piece of viable information I have to go on. And (honestly), I don't see why this would cause a problem (it seems to me that the configure script is simply trying to verify that the kernel wasn't compiled with GCC version 2 and-- that's the only purpose for this test). And, I can't seem to find any other posts where people experienced this problem compiling ALSA packages and actually got the configure message to go away (or that this helped).
I also built (successfully) Slackware-12.0's ALSA packages for Slackware-11.0. And then, I built alsa-driver-1.0.14. And, I get the same pcm_devs warning when I modprobe *its* snd-aloop device as well. So, I really don't know what to do from here. I'm not sure what level of interest other Linux Questions users have in repairing Slackware-11.0. But, I would appreciate any insights people are willing to share with me regarding its ALSA loopback module. Um, I would *really* like to understand the "symbol for parameter pcm_devs not found" message itself (so-- maybe there's a pcm_devs feature missing from the kernel and it needs to be rebuilt with this feature enabled??)