emdebian logo
news emdebian projects support development

About Emdebian
 Contact Us



 Mailing List Archives


Help Emdebian
 Developers' Info

Valid HTML 4.01!


Embedded Debian overview

Using Debian on embedded devices covers a wide range of possible scenarios. The 'embedded' hardware can be anything from a full-blown PC to an MMU-less thing with a few MB of RAM and flash. Embedded Debian takes a two-pronged approach to this diversity.


This is essentially standard Debian optimised for size. Packages are rebuilt with uclibc, for one locale rather than lots, documentation and examples and similar extraneous guff is left out, and library dependencies are reduced as far as possible. It will also reduce dependencies by defaulting to not using optional components, rather than defaulting to using them, and building optional things as separate packages. The necessary packaging changes will be integrated with Debian so that we are not continually playing catch-up. Hopefully emdebian build targets can be incorporated into Debian policy in due course.

Packages can be cross-built using scratchbox, or built natively, as they are for Debian. The process will be explained in full so that you can build your own mini-Debian with particular compile options or locales relatively easily. This scheme will suit people wanting to quickly prototype a working system, and those for whom the standard Debian or Emdebian builds aren't quite what they wanted.

This is a tool to configure and construct a minimal filesystem and kernel from both source and pre-compiled binaries. It uses Kconfig (or CML2) to define a set of dependencies, so that the engineer doesn't need to know everything about everything in order to get a working combination of modules, files, and binaries. It should produce filesystems which are about as small as they can possibly be for a given task, but this base system isn't intended to be managed with a package-manager. This scheme is best where you want a system for a small device that should just sit there and work.

Part of the above efforts is the provision of the necessary tools. Emdebian has provided cross-toolchains for several years, and these will migrate into Debian proper to make them easily available to developers. The other relvant tools are emdebsys and the infrastructure for building mini-debian, such as pbuilder and sbuild (already part of Debian). The STAG framework for using Debian to cross-build minimalist systems is also closely related to the work.

The best development solution depends on a whole host of factors incuding the GNU/Linux expertise of the developer(s), how much of a hurry they are in to demo something, the hardware, software and licensing requirements and restrictions, the development environment (Windows/GNU/Linux Cross-compiled/Native) and so on. Emdebian cannot be the best choice for all situations, but as we're not a commercial entitity, were happy to point you elsewhere if that would suit you best. See the Links page for other relevant or similar projects and tools.


The final thread of all this is documenting it. Developing a "Guide to Embedding Debian"; a comprehensive guide to getting the most (or least, depending on how you look at it) out of Debian for embedded systems is something this project has always intended to achieve. The first 3 years of Emdebian has produced minimal progress, but hopefully someone will get enthused and write down the collected expertise at some point.

This guide will cover topics such as

  • Configuring and building (minimal) kernels.
  • Boot and run-time kernel configuration options.
  • Building minimal systems (i.e. root filesystems) in a simple and controlled manner.
  • Development of cross compiler packages for Debian and other hosts.
  • Debugging the kernel.
  • Debugging applications.
  • Where to find embedded Linux related tools.
  • Setting up a build system for your own variant.
  • Cross-compiling advice.
  • Using Emdebsys.

Some of this info already exists but it needs bringing together.

Getting Started

If you want to use the toolchains or emdebsys go right ahead and download them. If you want to use emdebian then you need to muck in and make it happen. See the todo page for details.

If you have something which you feel would fit within Embedded Debian then do please suggest its adoption.

See the emdebian contact page for information on contacting us.

Last Modified: Tue, Apr 6 13:06:04 UTC 2004
Copyright © 2000-2004 The Embedded Debian Project;
Emdebian is an offical subproject of Debian.