内核模块相关命令:lsmod,depmod,modprob...
lsmod
功能:列出內(nèi)核已載入模塊的狀態(tài)
用法:lsmod
描述:
????lsmod 以美觀的方式列出/proc/modules的內(nèi)容。
????輸出為:
????Module(模塊名)????Size(模塊大小)? ?Used by(被...使用)
?
eg.?ne2k_pci?????????? 8928?????????????? 0
???? 8390???????????????? 9472????????????? 1 ne2k_pci
?
????在/proc/modules中相應(yīng)的是:
??? (模塊名,模塊大小,被...使用,模塊地址(猜的,以后確認(rèn)))?
??? ne2k_pci 8928 0 - Live 0x3086400
??? 8390 9472?1 ne2k_pci , Live 0xe086000
?
depmod
功能:分析可加載模塊的依賴性,生成modules.dep文件和映射文件。
用法:depmod [-b basedir] [-e] [-F System.map] [-n] [-v] [version] [-A]
????????depmod [-e] [-F System.map] [-n] [-v] [version] [filename...]
描述:
????Linux內(nèi)核模塊可以為其它模塊提供提供服務(wù)(在代碼中使用EXPORT_SYMBOL),這種服務(wù)被稱作"symbols"。若第二個(gè)模塊使用了這個(gè)symbol,則該模塊很明顯依賴于第一個(gè)模塊。這些依賴關(guān)系是非常繁雜的。
????
????depmod讀取在/lib/modules/version 目錄下的所有模塊,并檢查每個(gè)模塊導(dǎo)出的symbol和需要的symbol,然后創(chuàng)建一個(gè)依賴關(guān)系列表。默認(rèn)地,該列表寫入到/lib/moudules/version目錄下的modules.dep文件中。若命令中的filename有指定的話,則僅檢查這些指定的模塊(不是很有用)。
?
????若命令中提供了version參數(shù),則會(huì)使用version所指定的目錄生成依賴,而不是當(dāng)前內(nèi)核的版本(uname -r 返回的)。
????????????????????????????????
選項(xiàng):
????-b basedir? --basedir basedir? 若你的模塊并沒有正確的在/lib/mdules/version下,可以指定目錄生成依賴。
????-e? --errsyms? 和-F選項(xiàng)一起使用,當(dāng)一個(gè)模塊需要的symbol在其它模塊里面沒有提供時(shí),做出報(bào)告。正常情況下,模塊沒有提供的symbol都在內(nèi)核中有提供。
????-F? --filesyms System.map 提供一個(gè)System.map文件(在內(nèi)核編譯時(shí)生成的)許-e選項(xiàng)報(bào)告出unresolved symbol。
????-n? --dry_run? 將結(jié)果modules.dep和各種映射文件輸出到標(biāo)準(zhǔn)輸出(stdout),而不是寫到模塊目錄下。
????-A --quick? 檢查是否有模塊比modues.dep中的模塊新,若沒有,則退出不重新生成文件。
?
modprobe
功能:Linux內(nèi)核添加刪除模塊
用法:
????modprobe [ -v ] [ -V ]?[-C config-file] [ -n ]?[ -i ] [ -q ] [ -o modulename] [ modulename ] [ module parameters ... ]
????modprobe [ -r ] [ -v ] [ -n ] [ -i ] [ modulename ... ]
????modprobe [ -l ] [ -t dirname ] [ wildcard ]
????modprobe [ -c ]
描述:
????modprobe可智能地添加和刪除Linux內(nèi)核模塊(為簡(jiǎn)便起見,模塊名中'_'和'-'是一樣的)。modprobe會(huì)查看模塊目錄/lib/modules/'uname -r'里面的所有模塊和文件,除了可選的/etc/modprobe.conf配置文件和/etc/modprobe.d目錄外。
?
????modprobe需要一個(gè)最新的modules.dep文件,可以用depmod來生成。該文件列出了每一個(gè)模塊需要的其他模塊,modprobe使用這個(gè)去自動(dòng)添加或刪除模塊的依賴。
?
選項(xiàng):
????-v --verbose? 顯示程序在干什么,通常在出問題的情況下,modprobe才顯示信息。
????-C?--config??重載(^_^,意思取C++的重載)默認(rèn)配置文件(/etc/modprobe.conf或/etc/modprobe.d)。
????-c?--showconfig? 輸出配置文件并退出
????-n --dry-run? 可以和-v選項(xiàng)一起使用,調(diào)試非常有用
????-i --ignore-install --ignore-remove 該選項(xiàng)會(huì)使得modprobe忽略配置文件中的,在命令行上輸入的install和remove命令。
????-q --quiet 一般modprobe刪除或插入一個(gè)模塊時(shí),若沒有找到會(huì)提示錯(cuò)誤。使用該選項(xiàng),會(huì)忽略指定的模塊,并不提示任何錯(cuò)誤信息。
????-r --remove? 該選項(xiàng)會(huì)導(dǎo)致modprobe去刪除,而不是插入一個(gè)模塊。通常沒有沒有理由去刪除內(nèi)核模塊,除非是一些有bug的模塊。你的內(nèi)核也不一定支持模塊的卸載。
????-V --verssion 版本信息
????-f --force? 和同時(shí)使用--force-vermagic ,--force-modversion一樣。使用該選項(xiàng)是比較危險(xiǎn)的。
????-l --list 列出所有模塊
????-a --all 插入所有命令行中的模塊
????-t --type 強(qiáng)制 -l 顯示dirname中的模塊
????-s --syslog 錯(cuò)誤信息寫入syslog
??????
modinfo
功能:顯示內(nèi)核模塊的信息
用法:
????modinfo [ -0 ] [ -F field] [modulename | filename ... ]
????modinfo -V
????modinfo -h
描述:
????modinfo列出Linux內(nèi)核中命令行指定的模塊的信息。若模塊名不是一個(gè)文件名,則會(huì)在/lib/modules/version 目錄中搜索,就像modprobe一樣。
????
????modinfo默認(rèn)情況下,為了便于閱讀,以下面的格式列出模塊的每個(gè)屬性:fieldname : value。
?
選項(xiàng):
????-V --version 版本
????-F --field 僅在一行上顯示field值,這對(duì)于腳本較為有用。常用的field有:author, description, licence, param, depends, alias, filename。
????-0 --NULL 使用'/0'字符分隔field值,而不是一個(gè)新行。對(duì)腳本比較有用。
????-a -d -l -p -n 這些分別是author, description, license, param ,filename的簡(jiǎn)短形式。
?
?
insmod
功能:向Linux內(nèi)核中插入一個(gè)模塊
用法:insmod [filename] [modue options ...]
描述:
????insmod是一個(gè)向內(nèi)核插入模塊的小程序:若文件名是一個(gè)連字符'-',模塊從標(biāo)準(zhǔn)輸入輸入。大多數(shù)用戶使用modprobe,因?yàn)樗容^智能化。
?
rmmod
功能:刪除內(nèi)核中的一模塊
用法:rmmod [ -f ] [ -w ] [ -s ] [ -v ] [ modulename ]
描述:
????rmmod是一個(gè)可以從內(nèi)核中刪除模塊的小程序,大多數(shù)用戶使用modprobe -r去刪除模塊。
?
選項(xiàng):
????-v --verbose? 顯示程序正在做些什么,一般只顯示執(zhí)行時(shí)的錯(cuò)誤信息。
????-f?--force? 該選項(xiàng)是非常危險(xiǎn):除非編譯內(nèi)核時(shí),CONFIG_MODULE_FORCE_UNLOAD被設(shè)置該命令才有效果,否則沒效果。用該選項(xiàng)可以刪除正在被使用的模塊,設(shè)計(jì)為不能刪除的模塊,或者標(biāo)記為unsafe的模塊。
????-w --wait 通常,rmmod拒絕刪除正在被使用的模塊。使用該選項(xiàng)后,指定的模塊會(huì)被孤立起來,直到不被使用。
????-s? --syslog? 將錯(cuò)誤信息寫入syslog,而不是標(biāo)準(zhǔn)錯(cuò)誤(stderr)。
????-V? --version 版本信息
轉(zhuǎn):http://blog.csdn.net/future_fighter/article/details/3862795
轉(zhuǎn)載于:https://blog.51cto.com/lixin752299/2061388
總結(jié)
以上是生活随笔為你收集整理的内核模块相关命令:lsmod,depmod,modprob...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: apache tomcat 整合
- 下一篇: 关于嵌套循环的循环初始化语句问题: