Saya telah mencoba dan menonaktifkan selama berhari-hari untuk membangun modul untuk perangkat nirkabel USB saya.
Ini adalah Edimax EW-7811UN
Saya telah menemukan beberapa sumber tentang membangun modul untuk Debian, tetapi tidak ada untuk Arch. Saat ini saya mencoba mengkompilasi silang menggunakan ToolChain yang ditemukan di Raspberry Pi GitHub . Inilah langkah-langkah yang telah saya ambil:
- Mengunduh sumber driver dari situs web Edimax .
- Mengunduh sumber kernel dari GitHub .
- Membuat aturan make tertentu (sesuai dengan dokumentasi Edimax) di Edimax MakeFile:
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
adalah direktori yang berisi sumber kernel.MODDESTDIR
adalah direktori yang Anda inginkan modul berakhir.CROSS_COMPILE
adalah toolchain saya (yang telah ditambahkan kePATH
)
Upaya pertama make
memberi kesalahan ini:
fatal error: linux/smp_lock.h: No such file or directory
Saya menemukan bahwa ini adalah header yang sudah ketinggalan zaman, dan menghubungkannya untuk smp.h
memperbaiki masalah. Namun, build masih gagal dengan kesalahan sumber, yang terlihat seperti ini:
error: field 'recv_tasklet' has incomplete type
Saya telah melakukan cukup kompilasi untuk mengetahui ini terlihat seolah-olah build tidak mendukung versi kernel terbaru, tetapi jika demikian maka bagaimana ia dibangun untuk Debian?
Informasi tambahan:
- Output penuh di sini .