HowTo: Nemo on the Nokia N9
I’ve brought you information on MeeGo 1.3 CE aka Nemo for the N950, and told you there was talk about it on the N9. Well, a few weeks ago, I found a guide on how to install it to the N9. With this method, the N9 installs Nemo, without removing the Meego-Harmattan OS. It is the closest thing to dual booting at the moment, and I believe it won’t get much better, as we don’t have MicroSD slots.
Here is a video of Nemo running on the N9
http://www.youtube.com/watch?v=T500ONx62ro
What this tutorial does, is mounts the partitions of your device, that way, user content, base OS, and the drive for Nemo will be separate. This will allow for the flasher to flash the Nemo kernel in a different section to the Harmattan one. Since Nemo is still pre-alpha, there are several key telephony issues. With this, Harmattan will boot by default every time. To boot Nemo, a tethered method is used.
The files you will need can be found here and here.
WARNING: This method will most likely void any warranty. Since you are tinkering with some key boot elements of the N9, simple mistakes can be harmful and may cause your device to get bricked. Although this has been tested, there is no guarantee it will work. Everything you do from here-in is at your own risk.
NB: These instructions are based of using a Linux system. If you are running windows, I am not sure if it will work. Theoretically, as long as all components are present, it should. Again, no guarantee.
You will also need to have parted fatresize e2fsprogs tar qemu-user-static util-linux installed. You can get this by using apt-get install parted fatresize e2fsprogs tar qemu-user-static util-linux on your linux machine.
Using the first link, download;
-
vmlinuz-2.6.32.20112201-11.2-adaptation-n950-bootloader
-
initrd.img-rescue-2.6.32.20112201-11.2-n950
-
kernel-adaptation-n950-bootloader-2.6.32.20112201-11.2.armv7hl.rpm
- init
-
nemo-handset-armv7hl-n950-testing-0.20111120.1.CE.2011-11-24.1.tar.bz2
In the second link, download the Harmattan flasher.
Here is the breakdown of steps.
== Nemo Installation == 1. Unplug the usb cable from your phone. 2. Turn your phone off. 3. Load the N950 MeeGo kernel and N950 MeeGo rescue initrd using flasher: $ sudo flasher --load -k vmlinuz-2.6.32.20112201-11.2-adaptation-n950-bootloader -n initrd.img-rescue-2.6.32.20112201-11.2-n950 --boot 4. Insert the usb cable. 5. Wait about minute until a new USB mass storage decice appears on the host. You should now have three partitions: /dev/sdX1 with is MyDocs, /dev/sdX2 which is MeeGo 1.2 Harmattan rootfs, and /dev/sdX3 which is the MeeGo 1.2 Harmattan home directory. 6. Please verify that the three partions above are the same as on my phone, as the following steps WILL brick your phone if they aren't... 7. Start parted and verify that it finds all three partitions: $ sudo parted /dev/sdX (parted) unit s (parted) print 8. On my phone, parted didn't recognize the second partition. If you have the same problem, recreate it between (end of "1" + 1) and (start of "3" - 1): (parted) mkpart Partition type? primary/extended? primary File system type? [ext2]? ext4 Start? 112672768s End? 121061375s 9. Resize the MyDocs partition to leave at least 2 GiB for Nemo Mobile. For good performance the new partition should start on a whole multiple of 8 MiB, or 16384 sectors, which means that the MyDocs partition should end on sector (N * 16384 - 1): (parted) resize 1 1024s 95895551s 10. Create a new partition between (end of "1" + 1) and (start of "2" - 1): (parted) print (parted) mkpart Partition type? primary/extended? primary File system type? [ext2]? ext4 Start? 95895552s End? 112672767s 11. Quit parted: (parted) quit 12. Create a new file system on the new partition: $ sudo mkfs.ext4 /dev/sdX4 -E discard -G 32 -L nemo-rootfs -O ^huge_file $ sudo tune2fs -E mount_opts=journal_checksum -o user_xattr,acl,discard /dev/sdX4 13. Mount the newly created filesystem: $ mkdir rootfs $ sudo mount -t ext4 /dev/sdX4 rootfs 14. Unpack the Nemo Mobile N950 image: $ sudo tar --numeric-owner -xf nemo-handset-armv7hl-n950-testing-0.20111120.1.CE.2011-11-24.1.tar.bz2 -C rootfs 15. Prepare the rootfs for use as a chroot: $ sudo cp /usr/bin/qemu-arm-static rootfs/usr/bin/ $ sudo cp /etc/resolv.conf rootfs/etc/ $ sudo mount -t proc proc rootfs/proc $ sudo mount -t sysfs sysfs rootfs/sys $ sudo mount --bind /dev rootfs/dev 16. Install the MeeGo kernel package inside the chroot: $ cp kernel-adaptation-n950-bootloader-2.6.32.20112201-11.2.armv7hl.rpm rootfs/tmp/ $ sudo chroot rootfs rpm --install --nodeps /tmp/kernel-adaptation-n950-bootloader-2.6.32.20112201-11.2.armv7hl.rpm $ rm rootfs/tmp/kernel-adaptation-n950-bootloader-2.6.32.20112201-11.2.armv7hl.rpm 17. Unmount the rootfs: $ sudo umount rootfs/{dev,sys,proc} $ sudo umount rootfs $ rmdir rootfs 18. Unplug the usb cable from your phone. == Initrd Creation == 1. Copy the rescue initrd to a tmpfs: $ mkdir initrd.rescue initrd $ sudo mount -t cramfs -o loop initrd.img-rescue-2.6.32.20112201-11.2-n950 initrd.rescue $ sudo mount -t tmpfs -o size=4m,mode=0775 tmpfs initrd $ sudo cp -a initrd.rescue/* initrd $ sudo umount initrd.rescue $ rmdir initrd.rescue 2. Replace the rescure init script with Nemo Mobile N9 initrd init script: $ sudo cp init initrd/sbin/init 3. Optionally remove the kernel modules from the initrd, as we don't need them: $ sudo rm -r initrd/lib/modules/2.6.32.20112201-11.2-adaptation-n950-bootloader 4. Create the initrd image: $ sudo mkfs.cramfs -b 4096 -n meego-initrd initrd initrd.img-nemo-2.6.32.20112201-11.2-n950 5. Unmount the tmpfs: $ sudo umount initrd $ rmdir initrd == Device Booting == 1. Unplug the usb cable from your phone. 2. Turn your phone off. 3. Load the N950 MeeGo kernel and Nemo Mobile N9 initrd using flasher: $ sudo flasher --load -k vmlinuz-2.6.32.20112201-11.2-adaptation-n950-bootloader -n initrd.img-nemo-2.6.32.20112201-11.2-n950 --boot 4. Insert the usb cable. 5. Wait several minutes while Nemo Mobile boots. Source
Connect
Connect with us on the following social media platforms.