【Linux】内核模版加载modprobe | lsmod
modprobe
modprobe 是一个用于加载和卸载 Linux 内核模块的命令。它不仅能够加载单个模块,还能处理模块之间的依赖关系,确保所有依赖的模块都被正确加载。以下是一些关于 modprobe 命令的基本用法和常见选项的详细介绍。
基本语法
modprobe [options] [module] [module parameters...]
常用选项
-
加载模块
modprobe module_name:加载指定的模块。modprobe -a module1 module2:加载多个模块。
-
卸载模块
modprobe -r module_name:卸载指定的模块。modprobe -r -a module1 module2:卸载多个模块。
-
显示模块信息
modprobe -d module_name:显示模块的详细信息。modprobe --show-depends module_name:显示模块的依赖关系。
-
检查模块是否存在
modprobe --dump-modversions module_name:显示模块的版本信息。modprobe --show module_name:显示模块的路径。
-
处理模块参数
modprobe module_name param1=value1 param2=value2:加载模块并传递参数。
-
忽略依赖关系
modprobe --ignore-install module_name:加载模块时忽略安装脚本。modprobe --ignore-remove module_name:卸载模块时忽略卸载脚本。
-
其他选项
modprobe --verbose:显示详细信息。modprobe --dry-run:模拟操作,不实际加载或卸载模块。modprobe --first-time:仅在第一次加载时执行。
示例
1. 加载模块
加载 br_netfilter 模块:
sudo modprobe br_netfilter
2. 卸载模块
卸载 br_netfilter 模块:
sudo modprobe -r br_netfilter
3. 加载多个模块
加载 br_netfilter 和 ip_tables 模块:
sudo modprobe -a br_netfilter ip_tables
4. 显示模块的依赖关系
显示 br_netfilter 模块的依赖关系:
sudo modprobe --show-depends br_netfilter
5. 传递模块参数
加载 ipv6 模块并禁用 IPv6:
sudo modprobe ipv6 disable=1
6. 模拟操作
模拟加载 br_netfilter 模块:
sudo modprobe --dry-run br_netfilter
7. 显示详细信息
显示 br_netfilter 模块的详细信息:
sudo modprobe -d br_netfilter
常见用途
- 网络模块:加载网络相关的模块,如
br_netfilter用于桥接网络。 - 文件系统模块:加载文件系统相关的模块,如
ext4用于支持 ext4 文件系统。 - 硬件驱动模块:加载硬件驱动模块,如
i915用于支持 Intel 图形卡。 - 安全模块:加载安全相关的模块,如
apparmor用于支持 AppArmor 安全框架。
验证模块是否已加载
使用 lsmod 命令验证模块是否已加载:
lsmod | grep br_netfilter
总结
modprobe 是一个强大的工具,用于管理和操作 Linux 内核模块。通过使用 modprobe,您可以轻松地加载、卸载和管理模块,确保系统在需要时能够正确加载所需的模块
lsmod
是一个用于列出当前已加载的 Linux 内核模块的命令。它从 /proc/modules 文件中读取信息,并以易读的格式显示出来。lsmod 命令可以帮助您了解系统中当前加载了哪些模块,以及这些模块的依赖关系。
基本语法
lsmod
输出格式
lsmod 命令的输出通常包含以下几列:
- Module:模块的名称。
- Size:模块的大小(以字节为单位)。
- Used by:模块被使用的次数或依赖该模块的其他模块的名称。
示例
1. 列出所有已加载的模块
lsmod
输出示例:
Module Size Used by
br_netfilter 22272 0
bridge 162304 1 br_netfilter
nf_log_ipv6 16384 0
nf_log_ipv4 16384 0
nf_log_common 16384 2 nf_log_ipv6,nf_log_ipv4
ipt_MASQUERADE 16384 1
nf_conntrack 86016 3 nf_log_ipv6,nf_log_ipv4,ipt_MASQUERADE
nf_defrag_ipv6 16384 1 nf_conntrack
nf_defrag_ipv4 16384 1 nf_conntrack
ip6table_filter 16384 1
ip6_tables 28672 1 ip6table_filter
iptable_filter 16384 1
ip_tables 32768 1 iptable_filter
x_tables 45056 7 ip6table_filter,ip6_tables,iptable_filter,ip_tables,ipt_MASQUERADE,nf_log_ipv6,nf_log_ipv4
2. 搜索特定模块
如果您只想查找特定模块的信息,可以使用 grep 命令结合 lsmod:
lsmod | grep br_netfilter
输出示例:
br_netfilter 22272 0
3. 详细信息
虽然 lsmod 本身不提供详细信息,但您可以结合其他命令来获取更多信息。例如,使用 modinfo 命令查看模块的详细信息:
modinfo br_netfilter
输出示例:
filename: /lib/modules/5.10.0-8-amd64/kernel/net/bridge/netfilter/br_netfilter.ko
license: GPL
description: Bridge netfilter support
author: Stephen Hemminger <shemminger@linux-foundation.org>
srcversion: 7A3D7B7D7D7D7D7D7D7D7D7D7
depends: bridge
retpoline: Y
intree: Y
name: br_netfilter
vermagic: 5.10.0-8-amd64 SMP mod_unload modversions
常见用途
- 网络模块:检查网络相关的模块是否已加载,如
br_netfilter用于桥接网络。 - 文件系统模块:检查文件系统相关的模块是否已加载,如
ext4用于支持 ext4 文件系统。 - 硬件驱动模块:检查硬件驱动模块是否已加载,如
i915用于支持 Intel 图形卡。 - 安全模块:检查安全相关的模块是否已加载,如
apparmor用于支持 AppArmor 安全框架。
结合其他命令
-
查看模块路径:
modinfo -F filename br_netfilter -
查看模块参数:
modinfo -p br_netfilter -
查看模块依赖关系:
modprobe --show-depends br_netfilter
总结
lsmod 命令是一个简单但强大的工具,用于列出当前已加载的 Linux 内核模块。通过使用 lsmod,您可以快速了解系统中加载了哪些模块,以及这些模块的依赖关系
模块加载的相关文件
/etc/sysconfig/modules/ 和 /etc/modules-load.d/ 目录都用于配置内核模块的自动加载,但它们的工作方式和应用场景有所不同。下面详细解释这两个目录的区别和各自的使用场景。
1. /etc/modules-load.d/ 目录
作用
- 系统启动时加载模块:
/etc/modules-load.d/目录中的文件用于指定在系统启动时需要自动加载的内核模块。 - 由
systemd管理:这些文件由systemd的systemd-modules-load.service服务读取并加载指定的模块。
文件格式
- 每个文件通常以
.conf为扩展名。 - 文件内容是一行或多行,每行指定一个内核模块的名称。
示例
假设您需要在系统启动时自动加载 br_netfilter 和 ip_tables 模块,可以在 /etc/modules-load.d/ 目录中创建一个配置文件,例如 network-modules.conf。
sudo nano /etc/modules-load.d/network-modules.conf
编辑文件内容:
br_netfilter
ip_tables
保存并退出编辑器。
加载模块
- 系统启动时,
systemd-modules-load.service会自动读取并加载这些模块。 - 您也可以手动加载这些模块:
sudo systemctl start systemd-modules-load.service
2. /etc/sysconfig/modules/ 目录
作用
- 自定义模块加载脚本:
/etc/sysconfig/modules/目录中的文件是可执行的 Shell 脚本,用于在系统启动时加载内核模块。
如实例:
cat > /etc/sysconfig/modules/ipvs.sh <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
- 灵活性更高:这些脚本可以包含更复杂的逻辑,例如条件加载模块、设置模块参数等。
文件格式
- 每个文件通常以
.sh为扩展名。 - 文件内容是 Shell 脚本,使用
modprobe命令加载模块。
示例
假设您需要在系统启动时自动加载 br_netfilter 模块,并设置其参数,可以在 /etc/sysconfig/modules/ 目录中创建一个脚本文件,例如 br_netfilter.sh。
sudo nano /etc/sysconfig/modules/br_netfilter.sh
编辑文件内容:
#!/bin/sh
modprobe br_netfilter
保存并退出编辑器。
使脚本可执行
确保脚本文件具有可执行权限:
sudo chmod +x /etc/sysconfig/modules/br_netfilter.sh
加载模块
- 系统启动时,这些脚本会自动执行,加载指定的模块。
- 您也可以手动执行这些脚本:
sudo /etc/sysconfig/modules/br_netfilter.sh
主要区别
-
管理方式:
/etc/modules-load.d/由systemd管理,更加现代化和标准化。/etc/sysconfig/modules/由传统的初始化系统(如init或systemd的兼容层)管理,更加灵活但复杂度更高。
-
文件格式:
/etc/modules-load.d/文件是简单的文本文件,每行指定一个模块名称。/etc/sysconfig/modules/文件是可执行的 Shell 脚本,可以包含复杂的逻辑。
-
应用场景:
/etc/modules-load.d/适合简单的模块加载需求,易于管理和维护。/etc/sysconfig/modules/适合需要更复杂逻辑的模块加载,例如条件加载模块或设置模块参数。
总结
/etc/modules-load.d/:现代、标准化,适合简单的模块加载需求。/etc/sysconfig/modules/:传统、灵活,适合需要复杂逻辑的模块加载需求。
选择哪个目录取决于您的具体需求和系统配置。如果您只需要简单的模块加载,推荐使用 /etc/modules-load.d/。如果您需要更复杂的逻辑,可以使用 /etc/sysconfig/modules/。
相关文章:
【Linux】内核模版加载modprobe | lsmod
modprobe modprobe 是一个用于加载和卸载 Linux 内核模块的命令。它不仅能够加载单个模块,还能处理模块之间的依赖关系,确保所有依赖的模块都被正确加载。以下是一些关于 modprobe 命令的基本用法和常见选项的详细介绍。 基本语法 modprobe [option…...
Android从Drawable资源Id直接生成Bitmap,Kotlin
Android从Drawable资源Id直接生成Bitmap,Kotlin val t1 System.currentTimeMillis()val bmp getBmpFromDrawId(this, R.mipmap.ic_launcher_round)Log.d("fly", "1 ${bmp?.byteCount} h${bmp?.height} w${bmp?.width} cost time${System.currentTimeMillis…...
蓝桥杯——数组
1、移动数组元素 package day3;import java.util.Arrays;public class Demo1 {public static void main(String[] args) {int[] arr {1,2,3,4,5,6};int k 2;int[] arr_new f(arr,k);for (int i : arr_new) {System.out.print(i",");}//或System.out.println();St…...
在Flutter中,禁止侧滑的方法
在Flutter中,如果你想禁用侧滑返回功能,你可以使用WillPopScope小部件,并在onWillPop回调中返回false来阻止用户通过侧滑返回到上一个页面。 class DisableSwipePop extends StatelessWidget {overrideWidget build(BuildContext context) {…...
黑盒测试案例设计方法的使用(1)
黑盒测试用例的设计是确保软件质量的关键步骤之一。 一、等价类划分法 定义:把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。 步骤:…...
第二十一章 TCP 客户端 服务器通信 - 客户端OPEN命令
文章目录 第二十一章 TCP 客户端 服务器通信 - 客户端OPEN命令客户端OPEN命令 第二十一章 TCP 客户端 服务器通信 - 客户端OPEN命令 客户端OPEN命令 客户端OPEN命令与服务器端OPEN命令只有一个方面的不同:第一个设备参数必须指定要连接的主机。要指定主机…...
pycharm报错:no module named cv2.cv2
1、问题概述? 在项目中报错no module named cv2.cv2,就会导致import cv2 as cv无法使用。 需要安装opencv-python,一个开源的计算机视觉库。 2、解决办法? 【第一步:如果当前环境中已经安装,先卸载】 有时候会出现…...
Android音视频直播低延迟探究之:WLAN低延迟模式
Android WLAN低延迟模式 Android WLAN低延迟模式是 Android 10 引入的一种功能,允许对延迟敏感的应用将 Wi-Fi 配置为低延迟模式,以减少网络延迟,启动条件如下: Wi-Fi 已启用且设备可以访问互联网。应用已创建并获得 Wi-Fi 锁&a…...
docker 部署freeswitch(非编译方式)
一:安装部署 1.拉取镜像 参考:https://hub.docker.com/r/safarov/freeswitch docker pull safarov/freeswitch 2.启动镜像 docker run --nethost --name freeswitch \-e SOUND_RATES8000:16000 \-e SOUND_TYPESmusic:en-us-callie \-v /home/xx/f…...
OpenHarmony的公共事件
OpenHarmony的公共事件 公共事件简介 CES(Common Event Service,公共事件服务)为应用程序提供订阅、发布、退订公共事件的能力。 公共事件分类 公共事件从系统角度可分为:系统公共事件和自定义公共事件。 系统公共事件&#…...
深度学习transformer
Transformer可是深度学习领域的一个大热门呢!它是一个基于自注意力的序列到序列模型,最初由Vaswani等人在2017年提出,主要用于解决自然语言处理(NLP)领域的任务,比如机器翻译、文本生成这些。它厉害的地方在…...
低成本出租屋5G CPE解决方案:ZX7981PG/ZX7981PM WIFI6千兆高速网络
刚搬进新租的房子,没有网络,开个热点?续航不太行。随身WIFI?大多是百兆级网络。找人拉宽带?太麻烦,退租的时候也不能带着走。5G CPE倒是个不错的选择,插入SIM卡就能直接连接5G网络,千…...
【黑马点评debug日记】redis登录跳转不成功
登录后一直跳转登录界面; debug: 网络日志报401, 说明前端获取的token为空; 查看应用程序, 发现没有token存储信息 前端网页增加 sessionStorage.setItem("token", data); 记得刷新网页 成功存储token...
C#自定义特性-SQL
语法 原则 自定义特性必须继承自System.Attribute类; AttributeUsage属性来指定特性的使用范围和是否允许重复等; 在特性类中定义属性,这些属性将用于存储特性值。 示例 using System;// 定义一个自定义特性类 [Attribute…...
协方差矩阵及其计算方法
协方差矩阵(Covariance Matrix)是一个描述多维数据特征之间相互关系的矩阵,广泛应用于统计学和机器学习中。它用于表示各个特征之间的协方差,是分析多维数据分布和特征依赖性的重要工具。 什么是协方差矩阵? 协方差矩…...
【OH】openHarmony开发环境搭建(基于windows子系统WSL)
前言 本文主要介绍基于windows子系统WSL搭建openHarmony开发环境。 WSL与Vmware虚拟机的区别,可以查看WSL与虚拟机的区别 更详细的安装配置过程可参考微软官网: 安装 WSL 前提 以下基于windows 111专业版进行配置,windows 10应该也是可以…...
Visual Studio Code 端口转发功能详解
Visual Studio Code 端口转发功能详解 引言 Visual Studio Code(简称 VS Code)是一个功能强大的源代码编辑器,它支持多种编程语言的语法高亮、智能代码补全、自定义快捷键、代码重构等特性。除了这些基本功能外,VS Code 还提供了…...
Android Framework AMS(14)ContentProvider分析-1(CP组件应用及开机启动注册流程解读)
该系列文章总纲链接:专题总纲目录 Android Framework 总纲 本章关键点总结 & 说明: 说明:本章节主要解读ContentProvider组件的基本知识。关注思维导图中左上侧部分即可。 有了前面activity组件分析、service组件分析、广播组件分析的基…...
Three.js PBR材质
本文将详细介绍Three.js中的PBR(Physically Based Rendering)材质,包括PBR的基本概念、适用场景、PBR材质的构建以及一些高级应用技巧。 1. PBR(Physically Based Rendering)基本概念 PBR,即Physically B…...
智谱AI清影升级:引领AI视频进入音效新时代
前几天智谱推出了新清影,该版本支持4k、60帧超高清画质、任意尺寸,并且自带音效的10秒视频,让ai生视频告别了"哑巴时代"。 智谱AI视频腾空出世,可灵遭遇强劲挑战!究竟谁是行业翘楚?(附测评案例)之前智谱出世那时体验了一…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
OD 算法题 B卷【正整数到Excel编号之间的转换】
文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的:a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...
Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解
文章目录 一、开启慢查询日志,定位耗时SQL1.1 查看慢查询日志是否开启1.2 临时开启慢查询日志1.3 永久开启慢查询日志1.4 分析慢查询日志 二、使用EXPLAIN分析SQL执行计划2.1 EXPLAIN的基本使用2.2 EXPLAIN分析案例2.3 根据EXPLAIN结果优化SQL 三、使用SHOW PROFILE…...
