Firmware/Storage

From OLPC
< Firmware
Revision as of 02:14, 21 August 2013 by Quozl (talk | contribs) (fs-verify)
Jump to: navigation, search

Firmware commands that work with internal storage.

fs-update

  • installs a .zd file to the internal storage,
  • is optimised for maximum speed by overlaying the read and write streams,

The fs-update command has two variants; signed and unsigned.

unsigned

  • used during development,
  • during install, verifies the block hashes in the .zd file against the block data in the .zd file,
  • does not require or use the .zip file,
  • does not reboot on completion,
  • example:
fs-update u:\os.zd

signed

  • used during deployment,
  • triggered by four game key hold during startup,
  • searches for fs.zip or fsN.zip where N is the model tag; this file must be present on boot media,
  • verifies the signature in the .zip file,
  • during install, verifies the block hashes in the .zip file against the block data in the .zd file,
  • reboots automatically on completion,

fs-verify

  • verifies that fs-update worked correctly,
fs-verify filename
  • reads the signed install .zip file, in particular the block numbers and block hashes,
  • reads corresponding blocks from internal storage, calculating block hashes,
  • reports progress,
  • reports any block numbers where the calculated hash does not match the hash in the .zip file,
  • does not verify the signature in the .zip file.

fs-save

  • writes an .img file using the internal storage as source,
  • is very slow, intended for diagnostic use only.

fs-load

  • installs an .img file to the internal storage, without any verification,
  • is very slow, intended for field support use only.

fs-resize

The fs-resize command enlarges the second partition of the internal storage so that it takes up all the remaining space on the device. It was an interim fix until <trac>10040</trac> was fixed. The partition resize is now handled in OLPC OS by the startup scripts. fs-resize remains applicable to builds that were created before this fix. The method to install them was:

  • on a 4GB or 8GB laptop, use fs-update to install the 2GB build,
  • use fs-resize to resize the partition that holds the root filesystem,
  • boot the build,
  • use resize2fs /dev/mmcblk0p2 to resize the root filesystem to the new size of the partition.

devalias fsdisk

  • used before an fs-update, fs-verify, or fs-save to choose which storage device will be used,
  • defaults to the internal storage,
  • configuration setting is lost on restart,
  • is typically with external SD card slot, see below.

Recipes

How to install to SD card

The laptop has an external SD card slot which can be used instead of internal storage. To install to the SD card requires a special command:

devalias fsdisk ext:0
fs-update u:\os.zd
  • does not work for signed install,
  • does not work on XO-1.

How to make an image copy of internal storage

  • determine the size of the internal storage, as shown by banner,
  • choose a USB flash drive, USB hard drive, or SD card that is larger than the internal storage size,
  • choose a size higher than the internal storage, because filesystems add some overhead,
  • choose ext2 or FAT filesystems, because these offer the best compatibility,
  • choose a device that has no critical data on it already, because the feature is not well tested and may corrupt filesystems,
  • use the fs-save command to make the image copy, for example:
ok fs-save u:\os.img

The screen will fill with grey blocks, and these will turn red indicating progress.

Note: fs-save and fs-load can be used for backup and restore, or for cloning one laptop to another, but there are much faster methods, such as Tiny Core Linux. The process is very slow, roughly 15 minutes for 4GB to a USB HDD, or three hours over NFS over USB ethernet. See also Imaging_for_XO-1.5 and Imaging/Side_effects.