My N900 experience compared to my FR experience (was: Re: [QtMoko] handset is (almost) unusable for voice calls with background noise)

Nicola Mfb nicola.mfb at
Thu Jul 8 13:23:28 CEST 2010

On Wed, Jul 7, 2010 at 10:12 PM, Michal Brzozowski <rusolis at> wrote:


> I'd like to hear how the N900 compares to the FR in hackability. Like
> replacing pieces of software, like keyboard, window manager, etc. I
> wasn't able to find much information about this. It seems there is
> only one distribution that fully works on the N900, which is quite
> worrying.

Hi Michal,

I have an n900 too since last November, here my (hoping agnostic) review:


Great, overclockable to 1Ghz (seems without problems), battery life of
several days *without* suspend, 3d accelerated graphics, 32 GB eMMC (+
slot for SD expansion), 256 MB flash, 256 MB ram, nice screen
resolution of 800x480, good TS (even with finger only), FM receiver
and *transmitter*, proximity sensor, IR transmitter, accelerometer,
5Mb zeiss rear camera, front camera, *superb* audio quality and "3.5G"
module, wifi, bt, video output, stereo speaker, etc.

End User Experience:

Not comparable to the freerunner one. Maemo has a lot of defects but
using it you feel immediately it has a common layout, defined api and
gui guidelines. This may appear as a limit, but from the End User
experience is very nice!
All apps (nokia, community or thirdy part) follow this principles, are
integrated with the DE and with the middleware quite nice.

The phone application is based on telepathy, so due to its
multiprotocol nature supports gsm voice calls, skype, voip, and so on.
The same for sms and chat integrated in the "conversation" app. There
are a lot of plugins (google, msn, etc.) to extend it.

The DE has a nice 4 pages home, you switch by dragging them, on every
page you may add shortcuts to applications, contacts (that shows the
picture and the IM online status, so it's easy and natural using a
skype/voip call instead of gsm one and save money!), web bookmarks and
widgets that make the user able to highly customize the desktop.
Finally there are pluggable "status" area and power button menu.
Task switching is performed with a very nice composite dashboard where
you see thumbnails of current running apps (that are updated in
All that is full finger friendly and there is a stylo inside the n900
when you need, (actually I use it only for precise web browsing
without the need of zooming in/out).
The virtual keyboard is full integrated with customized input methods
of gtk and qt (I do not know about other toolkits), so when you tap on
a text field you'll have a qwerty (not transparent) portrait keyboard
showing the current editing text.
If you open/close the HW keyboard the virtual one will hide/show.

As you may guess peoples does not feel the necessity to change the WM
or the VK because you loose the high number of pluggable widgets in
the home, the status area and the toolkit interaction with the

The package management system is apt, there is an integrated GUI that
will show only a specific section of the available apps, so the end
user will see only good sense applications with descriptions and icons
(of course the power user may use xterm or ssh to see the full
contents of the repositories). The status area will signal with a
blinking square where an update is available, so you may be uptodate
with a couple of finger taps.

The network manager works very well and handles wifi and 3g connections.

Just a concrete user experience (a my tipical day):

I have a voip public telephony (like skypein) account (eutelia) and
skype configured, a 5euro/month 3GB umts data option on my sim, wifi
networking at home and at work, google contacts synchronization and 3
email account configured. My network manager is configured to "always

The alarm wakes up me every morning (and works reliably), then I put
the device online, automagically it connects to my home wifi network,
signs up to skype and eutelia, check for emails, does the first sync
with google, updates the weather and the rss and the "personal ip
address" widgets on the desktop.

When going to work, as my home wifi is not more reachable the n900
automagically start a 3g connection. I may check the sent/received
statistics with another widgets that updates informations in real time
on the desktop to be sure I'm not reaching the 3G/month limit, and
anyway in the settings manager I may set to be advised every time x MB
of traffic was generated.

While using my car I start the mediaplayer and  the FM transmitter
(with another desktop widget), put the device near the car stereo and
listen for some music or use sygic voice assisted gps navigation where
going to unknown places.

When I arrive in the office it automagically stops it and connects to
work wifi and so on until I put it offline in the night.

Every x minutes it continues to update widgets, and signal incoming
email, IM messages, alarms, phone calls (of course ;)) and so on.

Every with this intensive usage my battery may survive to more then a
day, note that it never suspends, and this is a big feature as I can
always open an ssh connection.

If I need to transfer files at high rate I simply put the usb cable
and it shows a popup dialog asking you for "PC Suite mode" (usb
cdc-ether networking) or "Mass Storage" that exports the data
partition of the eMMC like a normal pen drive at usb 2.0 speed.

Browsing experience is very nice, real time zooming with side keys or
tap gestures to help finger usage, and has flash support.

Using it as a modem is very easy, I just plug the usb cable and the
network manager connects to the 3g network (there is also dun support,
but I do not have bt on my laptop).
You may use it as a router too and share the connection with free
applications or manually with nat iptables/ipforwarding over usb or
wifi in ad-hoc mode.

Developer experience:

Very easy, you have at least 3 ways:

