I've been trying on and off for days to build the module for my USB wireless device.
It is an Edimax EW-7811UN
I've found several resources on building modules for Debian, but none for Arch. Currently I am attempting to cross-compile using the ToolChain found on the Raspberry Pi GitHub. These are the steps I've taken:
- Downloaded the driver sources from the Edimax website.
- Downloaded the kernel sources from GitHub.
- Created a specific make rule (as per the Edimax documentation) in the Edimax MakeFile:
ifeq ($(CONFIG_PLATFORM_PI), y) EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN ARCH := arm CROSS_COMPILE := arm-bcm2708-linux-gnueabi- KVER := 3.1.9-30-ARCH+ KSRC := /pi-sources/lib/modules/3.1.9-30-ARCH+/build MODDESTDIR := /pi-sources/lib/modules/3.1.9-30-ARCH+/kernel/drivers/net/wireless/ INSTALL_PREFIX := endif
KSRCis the directory containing the kernel sources.
MODDESTDIRis the directory you wish the module to end up.
CROSS_COMPILEis my toolchain (which has been added to
First attempt at
make gives this error:
fatal error: linux/smp_lock.h: No such file or directory
I found that this is an outdated header, and symlinking it to
smp.h should fix the issue.
However, the build still fails with source errors, that look like this:
error: field 'recv_tasklet' has incomplete type
I've done enough compiling to know this looks as if the build doesn't support the latest kernel version, but if this is so then how has it been built for Debian?
- The full output here.