A Python script turns a kernel panic QR code photo back into a readable crash log

Decode kernel panic from QR Code photo

When Linux panics, it can display a QR code containing the compressed crash log. This Python script uses ZXingReader to scan that QR code from a screenshot or photo, then decodes the decimal-digit payload and zlib-decompresses it into the original log. It runs entirely locally, requires only Python 3 and ZXingReader, and can write the output to a file or stdout.

Scan a Linux panic QR code with ZXingReader and decompress its crash log.
  1. jolmg

    For context, kernel panics seem to sometimes be encoded as a URL in the QR code by distros. The panic text is encoded as a numeric parameter. For example:

    https://jexposit.fedorapeople.org/drm-panic/#?a=x86_64&v=6.17.0-rc2+&z=64016708045408584681305161836175901065787789727173061004041671633088591186286363786562987653814347942450168430510852681524688435157911241621365859153819732690406649525043247774110913752991389170560320455163781439079986337356710273501164645667555084821480237326301207073831710176482850121513079951455217310046422632328303510474264780788030301611164774573122018172510304672562667379831349924441560360997679573341401750485619388375493[... many more digits]

    That's from the QR code image at:

    https://discussion.fedoraproject.org/t/f45-change-proposal-d...

    This script is to decode such kernel panics without needing to provide it to an external service.

    In the particular URL example, the panic is not necessarily sent to a server, because it's in a URL fragment (`#`), but still.

  2. natas

    I think that's a really good idea! Would love to see this upstream

More from this day

2026-11-01