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
KSRC
is the directory containing the kernel sources.MODDESTDIR
is the directory you wish the module to end up.CROSS_COMPILE
is my toolchain (which has been added toPATH
)
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?
Extra information:
- The full output here.