Iris update

Bas Wijnen wijnen at
Mon May 10 03:33:52 EDT 2010


On Mon, May 10, 2010 at 12:24:38AM -0300, Rafael Campos wrote:
> On Sun, May 9, 2010 at 11:04 PM, Wolfgang Spraul <wolfgang at> wrote:
> >> some pics of it running :),
> >>
> >> having a BNN as alarm clock is motivating, hope a OpenWrt version of
> >> it will appear soon to include in the official image.
> >
> > Iris is a new kernel :-)
> > Yes pictures would be awesome,

I'll make a movie of it. :-)  As usual, the thing you see running isn't
so spectecular and could easily have been made on GNU/Linux.  The
interesting part is what's underneath it.  But I can try to show that in
the movie as well.  So it'll be an instruction on how to write a program
for Iris. :-)

I really should let someone else make the movie of the Ben running,
though, since mine is white, has a wrong keyboard and has "Color Digital
Dictionary" printed on it. ;-)

> > also I am thinking how we make it easier for people to try Iris.

Probably the best is to let someone do it, and document all the steps
along the way.  It's not hard, I think, but there are several steps to

> > I should look into how we can build it, and make it easy to boot
> > from u-boot on microSD card or so.

> I was chating on IRC with Wolfgang and he told me that could be a good
> feature. I'm familiar with u-boot and i see a really attracting the
> approach of Iris kernel. I would like to help you on this feature, and
> also try to document and bother you with questions to get the kernel
> working on my Ben.

Sounds good!  I'll try to go hang around on IRC a bit.  If we don't meet
there, just use e-mail.

> > Just some easy steps people can go through to let Iris run...
> >
> > Or do we have that already? Anyway that's what I will look into.

I wrote some documentation, but it's very incomplete, and possibly
(probably very) outdated.  Here's an ultra-short summary:

To build Iris:
- set up a cross compiler (gcc 4.2 works, newer should work as well)
- install pypp and libshevek from (svn)
  The easiest is to build those with mkdeb, from the same repository,
  and install the Debian packages which are generated in /tmp.
- make setup (you see more if you have the serial output of Ben
  connected to /dev/ttyUSB0, as named in Makefile.)
- make

What Iris does during boot:
- A small program is loaded into cache, to set up the clocks and the
  SDRAM.  This is how usb-boot works.
- Iris is loaded into SDRAM, with two or three binaries included:
  bootinit, a (read-only) filesystem and optionally a backing store.
- bootinit uses the filesystem to load elfrun, and init.  It runs
  elfrun and uses it to run init.
- init loads init.config, sets everything up according to it, kills the
  initial boot threads, and runs everything that was set up.

Currently the only boot threads I have are a custom fs for getting files
over the usb connection, with no backing store.  To make it boot from
NAND, I should create an fs which understands partitions and a
filesystem (probably FAT, initially), and a backing store driver which
can read the NAND.  For SD, I need the same fs, and a backing store
which can read SD.  For booting from NAND, some bootstrap code similar
to that for usb must also be used.  For SD, u-boot is used so no such
code is required.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: <>

More information about the discussion mailing list