ubuntu下編譯第乙個核心模組

2021-06-22 20:47:01 字數 708 閱讀 7302

1.首先在終端輸入命令 uname -r 得到作業系統的發行版號 我的是3.13.0-32-generic 記住這個,等下要用

2.編寫乙個核心模組,內容如下,檔案名字命名為hello.c

#include

#include

#include

module_license("dual bsd/gpl");

static int __init hello_init(void)

static void __exit hello_exit(void)

module_init(hello_init);

module_exit(hello_exit);

3.編寫makefile檔案,內容如下:

obj-m:=hello.o

注意上面的hello.c和makefile兩個檔案要放在同一目錄下。

4.進入上面你設定的那個目錄,在終端輸入指令 make -c /usr/src/linux-headers-3.13.0-32-generic m=`pwd` modules進行編譯

5.編譯成功後,輸入指令sudo insmod ./hello.ko插入模組

沒有提示任何東西,表示成功了,但是為什麼沒有輸出"hello from hello world"?,如果你在字元終端而不是終端模擬器下執行的話,就會輸出,因為在終端模擬器下時會把核心訊息輸出到日誌檔案/var/log/kern.log中。

編譯Ubuntu10 04的第乙個核心模組

系統 ubuntu10.04 核心版本 2.6.32 自己寫的模組的makefile如下所示 ifneq kernelrelease obj m hello world.o else kdir usr src linux source 2.6.32 all make c kdir m pwd mod...

第乙個核心驅動

測試驅動開發平台 為了後續學習的順利進行,我們利用最簡單的hello,world程式,在核心上掛載和解除安裝我們自己編寫的hello模組。說明 本文除錯環境vmware workstation 5.0 turbolinux 10,教材是 linux device drivers 第3版英文電子圖書。...

編譯第乙個檔案

apue中有很多例項,比如第4頁中圖1 3中描述了乙個簡單的類似ls命令的c程式。幾乎所有例子都會引用乙個apue.h標頭檔案。這個標頭檔案是作者自己實現的,起到遮蔽平台相關實現的作用。直接編譯圖1 3中的程式是沒法通過的,因為缺少apue.h這個標頭檔案。那該怎麼編譯這個例項呢?需要做下面幾件事情...