N900 and the State of the Free Phone

By Christopher Allan Webber on Mon 23 November 2009

After a long period of waiting, Morgan and I both were able to pick up our Nokia N900 phones. We've both been waiting for these for a long time, and I'm happy to say that acquiring the device spoiled my weekend in the sense that I had plenty of things I had scheduled to do but found myself unable to do because there was too much to explore on the device. As for the phones themselves, I'll summarize briefly (then go into details later): usability wise the N900 phones are an absolute joy; free software wise the phones are not completely ideal but are mostly quite good and in that sense are probably your tentative best bet. (That last statement is quite loaded... I'll qualify it as I go.)

The primary competitors against the N900 in the free software space are the OpenMoko phones (Freerunner, and to a lesser extent the 1973), the android phones (G1 & Droid), and the Palm Pre.

Going over these briefly, the OpenMoko phones are by far the most free in every respect (I even have one, the 1973). I'd like to say that I thought the project was not dead, but considering production has ceased and the community seems largely exhausted, I am afraid it may be. There is some chance that production will start again, and maybe OpenMoko as a company will itself rebound and begin production of a new model based on sales of its WikiReader. But at the moment, I am not crossing my fingers. At worst, I do not think the time and resources were a bad investment: it demonstrated interest in a free software friendly phone and I suspect that the FreeSmartphone.org project was partly the inspiration for ofono (both are d-bus based). And though the hardware and software stacks both have issues, you can now use the one of these devices as a phone. But for the moment, the OpenMoko phones look to have a very uncertain future, and so (unfortunately) I would not put them in my "best bet" category.

Then there's the Android phones (or more specifically, the developer G1). The version you buy in a store is actually locked down to where you don't have root access, however it is possible to buy a G1 developer version (which is more expensive in the short term but cheaper when you factor in not being tied into an unnecessarily expensive plan), though you have to register as a developer first. Like the N900, the phone is not entirely ideal as in terms of providing a free software environment as it does come bundled with some proprietary pieces, but also like the N900 and Maemo, these devices and Android are still mostly free software at their foundation. There is a fundamental difference between Maemo and Android, however: aside from the Linux kernel, there is very little on the Android platform that may resemble what you have on your desktop... Google has developed a completely separate stack that is built on a Java VM for Android, and so in that sense Android is on its own little free software island: very little free software can be shared and come in, and very little free software can come out and be shared with the general free software desktop. Despite this, it is still a mostly free software platform, and before the N900 was publicly announced Morgan and I were on the verge of buying a couple of the developer versions.

Then there's the Palm Pre... I have heard this mentioned repeatedly as a free software option, but looking at it I don't see much worthwhile. As far as I can tell, the core of WebOS is itself proprietary, and while the system may be running the Linux kernel, it has at least as many blobs as the G1 and the N900 do, on top of having some sort of disturbing phone-home unfeature that sounds like a privacy nightmare. You also have to jailbreak the device to gain root access, and although Palm seems okay with this, jailbreaking as a requirement does not seem like a good first state considering other phones that don't require such an absurd step. Despite this, some freesmartphone.org hackers are considering the device as a possible option for an FSO port. However, that's the best this device has going for it free software wise to the best of my knowledge. Unless the FSO pulls through with a good port to the Pre, I don't consider it much of a free software option.

Now to the N900 and Maemo 5. Briefly on usability and aesthetics: it certainly holds up in this regard. I've felt that every aspect of the device felt really well thought through and comfortable from a user perspective, and Morgan seems to think the same. This is good in several senses: it means that the device is likely to have broad enough of appeal to be sustainable as in terms of sales (which matters to free software enthusiasts as it means the device and hopefully similarly free successors are likely to continue to be produced) and it also shows that a device with broad appeal based on primarily free desktop components is possible. Maemo 5 uses GTK, Clutter, Hildon, and QT for interface rendering, as well as D-Bus, PulseAudio, Telepathy, and many other components behind the scenes, all pieces that you probably are running if you have a free software desktop running on your machine. This means that existing free software applications are more likely possible to run natively or be ported to run without extrordinary difficulty. This isn't a perfect scenario: getting an application to look native on the device will likely require significant modifications for many programs, introducing a risk of forking. Even so, assuming both the N900 and the Android phones were to suddenly be discontinued, a GNU/Linux desktop user will have felt more benefits and less loss in terms of the free software surrounding the N900 than the Android phones.

As for distribution and packaging, the N900's default install (and current only option) is Debian-based, but not Debian itself. Unfortunately due to what seems to be a mix of hardware-specific optimization goals and a desire to separate the "flash-updatable" portion of the system from user-installed and updated sections of the system, all non-core packages are set to install in /opt/ instead of /usr/, which means that packages are pretty grossly incompatible with those directly from Debian. This is referred to as the "Opt Problem", and it is clear that many people are unhappy about it. Aside from the binary blobs, this is my biggest disappointment with the machine... I would really prefer to run vanilla Debian and have access to Debian's full repository of packages rather than having to wait for the ones I want to be ported over or port them over myself. At any rate, the machine has a slot for microsd cards, and I suspect it won't be long until it will be possible to boot vanilla Debian from there.

When the N900 phone was announced, there was an appeal directly to "software freedom lovers" which gave the impression that this phone would be yours, you are welcome and encouraged to hack it. I am glad to say that this is true. All I had to do was install rootsh and I had root access to the device... yes, real actual root access. And though I haven't done it, it also appears to be fairly easy to flash the machine. I should note that Morgan and I didn't purchase a special "developer" version of the phone either... the phones Morgan and I bought were purchased directly from the physical Nokia store here in Chicago. As I am typing this, I am simultaneously ssh'ed into the phone over my local wifi, installing packages via apt-get.

All that being said, unfortunately there are certainly a good number of components which are non-free. Nokia is upfront about what those components are but also gives some pretty stupid reasons for why. (Battery damage, really? As for safety, surely people could intentionally do much worse without needing access to the source code. That's silly.)

I really haven't talked much about using the device, mainly because my post here was concerned with freedom. All I will say is that I doubt you will be disappointed in using it... the machine feels very polished out of the box and it is clear that a lot of effort was put into making the user interface clear, intuitive, and beautiful. And it has succeeded in those regards marvelously. And as in terms of freedom, the phone is not perfect, but I am convinced for the moment that it is the best bet we have.

But hopefully Intel will show off some Moblin-enabled phone soon, and it will end up being more free software friendly than even the N900 is (which is still a huge leap forward for a mainstream phone). And at that point maybe you could swap installing Moblin on one and Maemo on the other. Because free software is awesome.

Edit: Pieter Colpaert points out that you only need to check the community updates to see that the OpenMoko community is not, in fact, exhausted. I hope that he is right. It is possible that my perspective is tainted because I have a much earlier model, the Neo 1973. Using that phone involved a lot of manual time trying to tweak things as everyone else had moved to the Freerunner (only a thousand or so of the 1973 were made, apparently), and between projects I didn't have time to figure out how to manually update alsa state files every time the freerunner community updated and broke mine. The community update post does show that there is life in the community. That said, I suspect there won't be much as in terms of new adoptions in the community until a new OpenMoko model is announced, so I fear that the OpenMoko community may be fighting brain drain. I could be wrong. I'd like to be. And I'd certainly love to hear of a new model being published. Maybe the success of these other partly free software friendly devices will raise interest in investing in a new OpenMoko device, which has always been fully free software oriented.