I’ve been working recently on compiling ArchLinux for MIPS, more specifically mips32r2. It’s going pretty well & I’m at the point of having enough packages to boot to a KDE desktop both in QEMU and on real hardware. My current focus is on automating the building of new and updated packages, which is progressing steadily. But in the meantime I thought I’d show this and make it available to see who might be interested.

QEMU running KDE under ArchLinux MIPS Novo7 Paladin Tablet running ArchLinux MIPS

For the moment this lives on my home desktop but I’ll probably move it somewhere more suitable soon. The repository you’ll need:

Server = http://home.paulburton.eu/archlinux/$repo/os/$arch

A new project has been added to the sidebar after consuming a number of days of my time. fitbitd lets you synchronise a FitBit tracker using a Linux machine, because I grew tired of firing up a windows virtual machine to do so. It also features an indicator to show trackers that have been seen recently. It’s pretty early days, but is functional enough to be useful now.

However, the indicator currently looks like this:


So… if anyone arty feels like drawing some icons (disconnected, idle, synchronising) to replace the monstrous FB letters I’d be very grateful! It’d also be nice to get it packaged for ubuntu - it’s been a long time since I looked at debian packaging and frankly it’s terrifying!

So, just to be clear and in case you didn’t notice: anyone looking for android (ICS) builds for the ASUS Eee Pad Transformer TF101 should head over to the new project page which you can also see linked to on the right of the homepage. That will be kept up to date with the latest builds. It also contains a list of known issues and instructions for retrieving the source.

I got bored of revision and decided to do something more interesting, which led to running Android 4.0.3 (Ice Cream Sandwich MR1) on my EEE Pad Transformer. It needs a lot of work still - basically the touchscreen & keyboard work and very little else, and the touchscreen is a bit of a bodge. It is all shiny and smooth though :) Progress may have to be slow until exams finish…

ICS on the TF101 ICS on the TF101

Apologies for the terrible quality photos, I’d make a video but I’m lazy. Anyone foolishbrave enough to try this out can do so by flashing the images from this archive using nvflash (Update: see the project page). If you don’t know how to do that, you probably shouldn’t attempt to run this at this stage anyway. As ever, if you brick your device attempting to use this you’re on your own.

Building this has taught me a couple of things over the past couple of days:

  • Google seem to have put out the ICS source without actually building it, there are a few minor build breakages in the tree…
  • Closed source binary blobs are awful, though I knew that already… This certainly reinforced it…
  • A core i5 with 8GB of RAM isn’t enough, need more speed!

I’ll upload newer builds as things start working, unless ASUS or somebody else beats me to it.

UPDATE: I spent another couple of hours on it and got WiFi up :)

Here’s the new image. (Update: see the project page)

ICS on the TF101, with WiFi

Well, I built gingerbread. It boots. It flashes up the lock screen, which looks quite nice. It swaps like crazy. It dies pretty quickly. Could it be made to not die? Yes, the timeouts Android uses to decide when to kill processes could be increased, but that doesn’t solve the problem of it being so slow to begin with. Could it be made not so slow to begin with? Sure, whack in some more RAM. Can I do that? No. Am I going to ship off my Axim and pay lots of cash to have someone else do that? No. Is there any alternative? Perhaps cut out half of the Android frameworks/daemons, and be left with something kinda-sorta-almost-Android that doesn’t run half of Android’s apps. Will I do that? No.

Sorry guys, Android is growing with each release and it’s simply gotten too big to fit in the tiny little memory of the Axim. I officially give in.

If anyone cares, the gingerbread code is on gitorious under the axdroid project, you should just need to checkout the axdroid repo and run make. I didn’t get to the point of integrating building the wifi module etc for gingerbread. The older froyo code is still around under the axdroid-old project.

To clarify guys, I have some time off work coming up over new year period and am planning to do some work on Axdroid once the Gingerbread code is released (which will hopefully coincide with that quite nicely!).

Currently, the comments system on this blog has 1156 pending comments, the vast majority of which are spam. There’s no way I’m going to spend hours sorting through all of them, so I’m afraid I’ll probably just delete them all and then look into some sort of filter. If you posted a legitimate comment that I haven’t gotten around to approving then I apologise…

