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