·    ko:kernel object
·    so:shared object
[root@rhel6 ~]# ls /lib/modules/$(uname -r)/kernel/arch/x86/kvm
kvm-amd.ko  kvm-intel.ko  kvm.ko
 
·    通过移除内核模块可达到禁用该模块的作用
[root@rhel6 ~]# ls /lib/modules/$(uname -r)/kernel/drivers/usb/storage            //移除usb-storage.ko即可禁用U盘
ums-alauda.ko   ums-datafab.ko  ums-isd200.ko    ums-karma.ko     ums-sddr09.ko  ums-usbat.ko
ums-cypress.ko  ums-freecom.ko  ums-jumpshot.ko  ums-onetouch.ko  ums-sddr55.ko  usb-storage.ko
 
·    通过lsmod查看系统已加载的所有内核模块
[root@rhel6 ~]# lsmod
模块名称                    模块大小    依赖关系
Module                  Size  Used by
ipt_MASQUERADE          2466  0
ipt_REJECT              2383  0
autofs4                26888  3
scsi_transport_fc      52241  3 bnx2fc,fcoe,libfc
scsi_tgt               12173  1 scsi_transport_fc
8021q                  23575  0
iptable_mangle          3349  1
iptable_filter          2793  0
iptable_nat             6158  1
nouveau               708444  0
ext4                  364410  2
mmc_core               72991  1 sdhci
video                  21032  2 nouveau,i915
 
·    通过modprobe添加/删除内核模块
modprobe命令主要用于在Linux2.6内核中加载和删除Linux内核模块,通过此命令可轻松加载和删除Linux内核模块,同时会自动解决内核模块之间的依赖关系,并加载相互依赖的模块。
·    添加vfat内核模块
[root@rhel6 ~]# lsmod | grep vfat                            //列出当前内存当中是否已加载vfat的内核模块
[root@rhel6 ~]# modprobe vfat                              //不需加 .ko"
[root@rhel6 ~]# lsmod | grep vfat
vfat                   46529  0
fat                    85873  1 vfat
·    删除vfat内核模块
[root@rhel6 ~]# modprobe -r vfat
[root@rhel6 ~]# lsmod | grep vfat
 
·    通过insmod/rmmod 添加/删除内核模块
insmod命令主要用于在Linux2.4内核之前加载内核模块,系统不仅不会自动解决内核模块之间的依赖关系,而且还要求写出详细的模块路径
rmmod命令主要用于卸载正在使用的Linux内核模块,与modprobe -r命令相似
·    添加vfat内核模块
[root@rhel6 ~]# insmod /lib/modules/2.6.32-220.el6.x86_64/kernel/fs/fat/fat.ko   
[root@rhel6 ~]# insmod /lib/modules/2.6.32-220.el6.x86_64/kernel/fs/vfat/vfat.ko
[root@rhel6 ~]# lsmod | grep vfat
vfat                   46529  0
fat                    85873  1 vfat
·    删除vfat内核模块
[root@rhel6 ~]# rmmod vfat
[root@rhel6 ~]# rmmod fat
[root@rhel6 ~]# lsmod | grep vfat
 
·    通过 depmod 重新注册内核模块信息
(非系统自带的内核模块不能通过modprobe直接加载,可通过insmod手工加载或者将该内核模块的*.ko文件拷贝到相应的目录下通过depmod重新注册内核模块信息)
[root@rhel6 ~]# depmod [-ane]
-a     :不加任何参数时, depmod 会主动的去分析目前核心的模块,并且重新写入/lib/modules/$(uname -r)/modules.dep 当中。
        若加入 -a 参数时,则 depmod会去搜寻比 modules.dep 内还要新的模块,如果找到新模块,才会升级。
-n  :不写入 modules.dep ,而是将结果输出到屏幕上(standard out);
-e  :显示出目前已加载的不可运行的模块名称
 
[root@rhel6 ~]# file /lib/modules/2.6.32-220.el6.x86_64/modules.dep        
/lib/modules/2.6.32-220.el6.x86_64/modules.dep: ASCII text, with very long lines
[root@rhel6 ~]# rm -f /lib/modules/2.6.32-220.el6.x86_64/modules.dep
[root@rhel6 ~]# depmod                                       //重新注册当前系统的内核模块信息并生成modules.dep文件
[root@rhel6 ~]# ls /lib/modules/2.6.32-220.el6.x86_64| grep modules.dep
modules.dep
modules.dep.bak
[root@rhel6 ~]# ls /lib/modules/2.6.32-220.el6.x86_64/modules.dep
/lib/modules/2.6.32-220.el6.x86_64/modules.dep
[root@rhel6 ~]# depmod -a                              //注册/lib/modules/下所有内核的内核模块信息
[root@rhel6 ~]# depmod `uname -r`                  //只注册当前系统中的内核模块信息
·    通过 modinfo 查看内核模块信息
[root@rhel6 ~]# modinfo vfat
filename:       /lib/modules/2.6.32-220.el6.x86_64/kernel/fs/fat/vfat.ko
author:         Gordon Chaffee
description:    VFAT filesystem support
license:        GPL
srcversion:     ACCC2F7E9526F402F526976
depends:        fat
vermagic:       2.6.32-220.el6.x86_64 SMP mod_unload modversions
 
 
 

