去年,systemd 255 推出了受 “蓝屏死机 “启发的解决方案 systemd-bsod,全屏显示记录的错误信息,但它并不适用于所有错误。systemd-bsod 可以在启动失败或其他用户空间还存在的问题中全屏显示错误信息。但在内核错误和类似问题导致系统停止运行时,用户空间代码的作用就微乎其微了。现在,Linux 6.10 将引入类似 “蓝屏死机 “的错误显示体验,同时引入 DRM 错误处理程序。
随着内核模式设置驱动程序(KMS)被谈论了十多年,Linux 在出现重大问题时呈现 “蓝屏死机”(BSOD)的能力也被谈论了十多年。在过去的十年中,围绕着 “BSOD “解决方案或 DRM 内核 OOPS 查看器的问题时有发生。今天,作为 DRM-misc-next 补丁的一部分,DRM-Next 将在下个月的 Linux 6.10 合并窗口中提交 DRM 错误处理程序。
这是一个支持 VT/FBCON 的传统 Linux 内核错误处理程序。
Red Hat 和其他公司一直在开发这种 DRM 错误处理程序,以便在发生错误时显示一条信息。虽然 Linux 内核已经可以转储内核错误,但这只有在内核启用了 VT/FBCON 支持的情况下才会起作用。对于那些一直想杀死 CONFIG_VT 等程序的人来说,目前还没有任何方法可以在内核崩溃发生时查看内核崩溃信息。
有了 DRM 错误处理程序(该程序在过去几个月中进行了多次审查和修订),即使禁用了 FBCON/VT,也能在发生错误时显示消息。
现阶段的紧急处理程序非常简单,仅适用于少数直接渲染管理器驱动程序。目前,SimpleDRM、MGAG200、IMX 和 AST DRM 显示驱动程序支持 DRM 错误处理器。如果内核支持 DRM panic,就可以通过 echo c > /proc/sysrq-trigger 触发器测试处理程序。不过,由于 Linux 内核错误通常不会经常发生,因此与 Windows 蓝屏死机消息的恶名昭彰相比,该处理程序的活动可能会很少。
DRM 错误驱动程序支持和其他 drm-panic 工作已于今天作为 drm-misc-next pull 的一部分发送到 DRM-Next,因此是 Linux 6.10 的素材。对 Linux 6.10 的支持似乎相当基本,但随着时间的推移,我们将拭目以待。
转自 Linux 6.10 Preps A Kernel Panic Screen – Sort Of A “Blue Screen of Death” – Phoronix