diff --git a/introduction/welcome/conventions-kernel.xml b/introduction/welcome/conventions-kernel.xml
new file mode 100644
index 0000000000..e7eb4ca503
--- /dev/null
+++ b/introduction/welcome/conventions-kernel.xml
@@ -0,0 +1,15 @@
+
+
+
+Master section --->
+ Subsection --->
+ [*] Required parameter [REQU_PAR]
+ <*> Required parameter (not as module) [REQU_PAR_NMOD]
+ <*/M> Required parameter (could be a module) [REQU_PAR_MOD]
+ <M> Required parameter (as a module) [REQU_PAR_MOD_ONLY]
+ < /*/M> Optional parameter [OPT_PAR]
+ < /M> Optional parameter (as a module if enabled) [OPT_PAR_MOD_ONLY]
+ [ ] Incompatible parameter [INCOMP_PAR]
+ < > Incompatible parameter (even as module) [INCOMP_PAR_MOD]
diff --git a/introduction/welcome/conventions.xml b/introduction/welcome/conventions.xml
index d6992ed9a4..096f421fc6 100644
--- a/introduction/welcome/conventions.xml
+++ b/introduction/welcome/conventions.xml
@@ -135,18 +135,14 @@ EOF
Some packages require specific kernel configuration options.
The general layout for these looks like this:
-Master section --->
- Subsection --->
- [*] Required parameter [CONFIG_REQU_PAR]
- <*> Required parameter (not as module) [CONFIG_REQU_PAR_NMOD]
- <*/M> Required parameter (could be a module) [CONFIG_REQU_PAR_MOD]
- <*/M/ > Optional parameter [CONFIG_OPT_PAR]
- [ ] Incompatible parameter [CONFIG_INCOMP_PAR]
- < > Incompatible parameter (even as module) [CONFIG_INCOMP_PAR_MOD]
+
- [CONFIG_...] on the right gives the name of the option, so you can
- easily check whether it is set in your .config file.
- The meaning of the various entries is:
+ [...] on the right gives the symbolic name of the option, so you
+ can easily check whether it is set in your .config
+ file. Note that the .config file contains a
+ CONFIG_ prefix before all symbolic names. The
+ meaning of the various entries is:
@@ -187,13 +183,36 @@ EOF
it must be selected, either as built-in or as a module
+
+
+ Required parameter (as
+ a module)
+
+
+ the option can be built-in, a module, or not selected:
+ it must be selected as a module; selecting it as built-in
+ may cause unwanted effects
+
+
Optional parameter
- rarely used: the option can be built-in, a module, or not
- selected: it may be set any way you wish
+ the option can be built-in, a module, or not
+ selected: it may be selected as a module or built-in if you
+ need it for driving the hardware or optional kernel features
+
+
+
+
+ Optional parameter
+
+
+ the option can be built-in, a module, or not
+ selected: it may be selected as a module if you need it
+ for driving the hardware or optional kernel features, but
+ selecting it as built-in may cause unwanted effects
@@ -224,6 +243,13 @@ EOF
The help text describing the option specifies the other selections on which this
option relies, and how those other selections are set.
+
+ The letter in blue is the hotkey
+ for this option. If you are running
+ make menuconfig, you can press a key to quickly
+ traverse all the options with this key as the hotkey on the screen.
+
+
diff --git a/kernel-config/Makefile b/kernel-config/Makefile
index 56ec83ed7c..424c960d84 100644
--- a/kernel-config/Makefile
+++ b/kernel-config/Makefile
@@ -5,7 +5,7 @@ ifeq ($(KERNEL_TREE),)
$(error "must set KERNEL_TREE=/path/to/kernel/source")
endif
-all: $(OUTPUT)
+all: $(OUTPUT) ../introduction/welcome/conventions-kernel.xml
kernel.version: s-kernel-version; @true
s-kernel-version: Makefile kernel_version.py
@@ -17,3 +17,6 @@ s-kernel-version: Makefile kernel_version.py
../%-kernel.xml: %.toml kernel-config.py kernel_version.py kernel.version
./kernel-config.py $(KERNEL_TREE) $< > $@
+
+../introduction/welcome/conventions-kernel.xml: kernel-config.py testdata/Kconfig testdata/config.toml.example
+ ./kernel-config.py testdata testdata/config.toml.example > $@
diff --git a/kernel-config/kernel-config.py b/kernel-config/kernel-config.py
index 52a9b50c19..e9b33390bb 100755
--- a/kernel-config/kernel-config.py
+++ b/kernel-config/kernel-config.py
@@ -301,9 +301,6 @@ for i0, val, i1, title, arrow, key, menu, comment in r:
buf += [line.rstrip()]
-import kernel_version
-kver = kernel_version.kernel_version(path)
-
from jinja2 import Template
t = Template('''
diff --git a/kernel-config/testdata/Kconfig b/kernel-config/testdata/Kconfig
new file mode 100644
index 0000000000..079c0e985a
--- /dev/null
+++ b/kernel-config/testdata/Kconfig
@@ -0,0 +1,31 @@
+menu "Master section"
+
+menu "Subsection"
+
+config REQU_PAR
+ bool "Required parameter"
+
+config REQU_PAR_NMOD
+ tristate "Required parameter (not as module)"
+
+config REQU_PAR_MOD
+ tristate "Required parameter (could be a module)"
+
+config REQU_PAR_MOD_ONLY
+ tristate "Required parameter (as a module)"
+
+config OPT_PAR
+ tristate "Optional parameter"
+
+config OPT_PAR_MOD_ONLY
+ tristate "Optional parameter (as a module if enabled)"
+
+config INCOMP_PAR
+ bool "Incompatible parameter"
+
+config INCOMP_PAR_MOD
+ tristate "Incompatible parameter (even as module)"
+
+endmenu # subsection
+
+endmenu # master section
diff --git a/kernel-config/testdata/config.toml.example b/kernel-config/testdata/config.toml.example
new file mode 100644
index 0000000000..49a543a241
--- /dev/null
+++ b/kernel-config/testdata/config.toml.example
@@ -0,0 +1,8 @@
+REQU_PAR='*'
+REQU_PAR_NMOD='*'
+REQU_PAR_MOD='*M'
+OPT_PAR='*M '
+INCOMP_PAR=' '
+INCOMP_PAR_MOD=' '
+REQU_PAR_MOD_ONLY='M'
+OPT_PAR_MOD_ONLY=' M'