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:
Using buildroot with the Code Sourcery tools to produce a uClibc uclinux file system
AEL-ALIP File Systems for ARM supplied development platforms
- 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.
- 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
- 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.
- Any of the start up networking scripts may screw the NFS mount - try exiting them early or stopping them running
- Probably others in different debootstraps
- Search /etc scripts for eth, ifup
- 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.
- 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
The Memory Technology Device
(MTD) subsystem for Linux provides a generic interface to memory devices such as Flash and RAM. It provides read
access to the board memory devices. The mtdblock
devices can be mounted by jffs
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 http://www.nslu2-linux.org/wiki/HowTo/MountNFSSwapPartition
on VersatilePB926 says mailto:firstname.lastname@example.org
- 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)