2014-11-04 81 views
1

我要写我的第一个内核模块Linux ubuntu 3.8.0-29-genericLinux内核函数和内核模块开发

我没有为内核函数男子9段(如用kmalloc,kfree ...) 我也不能看到一些函数定义在/usr/include中,而是在/usr/src/linux-headers-3.2.0-53/include/linux中。在这种情况下,如何在代码中包含标题?

我怀疑可能有类似apt-get install kernel-devel这样可以一次解决所有这些问题,但我找不到一个。

另外一个链接到一个很好的介绍内核模块写作将不胜感激。谢谢。

+0

使用新立得软件包管理器,搜索 “开发”包。 – sawdust 2014-11-05 00:04:21

+0

检查此链接 - http://askubuntu.com/questions/359032/unable-to-locate-package-linux-kernel-devel – 2014-11-05 02:35:08

+2

http://www.opensourceforu.com/2010/12/writing-your-first -linux-driver/ – 2014-11-05 04:06:17

回答

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易于得到安装xmlto

    $使mandocs

    $ sudo的使installmandocs

+0

kernel.org没有我的版本(3.13.0-24)。有没有办法做到这一点与apt-get源? – wick 2014-11-05 17:09:26

+0

我认为你可以从这里下载它http://packages.ubuntu.com/trusty/linux-source-3.13.0 – 2014-11-05 18:55:32

+0

它发生了更容易与apt-get(https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel)。我会接受你的答案,因为它帮助我使用这些mandocs :-) – wick 2014-11-06 10:41:23