Instructions for the OpenTC snapshot
To get started with the snapshot you can
Additional questions are answered in the FAQ.
In order to build the provided source code, you should follow these instructions:
Required additional packages on OpenSUSE 10.2
In OpenSUSE, you can use the software management component of the Yast2
control center to install the following additional packages:
autoconf
automake
bison
doxygen
flex
gcc
gcc-c++
latex2html
ncurses-devel
python-curses
tetex / latex
transfig
zlib-devel
Required additional packages on Debian or Ubuntu
automake1.9
bison
build-essential
flex
gawk
latex2html
protoize
tcl8.4
tetex-extra
transfig
zlib1g-dev
Unpacking the source code
Create a new directory (e.g., ~/opentc/src/) and unpack the
source tarball into it. The tarball contains the snapshot directory, which is structured as follows:
Makefile
-
Creates the default configuration for Fiasco, L4Linux 2.6 and L4 Environment L4Env.
l4
-
This directory contains the sources of the L4 Environment L4Env, uClibc and
some tools needed for the build environment.
l4/pkg
-
The L4 Environment.
l4/pkg/uclibc
-
The uClibc.
l4/pkg/tool
-
Tools for L4Env.
tools
-
Additional tools.
kernel/fiasco
-
The microkernel L4 Fiasco source tree.
l4linux-2.6
-
The L4 Linux 2.6 source tree.
build
-
The directory containing the build directories of L4Env, Fiasco and L4Linux.
The related binaries will be created here.
dice
-
This directory contains the sources of DICE.
Building the snapshot
Default configuration
You can install in one step the whole snapshot by calling 'make' in the root of the extracted source tree. This is the same as executing both following commands:
- 'make configure-all': configure the whole snapshot with the default configuration.
- 'make build-all': build the snapshot.
Customized configuration
Alternatively, you can customize the configuration by calling 'make config' and 'make' in the following build directories:
build/l4
-
Contains the overall L4 configuration for the userland.
build/fiasco_ia32
-
Contains the configuration for the L4 Fiasco kernel.
build/linux
-
Contains the configuration of L4Linux to build without device drivers.
build/linux_drv
-
Contains the configuration of L4Linux to build with device drivers (Network etc.).
Be careful! Your changes in the configuration of Fiasco, L4Env or L4Linux are made at your own risk! Only limited support is provided!
We also provide prebuilt binaries for IA-32/i586 and
Fiasco ABI version v2. The structure of the unpacked directory tree looks like this:
build/l4/bin/x86_586/l4v2/
-
This directory contains the binaries of the supported and translated L4Env services.
build/fiasco_ia32/
-
This directory contains the Fiasco binary.
build/l4/lib/x86_586/, build/l4/lib/x86_586/l4v2/
-
These directories contain L4Env libraries.
build/linux_drv/
-
L4Linux compiled with device drivers.
build/linux/
-
L4Linux compiled without device drivers.
Unpack the demo tarball in the root directory of your OpenTC source tarball. In the created demo directory, call 'make' to start the demo.
If you want to try the ORe example with arping, please refer to the ore_howto.txt file in the config directory of the demo tarball.
The demo tarball contains the disk image l4-demo-image-20060630 that can be used as virtual harddisk in an emulator like qemu.
The image contains a partition table and a 256MB ext2 partition. The provided Makefile will automatically update the image with your newly compiled binaries. If you want to modify the contents of the image manually, you need to mount it with:
mount -o loop,offset=32256 image mnt/
The L4 binaries reside in /boot/bin/ and the grub config file is /boot/grub/menu.lst.
Patches are available in the download directory.
Please note that only critical bugfixes are available through this mechanism.
Big changes and most feature requests are available with a next snapshot.
Yes, all tarballs and also the disk image will be updated whenever we release
a patch. However, this is only true for patches that have been officially announced
on the web page. The filenames of the tarballs and the image also reflect the
patchlevel as stated in the corresponding announcement in order to avoid confusion.