modprobe命令及其与insmod depmod的区别

news2024/11/25 18:45:33

1. modprobe命令详解

modprobe工具可以智能的添加和删除一个模块,之所以说它智能,是因为它能够通过配置的一些预定义的规则解析出模块之间的依赖关系,并且自动加载依赖的模块。

modprobe会从 /lib/modules/uname -r目录中查找要加载的模块以及对应的依赖规则,除了这个目录以外,modprobe还有一个配置目录/etc/modprobe.d,这个配置目录中是用户可以自定义的一些modprobe行为。

1.1 依赖关系配置
modprobe是从/lib/modules/uname -r/modules.dep文件来查找依赖关系的,默认modprobe也是在/lib/modules/uname -r/目录中查找模块进行加载的。

如下图以我的机器为例,截取部分的依赖文件/lib/modules/4.19.125/modules.dep;

在这里插入图片描述

extra/host/xhci-plat-hcd.ko: extra/host/xhci-hcd.ko
extra/gadget/function/usb_f_ss_lb.ko: extra/gadget/libcomposite.ko
extra/gadget/function/usb_f_uvc.ko: extra/gadget/libcomposite.ko
extra/gadget/function/u_ether.ko:
extra/serial/usbserial.ko:
extra/serial/ch341.ko: extra/serial/usbserial.ko
extra/gadget/libcomposite.ko:
extra/gadget/function/usb_f_acm.ko: extra/gadget/function/u_serial.ko extra/gadget/libcomposite.ko
extra/gadget/function/usb_f_mass_storage.ko: extra/gadget/libcomposite.ko
extra/gadget/function/usb_f_rndis.ko: extra/gadget/function/u_ether.ko extra/gadget/libcomposite.ko
extra/gadget/function/usb_f_serial.ko: extra/gadget/function/u_serial.ko extra/gadget/libcomposite.ko
extra/gadget/function/u_serial.ko:
extra/serial/pl2303.ko: extra/serial/usbserial.ko
extra/cdns3/cdns3.ko:
extra/typec/axera_sgm7220.ko:
extra/storage/uas.ko: extra/storage/usb-storage.ko
extra/uio/uio_pdrv_genirq.ko:
extra/host/xhci-hcd.ko:
extra/typec/tcpci.ko: extra/typec/tcpm.ko
extra/spi/spidev.ko:
extra/misc/usbtest.ko:
extra/class/cdc-acm.ko:
extra/storage/usb-storage.ko:
extra/typec/tcpm.ko:

1.2 modprobe.d配置

/etc/modprobe.d中定义的关键功能如下:

在这里插入图片描述

modprobe 和 insmod在linux下都用来加载模块,两者用法区别如下:
(1)insmod需指定所需加载模块的路径,且只加载所指定的模块,如果所指定的模块依赖于其他模块,insmod不会自动添加,insmod使用方法如下:insmod 某路径/xxx.ko
(2)modprobe相比较于insmod更加智能,使用modprob加载模块时只需指定模块名称而不是模块的路径,使用modprobe加载内核模块时,如果加载的模块依赖于其他模块,modprobe会自动加载被依赖的模块,比如我们需要加载模块A,但是模块A依赖于模块B,那么我们在使用modprobe加载内核模块A时,modprobe会先加载内核模块B,然后再加载内核模块A。使用方法如下:modprobe xxx

Q1:modprobe加载内核模块时只需指定模块名称而不需要路径,那modprobe是如何知道要加载的内核模块的路径的?

Q2:modprobe是如何判断加载模块时所加载的模块是否依赖其他模块的?

问题1: modprobe加载内核的文件必须位于/lib/modules/(shell uname -r)目录下,也就是modprobe加载内核模块之所以不需要指定路径是因为modprobe命令有默认的加载路径。

