Я цілими днями намагаюся вмикати і вимикати модуль для свого бездротового пристрою USB.
Я знайшов кілька ресурсів на побудові модулів для Debian, але жоден для Arch. В даний час я намагаюся перехрестити компіляцію за допомогою ToolChain, знайденого на Raspberry Pi GitHub . Це кроки, які я зробив:
- Завантажено джерела драйверів з веб-сайту Edimax .
- Завантажено джерела ядра з GitHub .
- Створив конкретне правило make (відповідно до документації Edimax) у 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
це каталог, що містить джерела ядра.MODDESTDIR
- це каталог, у якому ви хочете, щоб модуль закінчився.CROSS_COMPILE
це мій ланцюжок інструментів (до якого доданоPATH
)
Перша спроба make
дає цю помилку:
fatal error: linux/smp_lock.h: No such file or directory
Я виявив, що це застарілий заголовок, і його посилання на його smp.h
позначення має вирішити проблему. Однак збірка все ж не вдається із вихідними помилками, які виглядають приблизно так:
error: field 'recv_tasklet' has incomplete type
Я зробив достатньо компіляції, щоб знати, що це виглядає так, ніби збірка не підтримує останню версію ядра, але якщо це так, то як це було побудовано для Debian?
Додаткова інформація:
- Повний вихід тут .