查找系统中的.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