[OpenWrt-Devel] Request for advice about SysUpgrade

Claudio Leite leitec at staticky.com
Tue Jul 21 19:52:29 EDT 2015


* drEagle (dreagle at doukki.net) wrote:
> I have started to add sysupgrade to guruplug server in kirkwood platform.
> I get stuck in the understanding in my analysis of OpenWrt implementation of Ugrade process.
> So,
> On the GuruPlugServerPlus are Kirkwood CPU.
> The available NAND (512Mo) is ok with UBI.
> What are best solutions of MTD partitionning for all OpenWrt longtimes use cases ?
> For factory reset, upgrade, fault, others ?

It seems that most NAND platforms are using UBI with squashfs + a R/W
UBIFS overlay. I think this is a good format because you retain a "good"
base image in /rom, should you wish to reset settings and packages.

> What are differences between squashfs, ubifs, ubi, ubinized ?


squashfs is a RO filesystem not suitable to writing directly on NAND
(doesn't handle bad blocks, etc.) UBI is a container format that takes
care of things like bad blocks, wear leveling, etc. As far as I
understand it, ubinizing is encapsulating squashfs (or another image)
such that it can live inside an UBI block volume.

UBIFS is another filesystem running on top of UBI.

> What is the most simple implementation of sysupgrade ?
> I cannot get it to work with ubifs, the root is blocking my ubidetach try.
> If I get all unmount with /etc/init/umount stop, then my /mnt and images are no more available.

I'm sitting on some patches that implement the aforementioned
squashfs+ubifs format on Kirkwood, rather than the straight UBIFS image it
is now. I'll try to clean them up in the next few days and submit.

I don't remember the details, but even before switching to squashfs it
was mostly a matter of creating a platform_check_image() block in
/lib/upgrade/platform.sh, and calling "nand_do_platform_check" for the
board. It "just worked" after that.

openwrt-devel mailing list
openwrt-devel at lists.openwrt.org

More information about the openwrt-devel mailing list