我正在按照教程@http://www.embeddedsystemonline.com/home/embedded-system/embedded_linux/lab3-linux-device-driver
在本教程的第 7 步中,
$ cd /usr/src/kernels/linux-2.6.20.1/drivers/char/examples
$ /sbin/insmod hello1.ko
然后我收到以下错误(之后sudo /sbin/insmod hello1.ko
)
insmod: error inserting 'hello1.ko': -1 Invalid module format
使用 lsmod 命令,我在内核中看不到该模块
答案1
尝试运行该命令而不执行sudo
,而是成为 root 并尝试。
$ sudo su -
$ /sbin/insmod hello1.ko
还要查看一下dmesg
是否有任何其他消息表明出了什么问题,并且还使用modinfo
.
$ modinfo /dir/to/mod/hello1.ko
答案2
确保您是:
- 使用同版本内核的源码,可以找到内核源码这里
使用相同的内核 当前安装的内核的配置,通常可以在这里找到:
/proc/config.gz /boot/config /boot/config-*
使用正确的编译工具链。
答案3
我通过安装正确内核版本的标头解决了这个问题。
答案4
跑步:
make clean
然后重新运行:
make