以最簡單的hello world模組為例
1.編寫模組
2.編寫makefile//my_module.c
#include #include #include static int hello_init(void)
static void hello_exit(void)
module_init(hello_init);
module_exit(hello_exit);
module_license("gpl");
module_author("julian");
module_description("a hello, world module");
3.編譯模組obj-m := my_module.o
all:
make -c /usr/src/linux-3.11.1 subdirs=$(pwd) modules
clean:
make -c /usr/src/linux-3.11.1 subdirs=$(pwd) clean
$ make all
生成my_module.ko
4.載入模組
注:需要切換到超級使用者
# insmod my_module.ko
載入後通過命令dmesg檢視結果:
# dmsg
5.解除安裝模組
# rmmod my_module.ko
解除安裝後通過命令dmesg檢視結果:
# dmsg
可以看到模組已經被正確解除安裝了!
6.檢視正常工作的模組
7.刪除編譯後產生的檔案
$ make clean
linux驅動模組的載入和解除安裝
linux 驅動有兩種執行方式,第一種就是將驅動編譯進 linux 核心中,這樣當 linux 核心啟動的時候就會自動執行驅動程式。第二種就是將驅動編譯成模組 linux 下模組擴充套件名為.ko 在linux 核心啟動以後使用 insmod 命令載入驅動模組。在除錯驅動的時候一般都選擇將其編譯為模...
模組(載入函式和解除安裝函式)
linux模組是一些 的整合,可以在啟動系統後動態鏈結到核心的一部分,一旦載入之後就和核心沒有什麼區別,可以使核心崩潰。當不需要這些模組時,又可以斷開鏈結將其刪除。linux的模組可以用c語言來編寫,用gcc來編譯生成目標檔案 不進行鏈結,作為 o檔案存在 為此需要在gcc命令裡加入 c的引數。由於...
核心模組的載入與解除安裝
1 核心原始碼存放的位置 usr src linux 或者 usr src kernel 2 核心模組存放的位置 lib modules uname r kernel 3 模組的依賴性 檢查 lib modules uname r modules.dep檔案,它記錄了核心支援模組的依賴關係。dep檔...