1、insmod命令
在Linux系統下,insmod命令用於將給定的模塊加載到內核中去,Linux系統有許多功能是通過模塊的方式,在需要時才載入kernel,這樣做可以使kernel較為精簡,進而提高效率,這類可載入的模塊,通常是設備驅動程序。
(1)命令語法
insmod(選項)(參數)
(2)常用選項說明
-f:不檢查目前kernel版本與模塊編譯時的kernel版本是否一致,強制將模塊載入。
-k:將模塊設置為自動卸載。
-m:輸出模塊的載入信息。
-o<模塊名稱>:指定模塊的名稱,可使用模塊文件的文件名。
-p:測試模塊是否能正確載入到kernel。
-s:將所有信息記錄在系統記錄文件中。
-v:執行時顯示詳細的信息。
-x:不要匯出模塊的外部符號。
-X:匯出模塊所有的外部符號
(3)參數
內核模塊:指定要加載的內核模塊文件
(4)實例
加載一個簡單的hello.ko內核模塊,並查看加載結果:
# insmod hello.ko # lsmod | grep “hello”
運行結果如下所示:
2、rmmod命令
在Linux系統下,rmmod命令用於從當前運行的內核中移除指定的內核模塊,執行rmmod命令,可刪除不需要的模塊。
(1)命令語法
rmmod(選項)(參數)
(2)常用選項說明
-v:顯示指令執行的詳細信息。
-f:強制移除模塊,該選項比較危險。
-w:等待着,直到模塊能夠被移除時再移除模塊。
-s:向系統日志(syslog)發送錯誤信息。
(3)參數
模塊名稱:要移除的模塊的名稱
(4)實例
將hello內核模塊進行移除:
# lsmod | grep “hello” # rmmod hello # lsmod | grep “hello”
運行結果如下所示:
3、lsmod命令
在Linux系統下,lsmod命令用於顯示已經加載到內核中的模塊的狀態信息,運行lsmod命令后會列出所有已經載入系統的模塊。
(1)語法
lsmod
(2)實例
查看當前系統已經載入的模塊:
# lsmod
運行結果如下:
在上面顯示的結果中:
第一列:表示模塊的名稱;
第二列:表示模塊的大小;
第三列:表示依賴模塊的個數;
第四列:表示依賴模塊的內容。
4、modinfo命令
在Linux系統下,可以使用modinfo命令顯示給定模塊的詳細信息。
(1)語法
modinfo(選項)(參數)
(2)常用選項說明
-a:顯示模塊的作者。
-d:顯示模塊的描述信息。
-l:顯示模塊的許可證信息。
-p:顯示模塊的參數信息。
-n:顯示模塊對應的文字信息。
(3)參數
模塊名:要顯示詳細信息的模塊名稱。
(4)實例
顯示hello.ko模塊的信息:
# modinfo hello.ko
運行結果如下所示:
4、modprobe命令
Linux系統下,modprobe命令用於智能地向內核中加載模塊或者從內核中移除模塊。
(1)語法
modprobe(選項)(參數)
(2)常用選項說明
-a或--all:載入全部的模塊。
-c或--show-conf:顯示所有模塊的設置信息。
-d或--debug:使用排錯模式。
-r或--remove:當模塊閑置不用時,即自動卸載模塊。
-v或--verbose:執行時顯示詳細信息。
-V或--version:顯示版本信息。
-help:顯示命令幫助信息。
(3)參數
模塊名:要加載或移除的模塊名稱。
(4)實例
加載hello.ko模塊:
先將要加載的模塊拷貝到/lib/modules/“uname -r”目錄下,uname –r表示內核版本號
# cp hello.ko /lib/modules/“uname -r” # depmod # modprobe hello.ko # lsmod | grep “hello” # modprobe -r hello # lsmod | grep hello
運行結果如下所示:
參考:
https://man.linuxde.net/insmod
https://man.linuxde.net/rmmod
https://man.linuxde.net/lsmod
https://man.linuxde.net/modprobe