Kernel Compilation Configuration Guide
Principle
Within the kernel directory, the kernel configuration is set using kernel.config. This file is parsed in a manner similar to a TOML file, and then the configuration of each module's d.config is parsed to determine the status of features.
Example
kernel.config
toml
[[module.include]]
name = "init"
path = "src/init/"
enable = "y"
description = ""
[[module.include]]
name = "mm"
path = "src/mm/"
enable = "y"
description = ""- [[module.include]]: Adds the module to the include list
- name: Module name
- path: Module path, where the
d.configfile is located - enable:
- y: Enabled, parse the
d.configfile of the module - n: Disabled, do not parse
- y: Enabled, parse the
- description: Description of the module
src/mm/d.config
toml
[module]
name = "mm"
description = ""
[[module.include]]
name = "allocator"
path = "src/mm/allocator/"
enable = "y"
description = ""
[[module.features]]
name = "mm_debug"
enable = "y"
description = ""- [module]: Current module
- name: Name of the current module
- description: Description of the module
- [[module.include]]: Modules included in the current module, same as in
kernel.config - [[module.features]]: Features in the current module
- name: Feature name
- enable: Whether the feature is enabled
- y: Enabled
- n: Disabled
- description: Description of the feature
The following are the d.config files of other modules:
src/mm/allocator/d.config
toml
[module]
name = "allocator"
description = ""
[[module.features]]
name = "allocator_debug"
enable = "y"
description = ""src/init/d.config
toml
[module]
name = "init"
description = ""
[[module.features]]
name = "init_debug"
enable = "y"
description = ""All features enabled in the d.config files of the activated modules will be ultimately generated into the D.config file in the kernel directory. That is, D.config is the final kernel compilation configuration, as follows:
D.config
init_debug = y
allocator_debug = y
mm_debug = y