Linux Software Developers Kit (SDK) User Guide
68
1
1
3
3
.
.
F
F
i
i
r
r
m
m
w
w
a
a
r
r
e
e
U
U
p
p
d
d
a
a
t
t
e
e
s
s
Introduction
Firmware updates of embedded Linux devices are usually a compromise of your requirements:
Are online updates within Linux needed?
Is there enough flash space to store the whole update file before starting the update?
Is it acceptable to force the unit into an upgrade mode in which it is not responsive
otherwise?
What should happen if the upgrade fails?
There is no one approach that fits all needs. The most desirable approach, to mimic the online
update process of Linux desktops and servers via a package management system like rpm or
dpkg does not work because those systems tend to require more resources (memory and hard
drive space for metadata) than are available on this platform.
Ipkg (
http://handhelds.org/moin/moin.cgi/Ipkg
http://wiki.openmoko.org/wiki/Opkg
) try
to provide similar tools for embedded devices. But they focus on handhelds and cell phones with
much more memory than our platform has to offer.
Firmware Updates by File System
Firmware update processes for embedded Linux devices usually are based on the idea of
replacing entire file systems at once. This comes with various pros and cons.
Pros
Updates and their validation are easier to predict and test because complete file systems are
replaced.
Updates can be performed offline through the boot loader.
Cons
Changing file system sizes via updates can be complicated if not impossible. Updating active
file systems can be difficult because mounted files systems cannot be overwritten without
potentially causing harm.
Lantronix’ Sample Update Process Implementation
Overview
The firmware update process highly depends on the flash memory layout you have chosen for
your build. Lantronix provides an implementation with the following features and restrictions: