Sat, 28 Apr 2007
Here's the steps I have taken to flash my wife's N800 and make it useful.
- Get the linux flasher-3.0 and firmware image. Put them in the same directory on your linux box.
- Update: get the latest image.
- Switch off the N800, unplug the charger and connect the N800 to your linux machine with the USB cable.
- As root, or a user with permissions to access USB, run
./flasher-3.0 -F RX-34_2007SE_3.2007.10-7_PR_COMBINED_MR0_ARM.bin -f -R
- Update: run
./flasher-3.0 -F RX-34_2007SE_4.2007.26-8_PR_COMBINED_MR0_ARM.bin -f -R
- Wait for the message
Suitable USB device not found, waiting
- Switch on the N800 by either
- Plugging in the charger or
- Switching it on using the power button whist pressing the Home button
- The image should now flash and the N800 will reboot
In order to do anything interesting, you'll need root access. This involves adding a repository and installing a couple of applications. The N800 uses the debian packaging system, so this will be familiar to anyone who is used to debian or ubuntu.
- Add the repository
Catalog name Maemo Repository Web address http://repository.maemo.org/ Distribution bora Components free non-free
See http://maemo.org/maemowiki/MaemoReleasesRepositoriesDistros for more information.
- Install osso-xterm.
- Update: Also available here.
- Install becomeroot by clicking on http://eko.one.pl/maemo/dists/mistral/user/binary-armel/becomeroot_0.1-2_armel.deb in the browser on your N800.
- Start xterm. It's in the extras menu.
- run sudo gainroot
- set the root password
Red pill mode
Red pill mode is an (ex) easter egg providing access to some advanced features. Activate it by going to add a new application catalogue, setting the "Web Address" to "matrix" and pressing "Cancel".
See http://hildon-app-mgr.garage.maemo.org/redpill.html for more information.
Install the ssh package.
- Update: Also available here.
Perform whatever configuration you would like. For example:
- Set the hostname - echo myn800 > /etc/hostname
- Set up hosts - scp myserver:/etc/hosts /etc
Other useful packages can be found at http://maemo.org/downloads/, for example:
Install by clicking on http://mg.pov.lt/770/wget.install
Start the server by running x11vnc.sh&
Download http://mike.saunby.googlepages.com/x11vnc_0.8-3_armel.deb from http://mike.saunby.googlepages.com/x11vncfornokia7702 and install it using dpkg -i x11vnc_0.8-3_armel.deb.
In order to get mouse clicks working properly, you will need to add the string " -extension XInputExtension" to the ARGS string in the file /etc/init.d/x-server. For me, that leaves line 5 as
ARGS="-mouse tslib -nozap -dpi $DISPLAY_DPI -wr -nolisten tcp -extension XInputExtension"
Install from http://maemo.org/downloads/product/grsync/. (Doesn't seem happy to install. Perhaps it's only for the 770 after all?)
Install from http://maemo.org/downloads/product/claws-mail.
Install from http://openbossa.indt.org/canola/help.html. Reboot after the installation. To enable clicking on items, run
gconftool-2 -s -t bool /apps/canola/plugins/uicontainer/free_click true gconftool-2 -s -t bool /apps/canola/plugins/uifolder/free_click true
Boot off SD
Why might you want to do that? Well, you get your root filesystem somewhere where it's not going away, you can make it as large as you need and, as a bonus, not being a jffs2 filesystem it will probably seem about twice as fast.
Partition the SD card
I've seen instructions for doing this on the N800. It seems easier to me to just plug a card reader into your linux box and partition it that way.
Make the first partition FAT16(6) and the second linux(83).
Format the partitions
mkdosfs /dev/sdb1 mke2fs /dev/sdb2
On Ubuntu, removing and reinserting the card should be enough to create the required devices to run these commands.
Get GNU tar onto your N800
The busybox tar just won't cut it, so you'll need to get the GNU version onto your N800. However you do that, you'll need somewhere to put it, so first
You can get tar onto the N800 using the N800 by downloading the tar .deb file and extracting the tar binary:
apt-get -d install tar (you'll need to answer Y to the questions) mkdir /t dpkg -x /var/cache/apt/archives/tar*.deb /t mv /t/bin/tar /root/bin rm -r /t apt-get clean
Or you could do a similar thing on your linux box, getting the .deb from http://repository.maemo.org/pool/bora/free/binary/tar_1.14-2.1osso_armel.deb (or whatever the current version is) and scp it across. That particular tar_1.14-2.1osso_armel.deb is also available from my site.
Or just download the thing from my site.
Mount the rootfs
mkdir /mnt/rootfs mount -t jffs2 /dev/mtdblock4 /mnt/rootfs
Copy the rootfs
The rootfs needs to be copied to newly created partition. Again, this can be done directly on the N800, but it seems easier just to do it whilst the SD card is connected to the linux box. On the N800:
/root/bin/tar cf - -C /mnt/rootfs/ . | ssh -l user myserver tar xvf - -C /media/usbdisk-1
Enable dual booting
This part is possible due to the work of Frantisek Dufka.
Download the initfs_flasher and unzip it.
tar xvzf initfs_flasher.tgz cd initfs_flasher
Make sure the N800 has sufficient power, close all applications, disconnect from the network and open an xterm. Run the flasher
After the reboot, run
chroot /mnt/initfs cal-tool --set-root-device ask:mmc2
shutdown -r now