Hi gentoo-embeddeds,
i am a fellow gentoo user since nearly six or seven years now, and i
dont want to switch over to any other distribution out there, especially
when it comes to embedded linux stuff, gentoo for me is *THE* way to go!
however things could be more comfortable when it comes to cross
compiling, but this will evolve with time - i am sure - at least the
last post regarding "openmoko" "speaks out of my heart" (maybe there are
some german guys on this list who understand this phrase better)
anyway, the crosscompiling stuff only hit me once when i wantetd to put
gentoo on a mips arch ... but there was a "denx" image already existing
so it was easier to crosscompile the few packages with this ... however,
gentoo was very helpful alsoin tis case as it had all the magic to cross
compile python for the 160MHz mips cpu

))
ok, enough of the introductory stuff

- now off to what i really want
to discuss with you ...
as i am mostly doing embedded gentoo on x86 hardware (epia and the like)
i currently have the following setup:
imagine you have lots of identical boxes around the world with only
remote access (ssh) running gentoo and want to have them all up to
date ...
i have
- development system chrooted or nfs-root (with all the dev stuff)
- test system (where i rsync only parts from the dev system -
mostly to save space, i leave out all the doc and dev-stuff)
- form this test system i make an image (via rsync into a loop-mounted
file)
- on the targets i have two root partitions who only differ
in /etc/fstab
- normally the target runs on "root1"
- i can upgrade (via rsync) from the image-file into "root2"
- then i switch over with grub to boot "root2" the next time
and define "root1" as the fallback if "root2" fails ...
- reboot
- if it was successful, i can log into "root2" and sync back
to "root1"
- if it wasnt successful, a check-script (via watchdog) triggers
a reboot, because of the "fallback" definede in grub, i end up
booting "root1"
-> so if the update doesnt work i can log in to the "old"
"root1" system and check what went wrong
-> if everything was successful, i sync "root2" to "root1",
reboot and everything is fine
as i suppose that not only i have such a setup to maintain i would like
to discuss this approach with you - maybe we can come to an even better
solution ....
one thing which is not covered is the kernel upgrade ... or when the
system hangs when it boots "root2" ...
i assume a failsafe mechanism for a kernel upgrade will be hard to
find ... mind the dependency of /lib/modules/... along with different
kernel images ....
i know catalyst is out there, but i doubt it is flexible enough ... but
i would be fine off if you could teach me different ...
what are your approaches to such a scenario ... ?!?!
i also thought about building bin-pkgs and distributing them on the
targets ... is it possible to kepp all the .h and doc stuff out of a
bin-pkg ?!?!
well, thanks for reading this rather long post and i appreciate all your
comments !!!
thanks,
marcus.