Skip to main content

A tool to autodetect and manage kernel configuration options

Project description



autokernel

Quick start guide | Documentation | Gitter Chat

PyPI MIT License Docs Gitter

About autokernel

Autokernel is primarily a kernel configuration management tool. Its main purpose is to generate a kernel .config file from a more formal description of your configuration. To help you writing the configuration, it comes with some helpful features:

  • Detect kernel options for your system (based on information from /sys)
  • Manage the kernel configuration in a more structured and sane way. Option conflict detection and conditional expressions for configuration statements allow writing a sound and modular configuration that can be used with multiple kernel versions.
  • Build the kernel (and initramfs) and install them on the system

You may use it for any combination of the above, There is no need to use it as a build system if you only want to detect options for your device.

Please have a look at the Introduction section from the documentation, which explains more about what this tool is designed for, and how it works.

Detecting kernel options Automatically satisfying a kernel option
asciicast asciicast

Quick start

To get started right away, please check out the Quick start guide. For in-depth command explanations, visit the Usage section.

Installation

You can use pip to install autokernel, or run from source:

pip

pip install autokernel

From source

git clone "https://github.com/oddlama/autokernel.git"
cd autokernel
pip install -r requirements.txt
./bin/autokernel.py --help

Afterwards you should run autokernel setup once to create a default configuration in /etc/autokernel.

Kernel hardening

A special note if you are interested in hardening your kernel: Be aware that autokernel provides a preconfigured module for kernel hardening (hardening.conf), which is compatible with any kernel version >= 4.0. Every choice is also fully documented and explanined. Feel free to adjust it to your needs.

Acknowledgements

I would like to especially thank the following projects and people behind them:

  • kconfiglib for the awesome python library to load and process Kconfig files, whithout which this project would have been impossible.
  • sympy for the sophisitcated symbolic logic solver
  • lark for the great parsing library
  • LKDDb for providing the awesome Linux Kernel Driver Database (which is used for option detection)
  • KSSP for the great list of kernel hardening options
  • CLIP OS for their well documented and well chosen kernel options
  • kconfig-hardened-check for the collection of options from several kernel hardening resources

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

autokernel-0.9.9.tar.gz (96.0 kB view details)

Uploaded Source

Built Distribution

autokernel-0.9.9-py3-none-any.whl (66.4 kB view details)

Uploaded Python 3

File details

Details for the file autokernel-0.9.9.tar.gz.

File metadata

  • Download URL: autokernel-0.9.9.tar.gz
  • Upload date:
  • Size: 96.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.9.1

File hashes

Hashes for autokernel-0.9.9.tar.gz
Algorithm Hash digest
SHA256 405959337a58f9a9d7e89a5ba211e7e22b16b3c1fac0ba29c3683ba55625cc45
MD5 bffa7143c5eb1d5e058d9ba495b296bd
BLAKE2b-256 95efbda0c939d3d5724367812ecf29f3bf5eabc9926ffadcd6abed2622ac8b00

See more details on using hashes here.

File details

Details for the file autokernel-0.9.9-py3-none-any.whl.

File metadata

  • Download URL: autokernel-0.9.9-py3-none-any.whl
  • Upload date:
  • Size: 66.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.9.1

File hashes

Hashes for autokernel-0.9.9-py3-none-any.whl
Algorithm Hash digest
SHA256 f744e462632b0d6c67783c57449ff8fe376eb50efac75c56de537d150edc7c87
MD5 49d56c253032bb09acfb613a1899c580
BLAKE2b-256 bea15298d8eba5701c60734b8725bf9b9128e338ca155cc7336475b8b017003b

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