I found out that udev is now required to correctly setup /dev for all
devices, including sound cards. Apparently it doesn't startup correctly
on boot, so I've added udevstart to my logon script and all devices are
now correctly setup. ALSA now works.
Rod
On Wed, 2008-03-05 at 15:48 +1100, Rod Butcher wrote:
> greetings from sunny Northmead. Apologies if this is a duplicate, but I
> didn't receive a copy of my first sending.
> 
> I've cruised along with a 2.6.18 kernel that I compiled myself, for a
> while now, on a Gigabtye board with NVidia NForce 430 southbridge, AMD
> Athlon X2 cpu. For various reasons I've had to upgrade to the 2.6.24.3
> kernel, so I compiled it with Mandrake's 4.02 gcc compiler. No problems,
> up and running with X OK. But no ALSA sound now.
> 
> Research indicates the builtin sound chip is MCP51 High Definition
> Audio, ALC880 codec, requiring snd-hda-intel driver. That is included as
> a module, and I also included the codec in the kernel build. I can load
> snd-hda-intel OK, it shows up in lsmod along with soundcore, snd, etc :-
> bash-3.00# lsmod
> Module                  Size  Used by
> snd_hda_intel         321700  0
> sg                     35352  0
> snd_hwdep               8584  1 snd_hda_intel
> snd_seq_dummy           3524  0
> snd_seq_midi_event      7616  0
> snd_seq                55392  2 snd_seq_dummy,snd_seq_midi_event
> snd_seq_device          7508  2 snd_seq_dummy,snd_seq
> snd_pcm                80776  1 snd_hda_intel
> snd_timer              21640  2 snd_seq,snd_pcm
> snd_page_alloc          8848  2 snd_hda_intel,snd_pcm
> snd                    57128  7
> snd_hda_intel,snd_hwdep,snd_seq,snd_seq_device,snd_pcm,snd_timer
> soundcore               7328  1 snd
> 
> But ALSA can't detect the sound card. All apps return error messages
> saying device not found. E.g. :
> bash-3.00#aplay --list-devices
> aplay: device_list:207: no soundcards found...
> 
> bash-3.00# alsamixer
> alsamixer: function snd_ctl_open failed for default: No such file or
> directory
> 
> Yet the device shows up in /proc :-
> bash-3.00# cat /proc/asound/cards
> 0 [NVidia         ]: HDA-Intel - HDA NVidia
>                       HDA NVidia at 0xf5100000 irq 22
> 
> So my question is : where does ALSA look for the sound card ? What is it
> expecting to find that is wrong or missing ? I have found doco that
> takes for granted that if it shows up in ?proc/Asound/cards then ALSA
> will find it, no explanations of what it means if it can't.
> I've tried gdb with aplayer and get this, which is followed by the error
> message :-
> Breakpoint 3, snd_card_load1 (card=0) at cards.c:47
> 47              sprintf(control, SND_FILE_CONTROL, card);
> (gdb) n
> 49              open_dev = snd_open_device(control, O_RDONLY);
> (gdb) n
> 51              if (open_dev < 0) {
> (gdb) n
> 53                      sprintf(aload, SND_FILE_LOAD, card);
> (gdb) print control
> $7 = "/dev/snd/controlC0", '\0' <repeats 11 times>
> 
> I have no /dev/snd  ... is this the problem ? I've tried setting it up
> with makedev, but that just returns
> bash-3.00# cat /dev/snd/controlC0
> cat: /dev/snd/controlC0: No such device
> 
> even though it appears as a file.
> 
> So - why no /dev/snd, do I really need it for ALSA, and why was it
> automagically there for my old kernel ? Any doco around on this that
> goes into nuts and bolts ? Further reading seems to indicate that udev
> now seys up /dev system, so does this mean my udev is broken ? It worked
> OK for my 2.6.18 kernel - apart from my USB printer, for which I had to
> use mknod to setup /dev/lp0. I tried mknod to create /dev/snd, but no
> luck.
> thanks
> Rod
> 
> 
> 
> 
> 
> 

-- 
SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/
Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html

Reply via email to