So, the latest update to the firmware for the Nokia N900 came out today, and I figured I’d give it a shot to see what works and what doesn’t. As I did for my experiments installing NitDroid on the N900, I am writing this as a log so people can see what worked and didn’t for me. It will be geeky, so non N900 users may want to skip this post.
My biggest concern was whether PR 1.3 would conflict with NitDroid, Multiboot, Power Kernel or other things I had running. On the Maemo Users mailing list, I found that the default PR 1.3 kernel returns 2.6.28-omap1 Sure, it is an August build, but I guessed that it wasn’t all that different from the Nitdroid or Power kernels. So I tried an Over The Air or OTA upgrade.
To do an OTA upgrade, you go to a command prompt. I would not use my N900 without SSH access, so I sshed in and tried the update.
It complained about various packages that conflicted, so I tried removing them. I was told 904 packages would get updated, 12 new packages would get installed, and 476 would be removed. The 476 packages to be removed kind of worried me, but I figured I would give it a shot. Eventually, it got to the point where it was failing on packages like osso-wlan, dbus, libhildon1 and libgtk2.0-0.
I guess it must have removed busybox, because I couldn’t even do the simplest linux commands. So, I reflashed the device. First, I went to http://tablets-dev.nokia.com/nokia_N900.php and downloaded the US PR 1.3 image: RX-51_2009SE_20.2010.36-2.002_PR_COMBINED_002_ARM.bin
I then flashed the device
flasher-3.5 -F RX-51_2009SE_20.2010.36-2.002_PR_COMBINED_002_ARM.bin -f
When I rebooted, it took a couple minutes to restart, but when it did I had PR 1.3, none of my apps, but most of my data.
Like I did the last time I bricked my N900, I then went out and started reloading apps. I added the various extra repositories. I then loaded OpenSSH so I could start working from my desktop.
I loaded kernel-power, multiboot and related packages. I did this in a few separate steps just to be safe:
apt-get install kernel-power kernel-power-settings
apt-get install kernel-power-bootimg
apt-get install multiboot-kernel-power
apt-get install usbip mtd-utils kexec-tools
With all of this in place, I reinstalled the NitDroid package. The NitDroid file system was started out on my external card, so I didn’t need to reinstall NitDroid. Instead, I just needed to reinstall the package I had downloaded. Fortunately, this was in MyDocs so I still had it to use:
dpkg -L nitdroid-kernel-2.6.28-06_final1_armel.deb
With this reinstalled, I rebooted into Android and checked to make sure everything was still working as well as it had been.
Returning back to Maemo, I installed many of the other packages that I like to use. My lighttpd configuration got wiped out again, so I reinstalled and at least partially reconfigured that. I don’t have all the CGI code installed, but if you use IPv6 you can get to my N900 IPv6 Lighttpd server. (For notes on that installation, check Setting up a Nokia #N900 to be an #IPv6 Enabled Web Server.
So, Power Kernel or Titan is working, as is NitDroid. I made another attempt at booting MeeGo. I can chroot to Meego but not do much that way. kexec and multiboot are still not working for me. For that matter, since I have my MeeGo partition in a weird place, /dev/mmcblk1p5, I haven’t even been able to boot to it using flasher.
I did a quick check of various application on the N900 and most of them seem to be working okay. The list of bugs fixed for PR 1.3 don’t include much of interest to me.
There are a couple things that remain outstanding besides reinstalling various packages I haven’t tested yet. I get a message about libsdl-mixer1.2 and libsndfile1 being held back. If I attempt to do a dist-upgrade, it complains about problems with upstart. Also, pianobar is not currently installable.
Bottom line: Upgrading to PR 1.3 is a bit of a timesink which doesn’t appear to break anything major, but doesn’t appear to bring any advantage I’ve been able to find yet either.