https://rust-for-linux.com/drm-panic-qr-code-generator Rust for Linux Logo The project 1. Contact 2. Contributing 3. Rust kernel policy 4. Branches 5. Rust reference drivers 6. Rust version policy 7. Unstable features 8. Backporting and stable/LTS releases 9. Third-party crates 10. Out-of-tree modules 11. Industry and academia support 12. Sponsors 13. Subprojects 14. klint 15. pin-init 16. Tools 17. Coccinelle for Rust 18. rustc_codegen_gcc 19. gccrs 20. Users -- in mainline 21. AMCC QT2025 PHY Driver 22. ASIX PHY Driver 23. DRM Panic QR code generator 24. Nova GPU Driver 25. Null Block Driver 26. Users -- outside mainline 27. Android ashmem 28. Android Binder Driver 29. Apple AGX GPU driver 30. NVMe Driver 31. PuzzleFS filesystem driver Links 1. Contact 2. Lore (mailing list archive) 3. Zulip (chat) 4. GitHub Organization 5. Security 6. Report a security bug 7. Issue tracking 8. Issues 9. Unstable features 10. Good first issues 11. Documentation 12. Quick Start guide 13. Kernel documentation (mainline) 14. Kernel documentation (next) 15. Rust code documentation (mainline) 16. Rust code documentation (next) 17. Out-of-tree module template 18. Main branches 19. rust-next 20. rust-fixes 21. rust-dev 22. Topic branches 23. staging/rust-pci 24. staging/rust-net 25. staging/rust-device 26. staging/dev 27. Patchwork 28. Patchwork 29. Conferences 30. Kangrejos 31. Linux Plumbers Conference (LPC) 32. Rust MC at LPC 2024 33. Rust MC at LPC 2023 34. Rust MC at LPC 2022 35. LWN 36. Rust index 37. Kangrejos index 38. Tools and toolchains 39. kernel.org prebuilt LLVM+Rust 40. rustc_codegen_gcc 41. Rust GCC 42. pahole 43. Other trees 44. Linus' tree 45. Stable tree 46. linux-next tree 47. Other resources 48. Bootlin's Elixir 49. Compiler Explorer 50. Rust Playground 51. Rust core docs * Light * Rust * Coal * Navy * Ayu Rust for Linux [ ] DRM Panic QR code generator 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. Why a QR code in a panic screen? 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. 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. 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. Why Rust? This project was written in rust, because memory safety is critical in a panic handler. 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. 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. Availability The code was merged into Linux kernel version v6.12-rc1. Arch Linux will enable it soon in its kernel. Side projects An example web frontend to decode the panic data from the QR code: https://github.com/kdj0c/panic_report. A few samples of a panic screen with a QR code are available here: https://github.com/kdj0c/panic_report/issues/1. You can test the same code in a standalone rust app (outside the kernel): https://gitlab.com/kdj0c/qr_panic. I try to keep it up-to-date with the latest Linux kernel. Maintenance The main author of the QR code generator is Jocelyn Falempe < jfalempe@redhat.com>, with help from the Rust for Linux community.