Documentation:AVR32 Linux Development/Building flash filesystems for the Network Gateway

From AVRFreaks Wiki

Jump to: navigation, search

You should first look into the How_to_make_JFFS_v2_file_system page for a general introduction to the mkfs.jffs2 application.

Contents

[edit] Building the root file system

This guide will take you through the steps of what to install and what can be deleted from the file system to give a small memory footprint.

[edit] uClibc install and strip

Install the uClibc to your target root directory on the build machine. A standard installation will put the runtime libraries in /lib and the development libraries in /usr/lib. The /usr/lib directory should be cleaned after installing uClibc, since you will not need the development libraries on target.

[edit] Other applications and libraries

These are installed binary only if the Makefile allows it, if the Makefile do not support binary install only, do a make install.

[edit] Strip not needed directories

After installing the software and libraries a lot of not needed directories can be removed to save space:

  • /usr/man
  • /usr/info
  • /usr/include
  • /usr/share/man
  • /usr/share/info
  • /usr/local

This should reduce the memory footprint. The board support package for the ATNGW100 can be stripped to the directories given below

[edit] Directories in /

  bin
  config
  dev
  etc
  home
  lib
  media
  proc
  sbin
  sys
  tmp
  usr
  var
  www

[edit] Directories in /usr

  avr32-linux
  bin
  lib
  libexec
  sbin
  share
  swat

[edit] Directories in /usr/share

  awk
  udhcpc

[edit] NOR flash (parallel)

The NOR flash on the ATNGW100 is used for the U-boot and root filesystem. The U-boot is programmed by using a JTAGICE mkII, while the root filesystem is programmed from Linux.

The image is made by the following command

  • mkfs.jffs2 --output=/path/to/images/atngw100_root.img --root=/path/to/root --big-endian --pagesize=4096 --eraseblock=65536

[edit] DataFlash (serial)

The DataFlash on the ATNGW100 is used for the /usr partition. The partition is programmed from Linux.

The image is made by the following command

  • mkfs.jffs2 --output=/path/to/images/atngw100_usr.img --root=/path/to/root/usr --big-endian --no-cleanmarkers --pagesize=1056 --eraseblock=8448

[edit] Programming an image in Linux

[edit] Programming with mtd-utils

The mtd-utils software needs to be installed on the target.

Copy the image file over to the target either by network, serial, SD-card or similar. The image is then loaded into flash by using the tool flashcp which is included in mtd-utils.

Copying the root filesystem into the NOR flash on ATNGW100

  • flashcp atngw100_root.img /dev/mtd1

Copying the usr filesystem into the DataFlash on ATNGW100

  • flashcp atngw100_usr.img /dev/mtd3

[edit] Programming without mtd-utils

Use this step by step guide to upgrade the Network Gateway firmware with new images

[edit] Telling U-Boot about the flash image

UBoot> set bootargs 'console=ttyS0 root=/dev/mtdblock1 rootfstype=jffs2';fsload;bootm
Personal tools