Installing to NAND
Overview
We are having problems on some boards booting from NAND; please do not install onto NAND until these are resolved and this message removed.
This page describes how to write a filesystem to the board's internal NAND flash and boot from it using LinuxBIOS.
Requirements
You should have a working install of one of the OLPC Build images, build 79 or higher, and a copy of the corresponding jffs2.img for that build available. (For example, on another USB key.)
Procedure
After the board has booted, hit ctrl+alt+F1 to get to a login prompt, and login as root. Then:
modprobe mtdchar flash_eraseall -j /dev/mtd0 nandwrite -p /dev/mtd0 /path/to/olpc-development-rpm-jffs2.img
We intend to provide a mechanism to let the jffs2 img be streamed to nandwrite over the network, for people with only one USB key; this isn't working currently, though.
It is normal to see bad block errors during both the flash_eraseall; NAND flash comes from the factory with bad blocks marked. You may also see error messages during the nandwrite step. When the nandwrite has finished you can reboot, and LinuxBIOS will boot from the NAND flash.
A delay of around 80 seconds on boot is normal; the filesystem we wrote to the NAND was compressed, and is uncompressed on boot.
Troubleshooting
flash_eraseall: /dev/mtd0: No such file or directory
This is seen when modprobe mtdchar wasn't performed.
I see a hang after "NOTICE: Booting default"
This is normal: the filesystem on the NAND flash is being uncompressed. It should last for around 80 seconds. (Yes, this is slow! The Geode's flash-memory controller performance is very slow. On future boards—the production hardware—we'll have a separate flash-memory controller that will be providing an order of magnitude greater performance.)
JFFS2 warning: (1381) jffs2_sum_write sumnode: Not enough space for summary, padsize = -793
This warning is harmless.