From TUDOS-Wiki
Jump to navigationJump to search

Possible configurations for L4Linux


Basically two modes are possible:

  • Direct access
    • In this mode L4Linux will drive the keyboard and mouse controller and will control the screen (e.g. VGA). And only L4Linux will do that, no one else. For the configuration of L4Linux this means that one needs to enable the keyboard and mouse controller driver and the VGA driver.
  • mag/l4con/DOpe consoles
    • For console use, the mag, l4con or DOpE is controlling the keyboard and mouse controller and the screen. And only mag/l4con/DOpE is controlling the keyboard/mouse/screen. No one else. For the configuration of L4Linux this means that L4Linux does not need any keyboard/mouse driver nor any VGA driver. It _just_ needs the l4fb driver (which also does input handling).

Device Access

Device access requires that io allows L4Linux to access those devices. For more information on io please read on here.

Using the x86 architecture, io uses ACPI and PCI scans the system to find available devices. Legacy components are described in the x86-legacy.devs configuration file found in l4/pkg/io/configs/x86-legacy.devs. A client configuration for L4Linux could look like this:

l4lx => new System_bus()
   # add every found network, storage and multimedia (e.g. sound-card) device
   pci_l4x[] => wrap(hw-root.match("PCI/CC_02,PCI/CC_01,PCI/04"));

Make sure to enable the 'L4 virtual PCI bus' in the L4Linux configuration.

If you like to give Linux access to VGA and PS2, add the following the above l4lx block:

vgadev => wrap(hw-root.VGA);
ps2dev => wrap(hw-root.PS2);

Launch io with both files as arguments:

rom/io rom/x86-legacy.devs rom/l4lx.io


To run L4Linux under Fiasco-UX, the L4Linux does not have any access to any hardware. This basically means the following:

  • Disable PCI
  • Disable Keyboard/Mouse (PS2) input
  • Disable VGA/VESA/etc.
  • Do not use serial drivers or similar

For Input/Output you need to use a console setup, see above.

When you start it and it crashes (Ooops), look at the backtrace to see the driver that is trying to access some hardware. Then disable this driver and try again.

There's a default config 'x86-ux_defconfig' which is a configuration without hardware drivers.