2006.05

mickeyl May 4th, 2006

BitBake & OpenEmbedded / OE-based Linux distributions / Opie & GPE / Ångstrom

Introduction

Helas! It’s time for another newsletter. First, let me apologize for the long delay since the last newsletter, but I have been very busy with writing my Ph.D. thesis. It’s in the final phase now and will be ready for submission in only a couple of weeks. Now that we got that out of the way, let’s get to the really important topics ;)

BitBake

BitBake BitBake is a highly configurable flexible dependency parser, and task execution tool. It can be downloaded from Berlios.de.

Since the last newsletter, a lot of work happened around BitBake. The most exciting developments were lead by Überhackers Richard ‘RP’ Purdie and Holger ‘Zecke’ Freyther, who modified the BitBake cache system gaining us a great speedup on the second and most subsequent runs.

When I added the cache back in 2004, we had much less recipes and much less metadata per recipe. Nowadays, the cache is large and I/O throughput is the limiting factor here. The basic idea to improve this, is to only cache the absolutely necessary stuff — which is what is responsible for the dependency calculation, i.e. DEPENDS. All other information can be read on-the-fly. Thanks to this, parsing time is now down to less than two seconds (yes, that’s <2s !) for runs with no changes to files inbetween. This eliminates one core reason for my BitBake interactive mode, but there are still some other valuable use cases left.

The work on improving the BitBake parsing time is still going on, Tim ‘Mithro’ Ansell is finishing the C-based parser.

In the past, BitBake occasionally suffered from bleeding-edge changes. To improve this situation, Holger Freyther took over the BitBake release manager position and started to branch off BitBake 1.4.x. At the time of this writing, we just released BitBake 1.4.2 at http://developer.berlios.de/projects/bitbake.

OpenEmbedded

OE logo OpenEmbedded is our award-winning set of recipes and metadata to build Linux distributions for embedded devices with the BitBake build system. OpenEmbedded grows. And grows. The current number of BitBake receipes in OE is 3330 and these recipes create over 10000 packages - which is a quite nice amount of libraries and applications for your distribution feeds.

In January, we tagged the .dev branch because of some more intrusive changes to the metadata, i.e. fixing the situation where DEPENDS states more than just the minimal necessary packages to get a certain package to build. RDEPENDS is now analyzed by BitBake and automatically added to the build time DEPENDS, whenever appropriate. The result is, that the metadata is more concise. This first construction time is now over and .dev is reasonably stable again. Note that we also have the three long living branches:

  • oz354fam083 for Familiar Linux 0.8.4
  • oz354x for OpenZaurus 3.5.4.x.
  • dreambox for the dreambox PVRs

Recipe-wise, hundreds of packages have been added and upgraded in the last months. X11R7 has been added to OE in a modular way and we received a lot of contributions through the bugtracker - thanks folks! Many SDL games in OE previously had a fixed dependence on Opie and contained Opie-specific files. With the added attractiveness of X11-based PDA environments like GPE, I took the time and wrote a SDL build class that seperates the SDL generics from the Opie specifics. For every SDL package ‘foo’, there is now a package ‘foo-opie’ that contains the necessary launcher integration bits. That way, the SDL packages now are finally useful for both Opie and non-Opie environments.

Our configuration of Qt/Embedded 2.3.10 has been enhanced to support the new Konqueror/Embedded 3.5 (yes, finally a good open source web browser for Opie) and forthcoming japanese input methods. The default Qt/E 2.3.10 configuration is now 30% larger, but includes additional features like

  • unicode tables,
  • japanese codecs,
  • multi-threading,
  • c++ exception handling, and
  • RTTI.

Richard Purdie (RP) from OpenedHand added target support for the QEMU virtual machine (see screenshot):

Qemu

This is a great step foward, because it allows us to:

  1. test complete OE-built images without having to flash them to a device and
  2. use the command line mode of qemu to generate target specific things like locale information.

Qemuarm contains a framebuffer emulation and will boot all the way into an xserver and run x applications.