Linux内核模块(二)相关推荐

  1. 杭电操作系统实验二 --- Linux 内核模块编程(arm架构华为云)

    一.题目介绍 掌握Linux 内核模块的基本概念 ·阅读教材7.3.2节Linux内核模块简介 ,网上查找资料,了解Linux内核模块的基本概念. ·阅读教材7.3.3内核模块编程基础 ,网上查找资料 ...

  2. 【Kevin三连弹之二】Rust适合用来写linux内核模块吗?

    本文转载自知乎:https://zhuanlan.zhihu.com/p/137907908 作者:Kevin Wang 前几天,我发了一篇文章记录了我用Rust重写一个Linux内核模块的一些重点体 ...

  3. Linux内核模块简介

    一. 摘要 这篇文章主要介绍了Linux内核模块的相关概念,以及简单的模块开发过程.主要从模块开发中的常用指令.内核模块程序的结构.模块使用计数以及模块的编译等角度对内核模块进行介绍.在Linux系统 ...

  4. 编写函数实现员工信息录入和输出_编写我的第一个Linux 内核模块“hello_module”...

    前言: Linux 内 核 模 块 全 称 为 " 动 态 可 加 载 内 核 模 块 (Loadable Kernel Module,LKM)",是系统内核向外部提供的功能插口. ...

  5. Linux内核模块的概念和基本的编程方法

    Linux内核模块的概念和基本的编程方法 标签: Linux内核模块 2013-06-14 18:29 1864人阅读 评论(0) 收藏 举报 分类: linux内核(34) 版权声明:本文为博主原创 ...

  6. linux内核模块实验,linux内核模块实验(2学时)

    第一个内核模块实验 一:预习要求: (1 )做本实验之前,请复习相关内核模块知识. (2 )请了解内核模块的编写.编译及安装与卸载方法. (3 )请学习内核打印函数printk() 的用法. (4 ) ...

  7. 【Linux驱动】linux内核模块简介

    一. 摘要 这篇文章主要介绍了Linux内核模块的相关概念,以及简单的模块开发过程.主要从模块开发中的常用指令.内核模块程序的结构.模块使用计数以及模块的编译等角度对内核模块进行介绍.在Linux系统 ...

  8. linux 内核模块开发,Linux内核模块开发(笔记)

    Linux内核模块开发(笔记) 作者:扶凯 来源: 扶凯 时间:2011-11-21 00:21:11 人气:249 评论:0 标签: 内核 个人笔记..在不放过来都快找不到了.有空还得好好整理一下了 ...

  9. linux内核模块实验,linux内核模块实验(2学时).doc

    第一个内核模块实验 一: 预习要求: ( 1 ) 做本实验之前,请复习相关内核模块知识. ( 2 ) 请了解内核模块的编写.编译及安装与卸载方法. ( 3 ) 请学习内核打印函数 printk() 的 ...

最新文章

  1. 论流量平台(交易内容)生死劫——币看流量生意正在进入正循环
  2. 2位华人获得加州理工学院计算机、数学博士奖学金,3年近一半由华人获得
  3. 鸿蒙 github harmony,鸿蒙HarmonyOS三方件开发指南-SwipeLayout侧滑删除
  4. Java基础-四要素之一《封装》
  5. 应用计算机基础1答案,2017年计算机应用基础习题及答案
  6. 乘积最大子数组—leedcode152
  7. 转载:Yahoo推出视频标签游戏
  8. adb: createprocessw failed: 系统找不到指定的路径_gcc编译过程、gcc命令参数、静态库和动态库搜索路径...
  9. java忽略引号中的分隔符_java – 令牌化但忽略引号内的分隔符
  10. 13.相机和图像——缩放和移动是不一样的,移动变焦镜头,镜头并不完美,镜像系统_5
  11. centOS 7镜像文件下载
  12. 阿里云HBase全新发布X-Pack 赋能轻量级大数据平台
  13. PopupWindow 常用方法学习笔记
  14. vue-router 中踏过的坑
  15. hitool java_Hitool打开出现failed to create the java virtual machine
  16. [裴礼文数学分析中的典型问题与方法习题参考解答]5.1.23
  17. 前端分页加载功能实现?
  18. vpay平台模式开发 15天交付系统
  19. 十进制数转化为二进制数的两种方法
  20. 面试笔试杂项积累-Unity

热门文章

  1. 如何得出数组里最大_相邻两数的最大差值(超巧妙解法)
  2. oracle临时表的优点,详解Oracle临时表的几种用法和意义
  3. mysql 子表 关联查询语句_mysql查询语句 和 多表关联查询 以及 子查询
  4. mysql最大连接数查询_MYSQL 查看最大连接数和修改最大连接数
  5. catv系统主要有哪三部分组成_光纤放大器在DWDM传输系统中的应用
  6. 虚拟现实技术利用计算机,虚拟现实技术在计算机教学的应用
  7. Android APK的加固方法
  8. 标题:浅析图卷积神经网络
  9. 基础练习 数列特征 c语言
  10. 字符和编码之间的转换(Python)