linux modprobe

linux modprobe

modprobe是linux的一個命令,可載入指定的個別模組,或是載入一組相依的模組。modprobe會根據depmod所產生的相依關係,決定要載入哪些模組。若在載入過程中發生錯誤,在modprobe會解除安裝整組的模組。

小編還為您整理了以下內容,可能對您也有幫助:

Linux 裡的 modprobe 到底是幹嘛的?說載入模組,不懂這模組指的都是什麼?

modprobe(mole probe)

功能說明:自動處理可載入模組。

語  法:modprobe [-acdlrtvV][--help][模組檔案][符號名稱 = 符號值]

補充說明:modprobe可載入指定的個別模組,或是載入一組相依的模組。modprobe會根據depmod所產生的相依關係,決定要載入哪些模組。若在載入過程中發生錯誤,在modprobe會解除安裝整組的模組。

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

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

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

補充說明:modprobe可載入指定的個別模組,或是載入一組相依的模組。modprobe會根據depmod所產生的相依關係,決定要載入哪些模組。若在載入過程中發生錯誤,在modprobe會解除安裝整組的模組。

[舉例]

*檢視moles的配置檔案:

$modprobe -c

這裡,可以檢視moles 的配置檔案,比如模組的<a href="http://www.linuxso.com/command/%3Ca%20href=" http:="" www.linuxso.com="" command="" alias.html'="" target="_blank" style="color: rgb(8, 65, 214); text-decoration: none;">alias.html' target='_blank'>別名是什麼等。會列印許多行資訊,例如其中的一行會類似如下:

alias symbol:ieee80211_remove_wds_addr wlan

*列出核心中所有已經或者未掛載的所有模組:

$modprobe -l

這裡,我們能檢視到我們所需要的模組,然後根據我們的需要來掛載;其實modprobe -l 讀取的模組列表就位於 /lib/moles/'uname -r' 目錄中;其中uname -r 是核心的版本.例如輸出結果的其中一行是:

/lib/moles/2.6.27-7-generic/kernel/arch/x86/oprofile/oprofile.ko

*掛載vfat模組:

#modprobe vfat

這裡,使用格式"modprobe 模組名"來掛載一個模組。掛載之後,用lsmod可以檢視已經掛載的模組。模組名是不能帶有後綴的,我們通過modprobe -l 所看到的模組,都是帶有.ko 或.o字尾。

*移除已經載入的模組:

#modprobe -r 模組名

這裡,移除已載入的模組,和rmmod 功能相同。注意:模組名是不能帶有後綴的,我們通過modprobe -l 所看到的模組,都是帶有.ko 或.o字尾.

與核心模組操作相關的命令還有:lsmod modinfo depmod rmmod inmod modprobe

modprobe 命令是根據depmod -a的輸出/lib/moles/version/moles.dep來載入全部的所需要模組。  

刪除模組的命令是:modprobe -r filename  

系統啟動後,正常工作的模組都在/proc/moles檔案中列出。使用lsmod命令也可顯示相同內容。  

在核心中有一個“Automatic kernel mole loading"功能被編譯到了核心中。當用戶嘗試開啟某型別的檔案時,核心會根據需要嘗試載入相應的模組。/etc/moles.conf或 /etc/modprobe.conf檔案是一個自動處理核心模組的控制檔案。

參  數:

-a或--all  載入全部的模組。

-c或--show-conf  顯示所有模組的設定資訊。

-d或--debug  使用排錯模式。

-l或--list  顯示可用的模組。

-r或--remove  模組閒置不用時,即自動解除安裝模組。

-t或--type  指定模組型別。

-v或--verbose  執行時顯示詳細的資訊。

-V或--version  顯示版本資訊。

-help  顯示幫助。

瞭解更多開源相關,去LUPA社群看看吧。

linux:命令modprobe主要的作用是什麼?能不能說的通俗一點?謝謝

這個要聊聊模組了

初期linux的驅動程式是必須編譯在核心之中的(相應地驅動程式提供的是源程式以符合GNU規則,例如DFE530TX網絡卡的驅動就是ftp://www.scyld.com/pub/network/via-rhine.c),後來推廣使用以後一則感覺不方便、二則普通使用者也沒有能力自己編譯核心、三則當時核心不能太大,裡面驅動程式太多超過1M的話會癱掉,於是發明了模組(moles),就是事先將驅動程式編譯成mole,使用時再將他們裝載到系統裡以避免重新編譯核心。再經過發展以後,幾乎核心裡的大多數功能都能以模組形式存在,例如讀寫NTFS、支援PPP協議等等,所以模組功能已經不侷限於驅動程式了。

modprobe功能就是,對系統裡的模組進行增、減、安裝、刪除等等操作。

Linux 裡的 modprobe 到底是幹嘛的?說載入模組,不懂這模組指的都是什麼?

為保持

linux

核心的穩定與可持續發展,核心在發展過程中引進了可裝載模組這一特性。核心可裝載模組就是可在核心執行時載入到核心的一組程式碼。通常

,

我們會在兩個版本不同的核心上裝載同一模組失敗,即使是在兩個相鄰的補丁級(patch

level)版本上。這是因為核心在引入可裝載模組的同時,對模組採取了版本資訊校驗。這是一個與模組程式碼無關,卻與核心相連的機制。該校驗機制保證了核心裝載的模組是使用者認可的,且安全的。