Freerunner software structure

For around 2 weeks now, I have not been using my Freerunner and its not because I have started to like my older phone over it, but because I tried zhone+FSO+Debian and now I literally can’t go to Om2008.9. FSO is not complete yet, which is why I really don’t want to use it right now.
Anyways that gives me some time to jot down the Freerunner’s s/w structure.

This para is dedicated to the way I moved with different s/w on my phone. You can skip this para completely.
Freerunner ships with Om2007.2 which, although stable, has a completely unusable UI. It was so unusable that I didn’t hold onto it for long. IIRC, it was 1.5 days that I had switched to Qtopia. Even qtopia didn’t impress me much and then along came ASU (Om2008.8) which held onto my phone the longest. I gave FSO a try at each of their milestone but it didn’t look nice enough to go along. But this time they got enlightenment in. That is when I was impressed enough to not to go back to ASU. This time I tried Debian and installed xfce which I couldn’t get to work and was hit upon by this post which explained how to get enlightenment on debian. That worked like a charm. So, come to think of it, I got a setup where I had the whole repo of Debian (which is powered by FSO) and then enlightenment was also in. Of course the things missing in FSO are still missing, I can’t really start using it. But to me the setup looks really promising.

Hmm…so there are lots of terminologies in the previous paragraph (in case you read it). Lets see what it all means.
To start with, Freerunner essentially runs on mainstream linux kernel and the filesystem is also similar to any regular linux desktop installation. Its not loaded with infinite modules as it really doesn’t have as much resource as usual desktops have.
Then there are device nodes which applications use to access things like modem or gsm antenna. And there is really no defined way of accessing these in a shared way. Or should I say there are multiple ways of doing it and thats where the diversity is.
Lets say that there are a bunch of of softwares which assist in this shared access and this bunch forms a software stack.
Then there is the usual linux window-manager/X concept which is responsible of managing multiple windows (showing title bar, z-ordering, alt+tabing, etc).
These 2 basically form the system and rest all is done by applications. All this, as a complete package make up a distribution.

Now, lets look at some distributions and how they manage these stuff.

Om2007.2: I didn’t really use it for long and hence I don’t know for sure. But it had got different daemons (like gpsd, gsmd, etc) that made up the stack. It had its own desktop app which showed basic button for launching other app, currently running apps, and dialer. It was largely based on X I don’t think it really had a window manager.
Qtopia: This distribution is managed by Qt and comes for lots of systems. Qtopia has a monolithic process (qpe) which handles the stack stuff. Qtopia doesn’t have a X server, it works directly on the framebuffer. Only QT based apps are allowed. The runtime takes care of handling the Qtopia canvas.
ASU (Om2008.8): This is the second distribution from Openmoko itself. Its stack was mainly based on Qtopia and hence had qpe handling all the stuff. What was interesting here was that OM had still gone ahead and used X server. They had a runtime library which exported calls similar to those needed by QT apps. But this library used X server under the hood. Hence, one could have gtk based apps as well. In fact any other app which worked based on X server for UI could be run and QT based app were additional profit. IT also had a window manager — enlightenment and an app illume which showed the current apps. There is actually lots with illume which was never given with OM but was essentially a part of the distribution. Search for ‘Raster keyboard’ for a heated discussion for the keyboard app.
BTW, with updates it has been be renamed to Om2008.9 and Om2008.11 is expected soon.
FSO: The big deal about it is the framework (software stack). The stack is based upon DBus and exports everything at hardware level as service to the apps. All the hardware mangement is done by the framework. For UI, X and illume/enlightenment take care of everything. There is a an app names Zhone (Zen phone) which allows dialling, messaging, contact, etc)
Debian: By default fso makes up the software stack and comes with matchbox installed as window manager. But enlightenment and illume can be easily configured. This makes it as good as FSO but there is a very big additional advantage and that is the availability of all the apps that can be installed on a desktop Debian installation.

This essentially wraps the current distribution on Freerunner. Hope it gives you a fair idea of whats going on in the Freerunner software world. I have left out the links in this post specifically because interested people should rather look at wiki.openmoko.org.

Powered by ScribeFire.

This entry was posted in linux, mobile, open-source, openmoko, tech. Bookmark the permalink.

2 Responses to Freerunner software structure

  1. Roopesh says:

    Freerunner sucks, at least in performing the basic and the most required functionality expected of a phone.

  2. whoever said i was looking for iPhone 3GS here!!! guess you missed the whole point 😛 (multi OS support for starters btw)

Leave a Reply

Your email address will not be published. Required fields are marked *