You are here: LinuxFilesystem Web>WebHome (06 Jan 2011)

Welcome to the LinuxFilesystem web

Linux Filesystem and Utilities

This section provides some information regarding tools and utilities for building filesystems targetting Embedded Linux platforms. These can vary depending on the level of functionality available on the development platform used as well as the type of applications for which this platform will be used.

Multiple options available for creating base filesystems:
  • cramfs is a read-only filesystem designed for simplicity and space-efficiency. The base utilities can be accessed on sourceforge project's page.
  • romfs is a read-only filesystem originally for Linux. It is a space-efficient, small block-based filesystem.
  • JFFS2 is a log-structured file system designed for use on flash devices in embedded systems.
  • SquashFS is a compressed read-only filesystem for Linux. It is intended for general read-only filesystem use, for archival use and in constrained block device/memory systems (e.g. embedded systems) where low overhead is needed.
  • NFS Network FileSystem.
Using buildroot with the Code Sourcery tools to produce a uClibc uclinux file system

AEL-ALIP File Systems for ARM supplied development platforms - how to obtain & build images, how to add 3rd party codecs, AEL-ALIP errata etc.

A basic MID type file system for ARM linux

Howto Use Deboostrap to make file systems for ARM platforms

Debootstrap a full desktop distribution of Ubuntu Jaunty 9.0.4.
  • Ubuntu 9.0.q0 armel is built for armv6 with vfp.
  • Resultant .tgz ca. 1/2GB, uncompresses to ca. 4GB
  • The debootstrap takes around 8 hours to build on a VMWare Ubuntu 9.0.4 image

RealView PBA8 example

Log attached - if it hangs without message for more than one hour - restart.
To use this file system over NFS - drop /etc/rc2.d/S50NetWorkManager - which takes down the NFS connection if it runs
Also add a correct resolv.conf for local network since NetworkManager is not running to provide a local version.
Boot log for RealView PBA8 attached - also contains cats of files tweaked for ARM development boards and/or PBA8 in particular
  • PBA8 board needs (at least) 256M memory
  • For all ARM supplied development boards, add ttyAMA0 node, start a getty on it in /etc/rc.local, add ttySA0 to /etc/securetty
  • Adjust xorg.conf for the platform - see boot log for PBA8 example

NFS mounts

  • Depending on your debootstrap configuration udev may take down the ethernet during system configuration
    To prevent this, ensure etc/udev/rules/70-persistent-net.rules exists and contains an entry for your interface.
    Example attached.
  • Any of the start up networking scripts may screw the NFS mount - try exiting them early or stopping them running
    • NetworkManager
    • networking
    • Probably others in different debootstraps
      • Search /etc scripts for eth, ifup

Check also

  • File system checks
    If the system fails to boot during the file check procedure check that /etc/fstab does NOT contain non existent file systems
    e.g. the PBA9 multicore Fast Model doesn't currently support the MMC card.

PBXA9 example.

  • Remove etc/xdg/autostart/nm-applet.desktop from NFS file systems
    The applet doesn't cope well with missing NetworkManager
  • X11 Load mouse & kbd modules (evdev seems dodgy) Add Options "AllowEmptyInput" "false" to Section "ServerLayout"
  • mem=256 for non SMP
  • mem=512M@0x20000000 mem=512M@0x70000000 for SMP

MTD Driver

The Memory Technology Device (MTD) subsystem for Linux provides a generic interface to memory devices such as Flash and RAM. It provides read, write and erase access to the board memory devices. The mtdblock devices can be mounted by jffs, jffs2 and cramfs filesystems. The MTD driver provides extensive support for NOR Flash devices with support for common flash interfaces (CFI). The width of the Flash bus and number of chips required to implement the bus width can be manually configured or automatically detected. The MTD driver layer also supports multiple Flash partitions on one set of Flash devices. Additional documentation can be found in the drivers/mtd directory of the Linux kernel sources and the kernel documentation pages.

NFS Swap File

I've successfully used/adapted the instructions at on VersatilePB926 says
mailto:[email protected].
  • Kernel 2.6.19 patched to arm2.
  • Kernel configure for swap file && loop back device.
  • Haven't tested the boot up script yet.

ARM/Thumb-2 Size Comparison

Thumb-2 file system This is a basic file system (no networking, no X11 etc.).
It boots on the ARM RVDS v4.0 Cortex-A8 model, with a linux 2.6.21 ARM compiled kernel providing Thumb-2 support.
The attached file, arm_t2.xls, compares the Thumb-2 files with the ARM equivalents.
A maximum reduction in size of 28% is observed (usr/lib/libformw.so.5.5 ). This gives a reduction of 16% across all the files (executables & libraries).

The latest AEL-4.0 mtx file system (full GUI, gstreamer, browser, binaries stripped) shows a 10% reduction in size. (182588K --> 165516K)
Topic attachments
IAttachmentActionSizeDateWhoComment
elserules70-persistent-net.rulesmanage0.7 K17 Jul 2009 - 08:27PeterPearsePrevent udev taking down ethernet during nfsroot boot
elseEXTPBA8manage30.4 K28 Apr 2009 - 10:57PeterPearseBoot log for PBA8 debootstrap
xlsxlsarm_t2.xlsmanage37.5 K24 Jul 2007 - 12:51PeterPearse 
elselogbuild-arm-rootfs-200904240849.logmanage5952.5 K28 Apr 2009 - 10:55PeterPearseLog of the deboostrap run (xubuntu)
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback
zenweb1 : 0.09 secs More Info