1. lsmod 列出已经加载的内核模块
lsmod 是列出目前系统中已加载的模块的名称及大小等;另外我们还可以查看 /proc/modules ,我们一样可以知道系统已经加载的模块。
2.modinfo 查看模块信息
modinfo 可以查看模块的信息,通过查看模块信息来判定这个模块的用途。
3.modprobe 挂载新模块以及新模块相依赖的模块
modprobe 我们常用的功能就是挂载模块,在挂载某个内核模块的同时,这个模块所依赖的模块也被同时挂载;当然modprobe 也有列出内核所有模块,还有移除模块的功能;下在我们举个例子说一说咱们常用的功能和参数;
modprobe [-v] [-V] [-C config-file] [-n] [-i] [-q] [-o ] [parameters...]
modprobe -r [-n] [-i] [-v] ...
modprobe -l -t [ -a ...]
我们可以看到在/etc/modprobe.conf文件中存在的内容形式如下:
alias scsi_hostadapter mptbase
alias scsi_hostadapter1 mptspi
|
最后一列是模块名字,中间的是模块的别名。那么如果我们知道了一个模块的名字,怎么知道它的别名呢?用下面的命令就可以:
#
modprobe -
c
可以查看所有模块的别名
#
modprobe -
c 模块名 |
grep 模块名
|
modprobe
-l 是列出内核中所有的模块,包括已挂载和未挂载的;通过modprobe -l
,我们能查看到我们所需要的模块,然后根据我们的需要来挂载;其实modprobe -l 读取的模块列表就位于
/lib/modules/'uname -r' 目录中;其中uname -r 是内核的版本;
|
注意: 模块名是不能带有后缀的,我们通过modprobe -l 所看到的模块,都是带有.ko 或.o后缀;
4.rmmod 移除已挂载模块
5.depmod 创建模块依赖关系的列表
这个模块管理工具是创建模块依赖关系的列表,有几个参数我们注意一下就行了,目前的的Linux
发行版所用的内核是2.6x版本,是自动解决依赖关系,所以这个命令知道就行了;模块之前也有依赖关系,比如我们想驱动USB
移动硬盘,目前有两种驱动,一种是udev ,在内核中有,但目前不太稳定;另一种办法是用usb-storage驱动,而usb-storage
依赖的模块是scsi 模块,所以我们要用usb-storage 的模块,也得把scsi 编译安装;
再举个例子:sata的硬盘,在Linux中的设备表示的是/dev/sd* ,比如 /dev/sda,/dev/sdb 等...
系统要驱动 sata硬盘,则需要把sata在内核中选中,或编译成模块,或内置于内核之中,在此同时,还需要在内核中选中ide ,scsi
的支持等;
depmod 工具的洋文原意:depmod — program to generate modules.dep and map files.(我译的:为modules.dep 文件或映射文件创建依赖关系)
[root@localhost beinan]# depmod -a 注:为所有列在/etc/modprobe.conf 或/etc/modules.conf 中的所有模块创建依赖关系,并且写入到modules.dep文件;
[root@localhost beinan]# depmod -e 注:列出已挂载但不可用的模块;
[root@localhost beinan]# depmod -n 注:列出所有模块的依赖关系,但仅仅是输出出来 (Write the dependency file on stdout only)
注:modules.dep 位于 /lib/modules/内核版本 目录
6.insmod 挂载模块
insmod 这个工具,和modprobe 有点类似,但功能上没有modprobe 强,modprobe
在挂载模块是不用指定模块文件的路径,也不用带文件的后缀.o 或.ko ;而insmod
需要的是模块的所在目录的绝对路径,并且一定要带有模块文件名后缀的(modulefile.o 或modulesfile.ko )
7.与内核模块加载相关的配置文件
模块的配置文件 modules.conf 或 modprobe.conf
内核模块的开机自动挂载模块一般是位于一个配置文件,一般的Linux发行版本都有 /etc/modules.conf 或
/etc/modprobe.conf 。比如Fedora Core 4.0 内核模块开机自动加载文件是 /etc/modprobe.conf
;在这个文件中,一般是写入模块的加载命令或模块的别名的定义等;比如我们在modules.conf 中可能会发行类似的一行 ;
alias eth0 8139too
分享到:
相关推荐
LINUX内核模块编程LINUX内核模块编程LINUX内核模块编程
4. Linux内核模块开发 5. Linux内核启动流程 第二天 1. Linux内存管理 2. Linux进程地址空间 3. Linux内核地址空间 4. Linux内核链表 5. Linux内核定时器 第三天 1. Linux进程控制 2. Linux进程调度 3. Linux系统...
前面我们介绍模块编程的时候介绍了驱动进入内核有两种方式:模块和直接编译进内核,并介绍了模块的一种编译方式——在一...我们在进行linux内核配置的时候经常会执行make menuconfig这个命令,然后屏幕上会出现以下界面
6、Linux内核模块编程:内核模块编程、卸载模块编程、参数模块编程 8、Linux内存管理:编写模块程序、编译、插入模块、查看打印信息 8、Linux设备驱动:编写一个简单的字符设备驱动、查看设备号、编写测试程序 使用...
十 使用SkyEye构建Linux内核调试环境 1 SkyEye的安装和μcLinux内核编译 2 使用SkyEye调试 3 使用SkyEye调试内核的特点和不足 十一 KDB 1 入门 2 初始化并设置环境变量 3 激活 KDB 4 KDB 命令 5 技巧和诀窍 6 结束语...
加载内核模块后,调用dmesg命令以确保正确构建了列表。在模块出口点,从链接列表中删除元素,然后将可用内存返回给内核。同样,一旦内核模块被卸载,则调用dmesg命令以检查该列表是否已被删除。
1-4(linux内核模块开发) 2-1(bootloader介绍) 2-2(交叉工具链) 2-3(uboot介绍) 2-4(uboot命令) 3-1(嵌入式linux内核制作) 3-2(根文件系统制作) 3-3(嵌入式文件系统) 4-1(linux内存管理) 4-2(进程地址空间) 4-3(内核...
第4章 内核模块 4. 1 概述 4. 2 模块实现机制 4. 3 实例 第5章 系统调用 5. 1 一个简单的例子 5. 2 系统调用基础知识 5. 3 相关数据结构. 源代码分析及流程 5. 4 详细讲解一个系统调用的实现 5. 5 简单系统调用的...
Linux是单内核结构,也就是说, 它是一个大程序, 其中任一函数都可以访问公共数据结构和...可以使用 insmod 和 rmmod 命令来装载和卸掉 Linux 模块, 内核自己也可以调用内核驻留程序(Kerneld) 来按需要装载和卸掉模块。
Linux内核Linux内核moudules.dep 文件depmod 命令depmod 实验lsmod 命令modinfo 命令内核模块的观察实验内核模块的加
RCSwitch Linux 内核模块 - 运行 434MHz RCSwitches 18.07.2014 斯蒂芬·温德勒 通过 SYSFS 操作 RC 电源插座(开关)的内核模块。 该模块专为基于 MIPS 的 Carambola 板而设计,但也应在任何其他 Linux 板上运行。 ...
读核感悟 kbuild系统 内核模块的编译 22 读核感悟 kbuild系统 编译到内核和编译成模块的区别 24 读核感悟 kbuild系统 make bzImage的过程 26 读核感悟 kbuild系统 make menuconfig 31 读核感悟 文件系统 用C来实现...
常用查看Linux系统信息命令 系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU...# lsmod # 列出加载的内核模块 # env # 查看环境变量资源
读核感悟-kbuild系统-内核模块的编译.........................................22 读核感悟-kbuild系统-编译到内核和编译成模块的区别...........................24 读核感悟-kbuild系统-make bzImage的过程.........
linux内核调试分析指南 linux内核调试分析指南--上篇 本文档已经转到下面的网址,位于zh-kernel.org的文档停止更新,请访问新网址 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一...
Linux内核 2 1.嵌入式实时操作系统的特点、和非嵌入式操作系统的区别, 2 1、多任务类型 2 2、约束的复杂性 2 3、具有短暂超载的特点 2 2.ARM CortexA/R/M系列内核的区别和应用领域, 3 3.Bootloader工作原理/基本...
本文介绍Linux系统中的内核技术。并且介绍了如何装载和卸掉模块。可以使用 insmod 和 rmmod 命令来装载和卸掉 Linux 模块, 内核自己也可以调用内核驻留程序(Kerneld) 来按需要装载和卸掉模块。
学习内核模块 编写一个模块,将它作为Linux OS内核空间的扩展来执行,并通过insmod命令来手工加载,通过命令rmmod来手工卸载。
Linux内核裁剪的具体步骤 详细介绍内核配置选项及删改情况 第一部分:全部删除 Code maturity level options ---> 代码成熟等级选项 []Prompt for development and/or incomplete code/drivers 默认情况下是选择...