Linux内核模块管理

内核模块保存的位置

参考: http://c.biancheng.net/view/1039.html

内核模块的保存位置在 /lib/modules/内核版本号/kernel/ 目录中

# 获取内核版本号
uname -a |awk '{print $3}'

在这里插入图片描述


modules.dep内核模块数据库文件

Linux中所有的内核模块都存放在 /lib/modules/$(uname -a |awk '{print $3}')/modules.dep 文件中,在安装模块时,依赖这个文件査找所有的模块,所以不需要指定模块所在位置的绝对路径,而且也依靠这个文件来解决模块的依赖性。


生成modules.dep(内核模块数据库文件)

modules.dep 文件如果不存在,可以手动执行depmod 命令来生成.depmod 命令会扫描系统中已有的内核模块,并生成modules.dep 文件.


insmod安装ko模块文件

# 安装ko模块文件
insmod /home/dpvs/dpdk-stable-17.11.2/build/kmod/igb_uio.ko

modprobe常用参数:

参数解释
-a同时加载指定模块的所有依赖模块。
-r卸载指定的内核模块,并卸载其依赖的其他模块(如果没有其他模块依赖该模块)。
-l列出所有可用的内核模块。
-q静默模式,不显示任何输出信息。
-v详细模式,显示详细的输出信息。
-c检查模块依赖关系并显示任何错误信息。
-d指定一个用于加载内核模块的目录。
-n禁止自动加载模块。
-s禁止自动加载模块的符号版本检查。

查看内核模块

# 查看系统当前加载的模块
lsmod

# 查看指定模块的信息
# modinfo 模块名 例如:
modinfo autofs4

在这里插入图片描述

# 查看模块
lsmod | grep wireguard

在这里插入图片描述


加载内核模块

# 加载模块
modprobe 模块名

在这里插入图片描述


加载模块的依赖模块

## -a 参数表示同时加载指定模块的所有依赖模块
modprobe -a 模块名

配置内核模块在OS启动时自动加载

https://wiki.archlinuxcn.org/wiki/%E5%86%85%E6%A0%B8%E6%A8%A1%E5%9D%97

https://manpages.ubuntu.com/manpages/focal/zh_CN/man5/modules-load.d.5.html

https://www.freedesktop.org/software/systemd/man/modules-load.d.html

systemd-modules-load.service下列目录中读取文件,这些文件包含要在引导期间加载的静态列表中的内核模块。

相关目录:

  • /etc/modprobe.d/
  • /etc/modules-load.d
  • /run/modules-load.d/*.conf
  • /usr/lib/modules-load.d/*.conf

开机自动加载内核模块示例

https://wiki.gentoo.org/wiki/WireGuard

# 在系统启动时自动加载virtio-net.ko
echo virtio-net >/etc/modules-load.d/virtio-net.conf

# 在系统启动时自动加载zfs内核模块
echo zfs >/etc/modules-load.d/zfs.conf

# 在系统启动时自动加载wireguard内核模块
echo wireguard >/etc/modules-load.d/wireguard.conf

# 在系统启动时自动加载tun内核模块
echo tun >/etc/modules-load.d/tun.conf

# 在系统启动时自动加载ip_gre内核模块
echo ip_gre >/etc/modules-load.d/ip_gre.conf

持久化配置内核模块的加载参数

/etc/modprobe.d 目录的一些常见用途和作用:
在该目录中创建以 .conf 结尾的配置文件;

  • 黑名单: 配置文件中使用 blacklist 关键字,指定要屏蔽的模块,以防止其加载。

  • 参数配置: 配置文件中使用 options 关键字,指定加载模块时要传递的参数值。这样可以灵活地配置模块的行为。

  • 别名设置: 配置文件并使用 alias 关键字,您可以定义模块的别名。

# 配置内核模块的加载参数
echo "options zram num_devices=1" >/etc/modprobe.d/zram.conf

删除内核模块

# 卸载模块
modprobe -r 模块名
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

识途老码

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值