问题2: modeprobe加载内核模块时依赖于/lib/modules/(shell uname -r)/modules.dep文件,modules.dep文件中列举了modproe可加载的内核文件以及内核文件所依赖的文件。假如一个内核模块位于/lib/modules/(shell uname -r)目录下,但是该模块未添加到modules.dep文件中,也无法通过modeprobe命令加载。那么问题来了,modules.dep文件是如何生成的?modules.dep文件通过depmode生成,如果往/lib/modules/(shell uname -r)目录下放置一个新的内核模块XXX并且希望通过modprobe命令进行加载模块XXX,那么将内核模块XXX放到/lib/modules/(shell uname -r) 目录下后需运行depmode命令,然后再运行modeprobe XXX才能将内核模块加载成功,否则会报错: modeprobe XXX not found。

depmod作用:
上面已经说过了,用于生成modprobe依赖的modules.dep。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/978872.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nginx从安装到使用,反向代理,负载均衡

什么是Nginx? 文章目录 什么是Nginx?1、Nginx概述1.1、Nginx介绍1.2、Nginx下载和安装1.3、Nginx目录结构 2、Nginx命令2.1、查看版本2.2、检查配置文件正确性2.3、启动和停止2.4、重新加载配置文件2.5、环境变量的配置 3、Nginx配置文件结构4、Nginx具体…

面向更大屏幕的片段

目前为止,只做过小屏幕设备运行应用。 本文中将创建灵活的用户界面,根据运行应用的设备让应用有不同的外观和行为。 之前我们创建了在手机上运行的Workout应用版本。但是在一个平板上运行这个应用时,应用的表现几乎是一样的。不过由于屏幕更大…

2023年数维杯数学建模A题河流-地下水系统水体污染研求解全过程文档及程序

2023年数维杯数学建模 A题 河流-地下水系统水体污染研 原题再现: 河流对地下水有着直接地影响,当河流补给地下水时,河流一旦被污染,容易导致地下水以及紧依河流分布的傍河水源地将受到不同程度的污染,这将严重影响工…

STM32 CAN快速配置(HAL库版本)

