我有一台小型覆盆子pi计算机,我正在创建一个内核模块。我已经下载了源代码,并设法编译我的测试模块但是当我尝试加载它时我得到了这个错误:
insmod: error inserting 'hello.ko': -1 Invalid module format
当我查看dmesg时,我看到了这个错误:
hello: version magic '3.1.9+ mod_unload modversions ARMv6 p2v8 ' should be '3.1.9+ mod_unload modversions ARMv6 '
任何人都可以指出我正确的方向,我不确定它告诉我什么?
干杯 路加
答案 0 :(得分:0)
听起来您下载的内核源与Pi上安装的内核不匹配。
你是从哪里下载的?
要获取内核的正确来源,请在命令行中键入以下内容:
sudo apt-get install linux-source
这应该为您的内核下载正确的内核源代码(它是一个元数据包)。您现在应该看到/lib/modules/
下的目录与您的内核版本匹配(当您键入uname -r
时打印出来的版本)
重新编译并链接您的代码 - 确保通过在Makefile中使用这样的行来获取正确的内核源代码:
all:
make -C /lib/modules/$(shell uname -r)/build M=${PWD} modules
您新编译的.ko模块现在应该与您的内核匹配并插入而不会抱怨。
祝你好运!