[英]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.