我为ARM系统编写了Linux内核的简单驱动程序:
$ uname -a
Linux CR5 4.4.171-cr5 #2 Tue Mar 10 11:49:00 CET 2020 armv7l GNU/Linux要编译,我使用了位于以下位置的up破坏系统中的配置文件:
/proc/config.gz
我下载了一个普通内核,签出标记为4.4.5,替换配置文件,编译内核,然后用工具chine编译驱动器
gcc-linaro-7.2.1-2017.11-i686_arm-linux-gnueabi驱动器包含简单的代码
#include <linux/module.h>
#include <linux/kernel.h>
int init_module(void) {
printk(KERN_INFO "Hello world.\n");
return 0;
}
void cleanup_module(void) {
printk(KERN_INFO "Goodbye world.\n");
}我使用insmod加载驱动程序,但是发送到终端的错误消息是:
错误:无法插入模块test_module.ko:无效模块格式
在dmesg,我收到了这个消息
test_module:不同意符号module_layout的版本
但是,当我在系统中运行的模块与我的模块之间使用readelf -a时,
ELF标头相同,File属性相同。
我还能查些什么?也许模块加载被内核阻止了?我怎么才能查到?有些人是我下一步能做什么的先导?
p.s
谢谢
发布于 2021-07-11 14:33:05
https://unix.stackexchange.com/questions/657893
复制相似问题