blitz / kernel-dev

Instant Linux kernel development environments via Nix devShells
MIT License
12 stars 0 forks source link
flakes linux nix rust

Linux Kernel Development Environment via Nix

Welcome to a streamlined Linux kernel development setup using Nix flakes. This project simplifies the process of setting up a development environment for the Linux kernel, ensuring that you have all the necessary dependencies, including specific versions of Rust and bindgen, preinstalled in a devShell.

Quick Start

Getting started with your kernel development environment is incredibly simple. If you're aiming to develop for Linux version 6.8, all you need is a single command:

linux$ nix develop github:blitz/kernel-dev#linux_6_8

This will drop you into a shell with all the dependencies required for working on the Linux 6.8 kernel preinstalled.

Features

Requirements

Usage

To start developing for a different version of the Linux kernel, use the following pattern, replacing linux_6_8 with the target version (note: versions are added based on community contributions and demand):

$ nix develop github:blitz/kernel-dev#linux_<major_version>_<minor_version>

This will drop you in a shell with clang and rustc matching the kernel version. If you need a gcc-based environment, use:

$ nix develop github:blitz/kernel-dev#linux_<major_version>_<minor_version>_gcc

If you don't find the exact version that you need, one that is close might work as well.

Contributing

Contributions are welcome! Whether it's adding support for new kernel versions, improving the setup process, or documentation - feel free to fork the project and submit a pull request.

License

This project is open source and available under the MIT License.