在加載一個.ko模塊時,也可以像應用程序那樣,通過命令行傳入一些參數,這個過程發生在調用模塊初始化函數之前。
內核支持的參數類型有:bool
、invbool
(反轉值bool類型)、charp
(字符串指針)、short
、int
、long
、ushort
、uint
、ulong
。這些類型又可以復合成對應的數組類型。
具體用法,在驅動中定義三個變量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
宏聲明這些變量為模塊參數。說明:
module_param(name,type,perm)
module_param_array(name,type,nump,perm)
name
:變量的名字
type
:變量或數組元素的類型
nump
:數組元素個數的指針,可選
perm
:在sysfs文件系統中對應文件的權限屬性。
權限的取值參考
頭文件。
修改這三個變量的值,即加載模塊時傳參:
insmod user.ko baudrate=115200 port=1,2,3,4 name="virtual-serial"
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
模塊
+關注
關注
7文章
2695瀏覽量
47433 -
內核
+關注
關注
3文章
1372瀏覽量
40280 -
驅動
+關注
關注
12文章
1838瀏覽量
85263 -
Linux
+關注
關注
87文章
11292瀏覽量
209335
發布評論請先 登錄
相關推薦
Linux 內核模塊工作原理及內核模塊編譯案例
一個內核模塊至少包含兩個函數,模塊被加載時執行的初始化函數init_module()和模塊被卸載時執行的結束函數cleanup_module()。
發表于 09-23 09:39
?2501次閱讀
Linux內核模塊間通訊方法
Linux內核模塊間通訊方法非常的多,最便捷的方法莫過于函數或變量符號導出,然后直接調用。默認情況下,模塊與模塊之間、模塊與
發表于 06-07 16:23
?2533次閱讀
Linux內核模塊與應用程序的對比
用戶態程序Linux內核模塊運行用戶空間 內核空間 入口main() module_init()指定; 出口無 module_exit()指定; 編譯gcc –cMakefile 連接
發表于 07-03 03:15
高效學習Linux內核——內核模塊編譯
情況下,內核模塊應遵循GPL 兼容許可權。Linux2.6 內核模塊最常見的是以MODULE_LICENSE(“Dual BSD/GPL”)語句聲明模塊采用BSD/GPL 雙LICEN
發表于 09-24 09:11
如何在Petalinux創建Linux內核模塊?
--enable”,能創建Linux內核模塊,包括c源代碼文件,Makefile,Yocto的bb文件。相關文件放在目錄“ project-spec / meta-user / recipes-modules”中
Linux內核模塊參數傳遞與sysfs文件系統
函數傳參的內核傳參機制,編寫內核程序時只要實現傳參接口,用戶在加載內核模塊時即可傳入指定參數,使得內核模塊更加靈活。
發表于 06-07 16:23
?2126次閱讀
linux驅動程序如何加載進內核
,需要了解Linux內核的基本概念和API。以下是一些關鍵概念: 1.1 內核模塊:Linux內核模塊是一種動態加載和卸載的代碼,可以在不重
評論