When the Kernel Outgrew the Bootloader: A Clean Install That Never Booted

A debug-info kernel overshoots U-Boot’s decompression buffer by 1.85 MiB. The bundle verifies at every layer, RAUC reports success, and the board silently falls back to the old slot, because the one property that mattered is only observable at bootm time on the device.

May 7, 2026 · 8 min · Umair Ahmed Shah

Moving RAUC's HTTPS Streaming Key into TPM2 via PKCS#11

Migrating RAUC’s mTLS client key from a file on disk to a TPM2-backed PKCS#11 URI. The recipe wiring was straightforward; the URI was not. module-path is a p11-kit URI extension that libp11 — the parser RAUC’s streaming path actually uses — rejects outright.

April 23, 2026 · 11 min · Umair Ahmed Shah

RAUC Streaming OTA: When the Sandbox User Can't Reach the TPM

Switching RAUC’s streaming mTLS client key from a file path to a PKCS#11 URI produced a one-line error with no obvious cause. The real problem was not the module path, not the engine, and not a missing PIN — it was the sandbox user’s group membership and what tpm2-pkcs11 needs to initialise.

April 21, 2026 · 7 min · Umair Ahmed Shah