我已经交叉编译了一个简单的helloworld内核模块,主机是x86机器,目标是ARM板。当我执行modprobe以在目标中安装模块时,我收到以下消息:
FATAL: Could not load /lib/modules/3.14.0-xilinx-13567-g906a2c9-dirty/modules.dep: No such file or directory
我确保使用与目标相同的版本编译模块。
uname -a : 3.14.0-xilinx-13567-g906a2c9-dirty
modinfo: vermagic: 3.14.0-xilinx-13567-g906a2c9-dirty SMP preempt mod_unload modversions ARMv7 p2v8
可能是什么问题?这个错误意味着什么?
答案 0 :(得分:0)
显然,您缺少指定模块依赖项的文件(在构建时生成并随make module_install
一起安装)。
最简单的解决方案是,如果您的mdule没有外部依赖项,请使用insmod
而不是modprobe
插入。
答案 1 :(得分:0)
尝试运行:
depmod -a
ARM板上的。
它可以解决你的问题。
答案 2 :(得分:0)
我建议采取以下步骤。
insmod $ module-name
检查 dmesg 命令输出。如果您看到以下消息
版魔术' 3.14.0-xilinx-13567-g906a2c9-dirty xxxxxxxx'应该 ' 3.14.0-xilinx-13567-g906a2c9-dirty xxxxxxxxxx'
然后问题是由于对内核所做的更改。
将更改提交给git存储库并重新构建内核。
创建一个新的内核映像,然后使用更新的内核启动目标。