schedule_work is a new function for Linux that isn't available in all distributions yet. Alsa uses schedule_work but checks for its presence to see whether or not to actually use it.
If your kernel files contain the file include/linux/workqueue.h, then alas-driver's ./configure will use that file when compiling alsa, expecting that schedule_work is available on the system. If it doesn't find that file, it will use (or create) an include/linux/workqueue.h file in the alsa-driver's source directories. Then schedule_work will be defined in adriver.h if your kernel level is less than 2.5.45. In my distribution of RedHat 9 which is kernel level 2.4.20-18, the kernel files contain include/linux/workqueue.h but the function schedule_work isn't in the kernel. It turns out alsa compiles but snd.o won't load properly because of the undefined symbol schedule_work. The workaround I used has been mentioned in other posts. Namely, AFTER you run ./configure for alsa-driver, create an empty workqueue.h file, and then do the make and make install. Here is a sample set of commands. Note that I redirect the output to a file so I can check for errors. [alsa-driver-N]$ ./configure [alsa-driver-N]$ touch include/linux/workqueue.h [alsa-driver-N]$ make > make.log [alsa-driver-N]$ make install > makeinstall.log If you have the schedule_work problem on your system, the makeinstall.log file will contain a message about unresolved symbols in .../snd.o. If so, you can do "make clean", do the touch, and then do the make and make install again. After more time and frustration than I want to admit, I finally got alsa-0.9.4 working on Red Hat 9 with an Asus A7V8X-X motherboard. At least it works with MythTV and "aplay -D hw:0,1 fn.wav" which is all I'm interested in. I kept playing with alsamixer, modules.conf, and lots of other suggestions with no success. The last thing I did was use alsaconf (you will find it in the alsa-driver directory). After this both aplay and MythTV (using /dev/adsp as my audio output device) played sound. (I haven't listened to it enough yet to comment on the quality but initial sounds over cheap speakers seemed fine.) My other suggestion is that you follow Alsa's installation instructions TO THE LETTER. Deviate at your own risk. (Yes, I'm guilty.) Hope these suggestions save others lots of time. Vince BTW: Instead of just creating an empty include/linux/workqueue.h file, I put into the file the line '#pragma message("using my workqueue.h")' (without the single quotes and with a new line at the end of the line). gcc doesn't like this line and gives lots of warning messages about it, but I know the compiler was using my file instead of the kernel's file and it didn't stop the compilations. ------------------------------------------------------- This SF.Net email is sponsored by: INetU Attention Web Developers & Consultants: Become An INetU Hosting Partner. Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission! INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php _______________________________________________ Alsa-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-user