* scratchbox, a chrooted debian like environment with x86 and arm
support, qemu previewer, etc. to build an app you select the "arm"
target, apt-get install your *-dev packages, and go with configure,
make, etc. with debian tools is trivial to create .deb packages. I was
able to cross compile, package, deploy and run asterisk in few minutes
and use it with the phone application without any problem.

* madde (I do not know it much)

* Nokia Qt SDK, with automatic cross compilation, deploy and run, on
dev box, qt simulator, and the real device over ssh. I configured
public keys, and due to my "always on" profile, I simply open
qt-creator, write some code, hit "control+r" and see the app running
on my n900 without doing other things!

API changes are *rare*, only very few low-level packages suffers after
a firmware upgrade.

Python lovers are welcome, and application load time is not critical.

Software and repositories:

The OS is debian derived, many peoples complains it's not full debian,
anyway a phone or tablet is different from a normal desktop linux box,
software has to be patched to provide a good user experience and
integrate with the system. For example here apps request internet
connection with the icd deamon and its libraries, and uses maemo api
to access contacts etc.
So the "forked" debian is not critical for me, on the freerunner the
99% of users uses patched or scratch-written software in many cases
adapted at least for FSO, debian users access the entire repository
but a lot of apps are not suitable for the tiny display, while OE
derived distro does not provide a big number of upstream packages.
Geek users that know how to patch or tweak an upstream application are
for sure able to run it over maemo ;)

About repositories you have nokia official ones, third part and
"extras" (community), the last is subdivided in:

* extras-devel
* extras-testing
* extras

Typically the developer submit sources to the autobuilder without the
need of contact maintainers, after that there is a QA and vote mech to
"promote" the package to testing and finally to extras (default

The user may choose to enable or not testing/devel repository to stay
with unstable/testing or stable packages.

Available packages are good quality, and some of them enhances maemo a
lot, for example FMMS.

In addition there is the "garage" where you'll find a lot of more
experimental apps (and above all some debian upstream repackaged for


If you stay with extras only, and enable devel/testing only when
needed (and know what you are doing), the system is quite stable, no
calls/sms losed, the maximum uptime for me was ~30 days, I had to
reboot becouse trying to take a shot with the camera resulted in
"Operation error". With the older firmware I had to reboot at least 1
time for week, but I installed a lot of experimental application
without much care, so I'm not sure if the actual stability of my n900
is due to PR 1.2 or my care ;)

Hacking experience:

Maemo has some userland closed sources components (of course kernel is
free) that prevents you to run a 100% free linux distro, I was able to
run debian on the external SD card without adding those components but
you'll be not able to use the phone or charge the battery.

Things is going to be different with meego, here only BME (battery
management) and SGX (3d acceleration libraries) are closed, and rumors
seems to confirm that at least BME may be opened. All the other is
openend (wip), for example the closed modem control will be integrated
in ofono, the pulse audio routing path is now free, etc.

So I'm quite sure that in very few time peoples may port that to FSO,
the only critical step may be the BME that has to be replaced in some
way (if it will not be freed).

IMO the n900 is a good hackable device and a perfect candidate for a
new reference platform for FSO (I remember an old thread to cofund and
donate an n900 to Mickey).
And would be very nice to write an FSO plugin for the qt-mobility
framework in order to run thousand of maemo/meego applications on
debian or SHR!

If your hacking needs is compatible with maemo meego/harmattan and
full meego, you may prefer do not install a new linux distro, but
install "easydebian" with a couple of finger tap, and run a chrooted
environment in Xephyr with your preferred WM, I was able to launch
openoffice in that way on my n900. Of course you may always use
debootstrap and tweak all yourself.
Actually I have maemo on the internal flash, meego and  debian +
neophysis specific apps on an external sd, I can decide which of them
run with bootmenu that is activated taking the hw keyboard out when
powering up the device (but uses always the same flash in kernel), and
I'm waiting for git pushes of the modem control part and audio routing
to see if neophysis may run nice on the n900. When I want to try a new
kernel I use the flasher util that has a nice one shot kernel load
The bootloader is closed, but meego devs are working to fix kexec
problems, when done the bootmenu will be able run every linux distro
with the preferred kernel without the need of an usb cable ;)

It seems all good, but of course there are some bad things:

* Nokia seems to support its devices only for some months with a
couple of firmwares upgrades and then abadone them

* Nokia maemo project management was quite closed, community is not
much involved in inside decisions (but this seems be happened in the
openmoko age too), it seems meego is a different story with the
influence of Intel and the Linux Foundation that have a different
story, but before trusting them they have to demonstate their openess
with facts!

* software is not always complete, and at least the maemo platform
laks for high press community needs (free gps navigation with ovi maps
and flash 10), that should be addressed with meego or meego/harmattan

* it's not sure if meego/harmattan will be available for the n900

* it's not sure if meego will be official available for the n900, for
sure it's the arm reference platform

* feelings is much better with freerunner, OE, debian, gentoo, FSO,
etc. and the hard community effort against the multinational payed
employeers ;)

* the above mentioned organizations are really open to external contributions!

Hoping this will help!



More information about the community mailing list