在加載一個(gè).ko模塊時(shí),也可以像應(yīng)用程序那樣,通過(guò)命令行傳入一些參數(shù),這個(gè)過(guò)程發(fā)生在調(diào)用模塊初始化函數(shù)之前。
內(nèi)核支持的參數(shù)類(lèi)型有:bool、invbool(反轉(zhuǎn)值bool類(lèi)型)、charp(字符串指針)、short、int、long、ushort、uint、ulong。這些類(lèi)型又可以復(fù)合成對(duì)應(yīng)的數(shù)組類(lèi)型。
具體用法,在驅(qū)動(dòng)中定義三個(gè)變量baudrate、port、name:
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_param和module_param_array宏聲明這些變量為模塊參數(shù)。說(shuō)明:
module_param(name,type,perm)
module_param_array(name,type,nump,perm)
name:變量的名字
type:變量或數(shù)組元素的類(lèi)型
nump:數(shù)組元素個(gè)數(shù)的指針,可選
perm:在sysfs文件系統(tǒng)中對(duì)應(yīng)文件的權(quán)限屬性。
權(quán)限的取值參考頭文件。
修改這三個(gè)變量的值,即加載模塊時(shí)傳參:
insmod user.ko baudrate=115200 port=1,2,3,4 name="virtual-serial"
-
模塊
+關(guān)注
關(guān)注
7文章
2837瀏覽量
53292 -
內(nèi)核
+關(guān)注
關(guān)注
4文章
1468瀏覽量
42877 -
驅(qū)動(dòng)
+關(guān)注
關(guān)注
12文章
1956瀏覽量
88536 -
Linux
+關(guān)注
關(guān)注
88文章
11760瀏覽量
219036
發(fā)布評(píng)論請(qǐng)先 登錄
linux 了解內(nèi)核模塊的原理 《Rice linux 學(xué)習(xí)開(kāi)發(fā)》
Linux 內(nèi)核模塊工作原理及內(nèi)核模塊編譯案例
Linux內(nèi)核模塊間通訊方法
Linux內(nèi)核模塊程序結(jié)構(gòu)
Linux內(nèi)核模塊與應(yīng)用程序的對(duì)比
高效學(xué)習(xí)Linux內(nèi)核——內(nèi)核模塊編譯
《Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解》第4章、Linux內(nèi)核模塊
什么是 Linux 內(nèi)核模塊?
嵌入式LINUX系統(tǒng)內(nèi)核和內(nèi)核模塊調(diào)試教程
如何在Petalinux創(chuàng)建Linux內(nèi)核模塊?
嵌入式LINUX系統(tǒng)內(nèi)核和內(nèi)核模塊調(diào)試
Linux驅(qū)動(dòng)內(nèi)核模塊參數(shù)介紹
評(píng)論