BeagleBox: Buildroot 2011.02 progress (toward video playback), Ubuntu and Linaro


I've managed to build and boot Buildroot 2011.02 using the 2.6.32 Arago kernel and Crosstool-NG 1.8.2 with GCC 4.4.3 and uClibc 0.9.30.2.  The build works just as well as the older buildroot 2010.11 I had been using, but there is a problem with where fonts are being installed.  For some reason the build tosses them under a sysroot tree based under my home directory on the target root file system.  Needless to say the runtime can't find these. There is a patch available that may address this (though I think the || should actually be an &&) but initial tests show it doesn't help.   I'm still trying to figure it out.  Once I get past this issue I may be able to have an xterm come up properly.  That would be a big step forward.

The 2011.02 release is an important milestone for BeagleBox because it includes the DSP utilities required to utilize the OMAP support for video playback.  This means I don't have to worry about trying to manually integrate the DSP support into my build system – Buildroot already has it.  So theoretically I will be able to play video as soon as I get the fonts problem fixed.  And that would be a huge step for BeagleBox!

While working to get 2011.02 built I ran into a few minor issues.  At one point I posted a bug report and the response came back that I was using a very old uclibc.  Turns out that's true.  But the problem is that newer uClibc's are not fully tested with crosstool-ng (which is responsible for building this library).  uClibc 0.9.31 is marked as experimental in crosstool-NG 1.8.2 (the default for BeagleBox at the moment) and 1.10.0 (tested using the XR= option on the command line for BeagleBox – testing new releases is pretty easy this way).  Both offer the chance of using a "latest snapshot" too.  A variety of tests were run with those but it turns out 0.9.30 was able to build Buildroot 2011.02 without error, but the others did not.  This is very possibly a problem with the mix of binutils, compiler and c-library I tried and further testing should be done.  For now, I have a working combination that I can stick with to get to the video playback testing.

Also, kernel 2.6.38.2 is said to have all the OMAP support required for BeagleBoard other than the sgx bits.  I tried using that kernel but it locks up right after uncompressing the kernel.  I have no idea why yet and more testing is definitely required.  It may be because I compile the kernel with some xM config options that are not compatible with my C4 board.  But I'm not clear what options those might be.  So BeagleBox with the latest kernel is still a wish list item too.  I've got the org repository for the kernel configured for 2.6.38.2 as the default for that repo, but that repo is still not the default for the BeagleBox build.  Also, Robert Nelson has the patches for SGX on the 2.6.32 kernel but does not (to my knowledge) have them ported for 2.6.38.2 yet.  I may look at that later but 3D support is a low priority at the moment.  Anyway, the 2.6.32 kernel is still the default so until 2.6.38.2 works properly it's a non-issue.

I still have to get the current block of updates pushed to git.  I'll do that today or tonight.  I'm currently waiting on a Buildroot test to complete.

In other news…

I haven't had many people ask to participate in BeagleBox yet, though I welcome any help.  However, a company in the UK that makes set top boxes thinks BeagleBox may be the best way forward for them in the long term.  They've used the SuperJumbo distribution to verify video playback capabilities (and are now looking at a slightly different OMAP chip because of that).  But they feel BeagleBox may provide the most flexible build for their specific needs.  Before they can be sure, they've asked me to get BeagleBox working on Ubuntu.

I tried to do the builds under a KVM session using Ubuntu 9.10 and 10.10.  In both cases the I/O throughput was so bad as to make the build unusable.  I'm no VM expert and don't have time to dig deeper into it, so I've punted and decided to throw more hardware at the problem.  I ordered another build system that I'll install Ubuntu on.  That should be here Monday or Tuesday.  I already know that the Fedora 13 specific patch in the xcc (cross toolchain) directory will need a platform specific test.  I expect I'll strap lsb_release -i | cut -f2 -d":" into the config.mk to identify the platform and then use platform specific patch directories under each component tree.  Shouldn't be a big deal to get it working though since there aren't a lot of platform specific issues other than making sure we have an up to date native toolchain.  Make 3.8.2 may be an issue, but I'll deal with that when I get there.

Note that Crosstool-NG has a new web site: http://crosstool-ng.org/  This is rather sparse at the moment though does provide downloads and will eventually have the original sites content migrated over, at which time downloads will only be available from the new site.  I'll be updating BeagleBox to point to the new site shortly.

And finally….

I've been looking at the Linaro releases to see how those might be integrated into the build.  Obviously the best route is to integrate linaro with Crosstool-NG and Buildroot where applicable.  At the moment it isn't clear to me how this might be accomplished, but I'm only just starting to dig into it.  While most of the upstream push is intended to make desktop distributions happier I think there is another void to fill in making sure the embedded builds pick up on this.  They're already supporting the bigger players like openembedded and yocto/Poky.  But I don't (yet) see much work with Crosstool-NG or Buildroot.  At least not on the maling lists.  So there is work to be done here, and I'm sure it will be a benefit for everyone once it happens.

Update:

I fixed the sysroot problem but even with fonts in the correct locations xterm still doesn't start.  I ran strace on it but that isn't telling me much.  So that problem still needs to be fixed.  I don't think any other apps will start up without it, though I can try things like surf or some other light weight browser.  But at least Buildroot 2011.02 is integrated.   Time to close FS#93.

Update 2:

The xterm problem remains unsolved, but I created a package for rxvt for buildroot and tested that and – viola! – it works!  I now have a terminal up running under bui.  Big step forward!  With this I was also able to verify that the display is properly set to 1280×800.  Woohoo!!!  I'm psyched.  You have no idea how long I've been waiting to get to this stable point.  Next up:  test the video playback to see if that "just works" and then attempt to get the network configured.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.