Click to See Complete Forum and Search --> : Get ALSA workingunder the WOLK kernel
The Wolk kernel is a high performance low-latency kernel which has many patches that are backported from the 2.5.x kernel, including PDE in the sound module.
The ALSA driver tries to redefine this function and errors out during the compile.
to work around this, make the following change to the code in the include/adriver.h file on around line 108.
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 4)
#include <linux/fs.h>
static inline struct proc_dir_entry *PDE(const struct inode *inode)
{
return (struct proc_dir_entry *) inode->u.generic_ip;
}
#endif
replace the first #if line with
#if 0
bwkaz
06-03-2003, 06:50 PM
You might be able to replace it with:
#ifndef PDE -- but I'm not sure whether this will work or not. I think so, but I've never tried it...
The Alsa drivers are doing what the "autotools book" specifically recommends not doing -- they aren't checking for a specific feature, they're just checking the version of the OS (or in their case, the kernel). The autotools book recommends never checking for a specific OS or a specific version, because these kinds of checks always break on someone else's system. :)
In this case, the PDE function is the "feature" that they're testing for, and the test breaks because the PDE function is defined on this specific kernel, but this specific kernel is below 2.5.4 (the version check).
Anyway, I think that my #ifndef will check for the feature required -- I'm just not positive whether it'll compile or not (I'm not sure whether you can use #ifdef or #ifndef on function names). :p
Hayl, if you wouldn't mind, could you try it, just to compile Alsa? (you wouldn't have to reinstall it or anything, just recompile) Thanks. :)
yes.
ill print this out and try later on.
Originally posted by bwkaz
Hayl, if you wouldn't mind, could you try it, just to compile Alsa?
yes - it works.
you should submit a bugfix to the ALSA team.
i'm going to submit one to the Gentoo people.
bwkaz
06-05-2003, 06:22 PM
Cool, thanks. :)
Originally posted by bwkaz
Cool, thanks. :)
i tried this again and it failed. not sure why but it wasn't on my box. i ssh'd to a guys laptop the other day to fix a problem he was having with his sound card and we ended up instlaling the wolk kernel (sony vaio - total nightmare - don't even ask) to get his acpi to work properly and he wanted alsa so i had to hack the code but i ended up with using #if 0 instead of #ifndef PDE. was quite strange.
it was with a different card though. intelx08
mine was with emu10k1
bwkaz
06-05-2003, 10:56 PM
BTW -- Which Alsa version were these? The developers wouldn't care if it was Alsa 0.5, since that's so old, and 0.9 has been put into the kernel itself as of some 2.5 version. So maybe it doesn't even matter?
Do you have the error (or errors) from the failed run? Did it just misdetect the function?
The card shouldn't matter, but the kernel sources DEFINITELY do, so if there were any differences there, that would be useful to know.
0.9.2
same kernel source as on my system
it gave the error about the function being already defined (don't remember it exactly).
you are right tho - that it won't matter as soon as 2.6 comes out :)
bwkaz
06-06-2003, 06:15 PM
Hmm... rats. I'm not really sure why it wouldn't work on that machine then... but whatever. But it doesn't really matter, in the end. :)
hyp_spec
07-24-2003, 07:43 AM
o.O i guess searching does help :-P Anyway, the #ifndef one doesn't work for me but the #if 0 does :-D. WOLK 4.3 slack9
mdwatts
07-24-2003, 09:17 AM
Originally posted by hyp_spec
o.O i guess searching does help
That is why we always recommend searching the forums and G4L first as you never know if the same problem has been asked and answered already. :)