summaryrefslogtreecommitdiff
path: root/scripts/kconfig/lkc_overview
Unidiff
Diffstat (limited to 'scripts/kconfig/lkc_overview') (more/less context) (ignore whitespace changes)
-rw-r--r--scripts/kconfig/lkc_overview111
1 files changed, 111 insertions, 0 deletions
diff --git a/scripts/kconfig/lkc_overview b/scripts/kconfig/lkc_overview
new file mode 100644
index 0000000..e9db60e
--- a/dev/null
+++ b/scripts/kconfig/lkc_overview
@@ -0,0 +1,111 @@
1Introduction
2------------
3
4The configuration database is collection of configuration options
5organized in a tree structure:
6
7 +- Code maturity level options
8 | +- Prompt for development and/or incomplete code/drivers
9 +- General setup
10 | +- Networking support
11 | +- System V IPC
12 | +- BSD Process Accounting
13 | +- Sysctl support
14 +- Loadable module support
15 | +- Enable loadable module support
16 | +- Set version information on all module symbols
17 | +- Kernel module loader
18 +- ...
19
20Every entry has its own dependencies. These dependencies are used
21to determine the visible of an entry. Any child entry is only
22visible if its parent entry is also visible.
23
24Menu entries
25------------
26
27A single configuration option is defined like this:
28
29config MODVERSIONS
30 bool "Set version information on all module symbols"
31 depends MODULES
32 help
33 Usually, modules have to be recompiled whenever you switch to a new
34 kernel. ...
35
36Every line starts with a key word and can be followed by multiple arguments.
37"config" starts a new config entry. The following lines define attributes
38for this config option. Attributes can be the type of the config option,
39input prompt, dependencies, help text and default values. A config option
40can be defined multiple times, but every definition can have only a single
41input prompt and the type must not conflict.
42
43Menu dependencies
44-----------------
45
46Dependencies define the visibility of a menu entry. When a dependency
47exprecession evaluates not to 'n', the entry is visible. Additionally
48the dependency limits the input range of tristate choice symbols.
49
50Menu structure
51--------------
52
53The position of a menu entry in the tree is determined in two ways. First
54it can be specified explicitely:
55
56menu "Network device support"
57 depends NET
58
59config NETDEVICES
60 ...
61
62endmenu
63
64All entries within the "menu" ... "endmenu" block become a submenu of
65"Processor type and features". All subentries have the same dependencies
66than the menu entry, e.g. this means the dependency "NET" is added to the
67dependencies of the option NETDEVICES.
68The other way to generate the menu structure is done by analyzing the
69dependencies. If a menu entry somehow depends on the previous entry, it
70can be made a submenu of it.
71
72config MODULES
73 bool "Enable loadable module support"
74
75config MODVERSIONS
76 bool "Set version information on all module symbols"
77 depends MODULES
78
79comment "module support disabled"
80 depends !MODULES
81
82MODVERSIONS directly depends on MODULES, this means it's only visible if
83MODULES is different from 'n'. The comment on the other hand is always
84visible when MODULES it's visible (the dependency of MODULES are part
85of the comment dependencies).
86
87Menu attributes
88---------------
89
90A menu attribute can have a number of attributes. Not all of them are
91applicable everywhere (see spec).
92Input prompt: Every menu entry can have at most one menu entry, which
93is used to display to the user. An input prompt is either defined with
94"prompt" or it can be defined with the type.
95Type definition: Every config option must have a type, known types are
96currently: bool, tristate, string, hex, integer.
97Default value: It's possible to assign a config option a default value.
98This default is always used, when the option wasn't explicitly set by
99the user. This means it's either used as default value for input prompts
100or the value is saved to the kernel configuration. Multiple default
101values can be specified and every one has it's own dependencies. If
102multiple default values are visible, the first defined one is active.
103A default is not limited to a single menu entry, this means the default
104doesn't has to be defined with a input prompt, but it can also be
105overridden by prepend it with another definition.
106Dependencies: Dependencies can be either defined with "depends", then
107there are applied to all attributes of a menu entry, or attribute
108specific dependencies can be defined with "if", which immediately
109follows the attribute.
110
111