動手實踐 Linux核心模組的插入和刪除

2021-10-23 08:49:33 字數 951 閱讀 5532

建立helloworld.c檔案

#include

#include

#include

static

int __init lkm_init

(void

)static

void __exit lkm_exit

(void

)module_init

(lkm_init)

;module_exit

(lkm_exit)

;module_license

("gpl"

);

建立makefile檔案

obj-m:=helloworld.o

current_paht:=

$(shell pwd

)linux_kernel:=

$(shell uname -r)

linux_kernel_path:=/usr/src/linux-headers-$(linux_kernel)

all:

make -c $(linux_kernel_path)

m=$(current_paht)

modules

clean:

make -c $(linux_kernel_path)

m=$(current_paht)

clean

執行make命令生成helloworld.ko檔案

並將其插入到核心模組當中

sudo insmod helloworld.ko  #插入模組

lsmod #顯示當前系統中的模組

dmesg

#列印日誌資訊

sudo rmmod helloword #刪除模組

自己動手寫hello world核心模組

hello world模組雖小卻是五臟俱全,該有的部分都有了。話不多說,直接上手。1.編譯linux中執行的核心模組,需要指定到當前系統對應的核心中。一般來說,linux系統的核心模組都會安裝到 lib modules目錄下,通過 uname r 命令可以找到對應的核心版本 我的是 lib modu...

Linux核心模組

核心模組 在整個啟動的過程中,是否能成功的驅動我們主句的硬體裝置,是核心完成的工作,而核心一般都是壓縮文件,在使用之前核心之前必須要將核心減壓到的記憶體中。為了應對日新月異的硬體,目前核心都具有可讀取模組化驅動程式的功能,也就是所謂的 modules模組化 所謂模組化。核心與核心模組放在 核心 bo...

Linux核心模組

1 核心模組註冊登出 塊載入函式有返回值,模組解除安裝函式無返回值。兩者都是無參函式,載入函式用 init修飾,解除安裝函式用 exit修飾。define init attribute section init.text define exit atrribute section exit,text...