我正在尝试在Raspberry Pi上使用C和Bash创建一个 hello_world 内核模块。
我成功使用make命令生成hello_world.ko
文件。
但是,当我尝试使用insmod hello_world.ko
命令时,出现以下错误:
错误:无法插入模块hello_world.ko:模块格式无效
我尝试按照Raspberry Pi forum中描述的步骤,但我没有太多运气。
我认为这可能是由于我的内核和Linux标头之间的版本不匹配。这些标题在此过程中起什么作用?如何获得与我的内核匹配的版本?
答案 0 :(得分:7)
头文件定义模块和内核之间的接口以及用户空间和内核之间的接口。 如果您的内核版本和头文件之间不匹配,您的模块将无法正常工作,如您所料。 您当前的头文件通常在您的存储库中可用。 您可以通过以下方式检查当前运行的内核:
uname -r
之后检查你的repo是否有linux标题:
sudo apt-cache search linux-headers
并安装它们。