|
Emdebian rootfsThe root filesystem is a basic set of packages needed to provide a usable login environment around a kernel and kernel modules. The rootfs must be extensible to a full system so normal packaging tools need to be supported. The main Debian root filesystem is based on 'Essential' -
a collection of packages that contain:
Emdebian uses several methods to reduce this size:
Other methods yet to be investigated include:
Emdebian Rootfs packagesmultistrap methodThe current Emdebian rootfs uses multistrap to avoid the limitations with using debootstrap. To reduce the workload on the target device, the standard debootstrap method was altered to create multistrap. Multistrap uses the unpacking method where each .deb is unpacked using dpkg, without running any maintainer scripts. Other adjustments are then made to the multistrap environment to support booting without packages that would normally be available in Debian (like perl). The multistrap process results in an almost complete filesystem with no .deb packages remaining. debootstrap methodEmdebian Grip can still be used with debootstrap but some packages can fail when a multistrap method would succeed. debootstrap requires that there is at least a nominal split between "base" and "required" packages and it is advisable to retain a similar split as with normal debootstrap - "required" for packages that debootstrap can unpack directly and "base" for packages that need to be unpacked separately. Creating the rootfsEmdebian expects that most users will want to customise their rootfs and the packages contained in the basic rootfs outlined above are being continually updated as new versions are uploaded to Debian. Therefore, there is no static link to a downloadable root filesystem for Emdebian. multistrap works from prebuilt binary packages and so creating a root filesystem requires that the full set of packages are available in a repository that multistrap can use. If you want different functional changes from those used in Emdebian, use apt-get source and dpkg-buildpackage to create the renamed packages and then create your own repository (e.g. with reprepro). Configuring the root filesystemThe Emdebian rootfs, as generated by multistrap is not necessarily fully configured - packages are unpacked and certain support files are created but none of the packages are configured. This last stage is the only process that must be run on the actual device before the first boot, using the dpkg --configure -a command which requires a working chroot environment. Typically, configuration is done from some kind of minimal bootloader environment that has sufficient support for mounting subsystems like proc and filesystems like the root filesystem partition and can chroot into the root filesystem. This method means that the majority of the work of creating the root filesystem can be done on the build machine. |
Last Modified: Mon, May 3 06:46:30 UTC 2010
Copyright © 2000-2010
The Embedded Debian Project;
Emdebian is an offical subproject of Debian.