Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

A generator of (minimal) Linux kernel configuration files.

Project description Latest Version Supported Python versions Wheel status License

kconfgen is a tool to manage Linux kernel configuration files.

It enables users to:

  • Assemble kernel configuration files from fragments;
  • Ensure that only minimal lists of flags are kept in version control;
  • Split a single kernel configuration file in fragments by topic.


kconfgen merge

Assemble a .config file from a set of (minimal) definitions

kconfgen merge \
  --kernel=/usr/src/linux-4.19.57 --arch=x86 \ defconfig.crypto defconfig.laptop > .config

It is also possible to generate a defconfig file, which contains only the minimal set of flags to get to the provided .config file:

kconfgen merge \
  --kernel=/usr/src/linux-4.19.57 --arch=x86 \
  --minimal \ defconfig.crypto defconfig.laptop > some_host.defconfig

kconfgen split

Split a .config file into a set of minimal definitions, based on their sections:

kconfgen split \
  --kernel=/usr/src/linux-4.19.57 --arch=x86 \
  --sections="net crypto fs" \
  ./fragments/ < ./.config

ls fragments/

It is also possible to split by maximal section size:

kconfgen split \
  --kernel=/usr/src/linux-4.19.57 --arch=x86 \
  --max-symbols=20 \
  ./fragments/ < ./.config

ls fragments/

kconfgen assemble

Assemble a defconfig file for a specific profile:

kconfgen assemble \
  --kernel=/usr/src/linux-4.19.57 \
  some-profile > defconfig

The list of profiles and the defconfig files to use for them is listed in a toml file:

[ profile.example ]
arch = "x86"
include = [ "core", "server" ]
extras = [ "defconfig.example", "defconfig.wifi_intel" ]

[ include.core ]
files = [ "defconfig.crypto", "defconfig.fs" ]

[ include.server ]
files = [ "", "defconfig.net_netfilter" ]

It is also possible to dynamically include more sections:

# Don't forget the `--` to separate the profile from extra includes
kconfgen assemble \
    --kernel=/usr/src/linux-4.19.57 \
    --include sound wireless \
    -- some-profile > defconfig

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for kconfgen, version 1.2.2
Filename, size File type Python version Upload date Hashes
Filename, size kconfgen-1.2.2-py2.py3-none-any.whl (7.2 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size kconfgen-1.2.2.tar.gz (13.5 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page