當前位置: 妍妍網 > 碼農

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

熱門文章

-

-

-

-