On 05/01/2023 12:09, m1027 wrote:
frederik.pfautsch: > >>> So, ideally, there is c): In a hypothetic case we would prepare
a >>> entire OS incl. our app (maybe via catalyst?) which would require
>>> a bootloader-like mini-OS on the customer's side, to receive >>>
updates over the internet, switch the OS at boot time, and >>> fallback.
I was recently playing with systemd-boot and it's >>> interesting
try-boot feature. >> >> So essentially it sounds like you want something
similar to Yocto / >> Poky / Petalinux for the non-embedded world (and
based on Gentoo of >> course; it sounds like catalyst is something like
that)? > > I've had a look on that: Wow, another interesting approach to
build > customized OSes. Thanks! > >> Just throwing crazy ideas around,
what about using net-boot for >> your customer? This way they just need
to store an image somewhere >> and can update it whenever necessary. Or
(ab-)using an initramfs. >> Or u-boot bootloader, just like in the
embedded world. Depending on >> the size of the actual OS/rootfs, taking
ideas from e.g. Android >> with their A/B bootslots (i.e. two
root-partitions or something, >> where one is active and the other can
be updated with clever >> scripts, after a reboot they are swapped). > >
... exactly what is on my wishlist currently! I am missing such an >
alternative when in need for updating a remote (customer's) OS, where >
ssh + emerge @world is just no option. If we had that, I'd see Gentoo >
(e.g. with catalyst or via Yocto) shining bright here as it is > perfect
in stipping down things to the required minimum. > > Thanks.
Interesting projects in that space could be mender.io, or swupdate.
Both are based on the idea of having at least two system partitions (+
maybe a couple of data partitions), and downloading the update on an
inactive partion. On next boot, the bootloader tries to boot from the
new partition; if that fails, it will fall back to the previous (known
working) partition after a few tries.
--
Xelnor