12

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

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

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

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

我尝试按照Raspberry Pi 论坛上描述的步骤进行操作,但运气不佳。

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

4

1 回答 1

7

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

     uname -r

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

    sudo apt-cache search linux-headers

并安装它们。

于 2014-01-21T00:09:07.860 回答