目录
-
错误问题
在Ubuntu14.04在加载自己的hello写的hello驱动时出现了如下的错误:insmod: ERROR: could not insert module kernel_hello.ko: Invalid module format
通过查看sudo dmesg -c 查看最新的内核打印信息发现如下的出错的原因:缺少retpoline
version magic '4.4.0-142-generic SMP mod_unload modversions
should be '4.4.0-142-generic SMP mod_unload modversions retpoline
这可能是当前内核的版本与编译模块使用的内核头文件版本不一致引起的。
-
解决方法:
通过修改:/usr/src/linux-headers-4.4.0-142-generic/include/generated$ 路径下的 utsrelease.h添加一段宏定义:#define RETPOLINE 1
重新编译自己的驱动文件。再次使用驱动加载命令insmod,没有抛出错误 。
-
验证
make
sudo insmod
sudo dmesg -c(可以清除之前的打印信息)
ok!