compiling wifi driver help


freedomdown

Still Fresh
Joined
Feb 5, 2011
Messages
15
I am trying to compile drivers for a mini usb wifi N stick, but I've run into a deadend.


I finally got make and gcc installed and thought I could just run "make", then "make install" but it says


/lib/modules/2.6.27.46-omap1/build is missing


I'm pretty sure it's looking for the kernel source, And it looks like I can redirect it in the makefile to look somewhere else .


So I'm wondering if I should redirect it to look somewhere else on the NAND or do I have to download the kernel source and put it there? I've poked around the kernel git but i'm not sure what folder in the git it's needs to point to(I was hoping there would bea build directory in the git). So should I clone the whole git into /lib/modules/2.6.27.46-omap1/build or just part of it?


How hard is it to cross-compile drivers?


Any help would be great.
 
Here are the errors I'm getting now.


make[1]: arm-linux-gcc: Command not found


make[1]: Entering directory `/media/DEV/pandora-kernel'


Makefile:1610: *** mixed implicit and normal rules. Stop.


make[1]: Leaving directory `/media/DEV/pandora-kernel'


make: *** [all] Error 2


I can't find any reference to arm-linux-gcc in the makefiles, and the other error I have no idea how to fix


EDIT:


I found this by Googling:


"The previous behavior of mixing implicit and pattern rules in one line


like that was never supported or documented, but due to a "hole" in the


parser it worked for certain specific cases (for example, reversing that


line so the pattern comes first would not work, nor would adding extra


explicit targets after the pattern target)."


I'll have to read up on makefiles to find out how to fix this.
 
Last edited by a moderator:
The symbolic links fixed the arm-linux-gcc issue.


I figured out the other issue was a problem with the kernel's makefiles, the new version of make is pickier about how rules are written, so I fixed that and it seems to be fine.


But now I get a gcc error for the driver


gcc: -msoft-float and -mhard_float may not be used together


Also I get an error saying the kernel configuration is invalid and that I should run 'make oldconfig && make prepare' to fix it. 'make oldconfig' gives a ton of errors in various Kconfig files including warnings about multi-line strings not being supported.


And now I'm at a loss, I'm not sure what to do.
 
the multilines being not support is because you extracted the sources on a windows machine (end line are /r/n instead of /n), google covert msdos to unix files and you should find plenty of ways to do that.


chance are your other issues are with that as well, but who knows. i know for sure i didnt need to change my makefile and i use make 3.82
 
Yup that fixed the multiline errors but I get other errors now:


error: 'struct net_device' has no member named 'wireless_handlers'


error: implicit declaration of function 'vfree'


error: implicit declaration of function 'vmalloc'


there's also a warning about symbol version dump is missing which I think means I have to build the kernel.


I was hoping I could avoid that but oh well.


EDIT:


So I built the kernel which got rid of the warning but I'm still getting those same errors...
 
Last edited by a moderator:
Ok so now I've got a new error:


error: 'struct net_device' has no member named 'wireless_handlers'


which from reading online sounds like wireless extensions aren't being compiled into the kernel or that the driver is using older stuff that has been removed from the kernel.


I've tried several different versions of the driver and they all have that error...


If anyone has any ideas, i'd appreciate it.
 
ill have a go at compiling the RTL8192U in the next day or so, see if i can reproduce your error/find a solution to it.


There is no reasons why a 2008 driver wouldnt compile on our kernel, other maybe that its too old and would need some patches, but even then, shouldnt be too hard to get working.
 
Back
Top