While building a new image I want to make the partitions smaller so I modified poky/meta-intel-edison/meta-intel-edison-bsp/recipes-bsp/u-boot/files/edison.env. I reduced the size of root and specified the size of home.
According to some sources I should also modify IMAGE_ROOTFS_SIZE found in poky/meta-intel-edison/meta-intel-edison-distro/recipes-core/images/edison-image.bb
I noted that IMAGE_ROOTFS_SIZE was already 512MB(524288) by default so I didn't change that value..
With this build I ended up with /home being 1.3GB.
I check fw_printenv on the running system and the size for home is still specified as 128MiB.
I haven't specified or changed any equivalent to IMAGE_ROOTFS_SIZE.
How can I make the /home partition a specific size?
My end goal is an update mechanism with two sets of partitions. The first set would be built as usual in the image into a working system. This system would slowly populate the second set of partitions. When finished a quick switch would be done by a fw_setenv followed by a reboot.
In terms of space the 4GB is more than enough for my needs, I could probably fit 8 pairs of systems if needed.
My understanding of the "reboot ota" is that it unzip and overwrite the system in one go.
My hope is that my approach would be safer since there won't be a time the system can break if power is lost and the downtime would be minimal. Does this sound right?
I would need to create more partitions. These partitions doesn't need to be formatted as they would be overwritten by upgrade images.
Can I create more partitions by simply appending "partitions=" in edison.env?
I tried changing the partitions using fw_setenv on a running system. After a reboot I couldn't see any extra partitions.
How are the current partitions UUID used? Does the build system rely on the root partition to have a specific UUID or can I assign them specific values in edison.env?
The latter would be preferable, to have the same UUID of a partition over several builds.