A generator of (minimal) Linux kernel configuration files.
Project description
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
Built Distribution
Hashes for kconfgen-1.2.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6aa01ff4c193108ae63aaafe1d4a30f9f94c9e96526ec037059eff19f03a9502 |
|
MD5 | 72d64825cee88fc2fc0e965432b110b4 |
|
BLAKE2b-256 | 4efe47d86f123d59a0bdd9b4b913b5c7bf73e63da9262b2450e6300c6547740c |