首页 > 代码库 > linux kernel with param

linux kernel with param

Linux kernel support pass param to kernel, this params can be assigned at load time by insmod or modprobe.  or later read from /etc/modprobe.conf file.

There are two macro : module_param and module_param_array, 

To declare an param or array param ,use:

module_param(name, type, perm)   module_param_array(name, type, num, perm)

name is the name of your param or array.

type can be : bool ,invbool,charp, int, long, short, uint, ulong, ushort

num is the array num , array param where the values are supplied as a comma-separated list.

perm : S_IRUGO , S_IWUSR and so on .

int num = 0;static char* array[10] = {NULL};static int ntime = 0;static char* pstring = NULL;module_param_array(array, charp, &num, S_IRUGO);module_param(ntime, int, S_IRUGO);module_param(pstring, charp, S_IRUGO);static int __init init_func(void){        int i = 0;        printk("string :%s, int :%d\n", pstring, ntime);        printk("Array\n");        for(; i < num; ++i)                printk("%s\n", array[i]);        return 0;}

执行:

sudo insmod ./hello.ko array="hello,world" pstring="test" ntime=10

 

linux kernel with param