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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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