STM32 CAN快速配置(HAL库版本) 目录 STM32 CAN快速配置(HAL库版本)前言1 软件编程1.1 初始化1.1.1 引脚设置1.1.2 CAN参数设置1.1.3 CAN滤波器设置 1.2 CAN发送1.3 CAN接收 2 运行测试结束语 前言 控制器局域网总线(CA…

vscode debug python launch.json添加args不起作用

问题 为了带入参数调试python 程序,按照网上搜到的教程配置了lauch.json文件,文件中添加了"args": [“model” “0” “path”] {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: h…

恢复iTunes备份看这里,2招教你搞定!

iTunes除了是一款免费的数字媒体播放程序以外,苹果用户还可以借助iTunes对自己的iPhone进行全面的备份和恢复,并且在设备损坏或者数据,也能够帮助用户快速恢复数据。当您的数据意外丢失后,该如何从itunes备份中恢复数据呢&#xf…

Shell 运算符及语法结构

目录 一、Shell运算符 1.1 表达式expr 1.2 运算操作 1.3 操作实例 二、Shell条件判断 2.1 基本语法 2.2 值、权限、类型、多条件判断 三、Shell流程控制 3.1 if 流程语法 3.2 case 流程语法 3.3 for 流程语法 3.4 内部运算符 3.5 while循环流程语法 四、Shell读…

香港物流公司新世纪储运申请1125万美元美元纳斯达克IPO上市

来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,香港物流公司新世纪储运New Century Logistics (BVI) Limited,近期已向美国证券交易委员会(SEC)提交招股书,申请在纳斯达克IPO上市,股票…

865. 具有所有最深节点的最小子树(javascript)865. Smallest Subtree with all the Deepest Nodes

给定一个根为 root 的二叉树,每个节点的深度是 该节点到根的最短距离 。 返回包含原始树中所有 最深节点 的 最小子树 。 如果一个节点在 整个树 的任意节点之间具有最大的深度,则该节点是 最深的 。 一个节点的 子树 是该节点加上它的所有后代的集合…

【C++学习笔记】4、变量

文章目录 【 1、变量的定义 】【 2、变量的声明 】示例 【 3、左值和右值 】 变量:相当于是程序可操作的数据存储区的名称。在 C 中,有多种变量类型可用于存储不同种类的数据。C 中每个变量都有指定的类型,类型决定了变量存储的大小和布局&am…

动态规划之简单多状态

简单多状态 1. 按摩师(easy)2. 打家劫舍II (medium)3. 删除并获得点数(medium)4. 买卖股票的最佳时机含冷冻期(medium)5. 买卖股票的最佳时机III(hard) 1. 按…

《人生苦短,我学Python》——条件判断->(if-elif-else)多向选择 条件嵌套

今天,我们来学习多向选择!if--elif--else if 后的语句是当 if 判断条件成立时,执行的操作。elif 后的语句是当 if 判断不成立时,再判断一次,如果成立,执行的操作。else 后的语句是当以上所有判断条件都不成…

数据库 设计规范数据库设计样例

目录 5 数据库5.1 数据库命名规范5.2 数据库字段命名5.2.1 字段命名规范5.2.2 命名规范5.2.3 待优化命名示例5.2.4 字段类型规范5.2.5数据库中每个字段的规范描述 5.3表设计5.4 参考设计5.4.1 应用场景5.4.2 需求分析5.4.3 设计思路5.4.4 表结构设计5.4.5 缓存策略Q1 冗余设计和…

含面试题 Redis 为什么这么快?深度解析性能的奥秘超级用心的图文版

面试题分享 2023最新面试合集链接 2023大厂面试题PDF 面试题PDF版本 java、python面试题 项目实战:AI文本 OCR识别最佳实践 AI Gamma一键生成PPT工具直达链接 玩转cloud Studio 在线编码神器 玩转 GPU AI绘画、AI讲话、翻译,GPU点亮AI想象空间 史上最全文档AI绘画stab…

ICCV 2023|通过慢学习和分类器对齐在预训练模型上进行持续学习

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 作者介绍 张耕维 悉尼科技大学在读博士生,研究方向为持续学习 报告题目 通过慢学习和分类器对齐在预训练模型上进行持续学习 内容简介 持续学习研究的目标在于提高模型利用顺序到达的数据进行学习的…

【python基础知识】6.布尔值和四种语句(break、continue、pass、else)

文章目录 前言用数据做判断:布尔值两个数值做比较直接用数值做运算布尔值之间的运算 四种新的语句break语句continue语句pass语句else语句循环小练习 前言 Hi,你来了。 上一关我们学习了for循环和while循环,让我们复习回顾一下:…

学习笔记|定时器|STC中断|定时器时间计算|STC32G单片机视频开发教程(冲哥)|第十一集:定时器的作用和意义

文章目录 1.定时器的作用和意义定时器中断定时器是定时器和计数器的统称。 2.STC32G单片机定时器使用原理2.1 先设置功能为定时器/计数器(本质都是加法计数器)2.2、在定时器模式下,设置不分频或者12分频∶Tips:选择不分频还是12分频2.3、定时器的工作模式…

初探Vue.js及Vue-Cli

一、使用vue框架的简单示例 我们本次的vue系列就使用webstorm来演示: 对于vue.js的安装我们直接使用script的cdn链接来实现 具体可以参考如下网址: https://www.bootcdn.cn/ 进入vue部分,可以筛选版本,我这里使用的是2.7.10版本的&#xff…

正则的高级玩法

在正则表达式中,括号涉及的问题比较多,所以这里单独拿出来讲。 分组 如果量词所限定的元素不是一个字符或者字符组,而是一系列字符或者子表达式,就需要使用括号将他们括起来,表示为“一组”,构成单个元素…

【python零基础入门学习】python基础篇之系统模块调用shell命令执行(四)

本站以分享各种运维经验和运维所需要的技能为主 《python》:python零基础入门学习 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8》暂未更新 《docker学习》暂未更新 《ceph学习》ceph日常问题解…