查找系统中的.ko文件
使用 find
命令
在文件系统中递归搜索所有.ko
文件(需root权限):
sudo find / -name "*.ko" 2>/dev/null
- 说明:
- 表示从根目录开始搜索。
2>/dev/null
忽略权限错误提示。
- 示例输出:
/lib/modules/5.15.0-86-generic/kernel/drivers/net/ethernet/e1000/e1000.ko /lib/modules/5.15.0-86-generic/kernel/fs/fat/fat.ko
定位已安装模块路径
内核模块通常安装在/lib/modules/$(uname -r)/kernel/
目录下:
ls /lib/modules/$(uname -r)/kernel/
- 说明:
$(uname -r)
自动获取当前内核版本(如15.0-86-generic
)。- 子目录如
drivers/
、fs/
分类存储不同功能的模块。
查看已加载的内核模块
列出已加载模块 (lsmod
)
显示当前运行的内核模块:
lsmod
- 输出示例:
Module Size Used by e1000 163840 0 fat 40960 1
- 字段解释:
Module
:模块名称(不含.ko
后缀)。Size
:模块占用内存大小。Used by
:依赖该模块的进程或模块。
- 字段解释:
查看模块详细信息 (modinfo
)
获取.ko
文件的元数据(无需加载):
modinfo <模块名或路径> # 示例:modinfo e1000 或 modinfo /path/to/e1000.ko
- 关键信息:
filename
:.ko
文件的实际路径。description
:模块功能描述。depends
:依赖的其他模块。license
:许可协议(如GPL)。
加载/卸载内核模块
手动加载模块 (insmod
)
加载指定路径的.ko
文件:
sudo insmod /path/to/module.ko
智能加载模块 (modprobe
)
自动解决依赖关系并加载模块:
sudo modprobe <模块名> # 示例:sudo modprobe e1000
卸载模块 (rmmod
或 modprobe -r
)
sudo rmmod <模块名> # 简单卸载 sudo modprobe -r <模块名> # 自动卸载依赖模块
注意事项
- 权限要求:
- 查找系统文件、加载/卸载模块需
sudo
权限。
- 查找系统文件、加载/卸载模块需
- 操作风险:
- 卸载关键模块(如文件系统、网络驱动)可能导致系统崩溃!
- 生产环境中操作前建议备份数据。
- 模块依赖:
- 使用
modprobe
而非insmod
可自动处理依赖关系。
- 使用
- 调试建议:
- 通过
dmesg | tail
查看内核日志,确认模块加载状态或错误信息。
- 通过
需求场景 | 推荐命令 | 作用 |
---|---|---|
查找所有.ko文件 | find / -name "*.ko" |
全盘搜索模块文件 |
查看已加载模块 | lsmod |
列表显示运行中的模块 |
获取模块详细信息 | modinfo <模块名> |
显示路径、描述、依赖等 |
安全加载/卸载模块 | modprobe <模块名> |
自动处理依赖关系 |
引用说明:
- 基于Linux内核文档(kernel.org/doc)和
man
手册(通过man lsmod
、man modinfo
可查看官方指南)。- 操作环境要求:Linux内核版本2.6+(推荐Ubuntu/CentOS等主流发行版)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5503.html