Skip to main content

A generator of (minimal) Linux kernel configuration files.

Project description

https://secure.travis-ci.org/rbarrois/kconfgen.svg?branch=master 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.

Usage:

kconfgen merge

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

kconfgen merge \
  --kernel=/usr/src/linux-4.19.57 --arch=x86 \
  defconfig.net 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.net 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/
  defconfig.net
  defconfig.crypto
  defconfig.fs
  defconfig

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/
  defconfig.net
  defconfig.net_netfilter
  defconfig.crypto
  defconfig.drivers
  defconfig

kconfgen assemble

Assemble a defconfig file for a specific profile:

kconfgen assemble \
  --kernel=/usr/src/linux-4.19.57 \
  --profiles=profiles.toml \
  some-profile > .config

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", "defconfig.net_netfilter" ]

Project details


Download files

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

Source Distribution

kconfgen-1.1.0.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

kconfgen-1.1.0-py2.py3-none-any.whl (6.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file kconfgen-1.1.0.tar.gz.

File metadata

  • Download URL: kconfgen-1.1.0.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.9

File hashes

Hashes for kconfgen-1.1.0.tar.gz
Algorithm Hash digest
SHA256 83c0c5ef3d365e0eb4b7195bcf0b9f01736fc93da6386c9354ef4740174f7a3d
MD5 2811a184b4102dcdd0c4a1f98d2a9d61
BLAKE2b-256 27d8a49d97b4aca9767ad90572293630de50c405e9d9654bf20fc2ee58d8dced

See more details on using hashes here.

File details

Details for the file kconfgen-1.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: kconfgen-1.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.9

File hashes

Hashes for kconfgen-1.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ae87fb1ebbbc2a770eed25cf019b4cafb9f753c42b0e9ca814099be67af9b66d
MD5 16bd83178bee73f249097ea697ff6796
BLAKE2b-256 8af21696b8fd9c8fdea75e3031c17a1313d1c7b05b46d9bda040d2c2736fd3d2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page