views:

44

answers:

2

Hi there,

Before designing my own Linux OTA stack, I'd better probe if anybody knows of an existing Linux OTA stack/framework that I could make use of/contribute to.

What I mean by Linux OTA stack/framework is a service capable of updating the Linux kernel on my device from a remote repository. Basically something like the OTA update feature found on most Linux smartphones today. It must be 99.99% fail-safe such that my devices (which will be mounted in 500 cars for 6-12 months) will not turn into useless bricks that require on-site service to become working again.

An open source solution is not a must - commercial solutions that do the job has equal interest.

Thanks in Advance. Christian

+1  A: 

Could you just use the APT, combined with suitable kernel packages?

caf
Unfortunately, my kernel is located in a dedicated flash partition and is non-standard. So APT won't do.
Christian Madsen
@Christian Madsen: That's why I said "combined with suitable kernel packages" - you can customise your kernel package install scripts so that it does the right thing.
caf
That is interresting - it never hit me that I could use RPM or APT to do the installation outside the filesystem. I will pursue.
Christian Madsen
Sure - even the standard distro kernel packages tend to have install scripts that update the bootloader configuration. For `.deb` packages, the "postinstall" script is probably what you want.
caf
+1  A: 

Doing the actual update is pretty trivial, you can use any of the existing package management frameworks to provide a new kernel package that the system upgrades to when available.

The hard part is when your device reboots into the new kernel you need some way to detect if it doesn't boot, and boot it back into the old kernel. To do that without human intervention you'll need some sort of watchdog facility in your hardware.

mpe
Since the kernel is on a dedicated flash partition and not in the filesystem, apt, rpm or similar won't do (or did I overlook something). Regarding rebooting, these are exactly my thoughts. I just need to know if an existing solution is available for all of this or I should do it myself.
Christian Madsen