SCM-wise, most of us are still (more or less) happy to use monotone 0.25 which matches pretty good with our workflow — a recent evaluation of alternative systems didn’t show up something interesting enough to make us switch. Note though that we will soon be switching over to monotone 0.27 which - unfortunately - requires a concerted operation because of non-compatible database changes. This switch is planned for somewhere in June 2006 and we will announce the procedure via the mailing list oe@handhelds.org. Since version 0.26, monotone is a lot faster than previous versions and has a much improved merging algorithm, which is why we are looking forward to keep managing the OpenEmbedded metadata trees using this revision control system.

We have two important OE-improvement proposals at this years’ google summer of code… please cross your fingers that both or at least one will be supported.

In order to continue improving OpenEmbedded and make it conquer new frontiers, we just launched the first OpenEmbedded survey - please participate at http://survey.openembedded.org/index.php?sid=6 - the survey is anonymous and once completed, the results will published. We plan to close the survey at the end of May 2006, so hurry up and pick your favourite itch.

Last but not least, it might be interesting for you to know that I’m planning to write a book about building embedded linux distributions with BitBake and OpenEmbedded. Parts of it will be put online and released under an open document license. We hope this will put an end to the documentation problem.

Speaking about documentation… this months commented BitBake recipe is ulxmlrpcpp_1.5.2.bb, a lightweight C++ library for developing XMLRPC clients and servers.

OpenZaurus

OpenZaurus is our award-winning alternative Linux distribution for the Sharp Zaurus family of PDA devices.

OpenZaurus 3.5.4 has been released on March, 18th, 2006. Because of me being busy with writing the thesis, Marcin ‘Hrw’ Juszkiewicz has taken over the release manager position - thanks, Marcin! OpenZaurus 3.5.4 is the 4th OpenEmbedded based OpenZaurus release and it looks like it’s the most stable OpenZaurus release ever. This is partly due to us having branched off a couple of months ago with a strict bugfixes-only commit policy and of course to public release candidate testing.

The most exciting OpenZaurus 3.5.4 features are:

  • OPIE 1.2.1,
  • GPE 2.7,
  • Cross and Native SDKs provided,
  • WPA support on all machines,
  • Linux Kernel 2.6.14-rc1 for C7×0,
  • nearly 3000 source packages which result in 12000 packages to install,
  • Various corrections to keymaps for all machines have been made,
  • Fixed keyboard repeat on c7×0 machines,
  • Suspend/resume issues on collie, poodle, tosa have been fixed,
  • Bluetooth improvements all over the place, especially in the base system,
  • some 802.11g CF cards probably work now, and
  • Enlightenment DR 17 images (experimental).

OpenZaurus 3.5.4 supports the following Sharp Zaurus models:

  • collie (SL-5000, SL-5500)
  • poodle (SL-5600, B500)
  • tosa (SL-6000)
  • c7×0 (C700, C750, C760, C860, SL-7500)

The forthcoming release, OpenZaurus 3.5.4.1, will contain support for the new Cxx00 series (including the newly released Sharp SL-C3200 ‘terrier’). We apologize for the delay, but kernel 2.6 for those new models didn’t pass our quality test when we released 3.5.4. OpenZaurus 3.5.4.1 is currently in beta stage and is scheduled to be released in May 2006.

Thanks to Richard Purdie and Dirk Opfer, we finally have kernel 2.6 support nearly completed for all models but the collie. And in contrast to some other groups, we plan for the future - to ease maintenance, we have put as much as possible into mainline. Since we now also have kexec support (booting a new linux kernel from userland commandline), kernel developing has never been so “easy”!

Matthias ‘CoreDump’ Hentges improved his AltBoot system by adding support for more models and more boot sources. It now features booting both direct filesystems and loop images from:

  • SD,
  • CF,
  • USB, and
  • NFS.

More good news on the hardware donation front - in the last 9 months, we got two poodles. One is in posession by Richard Purdie who is finishing kernel 2.6 bits, the other one is held back at the german customs but will hopefull be soon in posession by Matthias Hentges, who is taking care about some userland issues. Thanks to the respective donators!

