Linux内核模块管理

模块的全称是动态可加载内核模块,它是具有独立功能的程序,可以被单独编译,但不能独立运行。
模块是为内核或其他模块提供功能的代码集合。
这些模块可以是 Linux 源码中自带的,也可以是由硬件厂商开发的(可以想象成驱动)。

安装模块一般有两种方法:
第一种方法在编译内核时,手工调整内核模块功能,加入所需的模块。
第二种方法就是下载厂商发布的新硬件的驱动模块,或下载驱动程序,再编译成驱动模块,然后手工安装。

如果下载的是内核模块,则直接安装即可;如果下载的是内核驱动源码,则只需要编译源码包,就会生成模块(具体编译过程和源码包安装非常类似,可以查看驱动的说明)。
如果需要加入的模块不是硬件的驱动,而只是内核中的某项功能,那么,只要部分重新编译内核,就可以生成新功能的模块,然后安装这个模块即可。

内核模块保存位置与模块保存文件
在 /lib/modules/ 内核版本 /kernel/ 目录中,在 CentOS 6.x 中这个目录就是:
[root@localhost ~]# cd /lib/modules/2.6.32-279.el6. i686/kemel/

Linux 中所有的模块都存放在 /lib/modules/2.6.32-279.el6.i686/modules.dep 文件中,在安装模块时,依赖这个文件査找所有的模块,所以不需要指定模块所在位置的绝对路径,而且也依靠这个文件来解决模块的依赖性。如果这个文件丢失了,使用 depmod 命令会自动扫描系统中已有的模块,并生成 modules.dep 文件。命令格式如下:
[root@localhost ~]# depmod [选项]
#不加选项,depmod命令会扫描系统中的内核模块,并写入modules.dep文件

depmod 命令会扫描系统中所有的内核模块,然后把扫描结果放入 modules.dep 文件。后续的模块安装或删除就依赖这个文件中的内容。
也就是说,如果我们要手工安装一个模块,则需要先把模块复制到指定位置,一般复制至 /lib/modules/2.6.32-279.el6.i686/kernel/ 目录中,使用 depmod 命令扫描之后,才能继续安装。

内核模块的查看
使用 lsmod 命令可以查看系统中到底安装了哪些内核模块。命令如下:
[root@localhost ~]# lsmod

lsmod命令的指定结果共有三列。
Module:模块名。
Size:模块大小。
Used by:模块是否被其他模块调用。

还可以使用 modinfo 命令来查看这些模块的说明,命令格式如下:
[root@localhost ~]# modinfo 模块名

内核模块的添加与删除
首先把模块复制到指定位置,一般复制到 /lib/modules/2.6.32-279.el6.i686/kemel/ 目录中,模块的扩展名一般是 *.ko;然后需要执行 depmod 命令扫描这些新模块,并写入 modules.dep 文件;最后就可以利用 modprobe 命令安装这些模块。命令格式如下:
[root@localhost ~]# modprobe [选项] 模块名

选项:
-I:列出所有模块的文件名,依赖 modules.dep 文件;
-f:强制加载模块;
-r:删除模块;

如何删除模块?命令如下:
[root@localhost ~]# modprobe -r vfat

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值