核心概念linux-kernel
内核日志与可加载内核模块
理解内核消息、内建驱动与可加载模块的关系,建立先取证再变更的排障顺序。
**内核环形缓冲区(kernel ring buffer)**保存内核运行期间产生的消息,容量有限,旧消息可能被覆盖。**可加载内核模块(loadable kernel module, LKM)**是在运行时加入或移出内核的目标代码,常用于驱动和子系统扩展。
驱动不一定是模块:它也可能直接编译进内核,此时不能用 modprobe -r 卸载。
内核及驱动通过 printk 记录带级别的消息,dmesg 读取缓冲区。modprobe 根据模块名、依赖数据库和配置规则加载模块;模块须与正在运行的内核、架构及签名策略兼容。
硬件事件 → 内核探测 → 驱动绑定 → printk 消息 ↑ 内建驱动或可加载模块排障时先保存错误与警告,再核对内核版本和模块信息,最后才预演并执行模块变更。
dmesg不是永久日志,缓冲区内容会覆盖,访问也可能受限。- “模块已加载”不等于设备一定工作,还需检查绑定、固件、电源和总线状态。
modprobe的参数是模块名,不是随意下载的文件路径。- 强制加载版本不匹配模块可能破坏内核稳定性。