L4Re - L4 Runtime Environment
This tutorial assumes that the reader is familiar with the basic L4 concepts that were discussed in the Introduction section and has a working knowledge of C++.
Here you can find the first steps to boot a very simple setup. The setup consists of the following components:
The guide assumes that you already compiled the base components and describes how to generate an ISO image, with GRUB 1 or GRUB 2 as a boot loader, that can for example be booted within QEMU.
First you need a
modules.list file that contains an entry for the scenario.
This file describes all the binaries and scripts to put into the ISO image, and also describes the GRUB
menu.lst contents. What you need to do is to set the
MODULE_SEARCH_PATH to contain the path to your Fiasco.OC build directory and the directory containing your
hello.cfg script should look like the following. A ready to use version can be found in l4/conf/examples.
The first line of this script ensures that the
L4 package is available for the script. The second line uses the default loader object defined in that package and starts the binary
modules.listare available as data spaces (L4Re::Dataspace) and registered in a name space (L4Re::Namespace). This name space is in turn available as 'rom' to the init process (Ned).
Now you can go to your L4Re build directory and run the following command.
hello.cfgfiles in the /tmp directory. Adapt if you created them somewhere else.
Or as an alternative use GRUB 2:
Now you should be able to boot the image in QEMU by running:
If you press
<ESC> in the terminal that shows you the serial output you enter the Fiasco.OC kernel debugger... Have fun.
A basic set of bootable entries can be found in
l4/conf/modules.list. This file is the default for any image creation as shown above. It is recommeded that local modification regarding image creation are done in
conf/Makeconf.boot. Initially you may copy
Makeconf.boot. You can overwrite
MODULES_LIST to set your own modules-list file. Set
MODULE_SEARCH_PATH to your setup according to the examples given in the file. When configured a
make call is reduced to:
All other local configuration can be done in a
Makeconf.local file located in the