核心與核心模組、加載與卸載模組
1、核心: /boot/vmlinuz 或 /boot/vmlinuz-version;
核心解壓縮所需 RAM Disk: /boot/initrd (/boot/initrd-version);
核心模組: /lib/modules/version/kernel 或 /lib/modules/$(uname -r)/kernel;
核心原始碼: /usr/src/linux (要安裝才會有!否則預設不安裝的!)
www.2cto.com
2、如果該核心被順利的載入系統當中了,那麼就會有幾個資訊紀錄下來:
核心版本: /proc/version
系統核心功能: /proc/sys/kernel
3、如果我有個新的硬體,偏偏我的作業系統不支援,該怎麼辦?
重新編譯核心,並加入最新的硬體驅動程式原始碼;
或將該硬體的驅動程式編譯成為模組,在開機時載入該模組。
www.2cto.com
4、核心模組相依性
/lib/modules/$(uname -r)/modules.dep 這個檔案!他記錄了在核心支援的模組的各項相依性。
[root@www ~]# depmod [-Ane]
選項與參數:
-A :不加任何參數時, depmod 會主動的去分析目前核心的模組,並且重新寫入
/lib/modules/$(uname -r)/modules.dep 當中。若加入 -A 參數時,則 depmod
會去搜尋比 modules.dep 內還要新的模組,如果真找到新模組,才會更新。
-n :不寫入 modules.dep ,而是將結果輸出到熒幕上(standard out);
-e :顯示出目前已載入的不可執行的模組名稱
范例一:若我做好一個網路卡驅動程式,檔名為 a.ko,該如何更新核心相依性?
[root@www ~]# cp a.ko /lib/modules/$(uname -r)/kernel/drivers/net
[root@www ~]# depmod
顯示所有模組:depmod -e
5、核心模組的觀察:lsmod
目前核心載入了多少的模組?顯示的內容包括有:
模組名稱(Module);
模組的大小(size);
此模組是否被其他模組所使用 (Used by)。
6、modinfo:顯示模組詳細信息
如:[root@www ~]# modinfo mii
7、modprobe 來處理模組載入:
[root@www ~]# modprobe [-lcfr] module_name
選項與參數:
-c :列出目前系統所有的模組!(更詳細的代號對應表)
-l :列出目前在 /lib/modules/`uname -r`/kernel 當中的所有模組完整檔名;
-f :強制載入該模組;
-r :類似 rmmod ,就是移除某個模組啰~
使用 modprobe 真的是要比 insmod 方便很多!因為他是直接去搜尋 modules.dep 的紀錄, 所以啰,當然可以克服模組的相依性問題,而且還不需要知道該模組的詳細路徑呢!
8、模組卸載:modprobe -r 模組名