NEW! Linux Kernel Configuration Manager

David Howells (
Mon, 14 Apr 1997 18:18:48 +0100

I now have a patch for the Linux kernel (albeit 2.1.29 at the moment) to give
the kernel a extensive configuration manager. See my web pages at:

for the patch and an HTML version of the manual.

This was developed from PnP4kernel

Here's a quick overview of the features:

*** Resource Management
It takes over the old resource management facilities, and provides both the
old API and a new one. In this context, resources are such as interrupts, DMA
channels, ioports and memory locations. These facilities can also be extended
to cover other things, such as serial port PnP device resources (such as
external modems).
To make life easier for kernel programmers, there is now an API call to
reconfigure the function & data associated with an interrupt.

*** Driver Management
A registry is maintained of the drivers currently installed on the
system. This allows a pretty list to be presented through /proc, and allows
all devices to be automatically attached to drivers.

*** Driver Specification & Default Device Configuration
A mechanism is used to indicate to the manager which devices a driver can
attach to (by specific ID or by generic classes), and another side mechanism
is provided to build a default device from a template, just in case there
isn't a real PnP one. This mechanism is used to handle the Interrupt
controller, DMA controller, Timer and FPU devices/drivers.

*** Device Management

A device registry is also maintained. Various hardware interface components
(such as PnP-BIOS, ISA-PnP, PCI) can contribute and withdraw device to/from
the registry. As devices are added, the manager tries to attach the device to
a driver, and as devices are removed, the drivers are told to detach.

*** Configuration Management
If necessary, the manager will reconfigure those devices that support
reconfiguration (if the drivers they are attached to allow it) to try and iron
out hardware conflicts as new devices are added.

*** User Interface
There is a fairly simple user interface implemented through the /proc
filesystem. It does two things:

Makes a lot more information available about which devices/drivers are using
which resources, and which devices are being handled by which drivers.

Allows the user to reconfigure devices - the user can specify constraints for
particular resources on a device, and the manager will try and obtain that
configuration (if necessary, it will reconfigure other devices).

*** Manual
There's a large texinfo manual provided that documents all of this (texinfo
can be used to generate info files for use with emacs-info). The manual can
also be turned into HTML using an appropriate utility (eg: texi2html).

David Howells