Over the last weeks, we have been setting up a Wiki to make collaborative working on OpenZaurus documentation, FAQs and Howtos easier. It is now open and waits for your content here: http://openzaurus.berlios.de - feel free to add or correct your favourite bits of documentation.

If you like the software we are involved with, then why not donate as well? See the list of our developers. Note that the OpenZaurus project as a whole has no account to donate money to, however the core developers have individual accounts. Don’t be afraid to make frequently use of those :)

SlugOS and UnSlung

SlugOS is a set of three alternative Linux distributions (OpenSlug, DebianSlug, UcSlugC) for the LinkSys NSLU2 device created with OpenEmbedded and BitBake. It has been ported to similar devices as well. The NSLU2 homepage is at http://nslu2-linux.org.

The NSLU2-linux team recently has released Unslung 6.8 and OpenSlug 3.8. All in all, OE-built firmwares have been downloaded over 20000 (yes, that’s twentythousand) times! This marks a great success for the NSLU2 team - congratulations, guys!

Note that the SlugOS family now officially includes support for

  • linksys nslu2,
  • synology ds101,
  • iomega nas100d,
  • giantshoulder loft, and the
  • dlink dsmg600.

We are also happy to report that the nslu2 is now an official flavour of the debian arm arch, based on kernel patches from the OpenEmbedded metadata repository. New RTC and LEDs subsystems debuted in OpenEmbedded and have been since incorporated in 2.6.17.

The OE core team has again received some more slug donations by the NSLU2 team - many thanks for that!

Opie

Opie 1.2.1Opie is a graphical environment for PDAs, WebPads and other (embedded) devices. It contains a large number of applications in the categories PIM, Networking, Graphics, Settings, etc. Specific device supported has been integrated for all available Zaurus models, most IPAQs, the SIMpad, and the YopY.

Work on a new stable release has been continuing and version 1.2.2 is scheduled to be released in May 2006. The most important bug fixes have been made by Marcin ‘Hrw’ Juszkiewicz and Dmitriy Korovkin. Dmitriy has contributed a lot of Bluetooth patches and if all goes well, Opie 1.2.2 will be the first version with a working Bluetooth subsystem - thanks Dmitriy!

As reported in the last newsletter, we are now using TrueType fonts in the OpenZaurus Opie images. Below you can find a screenshot of the Opie text editor using the DejaVu Sans font set. This fontset contains a large number of glyphs. Using Opie to read and write in (some) foreign languages should work much better now. We also slightly improved hardware support, i.e. there’s now basic support for the HTC Universal and some of the newer iPAQ models. Since we no longer have iPAQ owners among the Opie developers, we need to rely on your patches - feel free to contribute :-)

Opie i18n support
Other than this, there is only little activity within the Opie team. I guess this is partly due to some of us being anxiously awaiting an open source version of Qtopia 4… some others are seriously considering Qt/X11 4.x or Gtk+ 2.x (perhaps via gtkmm) for future Opie (or whatever we call it then) versions.

GPE

GPE 2.7GPE is an X11-based graphical environment for PDAs, WebPads and other embedded devices.

The GPE team has been very busy in the last months. In January, we finally released GPE 2.7, the first release of a new — more strictly defined — type. Currently we maintain the roadmap and release information in the wiki page at GPE Roadmap.

It’s not intended to have a competely fixed roadmap there, but it should be oriented based on the current and future requirements. We spent many hours to complete this release and the result is a large number of application and library improvements and bugfixes, as well as improved documentation.

Among lots of exciting new features is the much better hardware support, i.e. for the Zaurus clamshell models: We now have autorotation, keyboard shortcuts, and touchscreen soft keys in place.

A partial rewrite of gpe-calender lead to significant enhancements which you can see in the following screenshot (maemo version):

GPE-Calendar
The most important things to do for the 2.8 release (scheduled for the end of the summer 2006) are:

  • Include a stable working audio player,
  • Device status and configuration management framework,
  • Online help support for all basic applications,
  • A backup tool,
  • Finish developer and user documentation,
  • Improve support for various different devices and simplify adaption to these,
  • Make synchronizing easier, and
  • Update the GPE website.

