在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 網路的引數及設定
常用網路協議 ipv4 ip32位 二進位制 11111110.11111110.11111110.11111110.254.254.254.254 子網掩碼 用來表示ip的網路位和主機位 網路為表示網路區域 主機位表示網路區域中的某台主機 netmask非0位所對應的ip位址數值為這個ip的網路位...
LCD驅動中引數的設定
在lcd驅動程式中,需要我們根據lcd datasheet來設定相應的引數,這些引數包括 pixclock,left margin,right margin,upper margin,lower margin,hsync len,vsync len,vbp,vfb,vspw,hbp,hfp,hspw...
執行緒池核心引數及引數設定
2.執行緒池引數設定 threadpoolexecutor是建立執行緒池的核心類,它定義了一些建構函式用來建立執行緒池,如下是它的其中乙個建構函式 public threadpoolexecutor int corepoolsize,int maximumpoolsize,long keepaliv...