Emdebian, Squeeze, Grip, Baked and Crush
Flavours of Embedded Debian
The name of the next Debian release after Lenny gave perfect basis for the names of these flavours.
The starting point for all flavours of Emdebian is Debian.
Emdebian Grip - A light grip on Squeeze. As few functional changes as possible and highest level of binary and functional compatibility with Debian Squeeze. Intended to be a native build environment and cross runtime environment with the ability to mix and match Emdebian and Debian packages with minimal effort.
Emdebian Crush - A firmer grip on Squeeze with dependency and functional changes, package name changes and the majority of packages taken from Emdebian Grip.
Emdebian Baked - A pre-configured version of either Grip or Crush. Maintainer scripts are removed from all packages, optionally dpkg and apt packages can be purged. The configuration baked into the root filesystem at creation is thereby preserved and changes can only be made by replacing the entire root filesystem.
Emdebian 1.0 was released based on Debian 5.0 "Lenny" but is only available for one architecture (ARM) and in one flavour (a mix of what will become the flavours described below). Emdebian 2.0 (based on Debian 6.0 "Squeeze") will support the concept of flavours of Emdebian as well as a wider range of architectures.
The nature of Emdebian Grip
- Native or cross-build, as appropriate.
- Support for compilers and build tools, including interpreted languages.
- No functional changes within libraries. This means not changing
the options to
- Extending the upcoming TDeb support in Debian to the existing Emdebian TDeb support.
- Use of "nodocs" support in DEB_BUILD_OPTIONS and extending support for "nodocs" within discussions around DEB_VENDOR as well as in the limited Emdebian package set.
- Less pressure on ultimate installation sizes and package sizes. Devices running Emdebian Grip will need less space than Debian Squeeze but will need more space (including temporary space) than Emdebian Crush. To use the compilation support, devices will need considerably more space and RAM than a device running Emdebian Crush.
- For greater compatibility, based on coreutils rather than busybox.
- Binary compatibility means retaining Debian dependencies, so a bare
bootstrap environment of Emdebian Grip Wheezy (which includes the core
Priority: required packages, just enough for a basic chroot without a
kernel) comes out at:
- 15Mb of packages to download, 75 packages including perl, coreutils, apt, util-linux and tzdata.
- 50Mb unpacked and configured, with typical multistrap cleanup behaviour which removes the downloaded packages and apt cache data.
- An equivalent Debian package selection involves downloading 32Mb of packages and the unpacked, configured chroot takes up 89Mb of space with the same multistrap cleanup behaviour.
- A standard run with debootstrap, creates a chroot consuming 228Mb of space, of which 52Mb are the downloaded packages (which debootstrap retains inside the chroot).
- It is possible to remove some packages from the base set but care is needed to ensure that the features you need are still going to work.
The changes in Emdebian Crush
- Cross-built where necessary, otherwise drawing packages from Emdebian Grip. Crush is targetted at machines that will not be able to build packages for themselves.
- No support for compilers or build tools - no particular need to ensure that build tools exist in the repository or are necessarily installable on Crush.
- Lots of functional changes where such changes are necessary:
- where the disabled components simply do not cross-build or
- where the disabled components bring in unwanted dependencies or
- where the changes allow for functional package splits to retain functionality but change the dependency tree such that devices can selectively install only one or other dependency chain.
- Same TDeb support as Grip.
- Same use of "nodocs"
- Incessant pressure to reduce final installation sizes, package sizes, dependency chains and support a variety of further customisations and machine:variant possibilities.
- For greater size reduction, based on busybox. rather than coreutils
- Forsaking binary compatibility allows Crush to break some of the
dependency chains inherent in a general purpose GNU/Linux operating system.
- Cross-building packages to modify dependencies also allows reduction in the overall package sizes. For example, Perl is removed, and required Perl packages are removed or reimplemented. In contrast to Grip, building, installing and maintaining a system running Crush 1.0 is a lot of work and requires detailed knowledge of Debian.
- Crush is not a build environment, compilers are not likely to be installable or to actually work and there is no perl interpreter. This means Emdebian Crush requires Debian to build and this process itself has stalled since Lenny due to changes in the cross-building infrastructure.
- A minimal installation of Emdebian Crush 1.0 without X needs about 24 MB.
Back to the Emdebian Project homepage.