加载驱动时传参——讯为笔记
加载驱动传参
在加载驱动的时候传递给驱动的参数
例如:insmod beep.ko a=1
常见的用途:
- 设置驱动的相关参数,比如设置缓冲区的大小
- 设置安全校验,防止我们写的驱动被人盗用
传参方式
//普通类型的参数,char,int
module_param(name, type, perm);
//name 参数名称
//type 参数类型
//perm 参数的读写权限
//数组
module_param_array(name, type, nump, perm);
//name 参数名称
//type 参数类型
//nump 数组个数
//perm 参数的读写权限
示例
static int a;
module_param(a, int, S_IRUSR);
static int arrbuf[5];
static int counta;
module_param_array(arrbuf, int, &counta, S_IRUSR);
......//驱动其他代码
#传参时
insmod xxx.ko a=1 arrbuf=1,2,3
#驱动即可得到a的值,arrbuf的[0][1][2]值,counta的值为3
#数组参数可以少写,不能多于驱动代码中定义的数组长度,多写加载会报错