linux 2.6允许用户insmod的时候往内核模块里面传递参数,它主要使用module_param宏定义来实现这一功能。

参数应用

module_param(name, type, perm);
module_param(参数名,参数类型,参数读写权限)

举例:

static int howmany=;
module_param(howmany, int, );

在装载内核模块时,用户可以向模块传递参数,形式为:

insmod/modprobe 模块名 参数名=参数值

如果不传递,参数将使用模块内定义的缺省值。如果模块被内置,就无法insmod了,但bootloader可以通过在bootargs里设置

模块名.参数名=值

给该内置的模块传递参数。

参数类型

参数的类型可以是byte,short,ushort, int, uint, long, ulong, charp, bool或invbool(布尔的反)

除此之外,内核模块还支持参数数组:

module_param_array(数组名,数组类型,数组长,参数读写权限)

insmod时使用逗号分割数组元素。

参数目录

模块被加载后,在/sys/module/目录下将出现以此模块命名的目录。

当读写权限为0时,表示此参数不存在sysfs文件系统下对应的文件节点,如果此模块存在参数读写权限不为0的命令行参数,在此模块的目录下还将出现parameters目录,

其中包含一系列以参数名命名的文件节点,这些文件的权限值就是传入module_param()的参数的读写权限,而文件的内容为参数的值。

示例

// led.c
//********************************
#include <linux/module.h>
#include <linux/kernel.h>
#include <asm/io.h> MODULE_LISENCE("GPL");
MODULE_AUTHOR("limingth");
MODULE_DESCRIPTION("led module driver");
MODULE_VERSION("version1.0");
MODULE_ALIAS("myled test"); static int *vmem;
static int led_no = ;
module_param(led_no, int, ); static __init int led_init(void)
{
printk("led init ok!\n");
vmem = ioremap(0xe0200284, );
printk("vmem = %p\n");
*vmem &= ~(<<led_no);
return ;
} static __exit led_exit(void)
{
printk("led exit ok!\n");
*vmem = 0xf; return ;
} module_init(led_init);
module_exit(led_exit);
//*************************************
应用:
insmod led.ko led_no=
rmmod led

注:在操作系统下,所有的地址均为虚拟地址,所以物理地址需要通过ioremap或mmap函数将物理地址转换为虚拟地址后,再对地址操作。

内核模块module传参的更多相关文章

  1. angular使用post、get向后台传参的问题

    一.问题的来源 我们都知道向后台传参可以使用get.put,其形式就类似于name=jyy&id=001.但是在ng中我却发现使用$http post进行异步传输的过程中后台是接收不到数据的. ...

  2. angularjs向后台传参,后台收不到数据

    angularjs中封装了一个$http服务,用来请求远程资源 参见:HTTP API 其中封装过的$http.post和$http.get使用起来比较方便 后台是php,用$_POST['name' ...

  3. linux中模块的构建,传参,和printk函数的简单使用

    静态编译,动态加载应用想访问内核需要通过系统调用 驱动:1.模块(打包,加入内核)2.内核机制3.操作硬件 在Kconfig里面配置menuconfig的时候,不同的类型会在图形化界面的终端显示不用的 ...

  4. ui-router多视图+嵌套视图+传参综合练习

    ui-router多视图:页面上存在的多个ui-view,它们以名字区分: 嵌套视图:一个ui-view的一个状态下对应了一个html,这个html里面又有一个ui-view. 视图之间传参:用ui. ...

  5. webpack2使用ch4-向根目录index.html文件传参并使用参数 使用线上资源 压缩html

    1 webpack.config.js const webpack = require('webpack'), htmlWebpackPlugin = require('html-webpack-pl ...

  6. pytest 12 函数传参和fixture传参数request

    前沿: 有的case,需要依赖于某些特定的case才可以执行,比如,登陆获取到的cookie,每次都需要带着他,为了确保是同一个用户,必须带着和登陆获取到的同一个cookies. 大部分的用例都会先登 ...

  7. Angular 自定义指令传参

    <!DOCTYPE html><html ng-app="myApp"><head lang="en"> <meta ...

  8. pytest十一:函数传参和 firture 传参数 request

    为了提高代码的复用性,我们在写用例的时候,会用到函数,然后不同的用例去调用这个函数.比如登录操作,大部分的用例都会先登录,那就需要把登录单独抽出来写个函数,其它用例全部的调用这个登录函数就行.但是登录 ...

  9. 小程序-formdata传参

    项目背景,后端接口要求formData传参: 在util.js文件中封装转化函数,代码如下: const formatTime = date => { const year = date.get ...

随机推荐

  1. supervisor+gunicorn部署python web项目

    有了Nginx,对于Tomcat没有必要详细了解. 有了supervisor,再也没有必要把一个程序设置成服务.驻留进程,supervisor真是一个相见恨晚的好工具. 在Tomcat中,所有的web ...

  2. 动态计算UITableViewCell高度详解

    本文将介绍四种情况下UITableViewCell的计算方式,分别是: Auto Layout with UILabel in UITableViewCell Auto Layout with UIT ...

  3. APK 本地化和去广告

    APK 本地化       说起APK的汉化,目前大部分教程都是让用Hex Workshop或者Android ResEdit来做.但是实际操作后,就会发现: 1.Hex Workshop操作繁琐,经 ...

  4. Android学习系列(9)--App列表之分组ListView

    吸引用户的眼球,是我们至死不渝的追求:      第一时间呈现最有价值的信息,简明大方,告诉客户,你的选择是多么的明智,这正是你寻觅已久的东西.       分组的应用场合还是很多的,有数据集合的地方 ...

  5. JFinal连接数据库配置说明

    本文采用的是加载配置文件的形式和数据库进行交互 ps:数据库采用的是postgresql 1.加载配置文件 public void configConstant(Constants me) { Pro ...

  6. jdbc与odbc的差别,感悟,学习。。。

    什么是JDBC? JDBC, 全称为Java DataBase Connectivity standard, 它是一个面向对象的应用程序接口(API), 通过它可訪问各类关系数据库.JDBC也是jav ...

  7. Web - TCP与UDP的差别

    是否面向连接:TCP面向连接.UDP面向非连接. 传输可靠性:TCP可靠.UDP不可靠. 应用场合:TCP经常使用于传输大量数据,UDP经常使用于传输少量数据. 速度:TCP传输速度较慢,而UDP速度 ...

  8. [转]Windows 7自带很好用的磁盘检查与修复的环境

    大家可能都知道Windows 7自带很好用的检查与修复的环境.在启动系统前按F8(就是进入安全模式的方法),Windows 7会有一个修复计算机的选项.选择进入,装载一些必要的文件之后,选择语言.登陆 ...

  9. redis 基本类型

    1 hashes 类型及操作 redis hash 是一个string 类型的 field 和 value 的映射表.他的添加.删除操作时间复杂度都是 O(1) 2 hset,设置 hash fiel ...

  10. unity 在Game视图中显示Gizmos

    自己画的Gizmos要想在Game视图中能看到,需要把Game视图窗口右上角的"Gizmos"按钮点下去.如图: 比如,下面代码以角色的capsuleCollider中心为中心画一 ...