Я пытаюсь пересечь скомпилировать модуль ядра HelloWorld с характеристиками:Кросс компиляции модуля ядра: неверный формат модуля
- хост: Intel x86 32 бит, Linux-3.0.0
- цель: ARM машина (Parrot AR.Drone), Linux-2.6.27.47
Я использую Makefile:
PWD := $(shell pwd)
obj-m := test.o
all:
$(MAKE) -C /path/to/kernel M=$(PWD) CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm modules
Где arm-none-linux-gnueabi-
- это префикс инструментальной цепочки.
В качестве ядра я попытался использовать клон от git://github.com/CyanogenMod/cm-kernel.git
в качестве ядра. Это ядро ядра 2.6. Используя это ядро, компиляция прошла успешно. При попытке вставить модуль выдается сообщение об ошибке:
invalid module format
Который, к сожалению, говорит очень мало.
В случае ошибки «неверный формат модуля», а также другие ошибки при вставке модуля, системный журнал может содержать немного больше информации. Для отображения журнала можно использовать 'dmesg'. – Eugene