新版的module_param(myint,int,S_IRWXU);
會在/sys/module/para/
等下產生資料檔案
########################################
[root@localhost para2]# cat para.c
#include < linux/version.h >
#include < linux/kernel.h >
#include < linux/module.h >
#include < linux/init.h >
static int myint=10;
static int myarr[2]={2.45};
static char mybyte='a';
static char *mystring = "YAYAYA";
#if LINUX_VERSION_CODE>KERNEL_VERSION(2,6,0)
//判斷版本 版本可用uname -r看
//版本比2.6.0新的才用這個
static int num_myintArray=0;
//num_myintArray用來判斷insmod時設的arr值有幾個
/*
最後參數 可用下列等等改權限也可用數字四碼
最後參數為0表示不會在/sys/module/XXXX/下出現檔案
S_IRWXU = S_IRUSR | S_IWUSR | S_IXUSR
S_IRWXG = S_IRGRP | S_IWGRP | S_IXGRP
S_IRWXO = S_IROTH | S_IWOTH | S_IXOTH
*/
//以下為新版用法 多了一個變數還有改成小寫
module_param(myint,int,S_IRWXU);
module_param_array(myarr,int,num_myintArray,0777);
module_param(mybyte,byte,0777);
module_param(mystring,charp,0); //charp 陣列用
#else
MODULE_PARM(myint,"i");
MODULE_PARM(myarr,"1-2i");
MODULE_PARM(mybyte,"b");
MODULE_PARM(mystring,"s");
#endif
MODULE_PARM_DESC(myint,"this is int");
MODULE_PARM_DESC(myaaa,"this is aaa");
static int __init hello_init(void){
printk("<1>Hello, World!!myint %i\n",myint);
#if LINUX_VERSION_CODE>KERNEL_VERSION(2,6,0)
printk("<1>got myarr %d\n",num_myintArray);
#endif
printk("<1>Hello, World!!myarr %i %i\n",myarr[0],myarr[1]);
printk("<1>Hello, World!!mybyte %i\n",mybyte);
printk("<1>Hello, World!!mystring %s\n",mystring);
return 0;
}
static void __exit hello_exit(void){
printk("<1>Bye!Bye!!\n");
}
module_init(hello_init);
module_exit(hello_exit);
[root@localhost para2]#
#################################
[root@localhost para2]# cat Makefile
obj-m += para.o
all:
make -C /lib/modules/2.6.9/build M=/mnt/driver/para2 modules
clean:
make -C /lib/modules/2.6.9/build M=/mnt/driver/para2 clean
[root@localhost para2]#
##############################
Feb 4 20:08:20 localhost kernel: Hello, World!!myint 10
Feb 4 20:08:20 localhost kernel: got myarr 0
Feb 4 20:08:20 localhost kernel: Hello, World!!myarr 2 0
Feb 4 20:08:20 localhost kernel: Hello, World!!mybyte 97
Feb 4 20:08:20 localhost kernel: Hello, World!!mystring YAYAYA
Feb 4 20:08:30 localhost kernel: Bye!Bye!!
沒有留言:
張貼留言