Linux内核模块的加载以及内核模块的管理

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 <leon@sidebranch.com>,Sonal Santan <sonal.santan@xilinx.com>,Richard Tobin <richard.tobin@xilinx.com>
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

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值