2014-11-04 130 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