Software Update Management on embedded systems
Embedded Systems grow to be greater and greater complex, and their software program displays their consequent complexity. New elements and fixes let plenty extra as suited that the software program on an embedded machine can be up to date in an actually dependable way.
On a Linux-based system, we can discover in most instances the following elements:
- the boot loader.
- the kernel and the DT (Device Tree) file.
- the root file system
- other file systems, established at a later point
- customer data, in uncooked layout or on a file system
- application unique software. For example, firmware to be downloaded on related micro-controllers, and so on.
Generally speaking, in most instances it is required to replace kernel and root file system, keeping consumer information – however instances vary.
Only in some instances it is indispensable to replace the boot loader too. In fact, updating the boot loader is pretty risky, due to the fact an error in the replace breaks the card. In some instances it is feasible to fix a damaged card, however in most instances this is now not left to the give up person and the device should be back to the manufacturer.
Secure firmware update
There are two types of image updates possible: symmetric and asymmetric.
- Symmetric: Symmetric updates require a dual copy of the partition images being updated so that one can be updated while the other is running. This typically requires two boot/kernel partitions, two root filesystems, as well as two user partitions. The bootloader then tracks which partitions to use for a given boot. Symmetric updates have minimal downtime, usually only the reboot time, and allow for update cancellation.
- Asymmetric: Asymmetric updates use a recovery OS that usually runs from memory, with a Linux kernel and an initramfs image. This reduces the number of partitions needed, as the recovery mode lives in just one extra partition and can update any of the others. If the update fails the recovery can be re-tried. Asymmetric updates have longer downtimes when updating and do not allow for user cancellation.