內核模塊相關命令:lsmod,depmod,modprob...

lsmod
功能:列出內核已載入模塊的狀態
用法:lsmod
描述:
    lsmod 以美觀的方式列出/proc/modules的內容。
    輸出爲:
    Module(模塊名)    Size(模塊大小)   Used by(被...使用)
 
eg. ne2k_pci           8928               0
     8390                 9472              1 ne2k_pci
 
    在/proc/modules中相應的是:
    (模塊名,模塊大小,被...使用,模塊地址(猜的,以後確認)) 
    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內核模塊可以爲其它模塊提供提供服務(在代碼中使用EXPORT_SYMBOL),這種服務被稱作"symbols"。若第二個模塊使用了這個symbol,則該模塊很明顯依賴於第一個模塊。這些依賴關係是非常繁雜的。
    
    depmod讀取在/lib/modules/version 目錄下的所有模塊,並檢查每個模塊導出的symbol和需要的symbol,然後創建一個依賴關係列表。默認地,該列表寫入到/lib/moudules/version目錄下的modules.dep文件中。若命令中的filename有指定的話,則僅檢查這些指定的模塊(不是很有用)。
 
    若命令中提供了version參數,則會使用version所指定的目錄生成依賴,而不是當前內核的版本(uname -r 返回的)。
                                
選項:
    -b basedir  --basedir basedir  若你的模塊並沒有正確的在/lib/mdules/version下,可以指定目錄生成依賴。
    -e  --errsyms  和-F選項一起使用,當一個模塊需要的symbol在其它模塊裏面沒有提供時,做出報告。正常情況下,模塊沒有提供的symbol都在內核中有提供。
    -F  --filesyms System.map 提供一個System.map文件(在內核編譯時生成的)許-e選項報告出unresolved symbol。
    -n  --dry_run  將結果modules.dep和各種映射文件輸出到標準輸出(stdout),而不是寫到模塊目錄下。
    -A --quick  檢查是否有模塊比modues.dep中的模塊新,若沒有,則退出不重新生成文件。

 
modprobe
功能:Linux內核添加刪除模塊
用法:
    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內核模塊(爲簡便起見,模塊名中'_'和'-'是一樣的)。modprobe會查看模塊目錄/lib/modules/'uname -r'裏面的所有模塊和文件,除了可選的/etc/modprobe.conf配置文件和/etc/modprobe.d目錄外。
 
    modprobe需要一個最新的modules.dep文件,可以用depmod來生成。該文件列出了每一個模塊需要的其他模塊,modprobe使用這個去自動添加或刪除模塊的依賴。
 
選項:
    -v --verbose  顯示程序在幹什麼,通常在出問題的情況下,modprobe才顯示信息。
    -C --config  重載(^_^,意思取C++的重載)默認配置文件(/etc/modprobe.conf或/etc/modprobe.d)。
    -c --showconfig  輸出配置文件並退出
    -n --dry-run  可以和-v選項一起使用,調試非常有用
    -i --ignore-install --ignore-remove 該選項會使得modprobe忽略配置文件中的,在命令行上輸入的install和remove命令。
    -q --quiet 一般modprobe刪除或插入一個模塊時,若沒有找到會提示錯誤。使用該選項,會忽略指定的模塊,並不提示任何錯誤信息。
    -r --remove  該選項會導致modprobe去刪除,而不是插入一個模塊。通常沒有沒有理由去刪除內核模塊,除非是一些有bug的模塊。你的內核也不一定支持模塊的卸載。
    -V --verssion 版本信息
    -f --force  和同時使用--force-vermagic ,--force-modversion一樣。使用該選項是比較危險的。
    -l --list 列出所有模塊
    -a --all 插入所有命令行中的模塊
    -t --type 強制 -l 顯示dirname中的模塊
    -s --syslog 錯誤信息寫入syslog
      
modinfo
功能:顯示內核模塊的信息
用法:
    modinfo [ -0 ] [ -F field] [modulename | filename ... ]
    modinfo -V
    modinfo -h
描述:
    modinfo列出Linux內核中命令行指定的模塊的信息。若模塊名不是一個文件名,則會在/lib/modules/version 目錄中搜索,就像modprobe一樣。
    
    modinfo默認情況下,爲了便於閱讀,以下面的格式列出模塊的每個屬性:fieldname : value。
 
選項:
    -V --version 版本
    -F --field 僅在一行上顯示field值,這對於腳本較爲有用。常用的field有:author, description, licence, param, depends, alias, filename。
    -0 --NULL 使用'/0'字符分隔field值,而不是一個新行。對腳本比較有用。
    -a -d -l -p -n 這些分別是author, description, license, param ,filename的簡短形式。
 
 
insmod
功能:向Linux內核中插入一個模塊
用法:insmod [filename] [modue options ...]
描述:
    insmod是一個向內核插入模塊的小程序:若文件名是一個連字符'-',模塊從標準輸入輸入。大多數用戶使用modprobe,因爲它比較智能化。
 
rmmod
功能:刪除內核中的一模塊
用法:rmmod [ -f ] [ -w ] [ -s ] [ -v ] [ modulename ]
描述:
    rmmod是一個可以從內核中刪除模塊的小程序,大多數用戶使用modprobe -r去刪除模塊。
 
選項:
    -v --verbose  顯示程序正在做些什麼,一般只顯示執行時的錯誤信息。
    -f --force  該選項是非常危險:除非編譯內核時,CONFIG_MODULE_FORCE_UNLOAD被設置該命令纔有效果,否則沒效果。用該選項可以刪除正在被使用的模塊,設計爲不能刪除的模塊,或者標記爲unsafe的模塊。
    -w --wait 通常,rmmod拒絕刪除正在被使用的模塊。使用該選項後,指定的模塊會被孤立起來,直到不被使用。
    -s  --syslog  將錯誤信息寫入syslog,而不是標準錯誤(stderr)。
    -V  --version 版本信息
    

 以上內容是參考man翻譯的,若有疑問請用man ...查看原始文檔,翻譯可能有誤。

發佈了29 篇原創文章 · 獲贊 17 · 訪問量 46萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章