构建示例设备驱动程序错误:insmod 模块格式无效

构建示例设备驱动程序错误:insmod 模块格式无效

我正在按照教程@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

确保您是:

  1. 使用同版本内核的源码,可以找到内核源码这里
  2. 使用相同的内核 当前安装的内核的配置,通常可以在这里找到:

    /proc/config.gz
    /boot/config
    /boot/config-*
    
  3. 使用正确的编译工具链。

答案3

我通过安装正确内核版本的标头解决了这个问题。

答案4

跑步:

make clean

然后重新运行:

make

相关内容