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 \
  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", "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.

Source Distribution

kconfgen-1.2.2.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

kconfgen-1.2.2-py2.py3-none-any.whl (7.2 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: kconfgen-1.2.2.tar.gz
  • Upload date:
  • Size: 13.5 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.10

File hashes

Hashes for kconfgen-1.2.2.tar.gz
Algorithm Hash digest
SHA256 3d4c6490ca2fafb2a35e11ee061629a52061c8c6f7ebb4f3b056ee6f2b50934d
MD5 93dd14230624ebaaa1023d8ec439ee02
BLAKE2b-256 e9edec87f2e209d2a5e5017f4d88ecfaa8d7be34c564381c9afd2e22f868389d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: kconfgen-1.2.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 7.2 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.10

File hashes

Hashes for kconfgen-1.2.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 6aa01ff4c193108ae63aaafe1d4a30f9f94c9e96526ec037059eff19f03a9502
MD5 72d64825cee88fc2fc0e965432b110b4
BLAKE2b-256 4efe47d86f123d59a0bdd9b4b913b5c7bf73e63da9262b2450e6300c6547740c

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