Installing Maemo5 PR1.2 on the N900

Maemo5 PR1.2 for the N900 was released a couple of weeks back. You can see the features and bug list here – the most interesting for me being Qt 4.6.2 is now shipped as part of Maemo and Skype supports video calls and multiuser chat.

There are many tutorials on how to install but they drop terms like NAND, eMMC, FIASCO which made little or no sense to me. What better way to make the web a better place ™ than by writing yet another tutorial :-) So, here’s how you go about manually installing PR 1.2.

0. I like to understand what I am doing, so here’s what I found :-) The N900 has a 256 MB NAND Flash which contains the rootfs (of type ubifs). The boot loader and kernel goes into this NAND flash. The N900 also has a 32GB built-in eMMC. It contains a 2GB /home partition (ext3), 27GB /home/user/MyDocs (vfat) and swap. Installed apps go into /home/opt and thus the user is limited to 2GB of apps. /home/user/MyDocs is what you see when you usb mount your N900 on your PC. The N900 also has a external micro SDHC slot (remove the cover to see). This ‘external’ card remains unaffected by what we are about to do (it’s at /media/mmc1).

What we are going to do now is to reflash the NAND flash with the new PR 1.2 OS. We will then flash the eMMC. It’s optional to flash the eMMC. It’s only required when some new program that gets installed in the NAND misbehaves with old configuration files in the eMMC. I went ahead and flashed the eMMC too (for the heck of it). Important : The N900 will move content from rootfs to the eMMC’s /home/opt on it’s first boot. This means that you have to power on the N900 only after you are done flashing both of them.

Lastly, the term FIASCO stands for “Fractal Image And Sequence Codec” which I found after some very intense googling. It is just a compressions method (like gzip) used for the images.

Charge your n900’s battery so it will atleast last for 30 mins before you begin. Actually, it’s only a 5 min process but why take the risk.

1. If you plan to flash the eMMC, first back things up. There is no complete backup/restore utility on the N900. There is a ‘backup’ utility under applications. Use this to create a backup of your contacts/calendar, bookmarks and some apps. Very important : this backup resides in eMMC itself (under /home/user/MyDocs/Backups). This means that unless you copy this backup folder to your PC, your backup is lost. I don’t have any apps installed; if you do now is a good time to make note of the custom repos you added and list of custom apps. I just usb-mounted and copied over all my pictures  and the Backups folder.

2. Get the flasher from http://tablets-dev.nokia.com/maemo-dev-env-downloads.php (maemo_flasher-3.5_2.5.2.2.tar.gz). Works just fine on 64-bit linux too.

3. Get the images to be flashed from http://tablets-dev.nokia.com/nokia_N900.php. RX-51_2009SE_10.2010.19-1_PR_COMBINED_MR0_ARM.bin (for the rootfs on NAND) and RX-51_2009SE_10.2010.13-2.VANILLA_PR_EMMC_MR0_ARM.bin (for the eMMC). Important – I used the Global release instead of India since some reports suggest that Indian release does not have Skype Video.

The IMEI of your phone is under Settings->About (or power off and look under the battery).

4. Switch off n900. Press and hold the u key and connect usb to PC. You will see a usb sign on the top-right. Now run flasher,

flasher-3.5 -F RX-51_2009SE_10.2010.19-1_PR_COMBINED_MR0_ARM.bin -f

<success message>

flasher-3.5 -F RX-51_2009SE_10.2010.13-2.VANILLA_PR_EMMC_MR0_ARM.bin -f -R

<more success>

That’s it!

Reboot the N900. Dialing *#0000# will tell you the firmware version. If you go to a skype contact, you will see ‘video call’ :-) What about Qt? It’s all under /usr/lib. Here are the sizes

libQtCore.so.4.6.2 (2.8M), libQtDBus.so.4.6.2 (611.5k), libQtMaemo5.so.4.6.2 (81.1k), libQtMultimedia.so.4.6.2 (176.8k), libQtNetwork.so.4.6.2 (1.3M), libQtOpenGL.so.4.6.2 (468.5k), libQtSql.so.4.6.2 (259.9k), libQtSvg.so.4.6.2 (396.1k), libQtXml.so.4.6.2 (325.6k), libphonon.so.4.3.1 (336.2k)

I guess they were concerned about using too much space in rootfs :-) So, the QtGui, WebKit and XmlPatterns are actually in /home/opt/lib (probably got moved from the rootfs on first boot)

libQtGui.so.4.6.2 (10.7M), libQtWebKit.so.4.6.2 (17.5M), libQtXmlPatterns.so.4.6.2 (5.5M)

twitter