tl;dr
应用场景:平时使用特殊的硬件时,需要手工对驱动和模块进行加载和管理。
1. Linux模块分类
- 包含在内核中的模块
- 动态加载到内核的模块
2. 配置动态自动加载
- 动态模块存放路径: /lib/modules/$(uname -r)/kernel
- 模块间依赖关系文档:/lib/modules/$(uname -r)/modules.dep
2.1 自动建立新的模块及其依赖关系
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,查看已经加载到内核的模块、以及单独的模块文件信息
2.4 加载移除模块
insmod/rmmod,insmod需要指定详细的模块文件路径
modprobe,分析模块间依赖关系/lib/modules/$(uname -r)/modules.dep
后再加载、移除模块。(insmod命令不分析依赖关系)
3. 配置内核模块
将模块编译进内核
参考URL:
http://blog.csdn.net/mrjy1475726263/article/details/8507744
http://blog.sina.com.cn/s/blog_716844910100s3lf.html
http://blog.jobbole.com/89886/