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'