Linux中mod相关的命令 内核模块化   mod相关命令都是用来动态加载内核模块/驱动程序模块

http://baike.baidu.com/link?url=lxiKxFvYm-UfJIxMjzMvMcGkzCwlxrj5L7YGKGd90hKX0iVU1Du5fa-6GvG0sw_hIoxwNh9rvwM9C2y3NN1RRa  鸟哥私房菜

module-init-tools:Linux内核可加载模块管理工具

rpm -ql module-init-tools
/etc/depmod.d
/etc/depmod.d/dist.conf
/etc/modprobe.d
/etc/modprobe.d/dist-alsa.conf
/etc/modprobe.d/dist-oss.conf
/etc/modprobe.d/dist.conf
/etc/modprobe.d/local.conf
/sbin/depmod
/sbin/insmod
/sbin/insmod.static
/sbin/lsmod
/sbin/modinfo
/sbin/modprobe
/sbin/rmmod
/sbin/weak-modules

其实跟程序的动态库的原理和作用一样,内核在用到的时候调用相应的内核模块,内核模块化

Linux驱动程序有两种加载方式:一种是静态地编译进内核,内核启动时自动加载,另一种是编写为内核/驱动模块,使用insmod命令将模块动态加载到正在运行的内核,

不需要时用rmmod命令将模块卸载。

LVS的IPVS模块也是采用动态加载的方式

命令有六个:modprobe(Linux 2.6新增)、depmod、insmod  、lsmod、rmmod、modinfo

mod:module内核模块

modprobe、insmod和depmod包含在一个名为modutils或mod-utils的工具包

modprobe

简介
Linux命令:modprobe 。
功能说明:自动处理可载入模块。
语 法:modprobe [-acdlrtvV][--help][模块文件][符号名称 = 符号值]。
补充说明:modprobe可载入指定的个别模块,或是载入一组相依的模块。modprobe会根据depmod所产生的相依关系,决定要载入哪些模块。若在载入过程中发生错误,在modprobe会卸载整组的模块。
内容
1、modprobe 命令是根据depmod -a的输出/lib/modules/kernel version/modules.dep来加载全部的所需要模块。
2、删除模块的命令是:modprobe -r filename。
3、系统启动后,正常工作的模块都在/proc/modules文件中列出使用lsmod命令也可显示相同内容
4、在内核中有一个“Automatic kernel module loading"功能被编译到了内核中。当用户尝试打开某类型的文件时,内核会根据需要尝试加载相应的模块。

/etc/modules.conf或 /etc/modprobe.conf文件是一个自动处理内核模块的控制文件。

cat /lib/modules/version/modules.dep
cat: /lib/modules/version/modules.dep: No such file or directory
参数
-a或--all  载入全部的模块。
-c或--show-conf  显示所有模块的设置信息。
-d或--debug  使用排错模式。
-l或--list  显示可用的模块。
-r或--remove  模块闲置不用时,即自动卸载模块。
-t或--type  指定模块类型。
-v或--verbose  执行时显示详细的信息。
-V或--version  显示版本信息。
-help  显示帮助。
操作
insmod 与 modprobe 都是载入 kernel module,不过一般差别在于 modprobe 能够处理 module 载入的依赖问题。
比如你要载入 a module,但是 a module 要求系统先载入 b module 时,直接用 insmod 载入通常都会出现错误讯息,不过 modprobe 倒是能够知道先载入 b module 后才载入 a module,如此相依性就会满足。
不过 modprobe 并不是大神,不会厉害到知道 module 之间的相依性为何,该程序是读取 /lib/modules/2.6.xx/modules.dep 文件得知依赖的。而该档案是透过 depmod 程式所建立。

modprobe   -r igb    删除igb模块

使用模块选项有两个方法

第一个  加载igb的时候到igb.conf文件里找

echo "options igb max_vfs=7"  >>/etc/modprobe.d/igb.conf

modprobe igb

