emdebian logo
 

About Emdebian
 Emdebian & Debian
 Purpose
 Customisations
 Tdeb support

Cross toolchains
 Toolchain packages
 Toolchain Status

Packages
 Root Filesystem
 Build Tools
 Target packages
 Repository Key  Crossbuild bugs

Documentation
 Introductory Guide
 Emdebian Wiki
 Emdebian FAQ
 Packaging rules
 Packaging infrastructure
 Packaging guideline
 DebConf paper

Support
 Contact Us
 Mailing List Archives

Help Emdebian
 Developers' Info
 Subversion
 ToDo list

News

History
 Slind
 Stag
 Emdebsys

Links
 Emdebian Bootldr
 Emdebian Kernel
 Emdebian JTAG
 Scratchbox
 QEmu
 CELF

Valid HTML 4.01!

 
   

EmDebSys (formerly CML2+OS)


Emdebsys is a system creation and configuration tool for embedded Linux. It was originally known as CML2+OS (2000-2001), and this name still appears in various places.

It is a system for the configuration and generation of both a Linux kernel *AND* an operating system (i.e. root filesystem). EmDebSys is being designed to assist embedded Linux developers in configuring and generating small (1 to 10Mb) GNU/Linux target systems.

EmDebSys was originally based on CML2, (CML stands for Configuration Menu Language), but now also uses kconfig, in line with the current Linux kernel configuration system. This is currently not well-documented but the patch to do it and a quick explanation (by Liberty Young) is here.

Some of the goals of EmDebSys are

  • Open Source.
  • Run on Debian, RPM based, or any other Linux development host.
  • Cross development; i.e. build an ARM target system on an x86 development host.
  • Support a wide range of target architectures (e.g. ARM, PowerPC, MIPS, SPARC, Intel x86, Alpha and Motorola 680x0).
  • Fully integrated kernel *and* OS (i.e. root filesystem) configuration and generation. For instance, if loadable module support isn't configured in the kernel, then the user won't (by default) be presented with the option to include 'modutils' in the OS. If SCSI support isn't configured into the kernel, then SCSI /dev nodes won't be created.
  • Ability to generate a system in a number of ways, such as to a directory tree for NFS root, to a compressed initial ramdisk, etc.
  • Support for profiles, which are pre-designed configurations for various target boards and target functions (e.g. firewalls, routers, file servers, web servers, etc.).
  • The ability to generate systems from binary packages (for convenience) and/or source packages (for flexibility).

The architecture of EmDebSys consists of a front end (the Configurator) and a back end (the Generator). The Configurator is based on extending the Kconfig/CML2 rulebase with configuration rules for the operating system. It produces a standard Linux '.config' file augmented with OS configuration information.

The Generator (back end) takes this config file, and generates a file system containing the OS.

There are many conceivable ways of building such a filesystem. The existing implementation primarily uses the simple, yet powerful, technique of extracting pre-built binaries from existing Debian binary packages. It can also compile some packages from source (the kernel, busybox, tinylogin and uclibc) This will enable the building of minimal operating systems for any debian-suppported architecture (currently ARM, PowerPC, SPARC, Intel x86, Alpha, MIPS, Motorola 680x0, HPA, s390, IA640. At the moment x86 and ARM are tested and supported.

Documentation

To get an understanding of what emdebsys does and how you use it, read Wookey's article explaining how emdebsys works. It covers the configuration and system generation, along with examples of the CML2 language and the powerful way it lets you specify a system.

Downloads

The most recent version is in CVS. Anonymous CVS access is available at a CVSROOT of :pserver:anonymous@cvs.emdebian.sourceforge.net:/cvsroot/emdebian. The module name is emdebsys.


See the emdebian contact page for information on contacting us.

Last Modified: Sat, Mar 24 01:39:18 UTC 2007
Copyright © 2000-2007 The Embedded Debian Project;
Emdebian is an offical subproject of Debian.