He estado intentando encender y apagar durante días para construir el módulo para mi dispositivo inalámbrico USB.
Es un Edimax EW-7811UN
He encontrado varios recursos en la construcción de módulos para Debian, pero ninguno para Arch. Actualmente estoy intentando realizar una compilación cruzada utilizando ToolChain que se encuentra en Raspberry Pi GitHub . Estos son los pasos que he tomado:
- Descargado las fuentes del controlador del sitio web de Edimax .
- Descargado las fuentes del núcleo de GitHub .
- Creó una regla de creación específica (según la documentación de Edimax) en el MakeFile de 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
es el directorio que contiene las fuentes del núcleo.MODDESTDIR
es el directorio donde desea que termine el módulo.CROSS_COMPILE
es mi cadena de herramientas (que se ha agregado aPATH
)
El primer intento de make
da este error:
fatal error: linux/smp_lock.h: No such file or directory
Encontré que este es un encabezado desactualizado, y simularlo smp.h
debería solucionar el problema. Sin embargo, la compilación todavía falla con errores de origen, que se ven así:
error: field 'recv_tasklet' has incomplete type
He compilado lo suficiente como para saber que esto parece que la compilación no es compatible con la última versión del kernel, pero si es así, ¿cómo se ha creado para Debian?
Información extra:
- La salida completa aquí .