Operating Systems Group Dept. of CS TU-Dresden
- Running Linux on top of L4
Latest release: 2.6.31
Quick jumps
with l4con
with DOpE
with Fiasco-UX

Using L4Linux-2.6

L4Linux-2.6 is an L4Env application only. To run it you need some L4 servers. The loader will also load the libloader.s.so library from the (nd)/tftpboot directory, so it should be there in the same directory as the L4Linux binary. Alternatively you can use the libpath directive in your loader script (see below for an example).

  title L4Linux-2.6
  kernel (nd)/tftpboot/bootstrap
  modaddr 0x02000000
  module (nd)/tftpboot/fiasco -nokdb -serial_esc
  module (nd)/tftpboot/sigma0
  module (nd)/tftpboot/roottask task modname "bmodfs" attached 5 modules
  module (nd)/tftpboot/names
  module (nd)/tftpboot/log
  module (nd)/tftpboot/dm_phys --isa=0x00800000
  module (nd)/tftpboot/simple_ts -t 300
  module (nd)/tftpboot/rtc
  module (nd)/tftpboot/l4io
  module (nd)/tftpboot/bmodfs
   module (nd)/tftpboot/cfg/l4linux26.cfg
   module (nd)/tftpboot/libloader.s.so
   module (nd)/tftpboot/libld-l4.s.so
   module (nd)/tftpboot/vmlinuz
   module (nd)/tftpboot/drops.rd
  module (nd)/tftpboot/loader --fprov=BMODFS l4linux26.cfg
  

(nd)/tftpboot/cfg/l4linux26.cfg is a loader configuration file, an example could look like this:

  sleep 1
  task "vmlinuz" "mem=64M load_ramdisk=1 ramdisk_size=16384 root=/dev/ram l4env_rd=drops.rd"
    all_sects_writable
    allow_vga

This is example uses a RAMdisk for easiness.

Hint: Using a serial console to your workstation is recommended, otherwise you will not see possible error messages that could show up if using graphical systems like DOpE or l4con.
Hint2: Do not enable the serial driver in L4Linux.

Using a graphics system

L4Linux can be used with "l4con" and "DOpE" graphical systems. For both systems the frame buffer driver is used, the driver is enabled by default and can be disabled in the advanced menu in the L4Linux menu.

Make sure to disable any keyboard, mouse and VGA support in L4Linux, otherwise both the graphical system and L4Linux will interfere on the hardware access.

The frame buffer driver can take some configuration options, you may use the following as a kernel parameter:

window width: xres:123 (DOpE only)
window height: yres:123 (DOpE only)
window X position: xpos:123 (DOpE only)
window Y position: ypos:123 (DOpE only)
refresh 5Hz: refreshsleep:200
resolution: 800x600 (DOpE only)
with depth: 800x600@16 (DOpE only)

Example: video=l4fb:800x600@16,refreshsleep:100
The resolution and window options are only useful for DOpE, l4con clients use the given resolution of the l4con server.

Use with "l4con"

To use "l4con", modify your menu.lst as follows:

  ...
  module (nd)/tftpboot/con
  module (nd)/tftpboot/bmodfs
    ...
    modules (nd)/tftpboot/run
    ...
  module (nd)/tftpboot/loader --fprov=BMODFS run l4linux26.cfg
  vbeset 0x117
  
Remeber to increase the amount of modules of bmodfs on the roottask command line.

Via the run application you can start multiple L4Linux instances (use Shift-Fx to switch between consoles, in the run console use "l" and enter the configuration file: (nd)/tftpboot/cfg/l4linux26). You should use a RAMdisk for that case and configure Linux so that multiple L4Linux instances don't access the same hardware/device concurrently.
Check out the screenshot page to see how this looks like.
The vbeset 0x117 is there to switch to graphical mode. You may also take other VESA modi but 0x117 should be a good choice.

Use with DOpE

To use L4Linux with DOpE, modify your menu.lst as follows:
...
module (nd)/tftpboot/l4dope
module (nd)/tftpboot/bmodfs
  ...
  modules (nd)/tftpboot/proxygon
  modules (nd)/tftpboot/run
  ..
module (nd)/tftpboot/loader --fprov=BMODFS proxygon run linux26.cfg
vbeset 0x117
  
Remeber to increase the amount of modules of bmodfs on the roottask command line.

If everything goes well, a window will show up. When you click into the window, the mouse will be grabbed, use the [Pause] key to unlock it again.

Using L4Linux-2.6 with Fiasco-UX

L4Linux can also be used with Fiasco-UX. You need configure L4Linux in a way that it does not access any hardware, i.e. disable drivers, PCI, VGA, input etc. You also need to enable the "Run L4Linux in userland only" option in the L4Linux menu.

To start Fiasco-UX with L4Linux you can use the lx script from the l4/tool/runux directory:

l4/tool/runux$ ./lx con

Instead of con, dope can also be used.

Note: Before using the runux scripts for Fiasco-UX, they have to be configured. For that copy the config.template to config.local in the same directory and modify it according to your environment. Adapt at least L4PATH, FIASCODIR and CFGPATH.

A loader script for L4Linux under Fiasco-UX might look like this (adjust the paths to your needs):

  modpath "/tmp/a/l4linux-2.6"
  libpath "/tmp/a/l4/bin/x86_586/l4v2"
  sleep 2
  task "vmlinuz" "mem=44M video=l4fb:refreshsleep:2000 root=1:0 load_ramdisk=1 ramdisk_size=16384 l4env_rd=/tmp/a/drops-rd.rd"
    all_sects_writable
  

If you want to use the block driver on UX, you also need blk-ux. This program is currently in l4/pkg/generic_blk/examples/ux, go there and build it. On the Linux kernel command line in the loader script, add "l4bd.l4blk_name=OSKITBLK" to direct the block driver in L4Linux to the blk-ux server.

Last modified: Tue, Nov 20 2007, 23:41