Linux中mod相关的命令 内核模块化 mod相关命令都是用来动态加载内核模块/驱动程序模块...
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 ?
載入模塊
?
?
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
卸載模塊
?
modinfo
查看模塊信息
?
[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來檢測和配置硬件
總結
以上是生活随笔為你收集整理的Linux中mod相关的命令 内核模块化 mod相关命令都是用来动态加载内核模块/驱动程序模块...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS过滤空格,回车符。
- 下一篇: Linux中基于snmp协议的mrtg安