Linux如何加载、卸载一个模块?
封面图
•
2025-11-05
•
Linux
215
0
0
0
在 Linux 中,模块(module)是内核的可加载组件,可以动态地添加或移除。它们通常用于设备驱动、文件系统等。 ### 一、加载模块 使用 `insmod` 命令加载一个模块: ```bash sudo insmod 模块名.ko ``` 例如: ```bash sudo insmod mydriver.ko ``` > 注意:`insmod` 不会自动处理依赖关系,如果模块有依赖项,可能会失败。 #### 更推荐的方式:使用 `modprobe` `modprobe` 会自动处理模块依赖关系: ```bash sudo modprobe 模块名 ``` 例如: ```bash sudo modprobe mydriver ``` > 这个命令会从 `/lib/modules/$(uname -r)/kernel/` 目录中查找模块。 --- ### 二、卸载模块 使用 `rmmod` 命令卸载一个模块: ```bash sudo rmmod 模块名 ``` 例如: ```bash sudo rmmod mydriver ``` > 如果模块正在被使用,会提示错误。可以使用 `lsof` 或 `fuser` 查看是否有进程占用。 #### 使用 `modprobe` 卸载: ```bash sudo modprobe -r 模块名 ``` 这会卸载模块并处理依赖关系。 --- ### 三、查看已加载的模块 ```bash lsmod ``` 或者: ```bash modinfo 模块名 ``` 查看模块信息。 --- ### 四、查看模块路径 Linux 内核模块通常存放在以下目录中: ```bash /lib/modules/$(uname -r)/kernel/ ``` 你可以在这个目录下找到各种模块文件(`.ko` 文件)。 --- ### 五、常见问题 - **模块加载失败**:可能是模块损坏、依赖缺失、权限不足。 - **模块无法卸载**:可能因为有进程正在使用它,可以用 `lsof /dev/xxx` 或 `fuser -v /dev/xxx` 查看。 --- ### 六、示例流程 假设有一个名为 `mydriver.ko` 的模块: 1. 加载模块: ```bash sudo insmod mydriver.ko ``` 或者: ```bash sudo modprobe mydriver ``` 2. 查看是否加载成功: ```bash lsmod | grep mydriver ``` 3. 卸载模块: ```bash sudo rmmod mydriver ``` 或者: ```bash sudo modprobe -r mydriver ``` --- 如果你需要更具体的帮助(比如模块开发、调试等),也可以告诉我!
上一篇:
Linux创建进程的系统调用有那些?
下一篇:
RAID 是什么?
标题录入,一次不能超过6条
留言
评论