Linux 6.10 引入了一个新的 DRM Panic 处理程序基础设施,以便于在出现内核致命错误 (Panic),或者 VT 支持可能被禁用的情况下显示相关信息。

这项功能类似于 Windows 的蓝屏死机,此前我们也报道了 Red Hat 工程师创建的 Linux 版本蓝屏死机界面

up-e5f7e18e3ae0bc69e2fbf6a0083a80d6330.png

有人抱怨这与 Windows 的蓝屏过于相似。Javier 表示这都是开源的,因此可以根据自己的喜好进行定制,于是他转身就拿出了“黑屏死机界面” (Black Screen Of Death)

开发者为 Linux 内核的 Panic 界面“整活”:添加二维码、修改背景颜色插图1

近日,Red Hat 的另一位内核开发者 Jocelyn Falempe 提交了新补丁,用于在 DRM Panic 界面中显示错误消息二维码。

开发者为 Linux 内核的 Panic 界面“整活”:添加二维码、修改背景颜色插图2

Jocelyn Falempe 介绍称:

该系列补丁添加了一个新的”panic”界面,将 kmsg 数据嵌入二维码中。二维码的主要优势在于可以将调试数据复制/粘贴到错误报告中。

QR-code 编码器是用 rust 编写的,与 drm_panic 非常相关。原因是它是在 panic 处理程序中调用的,因此不能分配内存或使用锁定。

rust 代码使用了一些 rust 核心 API,只提供了两个 C 语言入口。

用 rust 实现这项功能没有什么特别的原因,我只是想学习一下 rust,看看它是否能在内核中工作。

下图是带二维码的 Linux Panic 错误信息界面:

开发者为 Linux 内核的 Panic 界面“整活”:添加二维码、修改背景颜色插图3

开发者为 Linux 内核的 Panic 界面“整活”:添加二维码、修改背景颜色插图4

由于内核错误信息通常都比较冗长,尤其是在包含堆栈跟踪的情况下,有时甚至无法在屏幕内显示内容。上述补丁将内核错误信息简化为二维码,可以方便用户通过智能手机获取错误信息,以便日后分析或附加到错误报告等。

免责声明:本文系转载,版权归原作者所有;旨在传递信息,不代表一休教程网的观点和立场。