Linux 寫乙個簡單的模組

2021-06-29 00:49:28 字數 1190 閱讀 9301

1.建立乙個目錄#mkdir zhu

#cd zhu

#vim hello.c 編寫乙個名為hello的檔案

2.hello.c:

#include //所有模組都需要的標頭檔案

#include

static int

hello_

init(void)

static void hello_

exit()

module_init(hello_

init);

module_exit(hello_

exit)

3.#vim makefile 寫makefile檔案

makefile:

ifneq (

$(kernelrelease),)

obj-m :

=hello.o

else

kdir :

=/lib/modules/

$(shell uname -r)

/build

all:

make 

-c $

(kdir)m

=$(pwd

)modules

clean:

rm -f *

.ko *

.o *

.mod

.o *

.mod

.c *

.symvers

endif

注意: 書寫makefile檔案時命令行前要按【tab】鍵

4.#make 編譯模組

5.出錯1:「/root/zhu/makefile: no such file or directory 」 是因為makefile 未大寫成makefile

## mv makefile makefile

出錯2:「syntax error near unexpected token '/build' 」 是因為附近有語法錯誤,最後知道是乙個符號寫錯。

6.重新修改**後make 成功。生成hello.ko

7.#insmod hello.ko 載入模組

#lsmod | grep hello

hello 12496 0

8.模組的**是在核心中執行的,所以必須要看核心緩衝區控制資訊

。#dmesg 來檢視具體模組**運**況

乙個最簡單的Linux核心模組

include include static int init hello init void static void exit hello exit module init hello init module exit hello exit module license gpl 這個最簡單的核心模...

寫乙個簡單的迷宮

二話不說 上迷宮 include include define number 13 int fx 4 int fy 4 void prin char arr number 列印 bool work char arr number int x,int y 判斷是否可以走 bool mymap char...

開始寫乙個核心模組

從hello world開始,乙個完整的核心模組helloword.c如下 include module init 和 module exit 的標頭檔案 include 這個標頭檔案包含了許多符號與函式的定義,這些符號與函式多與載入模組有關 module license dual bsd gpl ...