【发布时间】:2017-07-18 16:42:40
【问题描述】:
我正在尝试交叉编译带有规范的 helloworld 内核模块:
- 主机:intel x86 32 位,linux-3.0.0
- 目标:ARM机器(Parrot AR.Drone),linux-2.6.27.47
我正在使用生成文件:
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-是arm工具链的前缀。
作为内核,我尝试使用来自git://github.com/CyanogenMod/cm-kernel.git 的克隆作为内核。这是一个 2.6 内核分支。使用这个内核,编译成功。尝试插入模块时,出现错误:
invalid module format
可悲的是,它说得很少。
【问题讨论】:
-
如果在插入模块时出现“invalid module format”错误以及其他错误,系统日志可能包含更多信息。
dmesg可用于显示日志。
标签: linux-kernel arm cross-compiling kernel-module