Fallback environment in barebox
Baruch Siach
baruch at tkos.co.il
Sun Mar 6 13:26:06 EST 2011
Hi Itai,
On Sun, Mar 06, 2011 at 04:59:02PM +0200, Itai Raab wrote:
> I tried doing what you explained, but it seems like Barebox startup code
> didn't load the environment from env1 when env0 was corrupted.
>
> In barebox shell I could find /dev/env1 with all the data, but when the
> Barebox started I got:
> no valid environment found on /dev/env0. Using default environment
>
> Looking at the startup code (common/startup.c - is this the place?) I don't
> see any mechanism to load env1 when env0 fails.
You seem to be right. Juergen, can you explain what you meant?
> Is it the right place to add the support or am I missing something?
An alternative solution might be to use the defaultenv mechanism, and put
there a fall-back init script which contains the following (untested):
loadenv /dev/env1
Since the defaultenv init runs only when environment load from /dev/env0 fails
(i.e. the env0 partition is corrupted), this is actually equivalent.
baruch
> -----Original Message-----
> From: Baruch Siach [mailto:baruch at tkos.co.il]
> Sent: Monday, February 28, 2011 7:51 AM
> To: Boaz Ben-David
> Cc: jbe at pengutronix.de; barebox at lists.infradead.org; Itai Raab
> Subject: Re: Fallback environment in barebox
>
> Hi Boaz,
>
> On Sun, Feb 27, 2011 at 12:09:59PM +0200, Boaz Ben-David wrote:
> > Sounds great.
> >
> > Is there any documentation on how to "register" environments?
>
> What Juergen meant to say is "register partitions named env0, env1, ...". The
> barebox startup code then automatically picks the first valid environment
> partition.
>
> To register partitions (with bad blocks awareness) use devfs_add_partition()
> and then dev_add_bb_dev(). grep for "env0" under arch/ for many examples.
>
> baruch
>
> > On Sun, 2011-02-27 at 10:50 +0100, Juergen Beisert wrote:
> > > Boaz Ben-David wrote:
> > > > We want to implement a mechanism in barebox to use two environment
> > > > partitions.
> > > > i.e. when barebox boots it will go to the first by default and try to
> > > > use it. If for some reason it fails
> > > > it will boot with the second one.
> > > >
> > > > What is the best way to implement this in barebox and did anyone do it
> > > > already?
> > >
> > > AFAIR a mechanism like this is already present in barebox. It tries the first
> > > environment, checks its CRC and if it fails it tries the next, if one exists.
> > > Just register env0, env1, .....
--
~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
More information about the barebox
mailing list