`
xitong
  • 浏览: 6188750 次
文章分类
社区版块
存档分类
最新评论

linux内核模块管理命令

 
阅读更多
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内核模块编程LINUX内核模块编程

    国嵌嵌入式(Linux)开发培训课件 内核开发与系统移植

    4. Linux内核模块开发 5. Linux内核启动流程 第二天 1. Linux内存管理 2. Linux进程地址空间 3. Linux内核地址空间 4. Linux内核链表 5. Linux内核定时器 第三天 1. Linux进程控制 2. Linux进程调度 3. Linux系统...

    linux 内核配置机制

    前面我们介绍模块编程的时候介绍了驱动进入内核有两种方式:模块和直接编译进内核,并介绍了模块的一种编译方式——在一...我们在进行linux内核配置的时候经常会执行make menuconfig这个命令,然后屏幕上会出现以下界面

    Linux实验课设报告

    6、Linux内核模块编程:内核模块编程、卸载模块编程、参数模块编程 8、Linux内存管理:编写模块程序、编译、插入模块、查看打印信息 8、Linux设备驱动:编写一个简单的字符设备驱动、查看设备号、编写测试程序 使用...

    linux内核调试方法总结

    十 使用SkyEye构建Linux内核调试环境 1 SkyEye的安装和μcLinux内核编译 2 使用SkyEye调试 3 使用SkyEye调试内核的特点和不足 十一 KDB 1 入门 2 初始化并设置环境变量 3 激活 KDB 4 KDB 命令 5 技巧和诀窍 6 结束语...

    操作系统课程实验--内核模块创建与链表构建Project-1.pdf

    加载内核模块后,调用dmesg命令以确保正确构建了列表。在模块出口点,从链接列表中删除元素,然后将可用内存返回给内核。同样,一旦内核模块被卸载,则调用dmesg命令以检查该列表是否已被删除。

    国嵌嵌入式LINUX视频教程LINUX内核驱动进阶班共35讲.txt

    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(内核...

    边干边学——LINUX内核指导

    第4章 内核模块 4. 1 概述 4. 2 模块实现机制 4. 3 实例 第5章 系统调用 5. 1 一个简单的例子 5. 2 系统调用基础知识 5. 3 相关数据结构. 源代码分析及流程 5. 4 详细讲解一个系统调用的实现 5. 5 简单系统调用的...

    Linux内核按需动态装载和卸掉模块

    Linux是单内核结构,也就是说, 它是一个大程序, 其中任一函数都可以访问公共数据结构和...可以使用 insmod 和 rmmod 命令来装载和卸掉 Linux 模块, 内核自己也可以调用内核驻留程序(Kerneld) 来按需要装载和卸掉模块。

    11-Linux内核1

    Linux内核Linux内核moudules.dep 文件depmod 命令depmod 实验lsmod 命令modinfo 命令内核模块的观察实验内核模块的加

    rcswitch-kmod:Linux 内核模块通过 sysfs 控制基于 434Mhz 的 RC 开关

    RCSwitch Linux 内核模块 - 运行 434MHz RCSwitches 18.07.2014 斯蒂芬·温德勒 通过 SYSFS 操作 RC 电源插座(开关)的内核模块。 该模块专为基于 MIPS 的 Carambola 板而设计,但也应在任何其他 Linux 板上运行。 ...

    [14本经典Android开发教程]-8-Linux内核阅读心得体会

    读核感悟 kbuild系统 内核模块的编译 22 读核感悟 kbuild系统 编译到内核和编译成模块的区别 24 读核感悟 kbuild系统 make bzImage的过程 26 读核感悟 kbuild系统 make menuconfig 31 读核感悟 文件系统 用C来实现...

    常用查看Linux系统信息命令

    常用查看Linux系统信息命令 系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU...# lsmod # 列出加载的内核模块 # env # 查看环境变量资源

    Linux内核阅读

    读核感悟-kbuild系统-内核模块的编译.........................................22 读核感悟-kbuild系统-编译到内核和编译成模块的区别...........................24 读核感悟-kbuild系统-make bzImage的过程.........

    linux内核调试分析指南

    linux内核调试分析指南 linux内核调试分析指南--上篇 本文档已经转到下面的网址,位于zh-kernel.org的文档停止更新,请访问新网址 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一...

    linux内核整理.docx

    Linux内核 2 1.嵌入式实时操作系统的特点、和非嵌入式操作系统的区别, 2 1、多任务类型 2 2、约束的复杂性 2 3、具有短暂超载的特点 2 2.ARM CortexA/R/M系列内核的区别和应用领域, 3 3.Bootloader工作原理/基本...

    Linux操作系统自如的装卸内核模块

    本文介绍Linux系统中的内核技术。并且介绍了如何装载和卸掉模块。可以使用 insmod 和 rmmod 命令来装载和卸掉 Linux 模块, 内核自己也可以调用内核驻留程序(Kerneld) 来按需要装载和卸掉模块。

    Linux实验模块加载和卸载及内存管理

    学习内核模块 编写一个模块,将它作为Linux OS内核空间的扩展来执行,并通过insmod命令来手工加载,通过命令rmmod来手工卸载。

    Linux内核裁剪的具体步骤.doc

    Linux内核裁剪的具体步骤 详细介绍内核配置选项及删改情况 第一部分:全部删除 Code maturity level options ---> 代码成熟等级选项 []Prompt for development and/or incomplete code/drivers 默认情况下是选择...

Global site tag (gtag.js) - Google Analytics