[alsa-devel] Unable to open plughw:0,0 from user program.
Hi,
I am unable to use plughw:0,0 as a device string while calling err = snd_pcm_open (&alsa_dev, hw_from_default, SND_PCM_STREAM_PLAYBACK, 0);
The same call works with hw_from_default == 'default', but fails when it is 'plughw:0,0'. The error is cannot open audio device "plughw:0,0" (Device or resource busy)
I am using the latest snapshot of alsa-lib, alsa-lib20070821. I tried debugging but I cannot trace through the macros. As near as I can tell there have been no changes to alsa.conf, and this worked just fine before the latest upgrade alsa package alsa-lib.1.0.14-3
Is this a deliberate change in alsa that is known about, and is there a way to still get the functionality?
Thanks.
stan wrote:
Hi,
I am unable to use plughw:0,0 as a device string while calling err = snd_pcm_open (&alsa_dev, hw_from_default, SND_PCM_STREAM_PLAYBACK, 0);
The same call works with hw_from_default == 'default', but fails when it is 'plughw:0,0'. The error is cannot open audio device "plughw:0,0" (Device or resource busy)
I am using the latest snapshot of alsa-lib, alsa-lib20070821. I tried debugging but I cannot trace through the macros. As near as I can tell there have been no changes to alsa.conf, and this worked just fine before the latest upgrade alsa package alsa-lib.1.0.14-3
Is this a deliberate change in alsa that is known about, and is there a way to still get the functionality?
Thanks.
Forgot to mention that this is on Fedora Rawhide with a 2.6.23 kernel. Want to see if it is normal in the latest versions of alsa before I pursue it through bugzilla with Fedora.
At Thu, 23 Aug 2007 11:44:56 -0700, stan wrote:
Hi,
I am unable to use plughw:0,0 as a device string while calling err = snd_pcm_open (&alsa_dev, hw_from_default, SND_PCM_STREAM_PLAYBACK, 0);
The same call works with hw_from_default == 'default', but fails when it is 'plughw:0,0'. The error is cannot open audio device "plughw:0,0" (Device or resource busy)
Maybe the devce is really in use? Try "fuser /dev/snd/*"
I am using the latest snapshot of alsa-lib, alsa-lib20070821. I tried debugging but I cannot trace through the macros. As near as I can tell there have been no changes to alsa.conf, and this worked just fine before the latest upgrade alsa package alsa-lib.1.0.14-3
Is this a deliberate change in alsa that is known about, and is there a way to still get the functionality?
The old library binary might still remain. Some distros install libasound in /lib (or /lib64), instead of /usr/lib (or /usr/lib64).
Takashi
Takashi Iwai wrote:
At Thu, 23 Aug 2007 11:44:56 -0700, stan wrote:
Hi,
I am unable to use plughw:0,0 as a device string while calling err = snd_pcm_open (&alsa_dev, hw_from_default, SND_PCM_STREAM_PLAYBACK, 0);
The same call works with hw_from_default == 'default', but fails when it is 'plughw:0,0'. The error is cannot open audio device "plughw:0,0" (Device or resource busy)
Maybe the devce is really in use? Try "fuser /dev/snd/*"
I don't think so. Here is the output of fuser /dev/snd/* /dev/snd/pcmC0D0p: 3069m /dev/snd/timer: 3069
And I open default just before this in order to get its info so I can build the plughw. Default device number (0) Default subdevice number (0) Default stream number (0) Default card number (-1) Default id (dmix:0,FORMAT=S32_LE) Default name (dmix:0,FORMAT=S32_LE) Default subname (dmix:0,FORMAT=S32_LE) Default dev_class (0) Default dev_subclass (0) Default subdevices_count (1) Default subdevices_avail (0) Plughw plughw:0,0 numchars 10 cannot open audio device "plughw:0,0" (Device or resource busy)
I am using the latest snapshot of alsa-lib, alsa-lib20070821. I tried debugging but I cannot trace through the macros. As near as I can tell there have been no changes to alsa.conf, and this worked just fine before the latest upgrade alsa package alsa-lib.1.0.14-3
Is this a deliberate change in alsa that is known about, and is there a way to still get the functionality?
The old library binary might still remain. Some distros install libasound in /lib (or /lib64), instead of /usr/lib (or /usr/lib64).
I'm changing the links to point to the new library, and adding an alsa file in /etc/ld.so.conf.d/ so that the cache points to my library. When I run ldd on the binary it points to the library I've compiled. ldd discord linux-gate.so.1 => (0x00110000) libm.so.6 => /lib/libm.so.6 (0x00939000) libpthread.so.0 => /lib/libpthread.so.0 (0x0096b000) * libasound.so.2 => /usr/local/lib/alsa/libasound.so.2 (0x00111000)* libncurses.so.5 => /lib/libncurses.so.5 (0x06707000) libsndfile.so.1 => /usr/lib/libsndfile.so.1 (0x001f7000) libsamplerate.so.0 => /usr/lib/libsamplerate.so.0 (0x00257000) libc.so.6 => /lib/libc.so.6 (0x007e2000) /lib/ld-linux.so.2 (0x007c3000) libdl.so.2 => /lib/libdl.so.2 (0x00964000) libtinfo.so.5 => /lib/libtinfo.so.5 (0x066ed000)
Takashi
I can see it call snd_config_search_alias_hooks () in conf.c, but lose the debug in the macros, and it comes back from the macros with the negative error code.
Thanks for your help.
On 8/23/07, stan stanl@cox.net wrote:
I don't think so. Here is the output of fuser /dev/snd/* /dev/snd/pcmC0D0p: 3069m /dev/snd/timer: 3069
Looks like it's in use by process 3069? What is that?
Lee
Lee Revell wrote:
On 8/23/07, stan stanl@cox.net wrote:
I don't think so. Here is the output of fuser /dev/snd/* /dev/snd/pcmC0D0p: 3069m /dev/snd/timer: 3069
Looks like it's in use by process 3069? What is that?
Lee _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
That is esd, Esound daemon.
NAME esd - The Enlightened Sound Daemon
DESCRIPTION Starts up EsounD, which provides a sound mixing server.
USAGE esd [options]
-d DEVICE force esd to use sound device DEVICE -b run server in 8 bit sound mode -r RATE run server at sample rate of RATE -as SECS free audio device after SECS of inactivity (-1 to disable) -unix use unix domain sockets instead of tcp/ip -tcp use tcp/ip sockets instead of unix domain -public make tcp/ip access public (other than localhost) -promiscuous start unlocked and owned (disable authenticaton) NOT RECOMMENDED -terminate terminate esd daemon after last client exits -noterminate do not terminate esd daemon after last client exits -nobeeps disable startup beeps -beeps enable startup beeps -trust start esd even if use of /tmp/.esd can be insecure -port PORT listen for connections at PORT (only for tcp/ip) -bind ADDRESS binds to ADDRESS (only for tcp/ip)
-v --version print version information
Possible devices are: /dev/dsp, /dev/dsp2, etc.
FILES /etc/esd.conf daemon configuration file
And it must be my problem. It must have been started by default because I didn't start it. I'll see if I can configure it to share the sound card or disable it.
Thank you very much.
On 8/23/07, stan stanl@cox.net wrote:
And it must be my problem. It must have been started by default because I didn't start it. I'll see if I can configure it to share the sound card or disable it.
I would disable it, as you have seen, sound server is not necessary to share the soundcard anymore - alsa-lib/dmix handles it.
Lee
Lee Revell wrote:
On 8/23/07, stan stanl@cox.net wrote:
And it must be my problem. It must have been started by default because I didn't start it. I'll see if I can configure it to share the sound card or disable it.
I would disable it, as you have seen, sound server is not necessary to share the soundcard anymore - alsa-lib/dmix handles it.
Lee _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
That makes sense, I'll get rid of it.
participants (3)
-
Lee Revell
-
stan
-
Takashi Iwai