Author |
Topic |
|
jlackey
213 Posts |
Posted - 02 Jun 2004 : 10:37:34
|
Root File Systems
There are many types of root file systems. Below are the types we provide and support.
The first three types are commonly used for embedded systems. The last type is not typically used for deployed embedded systems but is useful for development on the target system.
Ramdisk File System
A ramdisk root file system is stored compressed (i.e. ramdisk.gz) in on-board flash or on an ATA flash card. It is copied to RAM by the bootloader and uncompressed by the kernel.
Since the file system is in RAM, it is fast and can be mounted rw (read/write) but changes are not preserved after a reboot. The compressed image will remain unchanged and provide the same environment each time the system starts. For this reason, a ramdisk ensures repeatability between reboots even when the file system has been filled, corrupted, or otherwise damaged. Files that must created or modified with changes preserved can be stored in a separate file system that is mounted after the system starts.
A ramdisk is completely uncompressed in RAM and will take up as much space in RAM as the size of the filesystem (used + free). It is not suitable for large filesystems or for applications that need a lot of available RAM. CRAMFS File System
CRAMFS is a compressed, read-only file system that is stored in flash memory. The file system is mounted during start up and the contents are uncompressed as needed.
The compression ratio for a CRAMFS file system is better than for a JFFS2 file system so more content can be stored in a given amount of flash memory. Unlike a ramdisk, no RAM is used to hold the CRAMFS file system so more RAM is available for the kernel and user programs. Since the file system remains compressed and stored in flash memory, it is slower than a ramdisk.
Since CRAMFS is read only, it provides the same environment each time the system starts. When a CRAMFS file system is used, usually a ramfs file system is also mounted during startup to hold writable directories like /tmp and /var. Like a ramdisk, CRAMFS ensures repeatability between reboots and cannot be corrupted. JFFS2 Flash File System
JFFS2 stands for journalling flash files system, version 2. JFFS2 was specifically designed for embedded applications requiring persistant storage in flash memory. It can be mounted rw (read/write) and changes are preserved after a reboot.
JFFS2 is compressed, but not as much as CRAMFS. As with CRAMFS, no RAM is used to hold the JFFS2 file system so more RAM is available for the kernel and user programs than with a ramdisk but also like CRAMFS, the file system is compressed and stored in flash memory, so it is slower than a ramdisk.
By design, JFFS2 avoids writing to the same block of flash repeatedly when other blocks are available. This preserves the life of the flash memory.
Since JFFS2 is writable, it is often the only file system used. Conversely, JFFS2 is sometimes used with a ramdisk or CRAMFS when persistent writable storage is not desired for every file. Because JFFS2 is persistent, care must be taken to avoid rebooting or powering down the system when files are in an inconsistent state. (Use 'sync' to ensure that all file changes are committed to permanent storage and 'shutdown, halt, or reboot' to prepare the system for a planned reset or power cycle.) Full (or Traditional) Linux File System
This is a complete GNU/Linux distribution, similar to a typical workstation installation. Because of its size, a hard drive (such as an Hitachi Microdrive (TM) or USB hard drive) or an NFS server is required for this file system. (An ATA flash card is not suitable for this root file system.)
This root filesystem provides everything found in the ramdisk and JFFS2 root filesystems, but also contains most, if not all, of the tools familiar to Desktop GNU/Linux developers. This filesystem includes the gcc and g++ compilers, the gdb debugger, plus development libraries and editors (emacs, vi, etc.) ready to use for native development work.
In addition to what is provided with this root filesystem, Debian provides many thousands of optional packages that can be downloaded, installed and configured with a simple command. These packages include additional development tools, applications, libraries, etc. Developers can build and test their applications on the target system which accelerates development and debugging.
EABI file systems
GNU EABI is a new application binary interface (ABI) for Linux. In addition to the Old ABI filesystems, we provide EABI versions of each of the filesystems described above. These images are based on Debian's armel port. For further information about EABI, see this topic.
Download
Below are links to versions of the file systems described above that are available on our website. These file systems are designed to work on our products provided you are also using a recent kernel and bootloader. The linked topics provide the file system image files, usage instructions, and revision information. Usually, you'll want to use the most recent version of the type you want. This topic will be updated when new types and versions are made available.
Debian Ramdisk 2008-05-21 (Old ABI) Debian Ramdisk 2010-01-07 (EABI)
includes Microwindows nano-x and some games Debian JFFS2 2008-05-21 (Old ABI) Debian JFFS2 2010-01-07 (EABI)
includes X11, the dillo web browser, an mpeg player and a web cam viewer Debian CRAMFS 2008-05-21 (Old ABI) Debian CRAMFS 2010-01-07 (EABI)
includes everything from the JFFS2 image, but utilizes cramfs and a small JFFS2 for persistant storage Full Debian Distribution 2008-05-21 (Old ABI) Full Debian Distribution 2010-01-07 (EABI)
includes everything from the JFFS2 filesystem and ramdisk, plus compilers, debuggers, libraries, etc. for native development. Runs X11 by default.
This topic is updated when new root file systems are released. Updates of this nature are not shown in the change history. If anything other than the links to the latest root file systems are updated, the change will be noted here. |
|
jlackey
213 Posts |
Posted - 11 Aug 2004 : 13:55:03
|
The Debian ramdisk is bigger than the ones we've supplied in the past. To handle the larger ramdisk, an updated bootloader (Ver. 4.12 or later) OR a kernel command line is required to:- specify larger compressed and decompressed sizes for the ramdisk
- provide a larger ramdisk partition to accomodate the ramdsik.gz file in on-board flash. (This is only an issue if you want to program the image to on-board flash. This is not an issue for booting from an ATA flash card.)
Beginning with the 4.12 bootloader, the default ramdisk partition size has been increased to 5M and the default kernel command line specifies a 12M ramdisk (5M compressed).
If you have an older bootloader, upgrade to the latest or use a cmdline.txt file to set up the necessary partitioning for the larger kernel. Here is an example for the BitsyX and here is one for all other PXA boards. These files contain the new default kernel command line suppiled by the bootloader.
The 'mtdparts' parameters provided in these files specify the size of the on-board flash partitions. Read the bootloader manual for more information about the kernel command line and cmdline.txt files. |
|
|
|
Topic |
|
|
|