Updating linux libraries
An important part of the update process is checking the version of the received files and their integrity.
You can do this using such algorithms as MD5, CRC32 and so forth.
If problems arise, you will be able to go back to the old firmware (via TFTP).
The procedure is as follows: after the device is turned on, a bootloader is launched, which performs initialization of the system, as well as checks and loads the executable code.
For example, a small-size bootloader is copied to the CPU internal memory, performs initialization of external memory and copies the second-level loader to the external RAM.
The second-level loader (for example, U-Boot) copies the Linux kernel to RAM and hands over control to it.
This tutorial provides a general description of updating Linux-based firmware and illustrates it with some specific implementations.
First, consider the sections of the memory system (Figure 1) and parts of memory that should be updated while transferring software to a new version.
The U-Boot loader implements a built-in function of checking the integrity of the loaded Linux kernel image (controlled by the verify variable), which helps check its integrity even before the OS starts and (using hush scripts) identify alternative sources for booting the software (old firmware or TFTP, Line Parsing).
The second way is to update the software through TFTP.
This method is well suited for those who have created their own firmware image.
If the firmware fails an integrity check, the loader will be considered damaged, and it automatically will go into loader mode until the firmware is loaded over the network.
You then can download the new firmware from the PC via TFTP.
Search for updating linux libraries:
This allows you to use a single program in the operating system to install the software on different devices, using appropriate firmware images.