本例一共三種型別模組引數——無符號整型,字串,字串陣列
#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引數表示...