I recently ended up with a machine which no longer booted up. The primary cause was numerous bad blocks on the nandflash which resulted in running out of space whilst loading 3MXv3final, and corrupting the bootloader whilst attempting to investigate the cause. It now no longer performs the recovery function by holding down F3 or Ctrl+Fn+Shft whilst switching on. Simply switching on just shows a tinted screen which fades over time.
However what I do have is a machine which has 3MX1.1 and Retro loaded in nandflash, plus various other images loaded on SD cards. By inserting a chosen SD card and holding down Fn+Ctrl+Shft I can select which image I want to load. The process to achieve this is fairly simple once you have gathered all the information and resources.
1. Create an SD card which has a 30Mb primary FAT16 partition, and a second primary FAT partition to fill the rest of the card. If the card is greater than 1Gb then the second partition will have to be FAT32, otherwise FAT16 will do.
2. We now put boot software on the 30Mb partition. The software is a combined bootloader and minikernel named uImage. This you can get from
http://projects.kwaak.net/twiki/bin/view/Epc700/KernelStartupF2F3Use uImage-v002_F2mcca2F3mtdblock3 to get you a boot menu choice between the SD card and existing software in flashmemory.
Use uImage-v001_F2nand2F3mtdblock3 to choose between the original in flash and a new image in the extended flash card. Note: Some machines do not have the extended 2Gb flash so cannot use this option.
3. Rename your selected file to
uImage (
for those viewing with a non-serif font the second letter of the file name is an upper case 'eye')
4. Now select the additional image you want to load. eg.
Recovery_Retro.img and untar it into place.
for example
tar -xjf sourcedir/Recovery_Retro.img -C targetdir/
where
sourcedir is where you downloaded the image to, and
targetdir is the second partition of the SD card. This will take some considerable time - go make a cup of tea.
Now open the new software and remove the file
flash_eraseall from the root directory.
This is important as otherwise it will wipe the flash memory during bootup.5. Insert the SD card in your netbook, hold down the Fn+Ctrl+Shift keys on the left side and switch on. Keep the keys held down until you get a display labeled celinux 2.4.20 with prompts for F2 and F3
The options on the prompts depend on which uImage you selected,
v002 gives F2=/dev/mmca & F3=/dev/mtdblock3 (SDcard or original flash)
v001 gives F2=/dev/mtdblock5 & F3=/dev/mtdblock3 (original or extended)
You will notice that we have missed a step if we want dual images in flash. We have to carry out steps 1-3 above to get a bootable SD card. Miss out step 4 and attempt to boot the machine. Whilst you will get two options in the boot menu only the /dev/mtdblock3 option will be valid. Once live you can load the software into Extended flash in the same way as we untarred to an SD card.
DO NOT REBOOT YET.
File /etc/init.d/rcS calls mount_extend to mount nand2, but also erases it. Use a text editor (midnight commander is good) to open /etc/init.d/mount_extend and place '#' at the start of each of the lines which erases mountblock5
While we have MC up UK users should change keyboard to gb in /etc/init.d/start to save manually doing it each time.
#mount the second nand flash
if [ "$is_2g" = "1" ] ; then
# if test -e /flash_eraseall ; then
# echo "flash_eraseall mtd5..."
# /flash_eraseall /dev/mtd5
# fi
# rm -rf "/Extend"
mkdir -p "/mnt/nandflash2"
mount -t yaffs2 /dev/nand2 /mnt/nandflash2
.......................
Now we have a live machine and an easy choice of software images. You will need to use Ctrl+Fn+Shft each time you power up, but I will find a way to solve that later - unless someone else wants to add a Howto to this post!