linux核心模組相關命令:lsmod,depmod,modprobe,modinfo,insmod,rmmod 使用說明

來源:互聯網
上載者:User
轉自:http://www.path8.net/tn/archives/3521

載入核心驅動的通常流程:

1.先將.ko檔案拷貝到/lib/module/kernelversion(核心版本號碼)/kernel/driver/...目錄下,根據具體用途的區別分為net、ide、scsi、usb、video、parport、md、block、ata等等。

2.運行depmod -a,更新模組依賴新,主要是更新modules.dep檔案

3.運行modprobe載入核心模組

lsmod
功能:列出核心已載入模組的狀態用法:lsmod描述:lsmod 以美觀的方式列出/proc/modules的內容。輸出為:Module(模組名)    Size(模組大小)   Used by(被…使用)eg. ne2k_pci           8928               08390                 9472              1 ne2k_pci在/proc/modules中相應的是:(模組名,模組大小,被…使用,模組地址(猜的,以後確認))ne2k_pci 8928 0 – Live 0×30864008390 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 -Vmodinfo -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 …查看原始文檔,翻譯可能有誤。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.