Skip to content

Commit 49b2175

Browse files
committed
Add "DRM Panic QR code generator" page
Content provided by Jocelyn Falempe. Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
1 parent d885402 commit 49b2175

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

SUMMARY.md

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333

3434
- [AMCC QT2025 PHY Driver](AMCC-QT2025-PHY-Driver.md)
3535
- [ASIX PHY Driver](ASIX-PHY-Driver.md)
36+
- [DRM Panic QR code generator](DRM-Panic-QR-code-generator.md)
3637
- [Null Block Driver](Null-Block-Driver.md)
3738

3839
## Users — out-of-tree

src/DRM-Panic-QR-code-generator.md

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# DRM Panic QR code generator
2+
3+
This is a simple QR code generator, to display the panic data as a QR code. It is specific to the DRM panic use case, and supports only some parts of the QR code specification.
4+
5+
## Why a QR code in a panic screen?
6+
7+
Kernel panic traces are usually displayed on the screen, but then it's hard to copy and paste them to a bug report, so that a developer can take a look, and fix the bug.
8+
9+
As QR code are now widespread, using that allows to easily copy and paste the panic traces in a bug report, which makes debugging much easier for both the user and the kernel developer.
10+
11+
The QR code has a better pixel density than text, that means you can put more debug data into a QR code, than you can see as text only on a standard monitor.
12+
13+
## Why Rust?
14+
15+
This project was written in rust, because memory safety is critical in a panic handler.
16+
17+
The QR code encoder is self-contained and only uses the provided memory buffer, so there is no need to add complex bindings, and it was easy to merge it in the kernel.
18+
19+
For this particular case, I found the Rust code to be cleaner, and easier to read than the C equivalent, even if I'm much more experienced in C.
20+
21+
## Availability
22+
23+
The code was [merged](https://git.kernel.org/linus/cb5164ac43d0fc37ac6b45cabbc4d244068289ef) into Linux kernel version v6.12-rc1. Arch Linux will enable it soon in its [kernel](https://gitlab.archlinux.org/archlinux/packaging/packages/linux/-/commit/39947637f309b0862a383733d5acf7ae55122d10).
24+
25+
## Side projects
26+
27+
An example web frontend to decode the panic data from the QR code: <https://github.com/kdj0c/panic_report>.
28+
29+
A few samples of a panic screen with a QR code are available here: <https://github.com/kdj0c/panic_report/issues/1>.
30+
31+
You can test the same code in a standalone rust app (outside the kernel): <https://gitlab.com/kdj0c/qr_panic>.
32+
33+
I try to keep it up-to-date with the latest Linux kernel.
34+
35+
## Maintenance
36+
37+
The main author of the QR code generator is Jocelyn Falempe <<jfalempe@redhat.com>>, with help from the Rust for Linux community.

0 commit comments

Comments
 (0)