Installing to NAND: Difference between revisions

From OLPC
Jump to navigation Jump to search
m (Reverted edits by 81.180.65.2 (Talk); changed back to last version by RafaelOrtiz)
 
(25 intermediate revisions by 17 users not shown)
Line 1: Line 1:
== Auto Installer ==
==Overview==
{{deprecated}}


'''The data in this page is out of date. There are better methods now. Please see [[Autoreinstallation image]]'''
This page describes how to write a filesystem to the board's internal NAND flash and boot from it using LinuxBIOS.

==Overview==
This page describes how to write a filesystem to the board's internal NAND flash and boot from it using LinuxBIOS.


==Requirements==
==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.)
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, or on another partition of the same key if it is larger than 512M.)


==Procedure==
==Procedure==
Line 15: Line 19:
nandwrite -p /dev/mtd0 /path/to/olpc-development-rpm-jffs2.img
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.
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
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.
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==
==Troubleshooting==
Line 26: Line 28:
=== <tt>flash_eraseall: /dev/mtd0: No such file or directory</tt> ===
=== <tt>flash_eraseall: /dev/mtd0: No such file or directory</tt> ===


This is seen when <tt>modprobe mtdchar</tt> wasn't performed.
This is seen when <tt>modprobe mtdchar</tt> wasn't performed.


NOTE: You'll get the very same error if you don't [[Upgrading to LinuxBIOS|Upgrade to LinuxBIOS]] first.
=== I see a hang after "<tt>NOTICE: Booting default</tt>" ===


=== I see a hang after "<tt>NOTICE: Booting default</tt>" ===
This is normal, and should last for around 80 seconds. The filesystem on the NAND flash is being uncompressed.


Yes, this is slow! The Geode's flash memory controller performance is very slow. On future boards/the final hardware, we'll have a separate flash memory controller that will be providing an order of magnitude of greater performance.
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&mdash;the production hardware&mdash;we'll have a separate flash-memory controller that will be providing an order of magnitude greater performance.)


=== <tt>JFFS2 warning: (1381) jffs2_sum_write sumnode: Not enough space for summary, padsize = -793</tt> ===
=== <tt>JFFS2 warning: (1381) jffs2_sum_write sumnode: Not enough space for summary, padsize = -793</tt> ===


This warning is harmless.
This warning is harmless.

=== <tt>Skipping bad block at 0xnnnn0000</tt> ===

During flash_eraseall, this is normal. See procedure section above.



== Timing ==

* '''Flash_eraseall''' takes roughly 14 seconds,
* '''Nandwrite'''andwrite takes roughly 54 seconds when the input file is taken from a USB 2.0 key.

[[Category:Developers]]

Latest revision as of 22:10, 2 January 2008

Auto Installer

Stop hand.png WARNING:
The content of this section is considered
DEPRECATED and OBSOLETE
It is preserved for historical or documenting reasons.

The data in this page is out of date. There are better methods now. Please see Autoreinstallation image

Overview

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, or on another partition of the same key if it is larger than 512M.)

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.

Troubleshooting

flash_eraseall: /dev/mtd0: No such file or directory

This is seen when modprobe mtdchar wasn't performed.

NOTE: You'll get the very same error if you don't Upgrade to LinuxBIOS first.

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.

Skipping bad block at 0xnnnn0000

During flash_eraseall, this is normal. See procedure section above.


Timing

  • Flash_eraseall takes roughly 14 seconds,
  • Nandwriteandwrite takes roughly 54 seconds when the input file is taken from a USB 2.0 key.