Ho provato e spento per giorni per costruire il modulo per il mio dispositivo wireless USB.
È un Edimax EW-7811UN
Ho trovato diverse risorse sulla costruzione di moduli per Debian, ma nessuna per Arch. Attualmente sto tentando di eseguire la compilazione incrociata utilizzando ToolChain disponibile su Raspberry Pi GitHub . Questi sono i passi che ho preso:
- Scaricate le fonti dei driver dal sito Web Edimax .
- Scaricato i sorgenti del kernel da GitHub .
- Creata una specifica regola make (come da documentazione Edimax) nel MakeFile Edimax:
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
è la directory che contiene i sorgenti del kernel.MODDESTDIR
è la directory in cui si desidera che il modulo finisca.CROSS_COMPILE
è la mia toolchain (che è stata aggiunta aPATH
)
Il primo tentativo di make
dà questo errore:
fatal error: linux/smp_lock.h: No such file or directory
Ho scoperto che si tratta di un'intestazione obsoleta e il collegamento simbolico a smp.h
dovrebbe risolvere il problema. Tuttavia, la generazione non riesce ancora con errori di origine, che assomigliano a questo:
error: field 'recv_tasklet' has incomplete type
Ho fatto abbastanza compilazioni per sapere che sembra che la build non supporti l'ultima versione del kernel, ma se è così allora come è stata costruita per Debian?
Ulteriori informazioni:
- L'output completo qui .