I have split this topic from the Guruplug / beginners board, where it was originally posted. I didn't do a very good job of it (not used to splitting topics), so I've also manually edited the title in all previously posted messages. Sorry for any confusion.
The answer to your question is simple. The
"installer" that is available from
plugcomputer.org is the tool that we use to put a new UBIFS rootfs onto the NAND. It has several components:
- an openocd binary (used to rewrite U-Boot and new environment variables)
- The new version of U-Boot
- A set of files that are copied onto a USB stick
You won't need to re-run the first part of the flashing procedure, since you have a working U-Boot and all your environment variables are in good order.
After openocd rewrites U-Boot, the target plug reboots using
run recover1. This actually executes the other
recover commands:
recover1=setenv mainlineLinux yes; setenv arcNumber 2097; setenv bootcmd run recover2; saveenv; reset
recover2=run recover3; setenv bootcmd $(real_bootcmd); saveenv; setenv bootargs $(bootargs_console) $(mtdpartitions) root=/dev/ram0 rw ramdisk=0x01100000,8M install_type=nand; bootm 0x00800000 0x01100000
recover3=run recover4; nand erase clean 0x00100000 0x00400000; nand write.e 0x00800000 0x00100000 0x00400000
recover4=usb start; fatload usb 0 0x00800000 uImage; fatload usb 0 0x01100000 initrd
The most interesting part of this procedure is recover4:
usb start; fatload usb 0 0x00800000 uImage; fatload usb 0 0x01100000 initrd - which causes the plug to boot from uImage and initrd on the USB stick.
That initrd (on the USB stick, provided as a part of the installer download package) erases and formats NAND, then extracts a kernel and writes it to partition #1 and extracts and writes the rootfs to partition #2. This is the key part that you want to re-run. In fact you'll do so by typing
run recover2 on the U-Boot command line. So now you know that what you need is the files that should be placed on the USB stick. You can use those provided with the installer download; doing so will write Ubuntu 9.04 to your NAND, as UBIFS. But, because you have an eSATA plug, your eSATA won't work until you upgrade the kernel (which you can do separately, afterwards).
We don't ever rewrite the jffs2 file system to NAND, since we consider that a downgrade. According to the comments in the initrd rcS, you can use the procedure to rewrite jffs2 (although the comments show that code changes must be applied). Like I say, we've never done it so I can't give you full details / examples.
Finally ... you'll need to format the USB stick (recommended that it be a 2G stick or less, but we've used 4G sticks without any problem) with FAT16 and place on it the following files:
- Our Debian rootfs (or you can use the Ubuntu rootfs with the installer package)
- Kernel (both uImage AND the -newit versions), modules, and initrd from here
- The installer-autorun.txt file. This does not exist in the original installer package. For you, I think the procedure will run OK without it, but I've uploaded it anyway. (For us, it allows us to use a configuration file to choose between several rootfs's and uImages that may exist on the USB stick. For you, I think it will detect only one of each, and use it)
You MUST also download the md5s and copy them to the USB stickNote that our initrd (and uImage) is different from that in the original installer. If you have a recent (A1 cpu) plug the new uImage is an essential component. Because you have an eSATA plug, the
uImage-2.6.36-newit kernel is equally important. Additionally, our initrd will also regenerate your ssh keys (compared to the keys that are within the compressed rootfs) - you'll see this occur in the console. If you install Debian, you'll probably need to adjust the system clock after the final reboot.
So:
- Format your USB stick as FAT16
- Copy the files referred to above onto the USB stick
- Power up your Sheevaplug and intercept U-Boot; type run recover2
- Watch & wait for approximately 5 minutes
If you have any problems, please post any relevant error messages, and tell us your arcNumber.