After switching to CSSU-thumb, which improves load times and responsiveness on the n900 by using the Thumb2 ISA of ARM, I tried to test the latest Nemo Mobile release. I reinstalled the u-boot bootloader and setup the menu entries. However, after a reboot neither Nemo nor Maemo booted and I only got into the u-boot console. If you don't have your tools/cables at hand to reflash from the PC, you can do the following to boot Maemo with a kernel from a SD card:
- Put the SD card into your PC and mount /dev/sdX1 and /dev/sdX3. The latter must use a FAT filesystem (I used a SD card with the Nemo partitions on it).
- Get flasher 3.5. As the Nokia website is not available anymore you can use this mirror
- Get the latest kernel-cssu package, e.g., this one
- Unpack the .deb using
ar x kernel-cssu_2.6.28-10cssu3_armel.debexecutetar -xvzf data.tar.gzand afterwards you'll get a file similar to boot/zImage-2.6.28.10-cssu3.fiasco- Extract the kernel from this file using
flasher-3.5 -F zImage-2.6.28.10-cssu3.fiasco -uconvert the resulting zimage to an uimage usingmkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -n maemo \and place the uimage into the filesystem of /dev/sdX3.
-d zImage uImage- Create a file, e.g., uboot-maemo.cmd, with the following content (remember that \ means you should put the following line at the end of this line without the \ ):
setenv setup_omap_atag 1 setenv bootcmd 'fatload mmc 0:3 0x86008000 uimage; bootm 0x86008000;' setenv bootargs 'init=/sbin/preinit ubi.mtd=rootfs root=ubi0:rootfs \
rootfstype=ubifs rootflags=bulk_read,no_chk_data_crc rw console=ttyMTD,log \
console=tty0 snd-soc-rx51.hp_lim=42 snd-soc-tlv320aic3x.hp_dac_lim=6' boot- With the following command we create a boot.scr from this file that should be placed in /dev/sdX1:
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n mybootmenu \
-d uboot-maemo.cmd boot.scr- Unmount the partitions, put the SD card into the n900, reboot the device and make sure that the keyboard is open (so you'll see the u-boot menu)
- Select u-boot console in the menu and type
run sdbootThis executes the boot.scr from the SD card and afterwards Maemo should boot and you can reflash a working kernel from within Maemo. Sometimes Maemo doesn't start after the first attempt, please try to boot it 2-3 times in a row before you try something else.
References:
- http://elektranox.org/n900/kernel/uboot.html
- http://support.atmel.no/knowledgebase/avr32studiohelp/com.atmel.avr32.tool.ngw100/html/u_boot_command_reference.html
- https://github.com/archlinuxarm-n900/uboot-n900-tools/blob/master/u-boot-update-bootmenu
- http://talk.maemo.org/showthread.php?t=81613
- http://wiki.maemo.org/N900_Hardware_Hacking/serial_dump