|
Using the snapshot
To get started with the snapshot you can
Additional questions are answered in the FAQ.
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:
- Enter the .../l4/ directory and call 'make O=../build_l4'
- Enter the Fiasco build directory (.../l4/kernel/fiasco/ia32/) and call
'make'
- Build the L4Linux kernels by calling 'make' in the .../l4lx/ and
.../l4lx-drv/ directories.
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.
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.
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.
|