Linux中mod相关的命令 内核模块化 mod相关命令都是用来动态加载内核模块/驱动程序模块
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相关命令都是用来动态加载内核模块/驱动程序模块的更多相关文章
- linux下自动加载设备驱动程序模块
假设你的设备驱动程序为:yourdrivername.ko 1 cp yourdrivername.ko /lib/modules/"version"/kernel/driver ...
- 动态加载JS过程中如何判断JS加载完成
在正常的加载过程中,js文件的加载是同步的,也就是说在js加载的过程中,浏览器会阻塞接下来的内容的解析.这时候,动态加载便显得尤为重要了,由于它是异步加载,因此,它可以在后台自动下载,并不会妨碍其它内 ...
- [driver]linux内核动态加载模块
问题: 1. 把编译好的模块放到板子/lib/modules对应文件夹下,并且执行了depmod -a, 比如pl2303.ko, 那么下一次插入pl2303的串口线,是否可以识别,也就是自动加载pl ...
- Android中的动态加载机制
在目前的软硬件环境下,Native App与Web App在用户体验上有着明显的优势,但在实际项目中有些会因为业务的频繁变更而频繁的升级客户端,造成较差的用户体验,而这也恰恰是Web App的优势.本 ...
- 非常郁闷的 .NET中程序集的动态加载
记载这篇文章的原因是我自己遇到了动态加载程序集的问题,而困扰了一天之久. 最终看到了这篇博客:http://www.cnblogs.com/brucebi/archive/2013/05/22/Ass ...
- Android中插件开发篇之----动态加载Activity(免安装运行程序)
一.前言 又到周末了,时间过的很快,今天我们来看一下Android中插件开发篇的最后一篇文章的内容:动态加载Activity(免安装运行程序),在上一篇文章中说道了,如何动态加载资源(应用换肤原理解析 ...
- Java动态加载类在功能模块开发中的作用
Java中我们一般会使用new关键字实例化对象然后调用该对象所属类提供的方法来实现相应的功能,比如我们现在有个主类叫Web类这个类中能实现各种方法,比如用户注册.发送邮件等功能,代码如下: /* * ...
- ExtJs中动态加载机制研究(转)
觉得写的太好了,怕弄丢了,转一下:http://extjs.org.cn/node/659 昨天我们team对于extjs的动态加载机制做了些深入研究,这里先share下controller加载的结果 ...
- Android应用开发提高系列(4)——Android动态加载(上)——加载未安装APK中的类
前言 近期做换肤功能,由于换肤程度较高,受限于平台本身,实现起来较复杂,暂时搁置了该功能,但也积累了一些经验,将分两篇文章来写这部分的内容,欢迎交流! 关键字:Android动态加载 声明 欢迎转载, ...
随机推荐
- mysql 商品表的设计思路(面向对象建表:类与对象)
学习地址 http://www.jtthink.com/course/play/352 商品通用信息主表:prop_main 不仔细多说,正常业务都会涉及到并且考虑的相对周全.常用字段[商品id][商 ...
- 如何在64位windows7上同时使用32位和64位的Eclipse
我用的是64位的windows7旗舰版,jdk1.7 64位机器上可以同时运行32位和64位的Eclipse,但是电脑中必须有相应的jdk.Eclipse虽然不需要安装,但是在启动时会检查系统中固定文 ...
- 通过SEP禁用USB
1 Introduction 1.1 Scope This document provides comprehensive information of the reinforce ...
- 【液晶模块系列基础视频】5.2.X-GUI字体驱动2
============================= 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee.cnblogs.com 官方网店:ht ...
- 前端编码规范(2)—— HTML 规范
HTML 规范 文档类型 推荐使用 HTML5 的文档类型申明: <!DOCTYPE html>. (建议使用 text/html 格式的 HTML.避免使用 XHTML.XHTML 以及 ...
- thinkPHP实现瀑布流的方法
thinkPHP实现瀑布流的方法 文章TAG:thinkphp 瀑布流 时间:2014-11-29来源:www.aspku.com 作者:源码库 文章热度: 131 ℃ 过期已备案域名,注册就能用!终 ...
- PHP常用验证正则表达式
PHP常用验证正则表达式 数字.手机号.QQ号.Url地址合法性校验 1.验证是否为整数 1 function isNumber($val) 2 { 3 if(ereg("^[0-9]+$& ...
- 彻底删除oracle的方法
环境:Windows 2000+ORACLE,其他环境类似 假设ORACLE安装路径为:D:\ORACLE ,其他路径操作类似 方法: 1.开始->设置->控制面板->管理工具-&g ...
- HTML: 字符實體
在HTML編寫中,有些字符不適合直接在代碼中寫出,比如>,<, (space空格),",',&等等,這時我們按照一定的格式將它們寫出,比如(大於)> 符號,我們用 ...
- Flink - FlinkKafkaConsumer08
先看 AbstractFetcher 这个可以理解就是,consumer中具体去kafka读数据的线程,一个fetcher可以同时读多个partitions的数据来看看 /** * Base cl ...