Section 1
   Section 2
   Section 3
   Section 4
   Section 5
   Section 6
   Section 7

Search Web Pages

2. Which virtual environment?

2.1. Available options

Virtual computing is not a new idea. The traditional approach is hardware emulation: VMware and it's opensource version plex86 are the most well known examples. Honestly I have not tried those: VMware is not really free and plex86 is very much in early stage of development.

Here comes the User-Mode Linux (UML) kernel. UML is a special version of the Linux kernel that runs directly on Linux. See the reference section below for a list of useful links.

Development of Bearing Leaf actually uses two different versions of UML. Development of Bearing userland programs requires Debian Slink so we must use the Slink UML. Development of Bearing kernel & modules must be done under Debian Woody so we use the Woody UML for this. See below for details for installing each of these UMLs.

2.2. Prerequisites

In order to be able to run an UML machine check the following items first:

  • Your host machine needs memory: I have 128M on mine, I guess 256M would be better.

  • Your host machine needs Linux. UML has not been ported to other Unices or OS's yet.

  • Your host machine needs a 2.2.15 kernel or greater. Your UML virtual machine will be 2.4 based: UML developments follow kernel development (in fact the origin of the project was kernel debugging) therefore if you want to have the latest improvements in UML you will have to follow the path of kernel development. This also means that you won't be able to run a 2.2.16/Eigerstein or a 2.2.19/Dachstein version of the router. It MUST be a 2.4.x version of LEAF "Bering". But we are here talking about development aren't we ?

  • The PATH variable (to be checked with echo $PATH) of the Host user that will be used to launch an UML session must give access to the xterm program. This program is generally stored in /usr/X11R6/bin. If so make sure that this directory is in your PATH !

  • If you want to access to the "real" network within your UML environment your host needs TUN/TAP, ETHERTAP or SLIP compiled in or available as modules. TUN/TAP is recommended.


    If your host use a 2.2.x kernel, you need to insmod ethertap and insmod netlink_dev unless they are already compiled in your kernel.


    If your host use a 2.4.x kernel, you need to insmod tun unless your kernel is already compiled with Universal TUN/TAP device driver support.

  • Finally you need to install some UML utilities especially if you want access to the network. As root download the uml_utilities source tarball. Install it on your host machine :

    tar xjvf uml_utilities_YYYYDDMM.tar.bz2
    cd tools
    make;make install

    You need to be careful when selecting the version of UML utilities you want to install. My advice would be to choose the version which was currently available for a given UML patch release. For example, if you are using UML patch 45 released for kernel 2.4.18 you can see from the UML patch download area that this patch was released on July,25 2002. If you the check the UML utilities download area you will find that the corresponding version for this patch is the 20020721 version.

    The UML utilities programs will be installed in /usr/bin or /usr/lib/uml with the proper file permissions.

    Another (and perhaps easier) option is to install the packages available on the UML web site. Pickup either the Debian deb one or the Redhat/Mandrake rpm one. Check the UML download area.

  • Created on 2004-03-26 10:55:25 by mhnoyes
  • Updated on 2004-05-02 11:27:32 by mhnoyes

 Printable Version

Hosted on Get LEAF Linux Embedded Appliance Framework at Fast, secure and Free Open Source software downloads, and powered by phpWebSite.