What to update
Embedded Linux devices are very diverse in their design and implementation. However, they all have these basic components:
- Bootloader
- Kernel
- Root filesystem
- System applications
- Device-specific data
Some components are harder to update than others, as summarized in this diagram:
Let's look at each component in turn.
Bootloader
The bootloader is the first piece of code to run when the processor is powered up. The way the processor locates the bootloader is very device-specific, but in most cases, there is only one such location, and so there can only be one bootloader. If there is no backup, updating the bootloader is risky: what happens if the system powers down midway? Consequently, most update solutions leave the bootloader alone. This is not a big problem, because the bootloader only runs for a short time at power-on and is not normally a great source...