Friday, February 22, 2008

Open2x Makefiles

I've adapted the GBA Makefiles from devkitARM to work with the Open2x toolchain. They are very clean, and I thought it'd be nice to have them around so that new people don't have to faff around writing their own. It may also help people release dynamic binaries when a public release of the Open2x firmware is made.

There are two Makefiles included. 'Makefile' builds a dynamically linked binary suitable only for use on Open2x and 'Makefile.gph' builds a statically linked binary, which can run on any firmware (but is really meant for GPH only).

To install, simply copy the 3 rules files to /opt/open2x/gcc-4.1.1-glibc-2.3.6 (or wherever you have installed the toolchain) and create a copy of the template directory to use as your project directory. There is a 'LIBS' variable in each Makefile (line 40) to which you need to add your -lwhatever statements to. If you want to compile C++ code with these Makefiles, you will also have to add a CXXFLAGS section, which will normally be the same as CFLAGS.

Download here

Wednesday, February 20, 2008

Firmware: Developer Release 3

I've finally made a third developer release of the Open2x firmware. This is a translational release between DR2 and a release candidate for a final public release. As far as I'm concerned, the filesystem is pretty complete and the kernel is in good shape.

New features in this release are plentiful. For one thing, the latest SVN version of GMenu2x is being used, which has a new 'Explorer' option so you can run applications without first creating a shortcut if you like. I've also added a new Open2x settings menu into GMenu2x to enable such things as USB host and USB networking on boot (as well as configure them). I will be uploading the code for this soon, but if you really need it now just contact me.

And that leads nicely onto some other new features thanks to working USB host support. USB mass storage and HID have been tested working thus far (you need to select the 'Mount EXT' icon in GMenu2x after inserting a mass storage device). Other USB drivers have been included but I know very little about them so they may not be complete and they certainly haven't been tested (Bluetooth should be in there, along with several USB ethernet devices).

Several applications have been integrated into the firmware, with more to come in future releases. Currently we have a file manager (Enexfi), video player (MP2X) and an E-book reader (Greader2x). Any suggestions are welcome (particularly for an image viewer), but they must be open source so we can recompile and distribute them with the firmware.

The base filesystem now has up to date libraries but I've had to compress them which adds a second or two onto the boot time of DR2 (still less than the GPH firmware and will be corrected with the next release).

Once the new features of this have been tested, I'll move on to DR4 (which I've already got plans for, but more on those closer to the time) which will be a release candidate of sorts in itself.

If you want a copy of this release, please contact me in #open2x on FreeNode (IRC).

In other news, I've found a way of clearing the fake bad blocks off the NAND without touching the bootloader so all those problems caused by 3.0 downgrades should soon be a thing of the past! I'm going to work on a dedicated NAND claner which may be integrated into the next Open2x firmware installer.

Sunday, February 10, 2008

Open2x newsletter #2

GMenu2x updates
Ryo has been hard at work with GMenu2x and I've updated our GMenu2x to the latests from SVN. This makes it a bit easier to use, and has a more traditional file browser alongside the 'links' mechanism for launching applications (so you can now just select an executable file from SD without creating a link).

Open2x settings
I have looked through the GMenu2x source code and have added a new panel for controlling Open2x settings such as USB networking on boot, IP, telnet on boot, FTP on boot and so on. This should make it a lot simpler to use USB networking since you will not longer need that file in the root of your SD card.

USB host
Finally! USB host has been fixed by Lithosphere in the kernel (it seems that usb-ohci.c was messed up during the 2.4.25->2.4.26 patching process). I've spent some time and managed to get USB storage and USB HID working nicely (there are other modules in the firmware for USB, but since I don't have any of these devices, they are untested currently).

DR3
DR3 will hopefully be coming very soon now. Expect this release to be close to the final public one and will of course have all the features mentioned above and in the previous newsletter. I'm just looking for the built-in applications now (we need an image viewer in particular), but this is not a blocker for a DR release (though we shall not be releasing a public Open2x firmware which is missing some important built-in applications).