Building and Using the L4Re Microkernel

System Requirements

To compile the L4Re Microkernel, you need a recent version of: All tools are freely available on any modern Linux/Unix environment:
somewhere# apt-get install make gawk g++ binutils pkg-config subversion

Building

The steps nessecary to build the L4Re microkernel are as follows:

  1. Get L4Re (you can select the base package variants).

  2. Create build directory
    somedir$ cd src/kernel/fiasco
    somedir/src/kernel/fiasco$ make BUILDDIR=mybuild

    The make step will generate a build directory called mybuild.

  3. Got the build directory
    somedir/src/kernel/fiasco$ cd mybuild
  4. Configure kernel build
    somedir/src/kernel/fiasco/mybuild$ make config

    Will launch the configuration menu. This is the time to configure your kernel. The default config will build a uniprocessor IA32 kernel with debugging features enabled. If you're happy with this step you may skip it.

  5. Build it
    somedir/src/kernel/fiasco/mybuild$ make

    The make call will build the kernel. Add -jX as you like. After a successful build the kernel binary will be called fiasco.

Building on FreeBSD

For building on FreeBSD, install from ports collection:
bash3 gmake binutils
Use gmake instead of simply make. More recent binutils from the ports collection are required for building.

Running

To boot and run the L4Re Microkernel you also need other programs, at least bootstrap, sigma0, moe, and minimum one application.

Those programs are available in the L4Re repository and are built there. They already have been downloaded in the download step before.

To test your build we recommend to use QEMU. There are several options for booting, one is to generate a bootable ISO image. For that, build L4Re and launch in the build directory of your L4Re tree:

l4re-build$ make grub2iso E=hello MODULE_SEARCH_PATH=/path/to/fiasco-build-dir

You will then find a file hello.iso in the images directory. Alternatively you can also use 'make grub1iso E=hello MODULE_SEARCH_PATH=/path/to/fiasco-build-dir' provided you have a stage2_eltorito file available on your system.

l4re-build$ make qemu E=hello MODULE_SEARCH_PATH=/path/to/fiasco-build-dir
will directly launch QEMU. For more information on build options and possibilities please refer to the Getting Started guide.

When booted, you should see the hello word server repeatedly printing "Hello World!".

Debugging

The L4Re Microkernel comes with a feature rich built-in low-level debugger that it both suitable for analyzing in-kernel situations as well as mastering complicated user-level issues.

The kernel debugger is entered with ESC on the serial console. Press 'g' to exit the kernel debugger and continue.

Reporting Issues in L4Re

To report issues with L4Re or the kernel specifically, please use the l4-hackers mailing list.