tl;dr

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

1. Linux模块分类

包含在内核中的模块

动态加载到内核的模块

2. 配置动态自动加载

动态模块存放路径: /lib/modules/$(uname -r)/kernel

模块间依赖关系文档:/lib/modules/$(uname -r)/modules.dep

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

dc8432dc42c5

鸟哥的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,查看已经加载到内核的模块、以及单独的模块文件信息

dc8432dc42c5

鸟哥的Linux私房菜截图

2.4 加载移除模块

insmod/rmmod,insmod需要指定详细的模块文件路径

modprobe,分析模块间依赖关系/lib/modules/$(uname -r)/modules.dep后再加载、移除模块。(insmod命令不分析依赖关系)

dc8432dc42c5

鸟哥的Linux私房菜截图

3. 配置内核模块

将模块编译进内核

Logo

更多推荐