Linux 6.10 引入了一个新的 DRM Panic 处理程序基础设施,以便于在出现内核致命错误 (Panic),或者 VT 支持可能被禁用的情况下显示相关信息。
这项功能类似于 Windows 的蓝屏死机,此前我们也报道了 Red Hat 工程师 Javier Martinez Canillas 创建的 Linux 版本蓝屏死机界面。
详情查看:
有人抱怨这与 Windows 的蓝屏过于相似。Javier 表示这都是开源的,因此可以根据自己的喜好进行定制,于是他转身就拿出了 「黑屏死机界面」 (Black Screen Of Death):
近日,Red Hat 的另一位内核工程师,同时也是 DRM Panic 贡献者——Jocelyn Falempe 提交了新补丁,用于在 DRM Panic 界面中显示错误消息二维码。
Jocelyn Falempe 介绍称:
该系列补丁添加了一个新的 "panic" 界面,将 kmsg 数据嵌入二维码中。二维码的主要优势在于可以将调试数据复制 / 粘贴到错误报告中。
QR-code 编码器采用 Rust 编写,专门用于 drm_panic。原因在于它是在 panic 处理程序中被调用,因此无法分配内存或使用锁。
该补丁的 Rust 代码使用了一些 Rust 核心 API,只提供了两个 C 语言 entry points。
用 Rust 实现这项功能没有什么特别的原因,我只是想学习一下 Rust,看看它是否能在内核中工作。
下图是修改了背景颜色,且包含二维码的 Linux Panic 错误信息界面:
详细的 Panic 错误信息如下(示例):
由于内核错误信息通常都比较冗长,尤其是在包含堆栈跟踪的情况下,有时甚至无法在屏幕内显示内容。
上述补丁将内核错误信息简化为二维码,可以方便用户通过智能手机获取错误信息,以便日后分析或附加到错误报告等。
延伸阅读
Reference
https://lore.kernel.org/rust-for-linux/[email protected]/
https://fosstodon.org/@javierm/112650880236436431
END
热门文章
-
-
-
-