Hi Clemens,

Contrary to what you expect, /dev/snd/controlC0 *does* get opened
before alsa.conf gets stat'ed or opened. I added a simple alsa.conf
file

[EMAIL PROTECTED]:~# cat /usr/share/alsa/alsa.conf
pcm.card0 {
    type hw
    card 0
}
ctl.card0 {
    type hw
    card 0
}

and here is the strace:

[EMAIL PROTECTED]:~# strace -estat,open,close,read aplay -l
stat("/etc/ld.so.cache", 0x7fd52b28)    = -1 ENOENT (No such file or
directory)
open("/lib/libasound.so.2", O_RDONLY)   = -1 ENOENT (No such file or
directory)
open("/lib/libasound.so.2", O_RDONLY)   = -1 ENOENT (No such file or
directory)
open("/usr/lib/libasound.so.2", O_RDONLY) = 4
read(4, "[EMAIL PROTECTED]"...,
4096) = 4096
close(4)                                = 0
open("/lib/libm.so.0", O_RDONLY)        = 4
read(4,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0P\f\0\000"..., 4096)
= 4096
close(4)                                = 0
open("/lib/libdl.so.0", O_RDONLY)       = 4
read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0P\10\0"...,
4096) = 4096
close(4)                                = 0
open("/lib/libpthread.so.0", O_RDONLY)  = 4
read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\3004\0"...,
4096) = 4096
close(4)                                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 4
read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0000\30"...,
4096) = 4096
close(4)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 4
read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\20\271"...,
4096) = 4096
close(4)                                = 0
open("/dev/snd/controlC0", O_RDONLY)    = 4
close(4)                                = 0
**** List of PLAYBACK Hardware Devices ****
stat("/usr/share/alsa/alsa.conf", {st_mode=S_IFREG|0644, st_size=74,
...}) = 0
open("/usr/share/alsa/alsa.conf", O_RDONLY) = 4
read(4, "pcm.card0 {\n    type hw\n    card"..., 4096) = 74
read(4, "", 4096)                       = 0
close(4)                                = 0
ALSA lib control.c:910:(snd_ctl_open_noupdate) Invalid CTL hw:0
aplay: device_list:231: control open (0): No such file or directory
open("/dev/snd/controlC1", O_RDONLY)    = -1 ENOENT (No such file or
directory)
open("/dev/aloadC1", O_RDONLY)          = -1 ENOENT (No such file or
directory)

I have tried to find my way through the conf.c and related source
code but it is pretty slow going for me. I wonder if anyone has
written an overview of what it is doing. I.e. "Initially we read
the alsa.conf file and build a configuration tree. A configuration
tree is made up of entries like XXX in a structure YYY. If there
is no alsa.conf then a default configuration ZZZ is used." Or
something like that.

Cheers,
  Chuck


Clemens Ladisch wrote:
> 
> Chuck Harrison wrote:
> > It looks to me that /dev/snd/controlC0 was opened successfully but
> > sound_ctl_nopdate disliked something about what it saw.
> >
> > [EMAIL PROTECTED]:~# strace -eopen aplay -l
> > ...
> > open("/dev/snd/controlC0", O_RDONLY)    = 3
> > **** List of PLAYBACK Hardware Devices ****
> > ALSA lib control.c:910:(snd_ctl_open_noupdate) Invalid CTL hw:0
> > aplay: device_list:231: control open (0): No such file or directory
> 
> It shouldn't open /dev/snd/controlC0 before reading alsa.conf.
> Does alsa.conf appear anywhere in the strace output?
> 
> Regards,
> Clemens

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Alsa-user mailing list
Alsa-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/alsa-user

Reply via email to