您的位置:首页 > 运维架构 > Linux

linux user/kernel 参数的传递和修改

2018-02-07 11:38 344 查看
内核的驱动以两种方式存在,那么传给内核的参数该如何弄呢?

1. 内核以驱动方式存在的,在insmod ko文件的时候,跟在命令后面给出参数,比如:

    insmod hello_world.ko
parameter1=50 parameter2='welcome'

    但是parameter1和parameter2必须在内核已经做了登记,需要调用接口:

    module_param,比如:

        MODULE_PARM_DESC(parameter1,
" just for debug")

        module_param(parameter1,
int, 0644);

    也可以通过module_param_array(para
, type , &n_para , perm) 来一个para数组,perm是指定了权限

 
  perm 指定了在sysfs中相应文件的访问权限。访问权限与linux文件访问权限相同的方式管理,如0644,或使用stat.h中的宏如S_IRUGO表示。
            0    表示完全关闭在sysfs中相对应的项。
            #define S_IRUSR    00400 文件所有者可读
            #define S_IWUSR    00200 文件所有者可写
            #define S_IXUSR    00100 文件所有者可执行
            #define S_IRGRP    00040 与文件所有者同组的用户可读
            #define S_IWGRP    00020
            #define S_IXGRP    00010
            #define S_IROTH    00004 与文件所有者不同组的用户可读
            #define S_IWOTH    00002
            #define S_IXOTH    00001

2. 内核以image方式存在的,会在/sys/module/parameters/下有对应的文件,直接用cat 修改后,kernel/user空间都会看到这个值也跟这变。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: