Linux Modules 日常使用介绍

tl;dr
应用场景:平时使用特殊的硬件时,需要手工对驱动和模块进行加载和管理。

1. Linux模块分类

  • 包含在内核中的模块
  • 动态加载到内核的模块

2. 配置动态自动加载

  • 动态模块存放路径: /lib/modules/$(uname -r)/kernel
  • 模块间依赖关系文档:/lib/modules/$(uname -r)/modules.dep

2.1 自动建立新的模块及其依赖关系

《Linux Modules 日常使用介绍》 鸟哥的Linux私房菜截图

2.2 查看已经载入内核的模块状态

lsmod

ray@ray-ThinkPad-X250:/lib/modules/4.8.0-25-generic$ lsmod | head
Module                  Size  Used by
hid_multitouch         20480  0
msr                    16384  0
acpi_call              16384  0
rfcomm                 77824  2
ccm                    20480  0
cmac                   16384  1
bnep                   20480  2
uvcvideo               90112  0
videobuf2_vmalloc      16384  1 uvcvideo

2.3 查看每个模块的详细信息:

modinfo,查看已经加载到内核的模块、以及单独的模块文件信息

《Linux Modules 日常使用介绍》 鸟哥的Linux私房菜截图

2.4 加载移除模块

insmod/rmmod,insmod需要指定详细的模块文件路径
modprobe,分析模块间依赖关系/lib/modules/$(uname -r)/modules.dep后再加载、移除模块。(insmod命令不分析依赖关系)

《Linux Modules 日常使用介绍》 鸟哥的Linux私房菜截图

3. 配置内核模块

将模块编译进内核

参考URL:
http://blog.csdn.net/mrjy1475726263/article/details/8507744
http://blog.sina.com.cn/s/blog_716844910100s3lf.html
http://blog.jobbole.com/89886/

    原文作者:mst7
    原文地址: https://www.jianshu.com/p/dc8432dc42c5
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