加载驱动时传参——讯为笔记

加载驱动传参

在加载驱动的时候传递给驱动的参数

例如:insmod beep.ko a=1

常见的用途:

  1. 设置驱动的相关参数,比如设置缓冲区的大小
  2. 设置安全校验,防止我们写的驱动被人盗用

传参方式

//普通类型的参数,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
#数组参数可以少写,不能多于驱动代码中定义的数组长度,多写加载会报错
posted @ 2021-09-05 11:34  WuYunTaXue  阅读(150)  评论(0编辑  收藏  举报