Skip to content

Instant Linux kernel development environments via Nix devShells

License

Notifications You must be signed in to change notification settings

blitz/kernel-dev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

  • Simplicity: Forget about the hassle of managing multiple dependencies and their versions. One command is all it takes.
  • Reproducibility: With Nix flakes, your development environment is reproducible, ensuring that your setup is always consistent and predictable.
  • Version-specific environments: Tailored development environments for specific Linux kernel versions, starting with Linux 6.8.
  • Rust and LLVM-enabled: Ready for the future of kernel development!

Requirements

  • Nix package manager with flake support enabled.

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.

About

Instant Linux kernel development environments via Nix devShells

Topics

Resources

License

Stars

Watchers

Forks