Linux中mod相關的命令 內核模塊化 mod相關命令都是用來動態加載內核模塊/驅動程序模塊
http://baike.baidu.com/link?url=lxiKxFvYm-UfJIxMjzMvMcGkzCwlxrj5L7YGKGd90hKX0iVU1Du5fa-6GvG0sw_hIoxwNh9rvwM9C2y3NN1RRa 鳥哥私房菜
module-init-tools:Linux內核可加載模塊管理工具
rpm -ql module-init-tools
/etc/depmod.d
/etc/depmod.d/dist.conf
/etc/modprobe.d
/etc/modprobe.d/dist-alsa.conf
/etc/modprobe.d/dist-oss.conf
/etc/modprobe.d/dist.conf
/etc/modprobe.d/local.conf
/sbin/depmod
/sbin/insmod
/sbin/insmod.static
/sbin/lsmod
/sbin/modinfo
/sbin/modprobe
/sbin/rmmod
/sbin/weak-modules
其實跟程序的動態庫的原理和作用一樣,內核在用到的時候調用相應的內核模塊,內核模塊化
Linux驅動程序有兩種加載方式:一種是靜態地編譯進內核,內核啟動時自動加載,另一種是編寫為內核/驅動模塊,使用insmod命令將模塊動態加載到正在運行的內核,
不需要時用rmmod命令將模塊卸載。

LVS的IPVS模塊也是采用動態加載的方式
命令有六個:modprobe(Linux 2.6新增)、depmod、insmod 、lsmod、rmmod、modinfo
mod:module內核模塊
modprobe、insmod和depmod包含在一個名為modutils或mod-utils的工具包
modprobe
簡介
Linux命令:modprobe 。
功能說明:自動處理可載入模塊。
語 法:modprobe [-acdlrtvV][--help][模塊文件][符號名稱 = 符號值]。
補充說明:modprobe可載入指定的個別模塊,或是載入一組相依的模塊。modprobe會根據depmod所產生的相依關系,決定要載入哪些模塊。若在載入過程中發生錯誤,在modprobe會卸載整組的模塊。
內容
1、modprobe 命令是根據depmod -a的輸出/lib/modules/kernel version/modules.dep來加載全部的所需要模塊。
2、刪除模塊的命令是:modprobe -r filename。
3、系統啟動后,正常工作的模塊都在/proc/modules文件中列出。使用lsmod命令也可顯示相同內容。
4、在內核中有一個“Automatic kernel module loading"功能被編譯到了內核中。當用戶嘗試打開某類型的文件時,內核會根據需要嘗試加載相應的模塊。
/etc/modules.conf或 /etc/modprobe.conf文件是一個自動處理內核模塊的控制文件。
cat /lib/modules/version/modules.dep
cat: /lib/modules/version/modules.dep: No such file or directory
參數
-a或--all 載入全部的模塊。
-c或--show-conf 顯示所有模塊的設置信息。
-d或--debug 使用排錯模式。
-l或--list 顯示可用的模塊。
-r或--remove 模塊閑置不用時,即自動卸載模塊。
-t或--type 指定模塊類型。
-v或--verbose 執行時顯示詳細的信息。
-V或--version 顯示版本信息。
-help 顯示幫助。
操作
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 -r igb 刪除igb模塊
使用模塊選項有兩個方法
第一個 加載igb的時候到igb.conf文件里找
echo "options igb max_vfs=7" >>/etc/modprobe.d/igb.conf
modprobe igb
第二個 在命令里指定選項
modprobe igb max_vfs=7
深度實踐KVM P49
depmod
模塊依賴程序
/sbin/depmod -a
遍歷文件/lib/modules/內核版本/modules.dep (模塊依賴關系 該文件由depmod -a 命令建立的,保存了內核模塊的依賴關系,使得在裝入指定模塊前裝入那些事先需要裝入的模塊
insmod
載入模塊
insmod first_time.ko
lsmod
列出內核已加載的模塊
lsmod
Module Size Used by
kvm 337772 1 kvm_intel kvm內核模塊
ipmi_si 44687 1 acpi_ipmi
ipmi_msghandler 38826 2 acpi_ipmi,ipmi_si
rmmod
卸載模塊
rmmod first_time.ko
modinfo
查看模塊信息
modinfo first_time.ko
[root@localhost huage]# lsmod //列出當前系統已加載的模塊
Module Size Used by
usb_storage 39114 0
cdrom 34035 1 sr_mod
。。。。。。
。。。。。。
。。。。。。
[root@localhost huage]# lsmod |grep usb-storage
[root@localhost huage]# modprobe -r usb_storage //刪除模塊;刪除模塊時需要加‘-r’參數
[root@localhost huage]# lsmod |grep usb
[root@localhost huage]# modprobe usb-storage //添加模塊;添加模塊時,直接加模塊名就可以了
[root@localhost huage]# lsmod |grep usb
usb_storage 39114 0
//使用modprobe命令添加或刪除模塊時,‘_’和‘-’沒有區別,即下划線和中划線沒有區別
不要跟ldd命令搞混了,ldd是顯示程序所用的動態庫 load dynamic library
Linux就這個范兒 第15章 七種武器
http://www.cnblogs.com/MYSQLZOUQI/p/5335649.html
modprobe、insmod和depmod包含在一個名為modutils或mod-utils的工具包內。這些工具幫助你自動或手動地裝載模塊。有的時候你想人為控制一個模塊什么時候被裝入,例如當裝入某個模塊會導致問題時,
你不想讓某個模塊被kernel自動裝入,你可以把這個模塊列到黑名單中不讓它跨進內核的大門
在Linux 2.6之前,驅動模塊是智能型的,它的加載是通過掃描總線尋找它識別的設備ID號來實現。
Linux2.6把這部分功能做了梳理,化復雜為簡單,硬件檢測外部化。
利用外部程序以及模塊加載器來判斷模塊支持哪些設備。
除了insmod與rmmod外,Linux 2.6加載命令還有modprobe。modprobe同時會加載當前模塊所依賴的其他模塊。
在Red Hat Linux中,還可以使用PnP設備的檢測程序kudzu來檢測和配置硬件
