【问题标题】:Linux kernel functions and kernel module developmentLinux内核功能和内核模块开发
【发布时间】:2014-11-04 23:43:35
【问题描述】:

我即将为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 的东西可以一次性解决所有这些问题,但我找不到。

还非常感谢提供一个很好的内核模块编写介绍的链接。谢谢。

【问题讨论】:

标签: c linux linux-kernel kernel kernel-module


【解决方案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。

  • 其次,安装手册第 9 节:为此,您需要下载内核源代码。从https://www.kernel.org/ 中选择您想要的版本并将其下载到您的主目录。在该源目录中执行:

    $ sudo apt-get install xmlto

    $ 制作 mandocs

    $ sudo make installmandocs

【讨论】:

猜你喜欢
  • 2019-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-11
  • 2013-12-17
  • 1970-01-01
  • 2023-03-29
  • 2011-10-18
相关资源
最近更新 更多