Linux驱动内核模块参数介绍

描述

在加载一个.ko模块时,也可以像应用程序那样,通过命令行传入一些参数,这个过程发生在调用模块初始化函数之前。

内核支持的参数类型有:boolinvbool(反转值bool类型)、charp(字符串指针)、shortintlongushortuintulong。这些类型又可以复合成对应的数组类型。

具体用法,在驱动中定义三个变量baudrateportname

static int baudrate = 9600;
static int port[4] = {0,1,2,3};
static char *name = "user";

module_param(baudrate, int, S_IRUGO);
module_param_array(port, int, NULL, S_IRUGO);
module_param(name, charp, S_IRUGO);

使用module_parammodule_param_array宏声明这些变量为模块参数。说明:

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

name:变量的名字

type:变量或数组元素的类型

nump:数组元素个数的指针,可选

perm:在sysfs文件系统中对应文件的权限属性。

权限的取值参考头文件。

修改这三个变量的值,即加载模块时传参:

insmod user.ko baudrate=115200 port=1,2,3,4 name="virtual-serial"
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分