Thursday, July 19, 2007

Firmware: Developer Release 1 - out for limited testing!

Time for a long over due post to this news page.

We seem to keep all our activity confined to the wiki, mailing list and SVN these days ;).

As some people (those who have got it) will be aware, the first semi-public release of the Open2x firmware has been made (Open2x-DR1) after a long period of ad-hoc builds, alphas and general hackery/development. High points are a newer 2.4 kernel, SDHC support, better USB gadget (and host) support, faster load times, recent libraries in the filesystem and a default application toolset that tries to draw the best examples out from the GP2X community.

This is a developer-only release only given to a select group of people for testing purposes (the team and the wider testers we have in #Open2x on FreeNode IRC mainly). This is so that applications can be prepared to take advantage of the benefits Open2x has to offer. Things are still a little rough and a serial port and jTAG are very desirable bits of kit for any people thinking of testing. We are aiming to get new developers releases out every few weeks (with wider audiences each time) then when things settle we will go with wider release candidates and version 1.

Currently it's a little bare on the applications front and just boots to GMenu2X. However, it is fully usable, with nearly all applications running without recompilation or modification. For those few that don't there is a compatibility layer that wraps the existing GPH firmware (with some caveats) which should get most of the others running. Compatibility is something we are still actively working on.

This release also ships with a complete set of up to date libraries in the base system (including the new Open2x SDL 1.2.11 work and various other platform optimised libraries). Dynamic linking is now a real possibility, reducing binary size (from 1MB to 15K in simple applications) and speeding up loading times!

We install the firmware onto the 'user' area of the NAND chip leaving the existing GPH filesystem in place (but not accessible). This does mean that users cannot access the 'user' area of the NAND to store any user data and anything stored on the NAND is deleted as part of the Open2x firmware install. However, SD capacity is very cheap and plentiful anyway so this is a compromise we are willing to make.

For those that are interested the default filesystem and libraries are built using our GCC4 tool chain and the kernel and modules are built using the 3.4.4 kernel tool chain (yes, we recently solved most of the the GCC 3.4> module issues). Everything is glued together with gLibC 2.3.6 and BinUtils 2.16 so it's all fairly recent with the exception of the 2.4.26 Linux kernel (yes, we upgraded from 2.4.25 > 26 for a number of reasons, a lot of drivers have also undergone substantial work).

As previously stated, this is only a developer release for now but developers may contact DJWillis or Orkie for a copy of the installer (which is relatively safe and simple to run). Remember, you can't go back to the GPH firmware without reflashing your unit with the GPH firmware and we ask that any testers are really prepared to help us work on getting this suitable for release, tire kickers need not apply.

All that is left to do on the firmware filesystem itself is fix the few bugs in the menu, compatibility mode and add new built in applications (as well as a few scripts like accessing the SD card via USB and Ethernet stuff). There are also a few outstanding TODO's on the kernel and of course addressing any bugs/patches/improvements that come in as part of the testing.

So basically, this post is just to point out that things bode well for the future - there is still a lot of work to be done but with any luck you'll be considering using Open2x firmware on your systems in the not so distant future!

In the spirit of strange and unusual YouTube videos Lithosphere kindly did a video of the install process.



Regards,

Orkie and DJWillis (the firmware team)