Back to Eric's Home Page | Up to Site Map | $Date: 2001/04/10 00:12:08 $ |
You need to read this guide if you are a maintainer of configuration code in the Linux kernel. Linus has scheduled this work to be incorporated in the tree during the 2.5.1/2.5.2 series. It will explain the plan for transitioning from the old system to the new one, what I'm planning to do, and what I need you to do.
I have made every effort to minimize the amount of work anybody but me has to do, but some is unavoidable. I don't think anybody will have more than maybe two hours' work to do, and it will save all of us a lot of future grief.
You can untar the source distribution anywhere. Run the install-cml2 utility to install it in a Linux source directory on your system. The install-cml2 script will make sure your build environment is adequate, prompt you for a source tree location if there is more than one, and install the CML2 files there.
The installer has been carefully designed not to step on or interfere with the existing config system, except that it will modify the configuration productions in the top-level makefile. (The old ones will remain available under different names.)
Change directory to your source tree. Do:
This will generate a map of the menu hierarchy defined by the rules file. Notice that it first compiles the rules file using cmlcompile. All the configuration productions will do this when necessary (which is only when configuration rules change).
For a more verbose result, including default values and requirements, add the -v debugging option to the command that make generates. (If this doesn't match what you remeber, it's OK; the debugging option was -d in pre-1.0.0 versions of CML2.) You can do it this way:
Next, try `make ttyconfig' to see the line-oriented mode. The line-oriented mode is intended to be used as a configuration debugger; adding the -v option to the command (with `make CONFIGOPTS=-v ttyconfig') will tell you a lot about what the interpreter is doing.
You can try via `make menuconfig' to test the curses mode. This is the one I expect people will use the most.
Run via `make xconfig' to test the Tkinter mode.
The rules files (.cml extension) will be distributed through your kernel tree near the code and drivers they configure. One or more of them is yours. Find them and try to grok what's going on with them.
Do a bunch of configurations. Try weird stuff -- stress-test the constraint machinery. Use the line-oriented `make ttyconfig' mode for this; it makes the debugging output easiest to read.
Remember that you can write out partial configurations with `s' and read them back in with the `i' command, so you don't have to re-do your boilerplate multiple times. Also remember the `g' command that lets you go straight to your piece after you've set up stuff like architecture and system buses (possibly with an `i').
Finally, be aware of the (undocumented) `e' command in the curses and tty modes, with which you can examine the state of any symbol at any time.
You can run the curses mode with 2>LOG to capture debug output from it.
Until CML1 is scrapped and the CML2 rules files owned by different maintainers, I'll need you to keep me up to date on the changes you're making to your CML1 files so I can keep the CML2 rulebase current.
Here is the current state of the transition:
There are 48 identified configuration subsystems. 5 have been certified. Maintainers for 19 others have confirmed and 3 others are testing. The table below covers every nonempty configuration file in the CML1 corpus at the time of the most recent CML2 release.
Maintainer | Subsystem | Files | Status |
Urban Widmark Andrzej Krzysztofowicz |
NLS configuration | fs/nls/Config.in |
certified 12 Jun 2000 |
Niibe Yutaka | SuperH port | arch/sh/config.in |
certified 26 Jun 2000 |
Simon Vogl | I2C configuration | drivers/i2c/Config.in |
certified 30 Jun 2000 |
Andreas Bombe | IEEE394 configuration | drivers/ieee1394/Config.in |
certified 13 Jul 2000 |
Randy Dunlap | USB configuration | drivers/usb/Config.in |
certified 24 Jul 2000 |
Theodore Y. Ts'o | File-system configuration |
fs/Config.in fs/partitions/Config.in |
- |
Petr Vandrovec | NCP configuration | fs/ncpfs/Config.in | confirmed |
Matthias Welwarsky | AX25 configuration | net/ax25/Config.in | - |
Steven Whitehouse | Decnet configuration | net/decnet/Config.in | confirmed |
David S. Miller Andi Kleen Alexey Kuznetsov |
TCP/IP support |
net/Config.in net/ipv4/Config.in net/ipv6/Config.in net/sched/Config.in drivers/net/Config.in |
- |
Rusty Russell | IPv4 netfilter configuration | net/ipv4/netfilter/Config.in | confirmed |
Phil Blundell | IPv6 netfilter configuration | net/ipv6/netfilter/Config.in | confirmed |
Jay Schulist | IPX support | net/ipx/Config.in | confirmed |
Dag Brattli | IRDA configuration |
net/irda/Config.in net/irda/compressors/Config.in net/irda/ircomm/Config.in net/irda/irlan/Config.in drivers/net/irda/Config.in drivers/net/irnet/Config.in |
confirmed |
Arjan van de Ven | KHTTPD configuration | net/khttpd/Config.in | testing |
Jaspreet Singh | WAN configuration | drivers/net/wan/Config.in | - |
Alan Cox | Alan holds up the earth |
drivers/sound/Config.in |
testing |
Geert Uytterhoven | DMA sound and video |
drivers/sound/dmasound/Config.in drivers/video/Config.in |
- |
Boji T Kannanthanam | I20 support |
drivers/i2o/Config.in |
- |
Mike Phillips | Responsible |
drivers/net/tokenring/Config.in |
- |
Joerg Reuter | ham-radio configuration | drivers/net/hamradio/Config.in | - |
David Woodhouse | ARCnet configuration | drivers/mtd/Config.in drivers/net/arcnet/Config.in | confirmed |
David Hinds | PCMCIA configuration |
drivers/net/pcmcia/Config.in drivers/char/pcmcia/Config.in drivers/scsi/pcmcia/Config.in drivers/pcmcia/Config.in |
- |
Jay Schulist | Appletalk configuration | drivers/net/appletalk/Config.in | confirmed |
Tim Waugh | Parallel-port and parallel-IDE configuration |
drivers/parport/Config.in drivers/block/paride/Config.in |
testing |
Theodore Ts'o | Character-device configuration | drivers/char/Config.in | - |
Claus-Justus Heine | Floppy-tape configuration | drivers/char/ftape/Config.in | - |
Vojtech Pavlik | Joystick configuration | drivers/char/joystick/Config.in | confirmed |
linux-scsi@vger.rutgers.edu | SCSI configuration | drivers/scsi/Config.in | - |
Martin Mares | PCI configuration | drivers/pci/Config.in | - |
Jens Axboe | CD-ROM configuration | drivers/cdrom/Config.in | confirmed |
Fritz Elfert | ISDN configuration | drivers/isdn/Config.in | - |
David S. Miller | Sun SBUS configuration |
drivers/sbus/char/Config.in drivers/sbus/audio/Config.in |
- |
Andre Hedrick | Block and IDE configuration |
drivers/block/Config.in drivers/ide/Config.in |
confirmed |
Jaroslav Kysela | PNP configuration | drivers/pnp/Config.in | - |
Jakub Jelinek | Fiber Channel configuration | drivers/fc4/Config.in | - |
Russell King | ARM port |
drivers/acorn/scsi/Config.in drivers/acorn/block/Config.in drivers/acorn/net/Config.in arch/arm/config.in |
confirmed |
Werner Almesberger | ATM configuration | drivers/atm/Config.in | confirmed |
Ed Okerson | Telephony configuration | drivers/telephony/Config.in | confirmed |
Martin Schwidefsky | S390 port | arch/s390/Config.in | confirmed |
Linus Torvalds | 386 port | arch/i386/Config.in | - |
Richard Henderson | alpha port | arch/alpha/Config.in | confirmed |
David S. Miller | SPARC port |
arch/sparc/Config.in arch/sparc64/Config.in |
- |
Ralf Baechle | MIPS64 port |
arch/mips/config.in arch/mips64/config.in drivers/sgi/Config.in |
confirmed |
Cort Dougan | PowerPC port |
arch/ppc/config.in arch/ppc/8xx_io/Config.in arch/ppc/8260_io/Config.in |
confirmed |
Jes Sørensen | M68K port | arch/m68k/config.in | - |
Walt Drummond | IA64 port | arch/ia64/config.in arch/parisc/config.in | - |
Back to Eric's Home Page | Up to Site Map | $Date: 2001/04/10 00:12:08 $ |