linux内核模块

时间:2019-08-14
本文章向大家介绍linux内核模块,主要包括linux内核模块使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

内核模块的查看

使用 lsmod 命令可以查看系统中到底安装了哪些内核模块。命令如下:

[root@a kernel]# lsmod | grep vfat
vfat 17461 0
fat 65950 1 vfat

我们还可以使用 modinfo 命令来查看这些模块的说明,命令格式如下:

[root@localhost ~]# modinfo 模块名 例如:

[root@a kernel]# modinfo vfat
filename: /lib/modules/3.10.0-693.el7.x86_64/kernel/fs/fat/vfat.ko.xz
author: Gordon Chaffee
description: VFAT filesystem support
license: GPL
alias: fs-vfat
rhelversion: 7.4
srcversion: A3254796A3CD9815ABDDC94
depends: fat
intree: Y
vermagic: 3.10.0-693.el7.x86_64 SMP mod_unload modversions
signer: CentOS Linux kernel signing key
sig_key: DA:18:7D:CA:7D:BE:53:AB:05:BD:13:BD:0C:4E:21:F4:22:B6:A4:9C
sig_hashalgo: sha256

内核模块的添加与删除

其实,如果模块已经下载到本机了,那么安装模块的方法非常简单。首先需要把模块复制到指定位置,一般复制到 /lib/modules/2.6.32-279.el6.i686/kemel/ 目录中,模块的扩展名一般是 *.ko;然后需要执行 depmod 命令扫描这些新模块,并写入 modules.dep 文件;最后就可以利用 modprobe 命令安装这些模块了。命令格式如下:

[root@localhost ~]# modprobe [选项] 模块名

选项:

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


举个例子,我们需要安装 vfat 模块(fat32 文件系统的模块),那么需要执行如下命令即可

[root@a kernel]# lsmod | grep vfat
[root@a kernel]# modprobe vfat
[root@a kernel]# lsmod | grep vfat
vfat 17461 0
fat 65950 1 vfat
[root@a kernel]# modprobe -r vfat
[root@a kernel]# lsmod | grep vfat

[root@a kernel]#

定义模块的文件路径,与系统启动流程有关

[root@a systemd]# cd /usr/lib/systemd
[root@a systemd]# ls | grep rhel-loadmodules
rhel-loadmodules
[root@a systemd]# cat rhel-loadmodules
#!/bin/bash

# Load other user-defined modules
for file in /etc/sysconfig/modules/*.modules ; do
[ -x $file ] && $file
done

# Load modules (for backward compatibility with VARs)
if [ -f /etc/rc.modules ]; then
/etc/rc.modules
fi
[root@a systemd]#

添加模块,并设为开机自启动

[root@a systemd]# which modprobe
/usr/sbin/modprobe
[root@a systemd]# vim  /etc/rc.modules
/usr/sbin/modprobe vfat

或者是

[root@a systemd]# vim   /etc/sysconfig/modules/vfat.modules 
/usr/sbin/modprobe vfat

[root@a systemd]# ll /etc/rc.modules
-rw-r--r-- 1 root root 25 Aug 14 22:40 /etc/rc.modules
[root@a systemd]# chmod a+x /etc/rc.modules
[root@a systemd]# ll /etc/rc.modules
-rwxr-xr-x 1 root root 25 Aug 14 22:40 /etc/rc.modules
[root@a systemd]#

[root@a systemd]# reboot

Connection closed by foreign host.

Disconnected from remote host(192.168.0.160) at 22:44:07.

Connecting to 192.168.0.160:22...
Connection established.

WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Wed Aug 14 20:26:38 2019 from 192.168.0.104
[root@a ~]# lsmod | grep vfat
vfat 17461 0
fat 65950 1 vfat

查看内核中所有模块以及别名的命令是modprobe -c

[root@a ~]# modprobe -c | grep vfat
alias fs_vfat vfat

原文地址:https://www.cnblogs.com/xiaofeng666/p/11355123.html