insmod命令用于将给定的模块加载到内核中。Linux有许多功能是通过模块的方式,在需要时才载入kernel。如此可使kernel较为精简,进而提高效率,以及保有较大的弹性。这类可载入的模块,通常是设备驱动程序。

语法

insmod(选项)(参数)

选项

-f:不检查目前kernel版本与模块编译时的kernel版本是否一致,强制将模块载入;
-k:将模块设置为自动卸除;
-m:输出模块的载入信息;
-o<模块名称>:指定模块的名称,可使用模块文件的文件名;
-p:测试模块是否能正确地载入kernel;
-s:将所有信息记录在系统记录文件中;
-v:执行时显示详细的信息;
-x:不要汇出模块的外部符号;
-X:汇出模块所有的外部符号,此为预设置。

参数

内核模块:指定要加载的内核模块文件。

实例

加载RAID1阵列级别模块,如下所示:

[root@localhost boot]# insmod /lib/modules/2.6.
18-8.el5/kernel/drivers/md/raid1.ko  [root@localhost boot]# lsmod | grep raid1
raid1                  25153  0

从以上显示结果可知,RAID1模块已加载成功。只是在使用insmod命令加载模块时,需要使用绝对路径方能加载,且加载时无法自动解决依赖关系。

详解:

【insmod命令作用】

静态加载就是把驱动程序直接编译进内核,系统启动后可以直接调用。静态加载的缺点是调试起来比较麻烦,每次修改一个地方都要重新编译和下载内核,效率较低。若采用静态加载的驱动较多,会导致内核容量很大,浪费存储空间。

动态加载利用了Linux的module特性,可以在系统启动后用insmod命令添加模块(.ko),在不需要的时候用rmmod命令卸载模块,采用这种动态加载的方式便于驱动程序的调试,同时可以针对产品的功能需求,进行内核的裁剪,将不需要的驱动去除,大大减小了内核的存储容量。

【insmod与modprobe命令】

在Linux中,modprobe和insmod都可以用来加载module,不过现在一般都推荐使用modprobe而不是insmod了。 modprobe和insmod的区别是什么呢?

1) modprobe可以解决load module时的依赖关系,比如load moudleA就必须先load mouduleB之类的,它是通过/lib/modules//modules.dep文件来查找依赖关系的。而insmod不能解决依赖问题。

2) modprobe默认会去/lib/modules/目录下面查找module,而insmod只在给它的参数中去找module(默认在当前目录找)。 这样,有时insmod也有它的有用之处,举个例子吧。

有/root/my-mod.ko这个module,cd /root/,然后用insmod my-mod.ko(insmod /root/my-mod.ko)就可以insert这个module了,但是用modprobe my-mod.ko(modprobe /root/my-mod.ko)却提示"FATAL: Module my-mod.ko not found",这就是因为modprobe是到/lib/modules/`uname -r`/下去找module的,如果没找到就是这样了。

【检查Linux内核】

安装前要检查内核版本和内核头文件版本是否一致,否则报错

由此可见内核版本和内核头文件版本是一致的,都是4.2.0-27。

如果不一致的话在insmod一步必定出错:Error inserting './hello.ko': -1 Invalid module format

Linux 系统设置 : insmod 命令详解相关推荐

  1. Linux 系统设置 : hwclock 命令详解

    hwclock命令用于显示与设定硬件时钟. 在Linux中有硬件时钟与系统时钟等两种时钟.硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟.系统时钟则是指kernel中的时钟.当L ...

  2. Linux 系统设置 : dmesg 命令详解

    dmesg命令被用于检查和控制内核的环形缓冲区.kernel会将开机信息存储在ring buffer中.您若是开机时来不及查看信息,可利用dmesg来查看.开机信息保存在/var/log/dmesg文 ...

  3. Linux 系统设置 : enable 命令详解

    enable命令用于临时关闭或者激活指定的shell内部命令.若要执行的文件名称与shell内建命令相同,可用enable -n来关闭shell内建命令.若不加-n选项,enable可重新启动关闭的命 ...

  4. Linux 系统设置 : modprobe 命令详解

    modprobe命令用于智能地向内核中加载模块或者从内核中移除模块. modprobe可载入指定的个别模块,或是载入一组相依的模块.modprobe会根据depmod所产生的相依关系,决定要载入哪些模 ...

  5. Linux中iptraf命令详解(IP局域网监控工具)

    2019独角兽企业重金招聘Python工程师标准>>> Linux中iptraf命令详解(IP局域网监控工具) 发布时间:2017-12-27 20:46:03   作者:佚名    ...

  6. linux ln(link) 命令详解

    linux ln(link) 命令详解 功能说明:连接文件或目录. 语 法:ln [-bdfinsv][-S <字尾备份字符串>][-V <备份方式>][--help][--v ...

  7. [老男孩笔记系列]-之linux定时任务crontab命令详解

    linux定时任务crontab命令详解 1.1指令语法 crontab [ -u user ] file crontab [ -u user ] { -l | -r | -e } 1.2指令说明 通 ...

  8. linux rm(remove) 命令详解

    linux rm(remove) 命令详解 功能说明:删除文件或目录. 语 法:rm [-dfirv][--help][--version][文件或目录...] 补充说明:执行rm指令可删除文件或目录 ...

  9. linux下dd命令详解

    linux下dd命令详解    名称: dd 使用权限: 所有使用者dd 这个指令在 manual 里的定义是 convert and copy a file 使用方式: dd [option] 如果 ...

最新文章

  1. 分布式RPC实践--Dubbo基础篇
  2. 【数据结构与算法】之N个数中有K个数可能的组合算法
  3. 费马大定理,集惊险与武侠于一体
  4. [html] HTML5如何播放ts视频流?
  5. android横向滑动选项卡,android – 如何使用可滑动选项卡实现PageTransformer
  6. 信用更正和贷方剩余数量
  7. 科技也能这么酷:无人驾驶轮椅要来啦
  8. Qt之利用事件过滤器在QLabel上画框
  9. Codejock.Xtreme.Toolkit.Pro.v15.3.1 for MFC 15种皮肤切换
  10. 色相、饱和度、明度定义
  11. HAL库中外设驱动的实现(任意外设通用)
  12. Volatile能不能保证线程安全?
  13. Go语言的前景、优点
  14. 【视频行为识别4】I3D:Two-Stream Inflated 3D ConvNets —CVPR2017
  15. ajax中返回sucess里使用this.$message()
  16. pinctrl学习笔记---描述/获得引脚
  17. PySimpleGUI:快速开始
  18. 基于云的文档管理软件/文档管理系统(DMS)
  19. vs添加监视快捷键_询问操作方法:监视Android移动设备使用情况,Windows键盘快捷键和修复损坏的照片...
  20. leetcode 968 监控摄像头

热门文章

  1. python 爬虫程序详解
  2. byte buddy学习笔记
  3. 人脸识别系列(十八):MobileFaceNets
  4. android8.1 相机(SnapdragonCamera)长按拍照时关闭闪光灯
  5. SpringCloud:网关getway 路由转发
  6. [Vue]@keyup.enter不起作用
  7. DB2数据库的基础学习
  8. .Net 常用的ORM框架
  9. 引力波,你果真懂了吗?
  10. SQLServer系统函数之聚合函数