Quick and dirty miniconfig howto, with feature suggestions.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



--- What is a miniconfig?

A new feature of 2.6.15 lets you use miniature configuration files, listing 
just the symbols you want to enable and letting the configurator enable any 
dependencies to give you a valid configuration.

To make it work, create a mini.config file and run allnoconfig (to create 
a .config file with all unspecified symbols switched off) with the extra 
argument "KCONFIG_ALLCONFIG=mini.config".

--- Advantages of miniconfigs

Miniconfigs have several advantages over conventional configuration files:

 * They're portable between versions.  A miniconfig from linux 2.6.15 will
   probably build an equivalent 2.6.16 kernel.

 * It's easy to see exactly what features have been specified.

 * Miniconfigs are flexible and human editable, while generated .config files
   are brittle and easy to break if you try to edit them.  (And if you
   redirect the output > /dev/null so you just see stderr, it'll show you
   any unrecognized symbols it couldn't set due to typos.)

--- Real-world example.

Here's the mini.config I use to build User Mode Linux:

CONFIG_MODE_SKAS=y
CONFIG_BINFMT_ELF=y
CONFIG_HOSTFS=y
CONFIG_SYSCTL=y
CONFIG_STDERR_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_UBD=y
CONFIG_TMPFS=y
CONFIG_SWAP=y
CONFIG_LBD=y
CONFIG_EXT2_FS=y
CONFIG_PROC_FS=y

And here's how I build and test it (as a normal user, not as root):

# Configure, building in an external directory and using a mini.config file in
# my home directory.

make KCONFIG_ALLCONFIG=~/mini.config ARCH=um O=../linux-umlbuild allnoconfig

# change to build directory and build User Mode Linux

cd ../linux-umlbuild
make ARCH=um

# Test run

./linux rootfstype=hostfs rw init=/bin/sh
$ whoami
$ mount -t proc /proc /proc
$ cat /proc/cpuinfo
$ exit

--- Suggestions.

1) Add a "make miniconfig" which works like allnoconfig but A) takes 
mini.config as its' default name, B) redirects stdout to /dev/null to make it 
easier to spot typoed symbols, C) aborts (exits with an error, does not write 
new .config) if mini.config isn't found or if it contains an unrecognized 
symbol.

2) Fix the interaction with O= so that it looks for the mini.config file in 
the O= directory and not the source directory, so people don't _have_ to 
specify KCONFIG_ALLCONFIG when building out of tree.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux