4.1 linux核心模組簡介
核心模組特點:
1)模組本身不被編譯進核心映像中,從而控制核心的大小。
2)模組被載入後,它跟核心中的其他部分完全一樣。
核心載入命令:
lsmod
核心解除安裝命令:
rmmod
加強型核心載入函式:
modprobe——優點:載入模組所以來的模組。
模組之間的依賴關係可以在:/lib/modules檔案中。它是在編譯核心時由depmod工具生成的。
檢視模組資訊的命令:
modinfo
4.2 linux核心模組程式結構
1)模組載入函式
2)模組解除安裝函式
3)模組許可證宣告
4)模組引數(可選)
5)模組匯出符號(可選)
6)模組作者等資訊宣告(可選)
4.3 模組載入函式
linux核心模組載入函式一般以__init標識宣告。
所有標識為__init的函式如果直接編譯進核心,
module_init
成功返回0,失敗返回錯誤編碼。
在核心內部,可以使用requeset_module(module_name)載入其他核心模組。成為核心的一部分,在連線時都會放在.init.text區段,並且所有的__init函式在.initcall.init中還儲存了乙份函式指標,在初始化時,核心會通過這些函式指標呼叫__init函式,並在初始化完成後,釋放init區段,包括.init.text、.initcall.init)
4.4 模組解除安裝函式
module_exit
linux核心模組載入函式一般以__exit標識宣告,用__exit修飾模組解除安裝函式的作用是告訴核心如果相關的模組被直接編譯進核心,則cleanup_function()會被聖羅,直接不鏈進最後的映象。即標識該模組被內建了,不能解除安裝,所以解除安裝函式也就沒有必要存在了。
4.5 模組引數
module_param(name, type, 許可權)
4.6 匯出符號
export_symbol(符號名)
export_symbol_gpl(符號名)
匯出的符號可以被其他模組使用,只需要提前宣告即可。
4.7模組宣告與描述
4.8 模組的使用計數
4.9 模組的編譯
4.10 使用模組繞開gpl
第四章 Linux核心模組
注 內容大多摘自 linux裝置驅動開發詳解 第2版 1.特點 2.模組程式結構 1 模組載入函式 一般需要 2 模組解除安裝函式 一般需要 3 模組許可證宣告 必須 4 模組引數 可選 5 模組匯出符號 可選 6 模組作者等資訊宣告 可選 3.模組的載入,解除安裝,檢視 4.printk函式 核心...
第四章Linux核心模組之二(核心模組程式結構)
4.2 linux核心模組程式結構 乙個linux核心模組主要由如下幾個部分組成。1 模組載入函式 當通過insmod或modprobe命令載入核心模組時,模組的載入函式會自動被核心執行,完成本模組的相關初始化工作。2 模組解除安裝函式 當通過rmmod命令解除安裝某模組時,模組的解除安裝函式會自動...
第四章Linux核心模組之五(模組引數)
4.5 模組引數 可以用 module param 引數名,引數型別,引數讀 寫許可權 為模組定義乙個引數,例如下列 定義了1個整型引數和1個字元指標引數 static int book num 4000 module param book num,int,s irugo static char b...