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 程式所建立。

modprobe:
modprobe可載入指定的個別模塊,或是載入一組相依的模塊。modprobe會根據depmod所產生的相依關係,決定要載入哪些模塊。若在載入過程中發生錯誤,在modprobe會卸載整組的模塊。
-a或--all  載入全部的模塊。
-c或--show-conf  顯示所有模塊的設置信息。
-d或--debug  使用排錯模式。
-l或--list  顯示可用的模塊。
-r, --remove //若在命令指定模塊,則刪除指定模塊,否則,指定"自動清除"模式
-t或--type  指定模塊類型。
-v或--verbose  執行時顯示詳細的信息。
-V或--version  顯示版本信息。
-help  顯示幫助。
-C, --config configfile //指定配置文件.默認使用/etc/modules.conf文件為配置文件
modprobe -r ip_vs  # 刪除ip_vs模塊
modprobe -l | grep ip_vs  # 查看ip_vs模塊是否編譯進內核
lsmod -l | grep ip_vs  # 查看ip_vs模塊是否載入進內核

以下摘自:http://qzone.qq.com/blog/20423616-1234085714

核心模組的載入與移除: insmod, modprobe, rmmod
好 了,如果我想要自行手動載入模組,又該如何是好?有很多方法啦,最簡單而且建議的,是使用 modprobe 這個指令來載入模組, 這是因為 modprobe 會主動的去搜尋 modules.dep 的內容,先克服了模組的相依性後, 才決定需要載入的模組有哪些,很方便。至於 insmod 則完全由使用者自行載入一個完整檔名的模組, 並不會主動的分析模組相依性啊!
[[email protected] ~]# insmod [/full/path/module_name] [parameters] 範例一:請嘗試載入 /lib/modules/`uname -r`/kernel/fs/smbfs/smbfs.ko
[[email protected] ~]# insmod /lib/modules/`uname -r`/kernel/fs/smbfs/smbfs.ko
[[email protected] ~]# lsmod | grep smbfs
smbfs                  67897  0
對吧!他立刻就將該模組載入囉~這個需要加入完整檔名啦!那如何移除這個模組呢?
[[email protected] ~]# rmmod [-fw] module_name
參數:
-f  :強制將該模組移除掉,不論是否正被使用;
-w  :若該模組正被使用,則 rmmod 會等待該模組被使用完畢後,才移除他!
範例:
範例一:將剛剛載入的 smbfs 模組移除!
[[email protected] ~]# rmmod smbfs
帥吧!移除掉了。不過,如前所述的, insmod 實在不怎麼人性化,近年來, 我們都建議直接使用 modprobe 來處理模組載入的問題,這個指令的用法是:
[[email protected] ~]# modprobe [-lcf] module_name
參數:
-c  :列出目前系統所有的模組!(更詳細的代號對應表)
-l  :列出目前在 /lib/modules/`uname -r`/kernel 當中的所有模組完整檔名;
-f  :強制載入該模組;
-r  :類似 rmmod ,就是移除某個模組囉~
範例:
範例一:載入 smbfs 模組
[[email protected] ~]# modprobe smbfs
# 很方便吧!不需要知道完整的模組檔名,這是因為該完整檔名已經記錄到
# /lib/modules/`uname -r`/modules.dep 當中的緣故啊!如果要移除的話:
[[email protected] ~]# modprobe -r smbfs
使用 modprobe 真的是要比 insmod 方便很多!因為他是直接去搜尋 modules.dep 的紀錄, 所以囉,當然可以克服模組的相依性問題,而且還不需要知道該模組的詳細路徑呢! 好方便! ^_^

本文来自: (www.91linux.com) 详细出处参考:http://www.91linux.com/html/article/kernel/20090307/15968.html

Hits: 450

By tony

自由軟體愛好者~喜歡不斷的思考各種問題,有新的事物都會想去學習嘗試 做實驗並熱衷研究 沒有所謂頂天的技術 只有謙虛及不斷的學習 精進專業,本站主要以分享系統及網路相關知識、資源而建立。 Github http://stnet253.github.io

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料