Estou há dias tentando e montando o módulo para o meu dispositivo sem fio USB.
É um Edimax EW-7811UN
Eu encontrei vários recursos na construção de módulos para o Debian, mas nenhum para o Arch. Atualmente, estou tentando fazer uma compilação cruzada usando o ToolChain encontrado no Raspberry Pi GitHub . Estas são as etapas que eu tomei:
- Baixou as fontes de driver no site da Edimax .
- Baixou as fontes do kernel do GitHub .
- Criou uma regra de make específica (conforme a documentação do Edimax) no MakeFile do 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
é o diretório que contém as fontes do kernel.MODDESTDIR
é o diretório que você deseja que o módulo termine.CROSS_COMPILE
é minha cadeia de ferramentas (que foi adicionada aPATH
)
A primeira tentativa de make
fornecer esse erro:
fatal error: linux/smp_lock.h: No such file or directory
Descobri que este é um cabeçalho desatualizado e o link simbólico para ele smp.h
deve corrigir o problema. No entanto, a construção ainda falha com erros de origem, que se parecem com isso:
error: field 'recv_tasklet' has incomplete type
Eu fiz a compilação suficiente para saber que isso parece que a compilação não suporta a versão mais recente do kernel, mas se é assim, então como foi criada para o Debian?
Informação extra:
- A saída completa aqui .