The configuration language used by the Linux kernel, known as kconfig, has gained some traction in the community, and is increasingly used by third-party projects. The kconfig-frontends package aims at centralising the effort of keeping an up-to-date, out of the Linux source tree, packaging of the kconfig infrastructure, ready for use by third party projects.
The state of the project will be presented: what has been done so far, and ideas on future evolutions. Some kconfig tips and tricks will also be demonstrated.
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2013 - kconfig-frontends, a packaging of the kconfig parser and frontends
1. Kernel Recipes - September 2013 – kconfig-frontends
kconfig-frontends
A packaging of the kconfig parser and frontends
Yann E. MORIN
yann.morin.1998@free.fr
http://ymorin.is-a-geek.org/
2013-09-25
(C) 2013 Yann E. MORIN
1
2. Kernel Recipes - September 2013 - kconfig-frontends
Kconfig language overview
➢Configuration description language
➢Simple syntax & grammar
➢Limited number of types
➢booleans, tristates
➢strings, integers
➢Dependency tracking
➢reverse and direct
➢i18n ready (mostly)
2013-09-25
(C) 2013 Yann E. MORIN
2
3. Kernel Recipes - September 2013 - kconfig-frontends
Kconfig language overview
config FOO
bool
prompt "FOO device"
help
Support for FOO device.
config FOO_BAR
bool "Use BAR of the FOO"
depends on FOO
select GENERIC_BAR
help
Support BAR in FOO device.
config GENERIC_BAR
bool
2013-09-25
(C) 2013 Yann E. MORIN
3
4. Kernel Recipes - September 2013 - kconfig-frontends
Kconfig frontends
➢line-oriented 'conf'
➢curses-based 'mconf' and 'nconf'
➢Qt-based 'qconf'
➢GTK-based 'gconf'
2013-09-25
(C) 2013 Yann E. MORIN
4
5. Kernel Recipes - September 2013 - kconfig-frontends
Kconfig-frontends
➢Kconfig widely used outside the Linux kernel
➢busybox, uClibc
➢buildroot, PTXdist, openWRT, crosstool-NG
➢QEMU (pending)
➢make it easy for other projects to re-use
Kconfig with minimal maintenance burden
➢help them converge to a common set of
features
2013-09-25
(C) 2013 Yann E. MORIN
5
6. Kernel Recipes - September 2013 - kconfig-frontends
Kconfig-frontends
➢packaged using autotools
➢generates a library with the parser
➢shared by default
➢static optionally
➢builds all five frontends
➢ conf, mconf, nconf, qconf, gconf
➢linked to the parser library
➢builds utilities
➢ diff, merge, tweak, gettext
2013-09-25
(C) 2013 Yann E. MORIN
6
7. Kernel Recipes - September 2013 - kconfig-frontends
Kconfig-frontends
➢each frontend optional
➢utils may be ommitted
➢frontends and utils prefixed with kconfig➢set default behaviour
➢default options prefix instead of CONFIG_
➢default root menu
➢builds on Linux, Cygwin, *BSD
2013-09-25
(C) 2013 Yann E. MORIN
7
8. Kernel Recipes - September 2013 - kconfig-frontends
Thank you!
Questions?
Yann E. MORIN
yann.morin.1998@free.fr
http://ymorin.is-a-geek.org/
License for this paper: Creative Commons BY-SA 3.0
Source for this paper: http://ymorin.is-a-geek.org/publis/KernelRecipes/2013
2013-09-25
(C) 2013 Yann E. MORIN
8