- Generates uClibc based cross tool chain (but can be used with existing glibc, eglibc or uClibc cross tool chains)
- Issues with versioning: a rebuild of an existing configuration may download new versions or patches, so build results may never be the same
- impossible to use different patches, files for different architectures, machines or distributions
- "Standard" Debian or Emdebian ?
- Standard Debian is a full-scale Linux distribution targeting
non-embedded systems (PC, notebooks, servers, etc.)
- Built natively
- Actively supported.
- More than 20,000 packages are available.
- Packages are configured for non-embedded computer needs; their default configurations are generally too "fat" for the embedded use. Reducing the size of the distribution, whether at a package level or as a whole, would require some effort, perhaps substantial.
- Emdebian is a subset of the standard Debian distribution,
built from the same source base. It is available in different
- Emdebian "Grip":
Emdebian "Grip" is a subset of ~2,000 packages from the standard Debian distribution, which are not rebuilt but only repackaged to reduce the package size (for instance, drop documentation, localization files, etc.) Grip doesn't change the package functionality and dependencies, however it reduces the size of the distribution targeting embedded uses. The "repackaging" is handled in an automated way, using the emgrip utility (http://www.linux.codehelp.co.uk/emdebian/man/emgrip.html).
- Reduced size of the distribution (a Grip based installation with Xorg is reported to take ~300 MiB of space versus ~1.2 GiB needed for a standard Debian installation with Xorg).
- Since it is closely based on the standard Debian; the release and support policy and processes are the same as for the standard Debian distribution.
- The list of 2,000 packages should satisfy needs of most embedded applications.
- If required, individual packages from the standard Debian can be added on a per-package basis (indeed, any additional package is already built in the standard Debian; repackaging, if any is required, is a relatively simple and well-understood procedure).
- The build procedure is less obvious, as compared to the build procedure for the standard Debian. Specifically, the APT needs to be given an explicit list of packages to be built and then the re-packaging tools need to be called for each package (refer to Section: "Target Packages Build Procedure").
- Emdebian "Crush":
Emdebian "Crush" is a narrower subset of packages, which are heavily modified and cross-rebuilt to reduce their functionality and use BusyBox instead of coreutils.
- Smaller size.
- Specifically configured and modified for cross build and embedded uses.
- BusyBox based, which is sufficient for some embedded applications but not for all.
- Targets only ARM currently
- Tied to a specific Debian release ("Lenny")
- Has not been updated for over a year
- Comments on the Mailing lists explicitly recommend to not base any new work on Crush (http://lists.debian.org/debian-embedded/2010/09/msg00010.html).
- Emdebian "Grip":
- Based on that assessment, a Debian based embedded Linux distribution should probably be based on Emdebian Grip. It shares the build and maintenance processes with the standard Debian but specifically targets embedded uses. Emdebian "Crush" is an obvious no-go given the no-maintenance and not-recommended items in the corresponding Cons list.
- Standard Debian is a full-scale Linux distribution targeting non-embedded systems (PC, notebooks, servers, etc.)
- Embedded Gentoo
Gentoo Embedded Handbook
- relatively small user base
- no practical relevance: DENX never had a Gentoo based project yet
- heavily modified buildroot for ARM, MIPS and Power Architecture®
- uClibc based
- GPL based, but vendor only (Pengutronix,
very small active community: 50% of all commits from a single developer
- Mailing list: max. 2...3 messages per day (see http://gmane.org/details.php?group=gmane.comp.embedded.ptxdist.devel)
- GPL based, but vendor only (Pengutronix, see http://www.ohloh.net/p/ptxdist/analyses/latest/);
|5. Using Yocto for ELDK||1. ELDK and the Yocto Project||7. ELDK 5.x Documentation|