Linux核心動態新增模組

2021-09-05 23:21:28 字數 991 閱讀 8042

而當我們在操作的時候,需要用到某一核心本身不包含的元件,所以就需要我們動態地去新增模組,這就是「核心模組」機制。

而模組地新增應該怎麼去做呢?

hello world 範例**:

#include#includestatic int hello_init(void)

static void hello_exit(void)

module_init(hello_init);

module_exit(hello_exit);

(1)模組載入函式 通過巨集指定 :module_init

本例的模組載入函式為  module_init(hello_init);

(2)  模組解除安裝函式  通過巨集指定:module_exit

本例的模組解除安裝函式為  module_exit(hello_exit);

makefile 範例**:

ifneq ($(kernelrelease),)

obj-m := example.o

else

kdir :=/usr/src/linux-headers-4.10.0-28

all:

make -c $(kdir) m=$(pwd) modules

clean:

rm -f *.ko *.o *.mod.o *mod.c *.symvers

endif

ifneq :為一判斷語句,與下面的else對應。

obj-m :=example.o  表示為生成的目標檔案,example 為你的源**的命名,自己代換即可。

kdir := /usr/src/linux-headers-4.10.0-28 此為核心的位置,每個系統可能不一樣,也需要自己代換。

直接在makefile目錄下執行make即可。

insmod 載入(insmod example.ko)

rmmod 解除安裝 (rmmod example)

Linux核心動態載入自定義模組

畢設是做乙個網路方面的專案,需要自己寫netfilter模組,今天研究了一下午怎麼往linux核心上載入自定義模組,遇到了很多問題,記錄一下心得。簡單起見,以乙個helloworld模組為例來說。核心是3.10版本的。include include static inthello init void...

linux核心動態除錯技術

動態除錯功能就是你可以決定在程式執行過程中是否要 pr debug dev dbg print hex dump debug print hex dump bytes 這些函式正常執行起來。編譯核心 開啟config debug fs和config dynamic debug echo n file...

Linux向核心新增模組

linux核心程式設計的基礎是向核心新增自己的模組。下面就以hellomod為例,簡單的介紹一下向核心新增模組。1 編寫 hellomod.c include 所有的模組都要使用標頭檔案module.h include 標頭檔案kernel.h包含了常用的核心函式 include 包含了巨集 ini...