Comprehensive RAUC Documentation Update

As in many projects, also in RAUC phases of extensive development did often not leave sufficient time to explain the latest changes, new features or at least some basic concepts in an appropriate manner.

  before after
lines 2135 3522
words 9275 16805
characters 66991 119992

As a result, not only useful and helpful features simply go by the board. Also the amount of questions and misunderstanding that might have been prevented by a good documentation increases over the time.

Therefore, Pengutronix decided to take the virtual pen and paper in the hand and extend and improve the RAUC Documentation in many places.

The result of that work is quite impressive if you look at the quantitative impact, for example. Taking the number of characters, the volume of the documentation has increased by almost 80%.

The structure and content of the introductory chapter, that presents an overview of fundamental concepts and ideas behind RAUC to the user has been completely redesigned and complemented by many aspects. In addition, some complex topics were accompanied with vivid graphics.

With the newly created chapter Scenarios some of the most common redundancy setups are discussed while configuration examples point out how to implement them with RAUC.

The important chapters on integration of Barebox and U-Boot were extended by technically more detailed instructions.

Also, a whole series of additional topics have been added, such as dealing with security, generation and handling of certificates, application data handling and migration, bootloader updates, or software deployment.

But, even if there are robust updating frameworks like RAUC, building an individually fitting and robust update concept requires much know-how and accuracy in assembling and configuring the different system components. From the selection of the boot loader over the watchdog set up and handling to the detection of a successfully booted user space various components must closely engage with each other.

With the newly introduced Design Checklist we have therefore developed a basic pamphlet, which (without claim on completeness) covers many general cases and possible pitfalls in the design and the implementation of update concepts.

Further Readings

RAUC v1.11 Released

Ho Ho ho! As the year's progress bar approaches 99%, another update is already completed: RAUC v1.11 is here!

RAUC v1.10 Released

Just in time for the EOSS 2023 in Prague, we have released v1.10 of RAUC. Just-in-time means the release was actually finalized by Jan Lübbe in the train to Prague (like I finally wrote the majority of this blog post on the train back).

RAUC v1.9 Released

"Getting things off the ground" could be the motto for the v1.9 release of RAUC. The support for custom metadata in the manifest got a step further, a new, more flexible, D-Bus API for bundle inspection paved the way for obtaining more detailed information, and a new manifest hash marks the first of several planned changes for configurable event logging. However, one of the most invasive changes happened under the hood: We have started the transition from autotools to meson as a build system.

eMMC Hardware Partitioning

When designing an embedded system, one must consider both the application and the underlying hardware in combination, if the intended long-term stability is to be achieved. While we discussed the necessity of software updates in previous posts, in this article I describe a way to use a memory subsystem corresponding to its physics to achieve the best retention and lifetime of the whole system.