使用insmod时出错"无法插入模块hello_world.ko:模块格式无效"

use*_*332 12 c linux insmod raspberry-pi

我正在尝试在Raspberry Pi上使用C和Bash 创建一个hello_world内核模块.

我成功使用make命令生成hello_world.ko文件.

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

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

我尝试按照Raspberry Pi论坛上描述的步骤进行操作,但我没有太多运气.

我认为这可能是由于我的内核和Linux标头之间的版本不匹配.这些标题在此过程中起什么作用?如何获得与我的内核匹配的版本?

iks*_*eam 7

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

     uname -r
Run Code Online (Sandbox Code Playgroud)

之后检查你的repo的linux头文件:

    sudo apt-cache search linux-headers
Run Code Online (Sandbox Code Playgroud)

并安装它们.