Linux内核模块(二)

·    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

 
·    通过 ins mod / 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

 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值