From Openmoko

Jump to: navigation, search


I'm Nicola, born on 1973 in Paduli a little country of southern Italy.

I'm graduated in Informatic science, and since 1997 I'm working as system manager for the University Federico II of Naples. When I arrived I found about 40 servers, equipped with some proprietary Unix (and not Unix) OS, time after time I migrated all them to Linux, today about 400 servers are free, and 99% of them have community distro.

My mission is Linux everywhere, I use it on all my desktop, servers, wireless AP, hp ipaq, and finally on my phone too. While not struggling over all my devices I play accordion, flute and piano in an ethnic popular music band, or take photos around the world.

On this page you may see what I'm thinking about the freerunner and what I'm doing for it!.




I do not know it, when my freerunner arrived on september 2008 it was already deprecated so I flashed ASU after a couple of minutes. I did an error, I lost the knowledge of some important features and ideas I was able to see only some month ago with Hackable:1, and that are inspiring me now. Yes! it's possible, legacy/old software may be better than unorganized new ideas.


Qtopia was the first distro I installed on the SD, it was FAST and complete, but cannot run X11 applications. At the moment QX let you run X11 apps on qtopia, so there is space for great enhancement on distro based on it. Personally I think that the future is FSO, now it's a real company, I wish all the good to them ;)


A mix between E, QT and GTK, the idea was to provide a subset of the mature qtopia stack on the X server together with all other X11 apps. So I swapped and put Qtopia on the flash and ASU on the SD card to have more space to play with it.


"All development should go to FSO, ASU is deprecated" was the rule, and as I was excited to write my apps for my phone with simple dbus calls so I deleted Qtopia, put ASU on the flash and FSO on the SD and resumed my OE knowledge. There is not much to say on FSO images, it's not a really distro, but a way to carry and use the FSO frameworkd. Actually FSO images are dead, FSO guys will not care of them and will focus only on the framework, SHR is the natural candidate for carrying new FSO.


In the mean while, SHR was born to recycle the 2007.12 code porting it to FSO, it was growing and now it's quite all based on E* software. It's a very promising distro, but a lot of users are annoyed because it frequently breaks. The release of a stable milestone was announced several months ago, but we are still waiting, developers sometime freeze the unstable branch to a testing snapshot tree calling user to test and report feedbacks, and after a bit they delete it and freezes again. This happened a lot of time while peoples are asking for a stable distro. SHR applications are based on C and python, so you actually have C/python apps, interacting with a C ophonekitd, interacting with a python frameworkd. A problem is that flash/sd is slow, and phone functionalities are splitted between several apps, the load time of each of them is high, the result is a very slow device. Please to not blame me! I respect the effort of SHR developers, but think that some decision must be revisited above all when we may see in the past better solutions!

FSO is going to vala, and SHR apps too, let's expect a faster distro in the future.


OM2009 was initially the new offical OM distro, as OM stopped developing actually it's based on volounter work. It has two strong points over SHR, the first is that it uses more legacy software to try effectively a stabilization for release, an example is the kernel as the last have serious problems on wifi, the second is that the main application, Paroli, is a semi monolitic python app, so the python load time is limited only on startup, and the big part of functionality are ready to use because they are in ram or is loaded easyly with plugins. It seems om2009 effort was delayed, as some volounters guy are now focused on the new qi-hardware company.


My preferred distro on laptop and servers, but it's too slow on the device, the lack of precompiled binaries and freerunner customization make it usable only after some weeks of emerging/twicking.


A very interesting distro, it uses hardware directly, stable underliyng system (debian lenny), and revisited and improved 2007.12 code. No python in core parts, so very it's fast, it has some important features and ideas that I think it'absourd we losed in ASU/SHR/OM2009, for example the possibility to launch a stay on top window by holding the aux menu to kill applications and switch fullscreen windows! Try actually to close a fullscreen application on distro that use aux to lock and power to suspend! Luckily SHR has restored the use of power button to launch a dialog that make you kill applications or poweroff the system. The only problem of hackable is that it uses hardware and not FSO, so many applications FSO based does not work, developers has to drive the hardware without a central mediator. For example if two applications power on the BT at startup and power off it at exit, you cannot close the first and use the second, while the FSO resource system handles that for you. And the last, it uses an old 2.6.24 kernel, but actually it seems more stable than recents!

Debian SID

My actually most used distro, has a not so recent kernel and fso, tons of precompiled ready to use software, the best distro to try and test software and to develop new ones! One only problem, it's not targeted for freerunner (of course) so you have to customize it, and it upgrades slowly, but this may be not a defect :)


Not tested yet

OM New Generation

Well, what's that? simply a brain storming of ideas.

A stable device?

After one year I may say my freerunner is *not* a stable platform, I encountered all the problem you may read on the list archives:

  • SD partition corruption
  • WSOD
  • NSOD
  • no suspend/resume
  • interferences with 8GB micro sdhc with glamo errors on GSM
  • Bt does not works after resume on 2.6.28
  • wifi really unstable on 2.6.29
  • a lot of kernel ops, device freezing