Feel free to contact us via the GPE mailing list at handhelds.org, if you have more questions or want to help us.

Ångström

Angstrom BootManagerÅngström is a new user- and developerfriendly OpenEmbedded based distribution for Linux 2.6-based embedded devices which is currently in alpha state.

Since the last newsletter, a lot of work went into planning the Ångström experience. Read the 2005.08 newsletter to get an idea about the Ångström goals and motives. The first Ångström bits just went into OpenEmbedded and we launched the website at http://www.angstrom-distribution.org.

The first bits for the forthcoming Ångström bootmanager and setup wizard based on the Enlightenment Foundation Libraries have been written as you can see in the screenshots to the right.

The new unified ARM EABI - which is a prerequisite for Ångström - is gaining ground. Major groups like Linux kernel mainline, Debian, Nokia etc. are starting to adopt it. The following list shows the device support that is planned for the first Ångström release:

  • c7×0 - pxa25x zaurus clamshells (SL-C700, SL-C750, SL-C760, SL-C860, SL-7500),
  • spitz - pxa27x zaurus clamshells with a microdrive (SL-C3000, SL-C3100, SL-C3200),
  • akita - pxa27x zaurus clamshells without a microdrive (SL-C1000),
  • tosa - the pxa25x zaurus portrait model (SL-6000),
  • h2200 - the iPAQ h2200 series,
  • ipaq-pxa270 - pxa27x based iPAQs (hx4700, hx2xxx),
  • simpad - the Siemens Simpad,
  • nokia770 - the Nokia 770, and the
  • x86 - for Notebooks and Laptops.

Angstrom Setup WizardThe work on Ångström will go hand in hand with a new bootstrap restructuration in OpenEmbedded that allows for more capability oriented dependencies (i.e. bluetooth, irda, wlan, ipv6) and more specific device tailoring.

A schedule is highly speculative at the moment, but it looks like we may have the first official release in September 2006 with public alpha and beta testing releases appearing over the next months.

Ångström is a user-centric community effort that tries to unite the work put into Familiar Linux, OpenZaurus, and OpenSIMpad. We sincerely hope that many people will work on this together! If you want to be a part of it, subscribe the angstrom-dev mailing list at handhelds.org and make yourself heard!

Epilogue

I hope you enjoyed reading the 8th edition of the OOO newsletter. Feel free to provide feedback or send in questions. Please don’t send support inquiries for any of the aforementioned projects to me personally - they will just be ignored since mailing lists exist for a reason. Questions of general interest will be answered in the next newsletter.

Thanks, Michael ‘Mickey’ Lauer.

7 Responses to “2006.05”

  1. Eranon 10 May 2006 at 09:08

    Great progress! keep up the good work, I’m waiting for 3.5.4.1 for C3000!

  2. Steveon 10 May 2006 at 20:09

    Great newsletter!

    Thanks for an excellent summary of what’s going on.

    Cheers,
    Steve

  3. Antikxon 11 May 2006 at 18:46

    Great job! Thanks!
    BTW, are these newsletters in PDF form anywhere?

  4. [g2]on 16 May 2006 at 01:08

    Super job on the news letter! I know it’s hard to take the time out to do a write up. Thank-you very much.

  5. mickeylon 18 May 2006 at 10:48

    Thanks for the nice words. PDF is a good suggestion. I will work on a better base format for the next newsletters, so we have proper PDF conversion. For now, I could convert html->PDF via Acrobat Writer if that’s wanted.

  6. speculatrixon 18 May 2006 at 20:12

    Have tried OZ/GPE on Tosa for first time and, so far, it seems very polished, makes Sharp’s distro seem very primitive. Great Work, guys. Am looking forward to joining the OZ party and donating time, equipment and perhaps even beer tokens!!!

  7. Jan Stöferon 01 Aug 2006 at 07:19

    Very comprehensive newsletter, especially the exciting bits about Angstroem! I think its a great idea to employ the enlightenment libraries.
    Why no support for the original ipaq models like 38xx, 39xx and 54xx anymore ?