dt.iki.fi

Resurrect a Nokia N900

... WIP ...

The legendary N900. I was surprised that a sufficient number is still being sold on various auctioning platforms, and they can be had cheaply - definitely under 100€, though mine was quite a bit cheaper, and in really good condition: no scratches, the sliding mechanism and keyboard work perfectly, the battery is still OK.

N900_xterm

Firstly, I was impressed at how small the device is: 11cm X 6cm X 1.85cm Thick as a brick though. Compare this to my current Oneplus 3 - not the largest device out there with a 5.5" screen: 15.3cm X 7.5cm X 0.74cm

I guess because of the keyboard I imagined it larger. In fact the keys are tiny, but their shape and responsiveness is very well designed: I can type fairly fast with two thumbs and almost no mistakes at all.

I will not deal with describing the user interface or step-by-step instructions - most Linux users will be familiar with four virtual desktops, maximised/unmaximised windows, an application switcher, an application menu etc.

The Goal-up-

The development of Maemo Leste seems to be gaining momentum and until it becomes fully usable I will dual-boot it with the original Maemo 5: Maemo Leste can be booted from the Micro SD card, Maemo 5 remains installed internally.

This article will deal with the original Maemo 5. I have another article about Maemo Leste on this device which is only a stub at this moment. But I urge you to take a good look at the Memo Leste subforum - development is active, people are interested.

There's a lot of community software, updates and tweaks available on maemo.org. These will have to be installed to make the operating system reasonably safe and usable. It might not be possible to browse the WWW safely, but in addition to phone capabilities I want to be able to use Email, Podcasts, sync Contacts etc.

Updating the Firmware-up-

That's the name of the wiki article I am starting with. It's better to start with a clean slate, although my phone's OS is on the very latest version already (21.2011.38-1). Possibly a factory reset would have been enough.

Hunting down the correct image isn't easy these days. In the end I settled on a fully flashable version of the latest update - the checksum should be this:

$ sha1sum RX-51_2009SE_21.2011.38-1_PR_COMBINED_MR0_ARM.bin 148aaae1a48b89ebb2f6d8556a44ce09fb05a2e7 RX-51_2009SE_21.2011.38-1_PR_COMBINED_MR0_ARM.bin

And the "Latest Vanilla version of the eMMC content" from either here or here (and I think the "Latest Maemo 5 Global release" from these links would have been just as good as the one I chose).

I took the lazy approach to flash both eMMC content and rootfs. It works, downloads the appropriate images, tells you what to do, and flashes them correctly. I flashed both "Vanilla" (eMMC) and "Combined" (rootfs).

Software Updates or Installation-up-

It is understood that my N900 is now on the latest official OS version - from 2011 - and will never ever receive an official software update anymore. I can ignore the [SSU][ssu] article. However, the community of Maemo users have been taking good care of themselves and a few community-driven projects exist.

At the very end of the firmware flashing article are two recommendations:

  • go to this page and click on this link from within the phone's browser, to update the software catalogs (apt repositories, really). While you're at it, disable a few defunct mirrors.

  • enable Community SSU (Seamless Software Update). Feeling frisky, I went straight to Thumb. That didn't work, had to go back to Updating the Firmware. I followed the process as described here. After reading this I decided to go with testing, not stable. Since this is a fresh install without any personal data I did not make any backups. Not everything worked exactly as outlined, but close enough. The final installation of the "Maemo 5 Community SSU Package" took really long, maybe 15 minutes. In the end it rebooted itself and produced a final notification that my operating system is now updated.

Necessary settings, Uninstalling stuff-up-

I removed all shortcuts to dead Nokia sites, Youtube, Google, everything. Both on the desktops and inside the browser (there's an option to select multiple bookmarks & delete them). This is an extremely outdated Mozilla-based browser - I should just uninstall it, but I have the bad feeling that I won't be able to avoid using it sometimes. I uninstalled the Flash plugin, disabled javascript completely, disallowed cookies and storing of passwords.

Next, open HAM (Hildon Application Manager) and uninstall cruft & bloatware. I always enjoy this. While there, I also installed AdblockPlus. And uninstalled. Broke the browser. And themes ;-)

Gain root Privileges-up-