第二个  在命令里指定选项

modprobe igb  max_vfs=7

深度实践KVM P49

depmod
模块依赖程序

/sbin/depmod -a

遍历文件/lib/modules/内核版本/modules.dep (模块依赖关系 该文件由depmod -a 命令建立的,保存了内核模块的依赖关系,使得在装入指定模块前装入那些事先需要装入的模块

insmod  
载入模块

insmod  first_time.ko

lsmod
列出内核已加载的模块

lsmod
Module                   Size        Used by
kvm                     337772   1  kvm_intel   kvm内核模块
ipmi_si                  44687    1 acpi_ipmi
ipmi_msghandler     38826   2 acpi_ipmi,ipmi_si

rmmod
卸载模块

rmmod first_time.ko

modinfo
查看模块信息

modinfo  first_time.ko

[root@localhost huage]# lsmod               //列出当前系统已加载的模块
Module                  Size  Used by
usb_storage            39114  0
cdrom                  34035  1 sr_mod
。。。。。。
。。。。。。
。。。。。。

[root@localhost huage]# lsmod |grep usb-storage

[root@localhost huage]# modprobe -r usb_storage     //删除模块;删除模块时需要加‘-r’参数
[root@localhost huage]# lsmod |grep usb

[root@localhost huage]# modprobe usb-storage          //添加模块;添加模块时,直接加模块名就可以了
[root@localhost huage]# lsmod |grep usb
usb_storage            39114  0

//使用modprobe命令添加或删除模块时,‘_’和‘-’没有区别,即下划线和中划线没有区别

不要跟ldd命令搞混了,ldd是显示程序所用的动态库 load dynamic library

Linux就这个范儿 第15章 七种武器

http://www.cnblogs.com/MYSQLZOUQI/p/5335649.html
modprobe、insmod和depmod包含在一个名为modutils或mod-utils的工具包内。这些工具帮助你自动或手动地装载模块。有的时候你想人为控制一个模块什么时候被装入,例如当装入某个模块会导致问题时,

你不想让某个模块被kernel自动装入,你可以把这个模块列到黑名单中不让它跨进内核的大门

在Linux 2.6之前,驱动模块是智能型的,它的加载是通过扫描总线寻找它识别的设备ID号来实现。
Linux2.6把这部分功能做了梳理,化复杂为简单,硬件检测外部化。
利用外部程序以及模块加载器来判断模块支持哪些设备。
除了insmod与rmmod外,Linux 2.6加载命令还有modprobe。modprobe同时会加载当前模块所依赖的其他模块。
在Red Hat Linux中,还可以使用PnP设备的检测程序kudzu来检测和配置硬件

Linux中mod相关的命令 内核模块化 mod相关命令都是用来动态加载内核模块/驱动程序模块...相关推荐

  1. Linux动态加载内核模块

    Linux属于单内核,为了弥补单内核扩展性与维护性差的缺点,Linux引入动态可加载内核模块,模块可以在系统运行期间加载到内核或从内核卸载.模块是具有独立功能的程序,它可以被单独编译,但不能独立运行. ...

  2. 【Linux 内核】宏内核与微内核架构 ( 操作系统需要满足的要素 | 宏内核 | 微内核 | Linux 内核动态加载机制 )

    文章目录 一.操作系统需要满足的要素 二.宏内核 三.微内核 四.Linux 内核动态加载机制 一.操作系统需要满足的要素 电脑上运行的 操作系统 , 是一个 软件 ; 设备管理 : 操作系统需要 为 ...

  3. linux卸载先驱的命令是,【单选题】在Linux中,若要在同一行书写多条命令,命令之间应使用符号()分隔A. 转义字符\\ B. 分号; C. , D. 空格...

    [单选题]在Linux中,若要在同一行书写多条命令,命令之间应使用符号()分隔 A. 转义字符\\ B. 分号; C. , D. 空格 更多相关问题 [单选] 以下不属于野兽派的代表人物() [单选] ...

  4. linux系统加载内核模块的命令是,linux insmod命令载入模块内核

    功能描述 Linux 有许多功能是通过模块的方式,在需要时才载入 kernel.如此可使 kernel 较为精简,进而提高效率,以及保有较大的弹性.这类可载入的模块,通常是设备驱动程序. [insmo ...

  5. [driver]linux内核动态加载模块

    问题: 1. 把编译好的模块放到板子/lib/modules对应文件夹下,并且执行了depmod -a, 比如pl2303.ko, 那么下一次插入pl2303的串口线,是否可以识别,也就是自动加载pl ...

  6. Linux 2.6内核的编译步骤及模块的动态加载

    本文是基于2.6的内核,也建议各位可以先看一下<Linux内核设计与实现(第二版)>作为一个基础知识的铺垫.当然,从实践角度来看,只要按着以下的步骤去做也应该可以实现成功编译内核及加载模块 ...

  7. linux内核采取,采用动态加载模块的方式Linux内核编译

    Linux内核是一种单体内核,但是通过动态加载模块的方式,使它的开发非常灵活方便.那么,它是如何编译内核的呢?我们可以通过分析它的Makefile入手.以下是一个简单的hello内核模块的Makefi ...

  8. 中动态路径加载_GOT段在linux系统中实现代码动态加载的作用和其他段的说明

    上一节我们看到,当程序想调用系统函数时,在编译阶段无法确认被调用函数所在的虚拟地址.因此必须有机制让程序在运行过程中,在调用系统API的时候有办法去确定所调用的系统函数对应的入口地址,这就是代码运行时 ...

  9. Linux可加载内核模块(LKM)(转载)

    转载: 漏天剑 文章导航: 为校长杯流尽最后一滴血, Lkm注射, 返回首页 Linux可加载内核模块(LKM) Linux可加载内核模块完全版 --黑客.病毒程序编写者和系统管理员的概念性指南 作者 ...

最新文章

  1. leetcode-53 最大子序和
  2. javaScript学习笔记之比较运算符||逻辑运算符||条件运算符(三目运算符)
  3. cydia软件路径_Cydia报错解决大全
  4. Arcgis Server开发使用query报错
  5. 计算机图形图像处理应用教程,计算机图形图像处理——Photoshop实用教程
  6. Python实现Mean Shift算法
  7. Web前端 学习知识点总结(十二)jQuery进阶 表单验证和简单正则表达式
  8. Online Calculators (在线计算器) - Math Calculators (数学计算器)
  9. 中国一共有多少神仙!今天让大家开开眼!
  10. Linux模块(2) - 创建设备节点
  11. Python迭代器是什么?
  12. NPDP知识推送-第七章产品生周期管理(4)
  13. 2023中国眼博会/护眼健康展/济南护眼贴展/山东护眼仪展①
  14. SEO分析和方案设计
  15. CSS隐藏浏览器滚动条
  16. 【web前端期末大作业】基于html+css+javascript+jquery技术设计的音乐网站(44页)
  17. C++笔试题汇总(6)
  18. 专访:吴洪声谈移动互联网下的“站长服务”生态
  19. ios emjoi java_iOS推送:Java服务器端发送表情(绘文字)
  20. Win11本地安全机构保护无法正常开启解决方法

热门文章

  1. WB实验关键点!附详细实验检查清单
  2. 医学论文摘要撰写的四要素以及注意事项
  3. 数学--线性代数--奇异值分解(SVD)
  4. INTERSPEECH 2021 AutoSpeech挑战赛开启报名
  5. mxnet基础到提高(51)-Activation激活函数
  6. ​【机器学习】交通数据的时间序列分析和预测实战
  7. 【推荐系统】推荐系统概述
  8. 【数据竞赛】懒人特征筛选算法!
  9. 【Python基础】Pandas三种实现数据透视表的方法
  10. 【Kick Algorithm】十大排序算法及其Python实现