Bringing up the openslug build on my Ubuntu 6.x systems.


As of openslug current on Feb 4, 2007.

I'm working on a robot Magellan project and I've decided to try to use a NSLU2 running a customized version of the openslug root file system using the NSLU2-Linux project.  This page attempts to capture some of the learnings and steps I had to take to get the thing to build.

To date I've thrashed around on no less that 4 different computers and at least 3 different desktop distributions getting open embedded or openslug to build.  Each time I swore I'm going to keep notes as it has taken me on the order of a few days bringing up the initial build if I've walked away from the project for longer than a month or two.    This page is an effort to avoid having to spend more than 4 hrs setting a system with a reasonable chance of finishing the multi hour openslug build.

I have gotten openslug to build on the following systems + distributions:
Pentium D desktop
64 bit Ubuntu 6.01 for x84_64
Open SuSE 10 and Ubuntu
Pentium III desktop
Linux From Scratch

T43 Pentium M Think pad laptop
Open Suse 10.1
Ubuntu 6.10
Toshiba PIII laptop
Ubuntu 6.01 (BTW having HW issues with this guy)


I'm documenting the setup step for binging up the Ubuntu host environments with this page.  If anyone follows in my foot steps and finds that I've missed a step, please send me a note so I can update my documentation. <markgross@thegnar.org>

Initial setup:

Use apt-get to install the basic tool dependencies for OE building.

Next setup the tools and download directories for a successful build and future NSLUG and OE building adventures :)

md5sum -b IPL_ixp400AccessLibrary-2_1.zip | awk '{print $1}' > IPL_ixp400AccessLibrary-2_1.zip.md5
md5sum -b IPL_ixp400AccessLibrary-2_3.zip | awk '{print $1}' > IPL_ixp400AccessLibrary-2_3.zip.md5
md5sum -b IPL_ixp400NpeLibrary-2_1.zip | awk '{print $1}' > IPL_ixp400NpeLibrary-2_1.zip.md5
md5sum -b IPL_ixp400NpeLibrary-2_3.zip | awk '{print $1}' > IPL_ixp400NpeLibrary-2_3.zip.md5

Now get the openslug master make file and put it to use ;)

Now if it didn't work, any of the following things could have happened to you:

Very high level over view of the OpenSlug / open embedded build structure

There are two parts to the build.  Bit bake and Monotone.  Bit bake is a python based build system that reads these files called *.bb files.  These files from withing bit bake will build all the code and will result in a distribution image to load on your NSLU2 (or other chosen Open Embedded target).  Bit bake is maintained in a subversion system independent of the rest of the open embedded components, which are maintained under a monotone archive.  The *bb files are maintained in a a monotone repository system.  You only need to deal with monotone when you update your bit bake recipes files.

Rant disclaimer: I will probably be eating my works in a few years if I get deeper into OE development but for now monotone is just an entity to tolerate and avoid as much as possible...

Monotone is a distributed version control system (where I have yet to figure out how to get labeled versions checked out) that has a lot of the flavor of git or Mecrueal, only unlike those, it will not work across a proxied firewall.  I don't like monotone as its a hassle to build, hassle to use, and its database format is clearly evolving (btw the database is a 100MB file) and very mysterious.  Basically the less I need to know about monotone the better I feel.  This is one reason the NSLUG master make file is so nice.  It encapsulates most of all the monotone knowledge you'll ever need.

This being said folks on the Oe and NSlug mailing lists defend it.  The good news is you don't need to worry about knowing anything about monotone unless you need to update your *.bb files that bit bake will use to build your target image.