Topic: Building new root images from the OpenEmbedded sources

Has anyone tried a clean build with the OpenEmbedded sources?

The checksums listed in
    ./meta-chumby/recipes/linux/linux-falconwing_2.6.28.1.0.3454.bb
appear to be wrong.

I'm building from http://wiki.chumby.com/index.php/Buildi … %28Beta%29 and NOT using the EC2 images.  When running bitbake, I get these errors:

ERROR: The checksums for "/home/guy/chumby-oe/sources/linux-2.6.28.mx233-falconwing-1.0.7.tgz" did not match.
  MD5: expected "7ff9f40b4c08e7393098fe231197e0f0", got "e4769e2f866d1f105cd7ad8f9f196aad"
  SHA256: expected "b6df540b1e450b791c659481d54e4187d554aef5fff12a004dda76ce92bd6413", got "11ad31a3d2487b48d9ff95df7494903d0fe109e9880a9569146f236703100a3a"

I've computed checksums for linux-2.6.28.mx233-falconwing-1.0.7.tgz at http://files.chumby.com/source/
and the bitbake recipe file seems to have incorrect values.  I found it necessary to update
./meta-chumby/recipes/linux/linux-falconwing_2.6.28.1.0.3454.bb
as follows:

SRC_URI[md5sum] = "e4769e2f866d1f105cd7ad8f9f196aad"
SRC_URI[sha256sum] = "11ad31a3d2487b48d9ff95df7494903d0fe109e9880a9569146f236703100a3a"

I've posted some notes and scripts on building a root image from scratch at https://github.com/clearwater/chumby-oe.

Re: Building new root images from the OpenEmbedded sources

Looks like this might be just the tip of the iceberg. 
The next issue I ran into is that the OE recipe defines the wrong source directory (S) for that tar file.
That was easily fixed, but now I've encountered this build error:

make[3]: *** No rule to make target `net/ipv4/netfilter/ipt_ECN.o', needed by `net/ipv4/netfilter/built-in.o'.  Stop.

which is due to the fact that the kernel distribution from Chumby has not preserved fllename case.  The source for this file exists in the tar file as ipt_ecn.c, and it should be ipt_ECN.c.  That could be a real bugger to clean up.

That's pretty tragic guys.

Re: Building new root images from the OpenEmbedded sources

I previously built one using the instructions on the wiki.  I remember seeing recently that new kernel source was uploaded.

That appears to have broken the builds.

I scrape the files.chumby.com site every once in a while, and it appears I have the same md5sums as you, which is expected...

In my oe directory, I have linux-2.6.28.mx233-falconwing-1.0.7.tgz with md5sum 7ff9f40b4c08e7393098fe231197e0f0 and in the files.chumby.com, after a recent "wget -m", I have that same filename with md5sum e4769e2f866d1f105cd7ad8f9f196aad

It looks as though somebody at chumby uploaded some updated code on top of something that's already published and used by many (i.e. the OpenEmbedded build).  IM(NSH)O, the new tarball should have been uploaded to a new filename.

This is another reason I see to have Chumby's kernel source in git, on github... easier tracking of changes and "re-releases" if the public was privy to the revision history. big_smile

Can we get chumby to re-upload the original tarball and place the new one in a different location?  Either that, or the entire OE recipe needs to be updated/fixed.

Linux Guy - Occasional Chumby Hacker

Re: Building new root images from the OpenEmbedded sources

Totally agree.

I spent some hours last night picking through the released kernel files trying to resolve the issue of missing files.  It turns out that wherever the Linux source has pairs of files that differ only by case (eg ipt_ECN.c and ipt_ecn.c) only one of the two files has been included in the tarball.  I suspect this is some horrible side-effect of using a case-insensitive file system like HFS plus.  Fortunately there aren't many files that meet that criterion so I figured it should be possible to reconstruct the missing files from a similar version of the kernel.

After a bit of digging I found what appears to be the closest available ancestor of the released source - notably it is NOT the 2.6.28 release from www.kernel.org (derp, wish I had realized that earlier), it's the Freescale release here:
  http://opensource.freescale.com/git?p=i … 425;sf=tgz

I've created a tar file containing just the missing files:
    https://github.com/clearwater/chumby-oe … 7c4042d947
and by adding those to the OE working directory I was able to get the build to continue.  It's still running, so I am not claiming success yet.

I've pushed updated versions of the bitbake recipes to
     https://github.com/clearwater/chumby-oe
with fixes for the checksums and the incorrect source path specification.  I'll roll in these missing files as a patch when I get a chance.

Re: Building new root images from the OpenEmbedded sources

In the past, I made branches of the chumby released kernels, but I haven't done anything with that in a while:

https://github.com/Materdaddy/linux-2.6/branches

It was relatively easy as their sources paired well with the versions listed.  I did leave out some white-space changes in an attempt to have only the functional changes in the branches I made.  Not sure if that will help you or not.

Linux Guy - Occasional Chumby Hacker

Re: Building new root images from the OpenEmbedded sources

Following up, the package at https://github.com/clearwater/chumby-oe now cleanly builds the chumby-starter-image. 

Thanks to Matt Colyer for jumping in to clean up the docs and other cruft.

Re: Building new root images from the OpenEmbedded sources

