« Home | Linux 常用指令 Kernel Module相關 » | 視訊規格筆記 » | UPnP Media Server GPL-LINUX » | Linux下UPNP的安裝 » | Linux 古董?! » | Linux如何mount USB 及 CDROM » | Linux如何mount USB Flash/HDD/CDROM » | PXE + WINPE環境設定 » | OpenOffice.org note » | knoppix 3.6 安裝到HD » 

2005/04/27 

Linux 常用指令-Kernel Module相關

Linux 常用指令-Kernel Module相關
完成於2005/4/27

一般我們都是用Module(模組)來簡稱Kernel Module,Module是可以按需要載入(insmod)或卸載(rmmod)的。
這樣做可以保持Kernel大小的彈性,也可以將事先未放到Kernel的模組,動態的加到Kernel中,而不用整個Kernel重新編譯。
例:發現Kernel目前沒有支援 bc4400網卡,那我們就可以用insmod加入bc4400的網卡Driver。

與modules有關的命令有:
lsmod:列出已經被kernel載入的module
insmod:將某個module載入到kernel中
rmmod:移除module,後接Module name,但不需要副檔名.ko
depmod:生成依賴(dependency)文件,讓下一指令modprobe可參考/lib/modules/[kernel版本]/modules.dep檔案
modprobe:載入modules.dep中記載的依賴文件
Kerneld:負責自動的將模組載入kernel和把module從內核中remod。

:Module幾乎不是單獨的存在(就像HelloWord會用到外部printf function一樣),它會用到Kernel中的其它Symbol,而Symbol不存在時,會出現類似以下的訊息
/lib/modules/2.4.xx/net/qcom.o: unresolved symbol m_q_com_symbol_3bc36b01
這時你要找到m_q_com_symbol_3bc36b01這個symbol所存在的module,先載入才行,所以才會有modprobe指令的存在,避免輸入多個insmod指令

About me

  • I'm Martin's blog 馬汀的部落格
  • From 中壢市, 桃園縣, Taiwan
  • -----BEGIN GEEK CODE BLOCK----- Version: 3.1 Comment: For info see http://www.geekcode.com GC/CS/CC/E/IT/TW d- s a C++++ L++++ P+ L++++ E--- W+++ N++ o+ K- w+++ O- M- V- PS+ PE++ Y+ PGP+ t 5- X++ R- tv- b+++ DI+ D-- G e+++ h+ r+ y+ z? ------END GEEK CODE BLOCK------ /**************************** 旅行是我生命的動力 它的樂趣從計劃旅行開始 我樂於分享旅行及Linux Kernel上的每一件事. ****************************/
My profile