日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux卸载设备驱动命令,Linux设备驱动程序加载/卸载方法 insmod和modprobe命令

發布時間:2023/12/31 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux卸载设备驱动命令,Linux设备驱动程序加载/卸载方法 insmod和modprobe命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

linux加載/卸載驅動有兩種方法。

1.modprobe

注:在使用這個命令加載模塊前先使用depmod -a命令生成modules.dep文件,該文件位于/lib/modules/$(uname -r)目錄下;

modprobe命令智能地向內核中加載模塊或者從內核中移除模塊,可載入指定的個別模塊,或是載入一組相依的模塊。modprobe會根據depmod所產生的依賴關系,決定要載入哪些模塊。若在載入過程中出錯,modprobe會卸載整組的模塊。

載入模塊的命令:

(1) 載入指定的模塊:modprobe drv.ko

(2) 載入全部模塊:modprobe -a

卸載模塊的命令:modprobe -r drv.ko

modprobe命令用于智能地向內核中加載模塊或者從內核中移除模塊。

modprobe可載入指定的個別模塊,或是載入一組相依的模塊。modprobe會根據depmod所產生的相依關系,決定要載入哪些模塊。若在載入過程中發生錯誤,在modprobe會卸載整組的模塊。

選項

-a或--all:載入全部的模塊;

-c或--show-conf:顯示所有模塊的設置信息;

-d或--debug:使用排錯模式;

-l或--list:顯示可用的模塊;

-r或--remove:模塊閑置不用時,即自動卸載模塊;

-t或--type:指定模塊類型;

-v或--verbose:執行時顯示詳細的信息;

-V或--version:顯示版本信息;

-help:顯示幫助。

參數 ? ? ? ? ? ? ? ?模塊名:要加載或移除的模塊名稱。

實例

查看modules的配置文件:

modprobe -c

這里,可以查看modules的配置文件,比如模塊的alias別名是什么等。會打印許多行信息,例如其中的一行會類似如下:

alias symbol:ip_conntrack_unregister_notifier ip_conntrack

列出內核中所有已經或者未掛載的所有模塊:

modprobe -l

這里,我們能查看到我們所需要的模塊,然后根據我們的需要來掛載;其實modprobe -l讀取的模塊列表就位于/lib/modules/`uname -r`目錄中;其中uname -r是內核的版本,例如輸出結果的其中一行是:

/lib/modules/2.6.18-348.6.1.el5/kernel/net/netfilter/xt_statistic.ko

掛載vfat模塊:

modprobe vfat

這里,使用格式modprobe?模塊名來掛載一個模塊。掛載之后,用lsmod可以查看已經掛載的模塊。模塊名是不能帶有后綴的,我們通過modprobe -l所看到的模塊,都是帶有.ko或.o后綴。

移除已經加載的模塊:

modprobe -r 模塊名

這里,移除已加載的模塊,和rmmod功能相同。

2. insmod/rmmod

insmod需要指定模塊的絕對路徑,和modprobe不同,insmod并且不會把載入模塊的依賴模塊也載入進來。

用法:insmod drv.ko

rmmod只需要模塊的名字即可實現模塊的卸載,同樣也不會把待卸載模塊的依賴模塊進行卸載。

用法:rmmod drv.ko

lsmod:顯示已載入系統的模塊

insmod(install module)

功能說明:載入模塊 install loadable kernel module

語法:insmod [-fkmpsvxX][-o ][模塊文件][符號名稱 = 符號值]

參數:

-f  不檢查目前kernel版本與模塊編譯時的kernel版本是否一致,強制將模塊載入。

-k  將模塊設置為自動卸除。

-m  輸出模塊的載入信息。

-o??  指定模塊的名稱,可使用模塊文件的文件名。

-p  測試模塊是否能正確地載入kernel。

-s  將所有信息記錄在系統記錄文件中。

-v  執行時顯示詳細的信息。

-x  不要匯出模塊的外部符號。

-X  匯出模塊所有的外部符號,此為預設置。

使用說明:Linux有許多功能是通過模塊的方式,在需要時才載入kernel。如此可使kernel較為精簡,進而提高效率,以及保有較大的彈性。這類可載入的模塊,通常是設備驅動程序。

insmod命令主要用于在Linux 2.4內核之前加載Linux內核模塊命令。對于通過此命令加載的Linux內核模塊,系統不僅不會自動解決內核模塊之間的依賴關系,而且還要求將模塊路徑寫詳細。所以在Linux 2.6內核出現時,此命令已漸漸被遺忘。

加載RAID1陣列級別模塊,如下所示:

[root@rhel5?boot]#?insmod?/lib/modules/2.6.

18-8.el5/kernel/drivers/md/raid1.ko

[root@rhel5?boot]#?lsmod?|grep?raid1

raid1??????????????????25153??0

從以上顯示結果可知,RAID1模塊已加載成功。只是在使用insmod命令加載模塊時,需要使用絕對路徑方能加載,且加載時無法自動解決依賴關系。

擴展閱讀:insmod 和modprobe的區別

insmod 與 modprobe 都是載入 kernel module,不過一般差別于 modprobe 能夠處理 module 載入的相依問題。

比方你要載入 a module,但是 a module 要求系統先載入 b module 時,直接用 insmod 掛入通常都會出現錯誤訊息,不過 modprobe 倒是能夠知道先載入 b module??后才載入 a module,如此相依性就會滿足。

不過 modprobe 并不是大神,不會厲害到知道 module 之間的相依性為何,該程式是讀取 /lib/modules/2.6.xx/modules.dep 檔案得知相依性的。而該檔案是透過?depmod?程式所建立。

總結

以上是生活随笔為你收集整理的linux卸载设备驱动命令,Linux设备驱动程序加载/卸载方法 insmod和modprobe命令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。