簡體   English   中英

Linux內核功能和內核模塊開發

[英]Linux kernel functions and kernel module development

我即將為Linux ubuntu 3.8.0-29-generic編寫我的第一個內核模塊

我沒有關於內核功能的man 9部分(例如kmalloc,kfree ...),在/usr/include也看不到某些功能定義,而在/usr/src/linux-headers-3.2.0-53/include/linux卻看不到。 /usr/src/linux-headers-3.2.0-53/include/linux 在這種情況下,如何在代碼中包含標頭?

我懷疑可能有apt-get install kernel-devel類的東西可以立即解決所有這些問題,但是我找不到。

另外,非常感謝您對內核模塊編寫進行了很好的介紹。 謝謝。

如果要使用內核版本3.8.0,為什么要使用3.2.0的標頭? 您可以使用3.8.0下載額外的源代碼樹並編譯新的內核,而無需替換現有的3.2.0。

無論如何,讓我們在現有的3.2.0上工作。

  • 首先,確保系統正在運行的內核與您提到的headers目錄的版本相同。

    使用以下命令檢查系統內核版本:

    $ 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM