Building and Using the Fiasco µ-Kernel

System Requirements

To compile Fiasco, 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 a Fiasco kernel are as follows:

  1. Get Fiasco.OC and core L4Re.

  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 (tried with 8.2, Feb '11):
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 Fiasco 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 Fiasco.OC 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 (note that this features requires at leat QEMU 0.13). 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!".

Another method for running Fiasco is using Fiasco-UX.

Debugging

Fiasco 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 a bug in Fiasco

To report issues with the Fiasco µ-kernel, please use the l4-hackers mailing list.