title: N900 and the State of the Free Phone
date: 2009-11-23 01:36
tags: phone, foss, advocacy, n900
author: Christine Lemmer-Webber
slug: n900
---
After a long period of waiting, Morgan and I both were able to pick up
our [Nokia N900 phones](http://maemo.nokia.com/n900/). 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](http://lwn.net/Articles/341063/), and maybe OpenMoko as a company
will itself rebound and begin production of a new model based on sales
of its [WikiReader](http://thewikireader.com/). 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](http://freesmartphone.org) project was partly the
inspiration for [ofono](http://ofono.org/) (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](http://developer.android.com/guide/developing/device.html#dev-phone-1)
(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](http://en.wikipedia.org/wiki/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](http://kitenet.net/~joey/blog/entry/Palm_Pre_privacy/)
unfeature that sounds like a privacy nightmare. You also have to
[jailbreak the
device](http://www.webos-internals.org/wiki/Portal:Accessing_Linux) to
gain root access, and although [Palm seems okay with
this](http://www.pcmag.com/article2/0,2817,2349113,00.asp), 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](http://www.freesmartphone.org/index.php/Palm_Pre). 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](http://www.freedesktop.org/) components *is* possible. Maemo 5
uses [GTK](http://www.gtk.org/),
[Clutter](http://www.clutter-project.org/),
[Hildon](http://en.wikipedia.org/wiki/Hildon), and
[QT](http://qt.nokia.com/) for interface rendering, as well as
[D-Bus](http://www.freedesktop.org/wiki/Software/dbus),
[PulseAudio](http://pulseaudio.org/),
[Telepathy](http://telepathy.freedesktop.org/wiki/), 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](http://wiki.maemo.org/Opt_Problem)", and it is clear that [many
people are unhappy about
it](http://lists.maemo.org/pipermail/maemo-developers/2009-October/021289.html).
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"](http://flors.wordpress.com/2009/08/27/software-freedom-lovers-here-comes-maemo-5/)
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](http://maemo.org/downloads/product/OS2008/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](http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Architecture/Top_Level_Architecture)
but also gives some [pretty stupid
reasons](http://wiki.maemo.org/Open_development/Why_the_closed_packages)
for why. (Battery damage, really? As for safety, surely people could
[intentionally do much worse](http://xkcd.com/651/) 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](http://mobile.engadget.com/2009/09/22/intel-announces-moblin-2-1-for-phones/)
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](http://identi.ca/notice/15371942)
that you only need to check the [community
updates](http://wiki.openmoko.org/wiki/Community_Updates/2009-11-11) 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](http://en.wikipedia.org/wiki/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.
