8

Click here to load reader

Kernel Recipes 2013 - kconfig-frontends, a packaging of the kconfig parser and frontends

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: Kernel Recipes 2013 - kconfig-frontends, a packaging of the kconfig parser and frontends

2013-09-25 (C) 2013 Yann E. MORIN 1

Kernel Recipes - September 2013 – kconfig-frontends

kconfig-frontends

A packaging of the kconfig parser and frontends

Yann E. [email protected]

http://ymorin.is-a-geek.org/

Page 2: Kernel Recipes 2013 - kconfig-frontends, a packaging of the kconfig parser and frontends

2013-09-25 (C) 2013 Yann E. MORIN 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)

Page 3: Kernel Recipes 2013 - kconfig-frontends, a packaging of the kconfig parser and frontends

2013-09-25 (C) 2013 Yann E. MORIN 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

Page 4: Kernel Recipes 2013 - kconfig-frontends, a packaging of the kconfig parser and frontends

2013-09-25 (C) 2013 Yann E. MORIN 4

Kernel Recipes - September 2013 - kconfig-frontends

Kconfig frontends

➢line-oriented 'conf'

➢curses-based 'mconf' and 'nconf'

➢Qt-based 'qconf'

➢GTK-based 'gconf'

Page 5: Kernel Recipes 2013 - kconfig-frontends, a packaging of the kconfig parser and frontends

2013-09-25 (C) 2013 Yann E. MORIN 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

Page 6: Kernel Recipes 2013 - kconfig-frontends, a packaging of the kconfig parser and frontends

2013-09-25 (C) 2013 Yann E. MORIN 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

Page 7: Kernel Recipes 2013 - kconfig-frontends, a packaging of the kconfig parser and frontends

2013-09-25 (C) 2013 Yann E. MORIN 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

Page 8: Kernel Recipes 2013 - kconfig-frontends, a packaging of the kconfig parser and frontends

2013-09-25 (C) 2013 Yann E. MORIN 8

Kernel Recipes - September 2013 - kconfig-frontends

Thank you!

Questions?

Yann E. [email protected]

http://ymorin.is-a-geek.org/

License for this paper: Creative Commons BY-SA 3.0Source for this paper: http://ymorin.is-a-geek.org/publis/KernelRecipes/2013