So the real problem is that the kernel is not rock solid. Some chip specification are under NDA so only few people may contribute, after OM suspended the kernel development we cannot say if it will be really improved in the future.

I really hope that the volounters maintaining the kernel will grow in number and find the time to fix it, only with a rock solid kernel we may think to use the device seriously.

A fast device?

The freerunner is slow:

  • python abused everywhere
  • xglamo is accelerated but cpu has to busy wait after requesting accelerated ops
  • software functionality are splitted in too many apps, so you have to sum their load startup time

Software status

Some basic tasks are impossible to do with graphical UI, for example connect to WPA enterprise networks, transfer obex file with bluetooth. Some phone functionalities are missing, see for example MMS. Peoples are not working on them for a simple reason, they are working on "basic" software, as it's not complete.

What I'm doing

As I think the better way to solve problems is to try fix them yourself instead of boring peoples, in the spare time I'm coding some apps I feel missing on the freerunner. The problem is that I have few time, documentation in the free software is poor, and above all I'm an old school C/C++ coder with some QT extension, and this toolkit seems to be a forbidden topic in the freerunner world, the consequence is that there are few people that may collaborate with me, the above of them prefers to spend time on qtmoko.


Read the my freerunner section.

My Freerunner

I have the shipped 512MB SD card with OM2009 and a GSM incompatible 8GB sd card for development/testing. On there I have a 512MB partition with SHR-unstable, a 1.5GB with Hackable:1 and a 6GB partition with debian sid. On flash I have a OM2008 "legacy" installation.

The Bootloader is QI.

As of my work I cannot miss calls, so I do *not* use the freerunner as a phone, but as a PDA or some kind of hacker toy. IMHO every distro lacks important features I need, for that reason I'm customizing them and above all my debian/sid in a deep way, actually I use debian for developing, when milestones are reached i crosscompile and try my applications on the other distro:


I like very much the look & feel of E, but it lacks two important things, EWMH and a sys trayer. For that reason I use matchbox window manager and it's matchbox-panel.

To make it look fine I use the moko theme from hackable:1.


As I do not like matchbox-desktop and need a simple way to launch applications or scripts without tampering with .desktop files I use nuizer, a self-made application launcher.


Nud is another selfmade application that mimes the "neod" daemon, it listen for F2 press showing matchbox keyboard and for F6 press showing a menu that let me rotate the screen, switch current window fullscreen mode, close and kill apps. Yes F2 and F6, they are simulated at input level layer with nide and nvkmd holding down for 2 secs AUX or Power button so I'm free to use them sort pressed as I need in other applications. See Better_handling_of_AUX/Power_buttons discussion.


NWA is a wifi manager prototype application I wrote to use wpa_supplicant with a GUI in the right way e.g. as a supplicant, it's auto launched at X startup and show me silent sleep showing a sys tray icon, when wpa_supplicant connects it spawns dhcp client, and alert me with a sound.


NIDE/NIDED is another self-made application, it's a network keyboard/mouse emulator, I use it mainly to drive my MythTV Box, it's a remoko replacement working with every network but can drive only linux devices.


That's a test application, it read from /dev/input/0 and /dev/input/4 for aux/power button events, handle their press/release timings and simulate a 6 button virtual keyboard sending events to NIDE. The six virtual button are:

  • F1 short aux press
  • F2 long aux press
  • F3 short aux+power press
  • F4 long aux+power press
  • F5 short power press
  • F6 long power press

I'm using it to give friends a test environment to discuss about Better handling of AUX/Power buttons.


A gui to use Bluetooth on my freerunner, it's a pairing agent, a bnep connection manager and transfer/receives file with obex. I started it becouse in my work flat I did not have a Wifi connection to internet and wanted to share my laptop network with BT. Now I have an AP so I'm focusing on NWA :)


fsoraw (FSO Resource Allocation Wrapper) is a wrapper utility to launch applications preallocating system resources from FSO.

Under normal circumstances Freerunner has resources (bt, wifi, etc.) disabled to save power, FSO has a set of DBUS api to allocate/release resources dinamically.

For applications that does not honour FSO you have to manually force resource policy, launch the application, wait for the job done, reset the resource policy.

There are some gui applications that let the user switch resource policy but this need the user switches menus, clicks and so on, and may be boring and slow, and sometime dangerous (suppose to be in car and want to switch autodimming/suspending off, launch navigation software, reset autodimming/suspending).

Another case may be you want to launch a wifi manager, you have to enable the wifi resource, launch your apps, and when finished disable the wifi resource.

Here comes fsoraw in help, instead of launching the application itself use fsoraw listing the resources you need, for example:

fsoraw -r Display,CPU tangogps


fsoraw -r WiFi WifiGui

it will allocate the WiFi resource, launch the WiFiGui applications, wait for it to end, and disable WiFi.

The best is to change *.desktop files for have this automagically launched by your preferred windows manager.

P.s. fsoraw is fast, application load time is pratically unaltered.


An experimental asterisk manager interface GUI, that used with a patched version of Asterisk let me use the freerunner as voip softphone with my sip carrier.

Personal tools