linux-kernel – 交叉编译内核模块:模块格式无效
发布时间:2020-12-13 23:02:37 所属栏目:Linux 来源:网络整理
导读:我正在尝试使用规范交叉编译helloworld内核模块: 主机:intel x86 32位,linux-3.0.0 目标:ARM机器(Parrot AR.Drone),linux-2.6.27.47 我正在使用makefile: PWD := $(shell pwd)obj-m := test.oall: $(MAKE) -C /path/to/kernel M=$(PWD) CROSS_COMPILE=ar
我正在尝试使用规范交叉编译helloworld内核模块:
>主机:intel x86 32位,linux-3.0.0 我正在使用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-是arm工具链的前缀. 作为内核,我尝试使用git://github.com/CyanogenMod/cm-kernel.git中的克隆作为内核.这是一个2.6内核的fork.使用此内核,编译成功.尝试插入模块时,它会给出错误: invalid module format 遗憾的是,这很少说. 解决方法
感谢Eugene使用dmesg的暗示,我发现了错误:
version magic '2.6.37.6 mod_unload modversions ARMv5 ' should be '2.6.27.47-parrot preempt mod_unload ARMv5 ' 结论:在编译内核模块时,不仅需要匹配版本,还需要一些配置参数.通过使用正确的版本和编辑配置解决了我的问题. 如果您不想重新配置所有内容,快速(丑陋)修复就是编辑include / generated / autoconf.h (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容