·
ko:kernel object ·
so:shared object
[root@rhel6 ~]# ls /lib/modules/$(uname -r)/kernel/arch/x86/kvm
kvm-amd.ko kvm-intel.ko kvm.ko
·通過移除核心模組可達到禁用該模組的作用
[root@rhel6
~]# ls /lib/modules/$(uname -r)/kernel/drivers/usb/storage
//移除
usb-storage.ko
即可禁用u盤
ums-alauda.ko ums-datafab.ko ums-isd200.ko ums-karma.ko ums-sddr09.ko ums-usbat.ko
ums-cypress.ko ums-freecom.ko ums-jumpshot.ko ums-onetouch.ko ums-sddr55.ko
usb-storage.ko
·通過lsmod檢視系統已載入的所有核心模組
[root@rhel6 ~]# lsmod
模組名稱
模組大小
依賴關係
module size used by
ipt_masquerade 2466 0
ipt_reject 2383 0
autofs4 26888 3
scsi_transport_fc 52241 3 bnx2fc,fcoe,libfc
scsi_tgt 12173 1 scsi_transport_fc
8021q 23575 0
iptable_mangle 3349 1
iptable_filter 2793 0
iptable_nat 6158 1
nouveau 708444 0
ext4 364410 2
mmc_core 72991 1 sdhci
video 21032 2 nouveau,i915
·通過modprobe新增/刪除核心模組
modprobe
命令主要用於在
linux2.6
核心中載入和刪除
linux
核心模組,通過此命令可輕鬆載入和刪除
linux
核心模組,同時會自動解決核心模組之間的依賴關係,並載入相互依賴的模組。 ·
新增vfat
核心模組
[root@rhel6 ~]# lsmod | grep vfat
//列出當前記憶體當中是否已載入
vfat
的核心模組
[root@rhel6 ~]# modprobe
vfat
//不需加
.ko"
[root@rhel6 ~]# lsmod | grep vfat
vfat 46529 0
fat 85873 1 vfat ·
刪除vfat
核心模組
[root@rhel6 ~]# modprobe -r vfat
[root@rhel6 ~]# lsmod | grep vfat
·通過insmod/rmmod新增/刪除核心模組
insmod
命令主要用於在
linux2.4
核心之前載入核心模組
,系統不僅不會自動解決核心模組之間的依賴關係,而且還要求寫出詳細的模組路徑
rmmod
命令主要用於解除安裝正在使用的
linux
核心模組,與
modprobe -r
命令相似 ·
新增vfat
核心模組
[root@rhel6 ~]# insmod /lib/modules/2.6.32-220.el6.x86_64/kernel/fs/fat/
fat.ko
[root@rhel6 ~]# insmod /lib/modules/2.6.32-220.el6.x86_64/kernel/fs/vfat/
vfat.ko
[root@rhel6 ~]# lsmod | grep vfat
vfat 46529 0
fat 85873 1 vfat ·
刪除vfat
核心模組
[root@rhel6 ~]# rmmod vfat
[root@rhel6 ~]# rmmod fat
[root@rhel6 ~]# lsmod | grep vfat
·通過depmod重新註冊核心模組資訊(
非系統自帶的核心模組不能通過
modprobe
直接載入
,可通過
insmod
手工載入或者將該核心模組的
*.ko
檔案拷貝到相應的目錄下通過
depmod
重新註冊核心模組資訊)
[root@rhel6 ~]# depmod [-ane]
-a :
不加任何引數時,
depmod
會主動的去分析目前核心的模組,並且重新寫入
/lib/modules/$(uname -r)/modules.dep
當中。
若加入-a 引數時,則
depmod
會去搜尋比
modules.dep
內還要新的模組,如果找到新模組,才會公升級。
-n :
不寫入modules.dep
,而是將結果輸出到螢幕上
(standard out);
-e :
顯示出目前已載入的不可執行的模組名稱
[root@rhel6 ~]# file /lib/modules/2.6.32-220.el6.x86_64/
modules.dep
/lib/modules/2.6.32-220.el6.x86_64/modules.dep:
ascii text
, with very long lines
[root@rhel6 ~]# rm -f /lib/modules/2.6.32-220.el6.x86_64/modules.dep
[root@rhel6 ~]# depmod
//重新註冊當前系統的核心模組資訊並生成
modules.dep檔案
[root@rhel6 ~]# ls /lib/modules/2.6.32-220.el6.x86_64| grep modules.dep
modules.dep
modules.dep.bak
[root@rhel6 ~]# ls /lib/modules/2.6.32-220.el6.x86_64/modules.dep
/lib/modules/2.6.32-220.el6.x86_64/modules.dep
[root@rhel6 ~]# depmod -a
//註冊
/lib/modules/
下所有核心的核心模組資訊
[root@rhel6 ~]# depmod `uname -r`
//只註冊當前系統中的核心模組資訊 ·
通過modinfo檢視核心模組資訊
[root@rhel6 ~]# modinfo vfat
filename: /lib/modules/2.6.32-220.el6.x86_64/kernel/fs/fat/vfat.ko
author: gordon chaffee
description: vfat filesystem support
license: gpl
srcversion: accc2f7e9526f402f526976
depends: fat
vermagic: 2.6.32-220.el6.x86_64 smp mod_unload modversions
linux驅動學習 二 核心模組
因為linux 核心的整體結構非常龐大,包含的元件非常多,如何使用需要的元件呢?有一種方法是把所有的元件都編譯進核心檔案 zimage 或bzimage 但是這樣會產生兩個問題 一是生成的核心檔案過大 二是如果要新增或刪除某乙個元件,需要重新刪除編譯整個核心。於是我們需找另外一種機制讓核心檔案本身不...
Linux核心LED模組分析 二
linux核心led模組分析 二 上次分析到那裡後,還是有些同志說看不懂,那我就繼續分析一把我認為不需要繼續分析的東西吧。上回分析了 led cdev和trigger的關係後就沒有繼續說了。有同志還是沒明白怎麼呼叫的。幹活的函式是 static void led heartbeat function...
Linux核心模組
核心模組 在整個啟動的過程中,是否能成功的驅動我們主句的硬體裝置,是核心完成的工作,而核心一般都是壓縮文件,在使用之前核心之前必須要將核心減壓到的記憶體中。為了應對日新月異的硬體,目前核心都具有可讀取模組化驅動程式的功能,也就是所謂的 modules模組化 所謂模組化。核心與核心模組放在 核心 bo...