错误使用insmod“无法插入模块hello_world.ko:模块格式无效”

我正在尝试在Raspberry Pi上使用C和Bash构build一个hello_world内核模块。

我成功地使用了make命令来生成一个hello_world.ko文件。

但是,当我尝试使用insmod hello_world.ko命令时,出现以下错误:

错误:无法插入模块hello_world.ko:模块格式无效

我尝试了在Raspberry Pi论坛上描述的步骤,但是我没有太多的运气。

我想这可能是由于我的内核和Linux头文件之间的版本不匹配。 这些头文件在这个过程中扮演什么angular色?我如何获得与我的内核相匹配的版本?

头文件定义了你的模块和内核之间的接口,以及用户空间和内核之间的接口。 如果你的内核版本和头文件不匹配,你的模块将不能正常工作。 您当前的头文件通常在您的存储库中可用。 您可以通过以下方式检查当前运行的内核

  uname -r 

之后检查你的回购linux头文件:

  sudo apt-cache search linux-headers 

并安装它们。