linux驱动参数及参数的设置及修改

原创 2016年08月29日 16:32:22

在linux中,每一个module(驱动)加载到kernel后,都会在/sys/module目录下生成以该模块命名的一个文件夹,
在里面包含了该模块的一些信息。这里分析一下parameters下的参数。parameters目录下面有该module定
义的参数,用于与用户层交互数据。以boardcom的wifi驱动为例,加载驱动后,
在/sys/module/wlan_bcmdhd/parameters目录下有下面参数:

-rw-r--r-- root     root         4096 2015-01-06 09:00 clockoverride
-rw-r--r-- root     root         4096 2015-01-06 09:00 dhd_console_ms
-rw-r--r-- root     root         4096 2015-01-06 09:00 dhd_doflow
-rw-r--r-- root     root         4096 2015-01-06 09:00 dhd_dpcpoll
-rw-r--r-- root     root         4096 2015-01-06 09:00 dhd_msg_level
-rw-r--r-- root     root         4096 2015-01-06 09:00 dhd_oob_gpio_num
-rw-r--r-- root     root         4096 2015-01-06 09:00 disable_proptx
-rw-rw---- root     root         4096 2015-01-06 08:59 firmware_path
-r--r--r-- root     root         4096 2015-01-06 09:00 info_string
-rw-r--r-- root     root         4096 2015-01-06 09:00 instance_base
-rw-rw---- root     root         4096 2015-01-06 09:00 nvram_path
-rw-r--r-- root     root         4096 2015-01-06 09:00 op_mode
-rw------- root     root         4096 2015-01-06 09:00 passive_channel_skip

这里面的参数,有些是只读的,有些是可读写的,这些参数是怎么与驱动代码联系到一起的?
就是依赖驱动里面module_param定义。
如上面的dhd_msg_level、firmware_path的定义,在驱动代码中如下:
module_param(dhd_msg_level, int, 0644);
module_param_string(firmware_path, firmware_path, MOD_PARAM_PATHLEN, 0660);
同时我们还能在代码中见到module_param(iw_msg_level, int, 0);
最后一个参数为0的,
但在/sys/module/wlan_bcmdhd/parameters目录下却看不到iw_msg_level参数,
是因为module_param定义中最后一个参数为参数的操作权限,与linux的文件权限定义一样,
如果定义为0了,对用户层就是不可读写的,用户层也就不可见了。
对于可写的参数,驱动层修改参数后,用户层读到的数据也会跟着变了,
而用户层修改参数后,驱动层读到的参数也会跟着变。
也就是说驱动与用户层操作的是同一个变量。

版权声明:本文为博主原创文章,未经博主允许不得转载。

linux的mmc_spi学习笔记1

内核为linux3.0 硬件平台为:龙芯1B开发板 1、驱动文件结构: mmc驱动共分为三个目录:card/、core/、host/ card目录下的驱动文件是卡的...
  • lqx4_3
  • lqx4_3
  • 2011年10月31日 13:55
  • 3732

Android设备使用网络连接调试

最近遇到一个问题,没有usb接口怎么让Android设备与PC机连接起来?后来同事告诉我,原来可以利用网络使其连接起来,这样调试起来就方便多了,还好有个网口提供网络的连接。其实很简单,只需要向syst...

Linux驱动中断函数参数详解

中断函数参数分析总结 Int request_irq (unsigned int irq, irq_handler_t handler, unsigned long flags, const char...
  • sum_TW
  • sum_TW
  • 2017年06月15日 19:49
  • 2751

15 linux驱动模块的参数

模块参数是用于在加载驱动模块时,指定模块里面的特定变量的具体值.实现方法: 1). #include 2). 在驱动源码里定义变量 static int num = 0; //当加...
  • jklinux
  • jklinux
  • 2017年06月06日 11:49
  • 509

Linux tty驱动学习 - 在用户空间设置串口参数操作流程

用户在使用串口的时候,需要在用户空间设置串口属性,一种是直接通过驱动的ioctl去操作,但常用的方法是使用glibc的库函数来操作,比如常用的tcsetattr()和tcgetattr()函数。以tc...
  • sbctsp
  • sbctsp
  • 2016年01月14日 18:24
  • 1390

[转]移植linux-2.6.36内核后的ts及lcd驱动参数修改

本文转自:http://blogold.chinaunix.net/u4/120285/showart_2396199.html  移植linux-2.6.36内核及修改touchscreen及lc...

linux驱动调试之修改系统时钟中断定位系统僵死问题

在first_drv.c中故意引入错误,在点灯时引入死循环,当应用程序调用write函数就会在while里面卡住。 重新编译驱动,并拷贝到网络文件系统中,装载驱动并把灯点亮,但是系统...
  • PZ0605
  • PZ0605
  • 2017年06月10日 22:37
  • 155

DM6467的OV5642 Linux驱动程序开发(二)——Linux内核修改

1        修改vpif驱动程序 由于ov5642是由vpif进行管理,而原先的vpif驱动程序不支持sensorraw格式,所以需要修改vpif驱动程序以兼容sensor raw格式,这时首...

linux LCD驱动中的LCD参数

1.kernel版本:linux-2.6.34 开发板:PW2440 CPU:S3C3440 LCD:3.5 寸TFT(320×240),Model Name LQ035NC111 2.LCD...

Linux LCD驱动中的LCD参数

kernel版本:linux-2.6.34 开发板:PW2440 CPU:S3C3440 LCD:3.5 寸TFT(320×240),Model Name LQ035NC111 LCD的参数设定是需要...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux驱动参数及参数的设置及修改
举报原因:
原因补充:

(最多只允许输入30个字)