Operating Systems · Institute for System Architecture · Dept. of CS · TU Dresden

Open Trusted Computing (OpenTC)




Using the snapshot

To get started with the snapshot you can Additional questions are answered in the FAQ.

Compiling from source

In order to build the provided source code on OpenSUSE, you should follow these instructions:

Installing gcc and g++ version 3.4

OpenSUSE 10.1 is not shipped with a prebuilt gcc 3.4. Therefore, either a gcc and g++ 3.4 must be built from scratch or a prebuilt packages have to be installed. The latter one can be found in our download section.
gcc34-3.4.3_16-0.1.i586.rpm
libstdc++34-devel-3.4.3_16-0.1.i586.rpm
gcc34-c++-3.4.3_16-0.1.i586.rpm
libstdc++34-3.4.3_16-0.1.i586.rpm
Note: For installing the libstdc++ RPM packet, use the '--force' option.

Required additional packages on OpenSUSE

In OpenSUSE, you can use the software management component of the Yast2 control center to install the following additional packages:
ncurses-devel
autoconf
automake
flex
bison
doxygen
python-curses
tetex / latex
latex2html
transfig

Unpacking the source code

Create a directory new directory (e.g., ~/src/otc_snapshot/) and unpack the source tarball into it. The directory tree is structured like this:
.../Makefile
Creates the default configuration for Fiasco, L4Linux 2.6 and L4 Environment L4Env.
.../l4
This directory contains the sources of the L4 Fiasco mirokernel, L4Linux 2.6, L4 Environment L4Env, uClibc and tools (like DICE).
.../l4/pkg
The L4 Environment.
.../l4/pkg/uclibc
The uClibc.
.../l4/tool
Tools like DICE.
.../l4/kernel/fiasco
The microkernel L4 Fiasco.
.../l4linux-2.6
The L4 Linux 2.6.
.../build_l4
The build directory of L4Env. The binaries of the L4 Environment L4Env will be created here.

Preparing the source tree

Before you can actually build the snapshot with the default configuration, you need to call the Makefile in the root of the extracted source tree. It creates the necessary configuration files in the following build directories:
.../l4/kernel/fiasco/ia32
Contains the configured L4 Fiasco kernel.
.../l4lx
Contains the configuration of L4Linux to build without device drivers.
.../l4lx-drv
Contains the configuration of L4Linux to build with device drivers (Network etc.).

Build order

After having prepared the source by calling the top-level Makefile as described above, you can compile everything:
  1. Enter the .../l4/ directory and call 'make O=../build_l4'
  2. Enter the Fiasco build directory (.../l4/kernel/fiasco/ia32/) and call 'make'
  3. Build the L4Linux kernels by calling 'make' in the .../l4lx/ and .../l4lx-drv/ directories.

Prebuilt binaries of Fiasco, L4Env and L4Linux 2.6

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.
.../l4/kernel/fiasco/ia32/
This directory contains the Fiasco binary.
.../build_l4/lib/x86_586/, .../build_l4/lib/x86_586/l4v2/
These directories contain L4Env libraries.
.../l4lx-drv/
L4Linux compiled with device drivers.
.../l4lx/
L4Linux compiled without device drivers.

Using a disk image

We also provide a disk image which shows how to boot and use the binaries.

Using

To use the image, decompress it and put it onto a harddisk or use it as virtual harddisk in an emulator like qemu. After booting with GRUB, two L4Linux instances are started. One of them contains device drivers and is accessible through the VGA text console. The second one does not touch any hardware devices. However, it is connected to the first L4Linux instance via ORe, thus you can ping it from there:
ping 192.168.0.2
Netcat can be used to gain a simple remote shell:
nc 192.168.0.2 22

How to change the Image?

The Image contains a partition table and one 256MB ext2 partition. To change the image you can mount it with
mount -o loop,offset=32256 image mnt/
The L4 binaries reside in /bin/ and the grub config file is /boot/grub/menu.lst.

FAQ

Where can I download patches?

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.

Can I download already patched sources?

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.
28. Feb 2007
· Copyright © 2001-2022 Operating Systems Group, TU Dresden | Impressum ·