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
KSRCes el directorio que contiene las fuentes del núcleo.MODDESTDIRes el directorio donde desea que termine el módulo.CROSS_COMPILEes mi cadena de herramientas (que se ha agregado aPATH)
El primer intento de makeda este error:
fatal error: linux/smp_lock.h: No such file or directory
Encontré que este es un encabezado desactualizado, y simularlo smp.hdeberí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í .

Respuestas:
Instrucciones para la compilación cruzada
Descargado las fuentes del controlador del sitio web de Edimax .
Clone las fuentes del núcleo de GitHub .
cden su fuente de kernel ycdeninclude/linux. correrunzipla descarga de Edimax ytar -xzfel paquete del controlador.cden eldriver/rtl...subdirectorio.Editar
include/rtw_xmit.hy agregar#include <linux/interrupt.h>debajo de los otros incluye.Editar
os_dep/osdep_service.cy agregarbajo el otro incluye.
Edite la
Makefilesumabajo secciones similares.
arm-bcm2708-linux-gnueabi-{gcc|ld}está en tu camino, corremake CONFIG_PLATFORM_PI=y modules.El módulo ahora debería estar compilado.
fuente
MODDESTDIRentonces?/lib/modules/3.1.9-30-ARCH+/builddirectorio a las fuentes del núcleo.Intente copiar el config.gz de /proc/config.gz en su RPi. Luego, descomprímalo y cámbiele el nombre a .config y realice como se indicó anteriormente.
fuente