驅動 模組引數

2021-09-06 23:31:08 字數 1567 閱讀 3096

本例一共三種型別模組引數——無符號整型,字串,字串陣列

#include #include 

#include

#include

#define access (0644)

static

uint age = 24

; module_param(age,

uint

, access);

static

char *name = "

netboy";

module_param(name, charp, access);

static

char *hobby[10] = ;

static

int hobby_num = 2

;module_param_array(hobby, charp, &hobby_num, access);

static

int __init param_init(void

)

return0;

}static

void __exit param_exit(void

)module_init(param_init);

module_exit(param_exit);

module_author(

"ngnetboy");

module_description(

"kernel parms test!");

module_license(

"gpl");

module_version(

"0.0.0.2

");

注:1:在使用 char * 型別的時候,一定要用 charp

2:使用引數陣列的時候  module_param_array(hobby, charp, &hobby_num, access);  hobby_num 會被設定為使用者提供的值的個數。

3:載入驅動命令: insmod my_project.ko name="netboy" age=25 hobby="shopping","playing","sleeping"

相對應的makefile

ifeq ($(kernelrelease), )

kerneldir ?= /lib/modules/$(shell uname -r)/build

pwd :=$(shell pwd)

all: clean

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

-rm -rf *.o *~ core .depend .*.cmd *.mod.c .tmp_versions module.*makefile.xen modules.order

clean:

-rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions module.*makefile.xen modules.order

else

obj-m :=my_project.o

endif

linux驅動開發 模組引數

在我們使用模組的時候需要在裝載時傳遞引數給模組,linux 支援在裝載模組的同時傳入引數 比如 num 和who就是傳入模組的引數 insmod hello.ko num 10 who jack 模組引數必須用module parm巨集宣告,這個巨集定義在,剛才連個引數在模組中的定義如下 stati...

Linux驅動程式的模組引數

模組引數 模組引數就是使用者在系統啟動或掛載模組時指定的引數值,相對於驅動程式它是全域性變數。通過module param 定義模組引數 module param name,type,perm name 即為引數名 type 引數的型別,可以是byte 存放在char型變數中 short ushor...

iTOP 4412 驅動模組傳引數

1 核心模組可以通過module param來傳單個引數 module param name,type,perm name 模組引數的名稱 type 模組引數的資料型別 支援int long short uint ulong ushort類 型 perm 模組引數的訪問許可權 s irusr引數表示...