> 2015-11-30 14:10 GMT-02:00 Jens Rehsack <rehs...@gmail.com>:
>> 
>>> Am 23.11.2015 um 22:15 schrieb Mariano Lopez <mariano.lo...@intel.com>:
>>> 
>>> There has been interest in an image based software updater in Yocto 
>>> Project. The proposed solution for a image based updater is to use Stefano 
>>> Babic's software updater (http://sbabic.github.io/swupdate). This software 
>>> do a binary copy, so it is needed to have at least two partitions, these 
>>> partitions would be the rootfs and the maintenance partition. The rootfs 
>>> it's the main partition used to boot during the normal device operation, on 
>>> the other hand, the maintenance will be used to update the main partition.
>>> 
>>> To update the system, the user has to connect to device and boot in the 
>>> maintenance partition; once in the maintenance partition the software 
>>> updater will copy the new image in the rootfs partition. A final reboot 
>>> into the rootfs it is necessary to complete the upgrade.
>>> 
>>> As mentioned before the the software will copy an image to the partition, 
>>> so everything in that partition will be wiped out, including custom 
>>> configurations. To avoid the loss of configuration I explore three 
>>> different solutions:
>>> 1. Use a separate partition for the configuration.
>>> a. The pro of this method is the partition is not touched during the update.
>>> b. The con of this method is the configuration is not directly in rootfs 
>>> (example: /etc).
>>> 
>>> 2. Do the backup during the update.
>>> a. The pro is the configuration is directly in rootfs.
>>> b. The con is If the update fail most likely the configuration would be 
>>> lost.
>>> 
>>> 3. Have an OverlayFS for the rootfs or the partition that have the 
>>> configuration.
>>> a. The pro is the configuration is  "directly" in rootfs.
>>> b. The con is there is need to provide a custom init to guarantee the 
>>> Overlay is mounted before the boot process.
>>> 
>>> With the above information I'm proposing to use a separate partition for 
>>> the configuration; this is because is more reliable and doesn't require big 
>>> changes in the current architecture.
>>> 
>>> So, the idea is to have 4 partitions in the media:
>>> 1. boot. This is the usual boot partition
>>> 2. data. This will hold the configuration files. Not modified by updates.
>>> 3. maintenance. This partition will be used to update rootfs.
>>> 4. rootfs. Partition used for normal operation.
>> 
>> That's what we currently have implemented and running in field for a while 
>> with a small difference:
>> 
>> 1) We don't use Stefano Babic's software updater, but an own script which 
>> deals with initial software flash and later update similar - 
>> https://github.com/rdm-dev/meta-jens/tree/jethro/recipes-rdm/prd
>> 2) We have integrated the updater with an update-service which can download 
>> the new image and install based on a manifest (signature support comes with 
>> next update) - 
>> https://github.com/rdm-dev/meta-jens/tree/jethro/recipes-rdm/system-image // 
>> http://www.netbsd.org/~sno/talks/nrpm/Moo-at-System-Image-Update.pdf
>> 3) We use
>> 
>> boot
>> rootfs
>> maintfs
>> data
>> 
>> This layout allows us to extend data to fit the entire storage with know 
>> sizes for boot, rootfs and maintfs
>> 
>> 4) Overlayfs with all serices is implemented (Update-wise, when coming from 
>> 3.10 to 3.18 or coming from 3.0 with unionfs to overlay ...) - 
>> https://github.com/rdm-dev/meta-jens/tree/jethro/recipes-core/initoverlay
>> 
>> Feel free to use that solution if you want.

> Am 30.11.2015 um 17:54 schrieb Daniel. <danielhi...@gmail.com>:
> 
> Hi,
> 
> Hey Jen, I was looking for an image upgrade solution and factory reset
> solution using overlayfs. The idea have two partitions one read-only
> with the factory image, other to hold the changes that were made by
> time. The factory reset feature should be triggered by a hided button
> that can be pressed with help of a clips. I was thinking in using an
> init ram disk to wipe out the rw partition, making the rootfs clean as
> after an image installation. The upgrader tool shold re-flash a new
> image to rootfs. Old rootfs is lost. The configuration changes that
> have been holded by overlayfs should be wiped-out too, I didn't think
> about that, is something to take in account.
> 
> Are you using overlayfs? How is it going? What difficulties you have found?

Yes, we do. All difficulties we'd found are solved in referred initoverlay
recipe. Maybe one fine I write a blog post regarding that topic ;)

> Other solution whould be using Smart package manager to upgrade the
> rootfs, but this doesn't attend my need for factory-reset.

How does that fit into an ro rootfs?

> Please tell me more about your experience with overlayfs :)

It's more stable than unionfs. There was little effort updating
systems from 3.10 with overlay patch to 4.1 with overlay builtin
kernel (work dirs must be created - 
https://github.com/rdm-dev/meta-jens/blob/jethro/recipes-core/initoverlay/initoverlay/migrate2overlay.sh#L28-L30)

Cheers
-- 
Jens Rehsack - rehs...@gmail.com

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to