讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux怎么手动加载或卸载指定内核驱动

陌枫同学_2655

陌枫同学_2655

发布时间:2026-10-13 09:54:21

|

655人浏览过

|

来源于php中文网

原创

优先用modprobe而非insmod,因modprobe自动解析依赖、搜索标准路径、支持配置文件;卸载必须用modprobe -r,它能递归卸载依赖模块,而rmmod仅单点移除易报“Module is in use”。

linux怎么手动加载或卸载指定内核驱动

优先用 modprobe,别直接上 insmod;卸载必须用 modprobe -r,rmmod 很容易卡死。

加载驱动:用 modprobe 还是 insmod?

绝大多数情况下,你应该用 modprobe。它会自动查 /lib/modules/$(uname -r)/modules.dep,递归加载所有依赖模块(比如加载 uas 前,自动先加载 usbcore 和 scsi_mod);而 insmod 只认绝对路径,不处理依赖、不读配置、不支持别名,硬塞一个 .ko 文件进去,十有八九报 Unknown symbol in module。

  • 正确做法:sudo modprobe igb(不用写 .ko,也不用给路径)
  • 错误做法:sudo insmod /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/intel/igb/igb.ko —— 除非你确认该模块完全无依赖且已验证过符号兼容
  • 如果模块不在标准路径,先运行 sudo depmod -a 更新依赖索引,再 modprobe
  • 加载带参数时,sudo modprobe igb InterruptThrottleRate=3000 比 insmod ... InterruptThrottleRate=3000 更可靠,因为前者能触发 /etc/modprobe.d/*.conf 中预设的校验逻辑

卸载驱动:为什么 rmmod 总提示 “Module is in use”?

rmmod 是“单点移除”,只看目标模块自己的引用计数(lsmod 输出里的 used by 列)。只要这个数字非零(哪怕只是另一个模块在 module_depends 里声明了它),就拒绝卸载。而 modprobe -r 会反向遍历整个依赖图,先卸载所有依赖它的子模块,再清理目标模块。

Zynq Linux Hardware Debug
Zynq Linux Hardware Debug

Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。

下载
  • 安全卸载:sudo modprobe -r igb(自动处理上下游依赖)
  • 危险操作:sudo rmmod -f igb —— 若模块正处理中断或持有锁,可能引发 Kernel panic,生产环境禁用
  • 卸载前务必检查:lsmod | grep ^igb 看 used by 是否为 0;再跑 lsof /dev/igb* 2>/dev/null 或 find /sys -name "*igb*" 2>/dev/null 排查隐式占用
  • 某些驱动(如 nvidia)会被 X Server、containerd 或 GPU 监控进程锁定,需先停服务:sudo systemctl stop gdm3 或 sudo pkill -f nvidia-persistenced

加载失败排查:光看 lsmod 没用,得盯 dmesg

lsmod 只告诉你模块“在列表里”,不代表初始化成功。真正可靠的判断依据是内核日志 —— 模块的 init 函数里 printk() 输出、硬件 probe 失败、内存分配错误,全在这里暴露。

  • 加载后立刻执行:dmesg | tail -20,搜 igb:、error、fail、unknown
  • 常见失败原因:vermagic 不匹配(modinfo igb.ko 对比 uname -r)、固件缺失(dmesg 提示 firmware: failed to load)、PCI 设备未被扫描到(lspci | grep 8086:1521)
  • 如果 insmod 失败后模块已部分载入,后续 modprobe 可能卡住,此时先 sudo dmesg | tail -20 确认状态,再考虑 sudo rmmod -f igb 强制清理(仅限调试环境)
  • 模块被 blacklist 也会静默失败:modprobe --showconfig | grep igb 查是否被屏蔽,或看 /etc/modprobe.d/*.conf 里有没有 blacklist igb

手动加载的边界场景:什么时候真得用 insmod?

只有两种情况值得考虑 insmod:一是调试刚编译好的模块(路径在当前目录,还没 install 到 /lib/modules);二是嵌入式板子上没生成 modules.dep,又确定模块完全孤立(比如裸机 LED 驱动)。

  • 临时加载本地模块:sudo insmod ./mydrv.ko(注意必须是当前路径或绝对路径)
  • 加 -v 看详细输出:sudo insmod -v ./mydrv.ko
  • 用 --dry-run 模拟加载:sudo insmod --dry-run ./mydrv.ko,提前发现符号缺失问题
  • 别用 -f 强制加载——它绕过 vermagic 校验,极易导致 oops,尤其在内核版本不一致时

真正麻烦的不是命令本身,而是依赖关系和内核符号的隐式绑定。一个模块能否加载,取决于 modules.dep 是否完整、vermagic 是否吻合、固件是否就位、PCI 设备是否被识别——这些信息全藏在 dmesg 里,而不是命令返回码中。

相关文章

驱动精灵
驱动精灵

驱动精灵基于驱动之家十余年的专业数据积累,驱动支持度高,已经为数亿用户解决了各种电脑驱动问题、系统故障,是目前有效的驱动软件,有需要的小伙伴快来保存下载体验吧!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

3990

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3413

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2573

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

6250

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

5902

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3453

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2945

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

3179

2023.07.25

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

80

2026.10.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ubuntu官方总文档
ubuntu官方总文档

共0课时 | 0人学习

如何安装 Composer
如何安装 Composer

共1课时 | 206人学习

Git 教程
Git 教程

共21课时 | 8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn