RAUC Bundles: Signing, dm-verity and Installation
How a RAUC bundle is built, signed with CMS, protected block by block with dm-verity, and installed step by step on an embedded Linux device.
How a RAUC bundle is built, signed with CMS, protected block by block with dm-verity, and installed step by step on an embedded Linux device.
Why in-place updates are risky, how an A/B scheme fixes it, and how RAUC and U-Boot work together to install, boot and roll back an update.
How pseudo lets BitBake tasks believe they run as root: LD_PRELOAD interception, the fakeworker, and the client/server database that remembers fake ownership.
Build applications without rebuilding the whole system: the standard SDK, the extensible SDK, and the devtool workflow (add, modify, update-recipe, build, deploy-target, finish).
How BitBake splits a recipe into packages, writes RPM/DEB/IPK files, runs install scripts, and assembles the final image, illustrated with a systemd service tested in QEMU.
The three types of BitBake metadata, how DEPENDS and RDEPENDS work with a shared-library example, and how PROVIDES and PREFERRED_PROVIDER pick a recipe.
What DL_DIR and SSTATE_DIR do, and how sharing them between projects saves hours of build time.
Capture the call stack with backtrace(), backtrace_symbols() and backtrace_symbols_fd(), and turn raw addresses into source lines with addr2line.
From power-on to user space: ROM code, SPL, U-Boot, the Linux kernel with its Device Tree, and init.
From a .c file to an executable: preprocessing, compilation, assembly, linking, and the ELF format.