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

Linux怎么查看内核模块加载失败错误码

胖伟大大_8555

胖伟大大_8555

发布时间:2026-08-31 10:06:35

|

556人浏览过

|

来源于php中文网

原创

dmesg | grep -i "failed\|error" 是排查内核模块加载失败最直接的入口,因insmod/modprobe返回码无语义,真正原因全在内核环缓冲区日志中,常见错误如Unknown symbol、Invalid module format等均高频出现在dmesg最新行。

linux怎么查看内核模块加载失败错误码

dmesg | grep -i "failed\|error" 是最直接的入口

内核模块加载失败时,insmod 或 modprobe 返回的错误码(比如 -1)本身不带语义,真正解释“为什么失败”的日志全在内核环缓冲区里。直接看 dmesg 输出,比盯着返回值有用十倍。

常见错误现象包括:Unknown symbol in module、Invalid module format、Operation not permitted、Module not found。这些字符串几乎总是出现在 dmesg 最新几行中。

  • 执行 dmesg | tail -n 30 查看最近的内核消息,比全量输出更聚焦
  • 加 -T 参数(如 dmesg -T | tail -n 20)可显示带本地时间戳的日志,方便和你执行 insmod 的时刻对齐
  • 如果刚加载完就查,但没看到报错,试试 dmesg -C 清空缓冲区再重试一次,避免旧日志干扰

modinfo 和 readelf 能提前暴露兼容性硬伤

很多“加载失败”其实根本没走到符号解析那步,卡在了二进制格式或 ABI 匹配上。这时 modinfo 和 readelf 就是诊断前置条件的快检工具。

modinfo example.ko 会输出 vermagic 字段,它必须和当前内核的 uname -r 输出严格一致(包括 SMP、modversions 等修饰项)。不一致就直接触发 Invalid module format。

readelf -h example.ko 则检查 ELF 头级兼容性:

  • Machine 字段必须匹配目标 CPU 架构(例如 x86_64 对应 EM_X86_64)
  • OS/ABI 应为 UNIX - System V 或明确标为 Linux
  • Type 必须是 REL (Relocatable file),不是 DYN 或 EXEC

曾经有模块因交叉编译时误设 --target=arm-linux-gnueabihf 却跑在 x86 服务器上,readelf -h 一眼就看出 Machine: EM_ARM,省去后续所有排查。

lsmod 和 modprobe -D 揭示依赖链断裂点

Unknown symbol in module 错误几乎都源于依赖模块未加载,而不是函数写错了。这时候不能只盯着报错模块,得顺藤摸瓜看它到底缺谁。

linux-performance-analyzer
linux-performance-analyzer

Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。

下载

lsmod 列出已加载模块,确认依赖项(比如 igb 依赖 dca)是否在其中。不在?那就手动 modprobe dca 试试。

更彻底的办法是用 modprobe -D example(不加 .ko),它会打印出完整的依赖解析过程,包括每个依赖模块的路径和加载顺序。如果某一级显示 not found 或 no such file,问题就定位到了。

  • 注意:模块名大小写敏感,br_netfilter 和 BR_NETFILTER 是两个东西
  • modprobe -D 不实际加载,纯模拟,安全无副作用
  • 依赖关系定义在 /lib/modules/$(uname -r)/modules.dep,可直接 grep 查看

systemd-modules-load.service 失败要查配置文件语法

开机时报 Failed to start Load Kernel Modules,通常不是模块本身问题,而是 /etc/modules-load.d/*.conf 里的配置写崩了。

这种失败不会在 dmesg 里报具体模块错误,而是在 systemctl status systemd-modules-load.service 的输出中提示 “configuration invalid” 或 “line XX invalid”。常见坑:

  • 配置文件末尾多了一个空格或不可见字符(用 cat -A filename.conf 查看)
  • 模块名拼错,或路径写成了绝对路径(配置里只写模块名,不带 .ko 和路径)
  • 用了注释符 #,但前面多了空格导致被当模块名解析

修复后别忘了运行 sudo systemctl restart systemd-modules-load.service 测试,而不是等下次重启。

真正难搞的不是报错本身,而是错误信息藏在哪儿——dmesg 里可能混着几十条无关消息,modinfo 输出里 vermagic 字符串长得像乱码,modules.dep 文件又没人手动维护。把这几个命令的输出组合起来交叉验证,才能避开“以为修好了,其实只是掩盖了错误”的陷阱。

热门AI工具

更多
AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

咔片AIPPT

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

WorkBuddy

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

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

豆包大模型

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

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

DeepSeek

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

Seko
Seko Hot

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

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

相关专题

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

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

3690

2023.06.21

如何安装LINUX
如何安装LINUX

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

3213

2023.06.29

linux find
linux find

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

2273

2023.06.30

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

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

5470

2023.07.05

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

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

5122

2023.07.06

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

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

3053

2023.07.20

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

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

2565

2023.07.20

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

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

2779

2023.07.25

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

160

2026.09.23

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

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

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