我即将为Linux ubuntu 3.8.0-29-generic
我的内核函数没有man 9部分(例如kmalloc,kfree ......)
我也无法在/usr/include
中看到某些功能定义,而是在/usr/src/linux-headers-3.2.0-53/include/linux
中看到。在这种情况下,如何在代码中包含标题?
我怀疑可能有apt-get install kernel-devel
这样的东西会立即解决所有这些问题,但我找不到。
还非常感谢链接到内核模块编写的良好介绍。感谢。
答案 0 :(得分:1)
如果你想使用内核版本3.8.0,为什么你的标题是3.2.0?您可以使用3.8.0下载额外的源代码树并编译新内核,而无需替换现有的3.2.0。
任何方式,让我们在现有的3.2.0上工作。
首先,确保系统运行的内核版本相同 作为你提到的头文件目录。
使用以下方法检查系统内核版本:
$ uname -r
看到你得到3.2.0。这意味着当你包括
(#include)程序中的内核头文件,它们就是那些
在/usr/src/linux-headers-3.2.0-53/include/linux
。
第二,安装man第9节:为此您需要下载内核源代码。从https://www.kernel.org/中选择所需的版本并将其下载到您的主目录。在该源目录中执行:
$ sudo apt-get install xmlto
$ make mandocs
$ sudo make installmandocs