Here is one more critical piece of information I've determined for anyone trying to build a boot image from source.  The  published instructions for building a Chumby root image will check out the latest version of OpenEmbedded from github, and from what I've read elsewhere on this forum, not all versions produce runnable Chumby images.  We know that the VMWare image builds runnable images, and it turns out the git HASH for that version is ba5581f2258fccaf87245f5672c20d3cc43d1849. 

Once you have openembedded cloned, you can get that version like this:

  cd chumby-oe/openembedded
  git checkout ba5581f2258fccaf87245f5672c20d3cc43d1849

I've configured my setup script to use that version.  In fact it now pulls all of the initial downloads (Bitbake, OpenEmbedded, the Chumby-specific Linux sources, and the Chumby-specific OE scripts) from version control, so no more version roulette.

Re: Building new root images from the OpenEmbedded sources

Thanks Guyc, I was looking for the GIT version used and was too lazy to get it smile

Re: Building new root images from the OpenEmbedded sources

My apologies - this was entirely my fault.  The missing files were indeed the side effect of exporting and tarring the source on an HFS+ file system.  I've re-posted both the 1.0.7 and 1.0.5 kernel sources to http://files.chumby.com/source/#falconwing_1.0.7 and http://files.chumby.com/source/#falconwing_1.0.5 respectively, and included the new md5sums for reference.  I have verified that both kernels build properly using GCC 4.3.2 via:

make ARCH=arm CROSS_COMPILE=arm-linux-

Going forward, previously published source tarballs will not be overwritten.

We're looking into restoring the original 1.0.7 tarball with the 7ff9f40b4c08e7393098fe231197e0f0 md5sum for those of you that use the OpenEmbedded build.

Re: Building new root images from the OpenEmbedded sources

Awesome, thanks for the update Ken!  If you need the tarball with the correct md5sum for OE, I have it and can put it on an FTP site, or get it to you other ways.

I still "+1" the idea of a publicly accessible git repo for the kernel source. big_smile

Linux Guy - Occasional Chumby Hacker

Re: Building new root images from the OpenEmbedded sources

Hi!

FYI:  anonymous read-only access via:

git clone git://github.com/clearwater/chumby-oe.git

Are there complete instructions to build a working installable binary for the Infocast 8?

I'd like to install OE on an Infocast 8 so the screen has vt1-vt6 and X running on vt7, or something close to that( memory constraints).  I'd even be happy if X couldn't be gotten to run but mplayer worked on the console with sdl or fbdev.  I want to stream Youtube and Daily Show/Colbert Report videos to it while I work.  Infocast 8s are cheap on eBay :-) .

Does the system boot off the internal microsdhc card?  Is there a way to dual boot it?

Thanks!

Re: Building new root images from the OpenEmbedded sources

Infocast 8 would be the "silvermoon" kernel.  Ignoring the devilish details, the process should be much the same as a falconwing  build.  Starting with the git repository you referenced, and a Linux (not FreeBSD, not OSX) build machine, you would need to:

- create a bitbake recipe for your kernel (following the pattern of those in meta-chumby/recipes/images)
- edit the Makefile to target your new receipe
- cd ~/chumby-oe; make setup; make
- leave it for a day (it really does take almost 24 hours for the first build on my not-fast build machine)
- burn the created image to SD
- profit

I do not believe X11 is feasible - it's huge and complex, but maybe the other options you've identified will pan out.
I'm happy to assist with getting a basic OE build for Silvermoon together if you go down that road.

Re: Building new root images from the OpenEmbedded sources

I think there's a lighter-weight version of X11 that's used on Maemo that *might* work.

Re: Building new root images from the OpenEmbedded sources

I am getting checksum errors when I pull from github.com/clearwater/chumby-oe.git.
What am I doing wrong?
Here's what I am doing:

git clone https://github.com/clearwater/chumby-oe.git
cd chumby-oe
make setup
make

Error output:

NOTE: package binutils-cross-2.20.1-r13.4: task do_fetch: Started
ERROR: The checksums for "/home/tanioklyce/chumby-oe/sources/binutils-2.20.1.tar.bz2" did not match.
  MD5: expected "9cdfb9d6ec0578c166d3beae5e15c4e5", got "2b9dc8f2b7dbd5ec5992c6e29de0b764"
  SHA256: expected "228b84722d87e88e7fdd36869e590e649ab523a0800a7d53df906498afe6f6f8", got "71d37c96451333c5c0b84b170169fdcb138bbb27397dc06281905d9717c8ed64"

NOTE: package binutils-cross-2.20.1-r13.4: task Fetch failed: ftp://ftp.gnu.org/gnu/binutils/binutils … me=tarball checksum mismatch.: Failed

15 (edited by guyc 2011-11-28 16:47:55)

Re: Building new root images from the OpenEmbedded sources

This is caused by the same change as is discussed in this thread.

Apparently binutils-2.20.1 has been replaced with binutils-2.20.1a, with different checksums.

I've created a patch to update the oe receipies after they are checked out. I'm testing the fix now, and as the test will take a while, you might like to just pull it and see if it works for you.  You can get the fix, apply the patch and retry the build as follows.

cd chumby-oe
git pull
make setup
make

16 (edited by guyc 2011-12-02 19:36:29)

Re: Building new root images from the OpenEmbedded sources

Note also there is a problem with fakeroot 1.9.6 sources going away.  The git project has been amended to use a version 1.15.1 as discussed in this thread.

(Followup: I've now verified that the OE project builds cleanly with the fakeroot and binutils patches.)