当前位置: 欣欣网 > 码农

Linux不仅可以「蓝屏」,还可以「紫屏」、「黑屏」……

2024-07-04码农

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

热门文章

-

-

-

-