Ich habe tagelang versucht, das Modul für mein drahtloses USB-Gerät zu bauen.
Es ist ein Edimax EW-7811UN
Ich habe mehrere Ressourcen zum Erstellen von Modulen für Debian gefunden, aber keine für Arch. Gegenwärtig versuche ich mit dem ToolChain des Raspberry Pi GitHub zu kompilieren . Dies sind die Schritte, die ich unternommen habe:
- Die Treiberquellen wurden von der Edimax-Website heruntergeladen .
- Kernelquellen von GitHub heruntergeladen .
- Im Edimax MakeFile wurde eine bestimmte Make-Regel (gemäß der Edimax-Dokumentation) erstellt:
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
ist das Verzeichnis, das die Kernelquellen enthält.MODDESTDIR
ist das Verzeichnis, in das das Modul gelangen soll.CROSS_COMPILE
ist meine Toolchain (die hinzugefügt wurdePATH
)
Erster Versuch make
gibt diesen Fehler:
fatal error: linux/smp_lock.h: No such file or directory
Ich fand, dass dies ein veralteter Header ist, und das Verknüpfen mit diesem smp.h
sollte das Problem beheben. Der Build schlägt jedoch immer noch mit folgenden Quellfehlern fehl:
error: field 'recv_tasklet' has incomplete type
Ich habe genug kompiliert, um zu wissen, dass dies so aussieht, als ob der Build die neueste Kernel-Version nicht unterstützt, aber wenn dies so ist, wie wurde es dann für Debian erstellt?
Zusatzinformation:
- Die volle Leistung hier .