For various reasons I just moved axdroid from github to gitorious. I also made some changes to the organisation of various config files, and changes like building the android platform code with the new toolchain, and linking busybox with bionic rather than needing eglibc (ie. the axdroid toolchain now targets baremetal, and the only libc around is bionic). If you build axdroid yourself, you can either update the git repo remotes to point to the right place and do an update (then clean is probably wise), or just start again with:

git clone git://gitorious.org/axdroid/axdroid.git
cd axdroid

As I write this the kernel source is still uploading, and I’m going to sleep. I’ll make sure it’s all fine tomorrow.

Get it here :)

Little in terms of major user visible changes again I’m afraid. The biggest are probably that the lock screen is disabled once more (and in a much better way than I did before - I need to think of how I’ll distribute this code though, I have to choose between a custom frameworks/base repo or a patch file…), and any key should wake up the device rather than just menu. I’ve spent a while changing things in the build system, and mostly want to make sure I didn’t break anything (that wasn’t broken before :p). Axdroid now uses it’s own toolchain rather than the prebuilt codesourcery ARM toolchain. The axdroid one is newer (GCC 4.5.1 & binutils 2.20) and targets the xscale specifically, and seems to have built a smaller kernel binary than the codesourcery toolchain did. CompCache is updated to it’s latest code. I have ported the Axim code over to Linux 2.6.35, but it seems to have some bug involving a spinlock, so until I get chance to look into that Axdroid is still on 2.6.32. The init scripts saw some changes, and some stuff was moved around from the initrd to the root filesystem. Anyway, moan if I broke something.

Also, I just registered the IRC channel #axdroid on freenode. Let’s see if anyone uses it :)

Finally, for anyone who builds Axdroid themselves, sorry about all the changes to the build system! You might want to just grab a fresh copy and start from a clean slate. At the very least, you’ll want to ./build.sh -c and mv src/kernel src/kernel-2.6.32. If you happened to build a toolchain whilst I’ve been messing with it over the past few days it’s probably worth doing rm -r toolchain too. I don’t have any more major changes to the build system planned, and switching to Linux 2.6.35 should happen seamlessly with a ./build.sh -u when I get it working (if you move src/linux to src/linux-2.6.32 as I said). Also, whilst we’re stuck on 2.6.32 you’ll need to apply this patch to compcache to get it to build. Once 2.6.35 works it won’t be necessary anymore (but won’t hurt either).

Oh my…

Axdroid 2010-08-31 release 2, get it whilst it’s hot.
Axdroid 2010-08-31, get it whilst it’s hot.
Axdroid 2010-08-30 release 2, get it whilst it’s hot.
Axdroid 2010-08-30, get it whilst it’s hot.

So, there’s nothing major in here, but I figured I’d update everyone with the current build.

Changes I can remember:

  • Android should actually fit on the screen properly for QVGA devices.
  • Back/menu keys swapped, so that back is on the end. It just seems right.
  • The menu key will now actually let you use the unlock screen. I’m still unsure about it, it seems pointless for Axims since they have a lock switch. Anyway, thanks to Danilo Riso for figuring this one out.
  • QVGA setup on X51 hopefully fixed, thanks Max for the updated pixclock value.
  • Tweaked some kernel config options etc, perhaps (hopefully) slightly faster.
  • EDIT: hopefully fixed the touchscreen for the X50, and hopefully didn’t break any X51s. If you happened to download the first release, please try out the second. It would be great if people would run this tool and let me know what it outputs and which device they ran it on.

About my previous post: yes, it refers to WiFi, which I have been working on for the past couple of days. I’ve figured out how to power WiFI on/off, and added some Axim-specific code to the code from the acx100 driver project. The driver is able to load firmware and communicate with the acx100 successfully. My work on it is in this build, and you can turn WiFi on/off in the settings (usually, it’s kinda flaky). However, it scans but never finds any networks. I’ll need to find more time to look into it. Hopefully soon, we’ll have WiFi working and Axdroid might even become useful :)