Software Update Management on embedded systems
Embedded Systems become more and more complex, and their software reflects their consequent complexity. New features and fixes let much more as desirable that the software on an embedded system can be updated in an absolutely reliable way.
On a Linux-based system, we can find in most cases the following elements:
- the boot loader.
- the kernel and the DT (Device Tree) file.
- the root file system
- other file systems, mounted at a later point
- customer data, in raw format or on a file system
- application specific software. For example, firmware to be downloaded on connected micro-controllers, and so on.
Generally speaking, in most cases it is required to update kernel and root file system, preserving user data – but cases vary.
Only in some cases it is necessary to update the boot loader too. In fact, updating the boot loader is quite risky, because an error in the update breaks the card. In some cases it is possible to restore a broken card, but in most cases this is not left to the end user and the system must be returned to the manufacturer.