Resurrect a Nokia N900
Table of Contents
- The Goal
- Updating the Firmware
- Software Updates or Installation
- Necessary settings, Uninstalling stuff
- Gain root Privileges
- Enable Extras-testing?
- Power Kernel
- Problem: Secure Encrypted Connections
- Possible Solution 1: Extras-devel
- Stock Email Client: Modest
- Enable SSH Connections
- Via USB Cable only
- Via WLAN
- Create your own set of backgrounds
- Disable the "Nokia Hands" Boot Animation
... 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.
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 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
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:
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-
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.
Disable this repository after installing the desired software.
Just a better kernel. I'm not going to overclock.
$ root # apt-get install kernel-power-settings
The article then says shut down the device, and boot it up again. Confirm with
Problem: Secure Encrypted Connections-up-
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-
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-
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-
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
#!/bin/sh ifdown usb0 /etc/init.d/ssh stop
Store them as e.g.
/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 email@example.com'
You still have to execute the following on your phone before starting the ssh session:
$ root # sshstart
And stop it when finished:
apt cannot reach the network anymore while
up. Maybe this is fixable.
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 firstname.lastname@example.org
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
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
/etc/hildon-welcome.d/default.confand change this line:
filename=0.avi(have to use
Reboot and voilá. Hopefully this also speeds up the boot process.