Tôi đã cố gắng bật và tắt trong nhiều ngày để xây dựng mô-đun cho thiết bị không dây USB của mình.
Nó là một Edimax EW-7811UN
Tôi đã tìm thấy một số tài nguyên về xây dựng mô-đun cho Debian, nhưng không có tài nguyên nào cho Arch. Hiện tại tôi đang cố gắng biên dịch chéo bằng ToolChain được tìm thấy trên Raspberry Pi GitHub . Đây là các bước tôi đã thực hiện:
- Tải xuống các nguồn trình điều khiển từ trang web Edimax .
- Đã tải xuống các nguồn kernel từ GitHub .
- Đã tạo quy tắc tạo cụ thể (theo tài liệu Edimax) trong 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
là thư mục chứa các nguồn kernel.MODDESTDIR
là thư mục bạn muốn mô-đun kết thúc.CROSS_COMPILE
là chuỗi công cụ của tôi (đã được thêm vàoPATH
)
Lần thử đầu tiên make
đưa ra lỗi này:
fatal error: linux/smp_lock.h: No such file or directory
Tôi thấy rằng đây là một tiêu đề lỗi thời và liên kết nó để smp.h
khắc phục vấn đề. Tuy nhiên, quá trình xây dựng vẫn thất bại với lỗi nguồn, trông như thế này:
error: field 'recv_tasklet' has incomplete type
Tôi đã biên dịch đủ để biết điều này trông như thể bản dựng không hỗ trợ phiên bản kernel mới nhất, nhưng nếu nó là như vậy thì nó đã được xây dựng cho Debian như thế nào?
Thông tin bổ sung:
- Đầu ra đầy đủ ở đây .