Linux內核模塊在形式上以.ko文件存在,首先需要知道的是內核模塊的編譯也分爲動態編譯和靜態編譯,動態編譯模塊生成.ko文件。動態模塊的加載命令如下:insmod ****.ko,比較常見的是Linxu設備驅動以內核模塊的形式存在。
關於內核模塊管理的常見命令是:lsmod、insmod、rmmod、modinfo、modprobe、depmod
一、基本介紹
內核模塊的管理命令安裝在kmod包中
[root@DC-F4-01-E6-FA-94 ~]# rpm -ql kmod|grep sbin
/usr/sbin/depmod
/usr/sbin/insmod
/usr/sbin/lsmod
/usr/sbin/modinfo
/usr/sbin/modprobe
/usr/sbin/rmmod
/usr/sbin/weak-modules
CentOS中所有與內核模塊相關的文件都存放在"/lib/modules/$(uname -r)/“下面
[root@DC-F4-01-E6-FA-94 ~]# cd /lib/modules/$(uname -r)/
[root@DC-F4-01-E6-FA-94 3.10.0-693.2.2.rt56.623.el7.x86_64]# ls
build modules.block modules.devname modules.softdep vdso
extra modules.builtin modules.drm modules.symbols weak-updates
kernel modules.builtin.bin modules.modesetting modules.symbols.bin
modules.alias modules.dep modules.networking source
modules.alias.bin modules.dep.bin modules.order updates
[root@DC-F4-01-E6-FA-94 3.10.0-693.2.2.rt56.623.el7.x86_64]#
二、命令的詳解
1、lsmod :顯示已經加載到內核中的模塊的狀態信息
[root@DC-F4-01-E6-FA-94 3.10.0-693.2.2.rt56.623.el7.x86_64]# lsmod|head -4
Module Size Used by
nr_drv 65825 0
vtsspp 389226 0
sep4_1 777016 0
2、modinfo:查看模塊的基本信息
[root@DC-F4-01-E6-FA-94 3.10.0-693.2.2.rt56.623.el7.x86_64]# modinfo /home/gnb_image/libs/cpa_sub6/rec/drv/nr_drv.ko
filename: /home/gnb_image/libs/cpa_sub6/rec/drv/nr_drv.ko
license: Dual BSD/GPL
version: 2017.0.45
author: Leon Woestenberg <[email protected]>,Sonal Santan <[email protected]>,Richard Tobin <[email protected]>
license: GPL v2
rhelversion: 7.4
srcversion: 7FC7569E26685EBDCB1A2E4
alias: pci:v00001172d0000EAAAsv*sd*bc*sc*i*
alias: pci:v00001172d0000EBBBsv*sd*bc*sc*i*
alias: pci:v00001172d00000FECsv*sd*bc*sc*i*
alias: pci:v00001172d0000E003sv*sd*bc*sc*i*
alias: pci:v00001172d0000E002sv*sd*bc*sc*i*
alias: pci:v00001172d0000E001sv*sd*bc*sc*i*
alias: pci:v000010EEd0000903Fsv*sd*bc*sc*i*
depends:
vermagic: 3.10.0-693.2.2.rt56.623.el7.x86_64 SMP preempt mod_unload modversions
parm: major:Device major number, default is 0 (dynamic value) (uint)
parm: poll_mode:Set 1 for hw polling, default is 0 (interrupts) (uint)
parm: enable_credit_mp:Set 1 to enable creidt feature, default is 0 (no credit control) (uint)
3、insmod 將指定模塊加載到內核中,modprobe和其功能一致
4、rmmod 將已加載的模塊從內核中移植,modprobe -r 命令與其功能一致
5、modprobe 加載或者卸載內核模塊
modprobe dev_nr.ko 加載
modprobe -r dev_nr.ko 卸載模塊
6、depmod :查找/lib/moduels/(uname -r)中的所有模塊並建立modules.dep.bin 文件,該文件記錄了模塊位置及其依賴關係
[root@DC-F4-01-E6-FA-94 3.10.0-693.2.2.rt56.623.el7.x86_64]# ls | grep dep
modules.dep
modules.dep.bin
modules.softdep
[root@DC-F4-01-E6-FA-94 3.10.0-693.2.2.rt56.623.el7.x86_64]# rm -rf modules.dep.bin
[root@DC-F4-01-E6-FA-94 3.10.0-693.2.2.rt56.623.el7.x86_64]# depmod
[root@DC-F4-01-E6-FA-94 3.10.0-693.2.2.rt56.623.el7.x86_64]# ls | grep dep
modules.dep
modules.dep.bin
modules.softdep