Simply install the rootsh package which allows you to execute sudo gainroot in a terminal.

I was asked to enter a root password when I installed the OpenSSH server - not sure what would have happened here if I hadn't done that earlier. Probably a similar dialog would have popped up.

Tweaking-up-

Enable Extras-testing?-up-

It seems that there's interesting - and sufficiently stable - software that never made it out of the extras-testing repository. To enable it, first read this, then do this.

Disable this repository after installing the desired software.

Power Kernel-up-

Just a better kernel. I'm not going to overclock.

http://wiki.maemo.org/Kernel_Power#Installing_the_Stable_Kernel

$ root
# apt-get install kernel-power-settings

The article then says shut down the device, and boot it up again. Confirm with uname -r.

Problem: Secure Encrypted Connections-up-

The openssl package is outdated & the N900 does not default to secure connections AFAICS. There's talk about this on the forums and some fixes might exist. I must tackle this before I take this device out into the wild. Until then, I only use it at home, connecting to my LAN through WiFi, no SIM card, no E-mail accounts, nothing personal really. Also some net-facing apps get rejected from the sites they're requesting data from - for example gPodder.

This also makes ssh somewhat insecure (see below).

Possible Solution 1: Extras-devel-up-

Enable CSSU-devel by clicking on this link. Also read this and do the apt-pinning as described (it should work for CSSU-devel as well as extras-devel).

Upgrade the packages in this post.

After this a full reboot.

After that I also installed these 2 Qt programs. These are also in the CSSU-devel repositories, so installing via apt (like this) is prefered. But please also look at the subsequent post #18, possibly also #20.

Stock Email Client: Modest-up-

A fully encrypted connection is not possible - so-called TLS connections are actually STARTTLS and have to go over the ports your mail provider reserved for STARTTLS. The SSL option in Modest's preferences apparently does not work at all.

Enable SSH Connections-up-

Install openssh (from extras). Alternatively you can also install dropbear. It's in the previously-mentioned extras-devel, or you can follow these instructions.

Via USB Cable only-up-

https://talk.maemo.org/showthread.php?t=48992

This is not very convenient but sufficiently secure, because connections are only made over a USB cable.

A little convenience can be added with two miniscripts:

#!/bin/sh
ifup usb0
/etc/init.d/ssh start

and

#!/bin/sh
ifdown usb0
/etc/init.d/ssh stop

Store them as e.g. /usr/bin/startssh and /usr/bin/stopssh on your phone. On your desktop computer, an alias is enough:

alias n900='sudo ifconfig usb0 192.168.2.14 netmask 255.255.255.0 up; ssh root@192.168.2.15'

You still have to execute the following on your phone before starting the ssh session:

$ root
# sshstart

And stop it when finished:

# sshstop

Caveat-up-

apt cannot reach the network anymore while usb0 is up. Maybe this is fixable.

Via WLAN-up-

Usage.

What this means is that when your N900 is connected to your router via WLAN, it should also have an IP address. I ask my router for a Wireless Client List, and get Nokia-N900 - 192.168.0.12:

$ ssh user@192.168.0.12

If you haven't set up a user password yet this won't work; you can ssh in as root, but that's not recommended. So, one last time from the N900's terminal:

$ root
# passwd user

Customisations-up-

Themes, fonts, icons and customising software exists.

Create your own set of backgrounds-up-

So, the storage mounts like any old USB to my desktop computer. I create any amount (I choose four, for four virtual desktops) of background images and put them in the .images folder. I created very simple 8-bit PNG images - a dark grey solid background with the desktop number on it - for fast transitions. I copy & rename one of the existing .desktop files and edit it accordingly. Keep in mind that the phone sees the path as /home/user/MyDocs/ even though your computer might mount it as /media/Nokia N900 or some such.

That's all. Safely unmount the USB, unplug the cable - your new set of backgrounds should show up in Desktop Menu => Change Background.

Disable the "Nokia Hands" Boot Animation-up-

From the comfort of my desktop, I ssh in as root and

  • edit /etc/hildon-welcome.d/default.conf and change this line: filename=0.avi (have to use vi in busybox!)
  • cd /usr/share/hildon-welcome/media and touch 0.avi

Reboot and voilá. Hopefully this also speeds up the boot process.