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动态加载 声明 欢迎转载, ...
随机推荐
-
(转)apache和nginx的区别
nginx 相对 apache 的优点: 轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下ngin ...
-
select实现输入模糊匹配与选择双重功能
下载jqueryUI插件 引入 <link rel="stylesheet" type="text/css" href="/js/jquery/ ...
-
php之图片处理类缩略图加水印
用到两个image系统函数 imagecopymerge — 拷贝并合并图像的一部分 imagecopyresampled — 重采样拷贝部分图像并调整大小 /* 如何知道图片的大小和类型 无法确认调 ...
-
android studio 改变主题及字体大小
一丶修改主题背景 1.点击图中的小扳子图标(设置),或者点击file->setting-> 2.找到Appearance->在Theme中选择Darcula,即可改变成当前最主流的主 ...
-
Jmeter发送JDBC请求
下午花了两个小时研究了一下Jmeter发送JDBC请求,现在把基本操作流程分享一下. 做JDBC请求,首先需要两个jar包:mysql驱动-mysql-connector-java-5.1.13-bi ...
-
Python进阶:全面解读高级特性之切片!
导读:切片系列文章连续写了三篇,本文是对它们做的汇总.为什么要把序列文章合并呢?在此说明一下,本文绝不是简单地将它们做了合并,主要是修正了一些严重的错误(如自定义序列切片的部分),还对行文结构与章节衔 ...
-
CSS(八)
CSS3 transform变换 1.translate(x,y) 设置盒子位移2.scale(x,y) 设置盒子缩放3.rotate(deg) 设置盒子旋转4.skew(x-angle,y-angl ...
-
git的那些事
前言:记得在想学习git的时候,一直停留在思想的层面,总没有弄清楚它的运行机制,经常与github混淆,还好找到了一个好的教程,带我领略了git的风采 (一)git的优点 git的优点:版本控制在本地 ...
-
hadoop - 基础操作
查看文件: [root@hadoop hadoop]# hadoop fs -lsr /drwxr-xr-x - root supergroup 0 2016-12-27 10:49 /homedrw ...
-
js 获取图片url的Blob值并预览
1)使用 XMLHttpRequest 对象获取图片url的Blob值 //获取图片的Blob值 function getImageBlob(url, cb) { var xhr = new XMLH ...