Simple script and config (type-safe) for building custom Linux kernels for Firecracker MicroVMs

setup nix flakes

+60
+27
flake.lock
··· 1 + { 2 + "nodes": { 3 + "nixpkgs": { 4 + "locked": { 5 + "lastModified": 1753939845, 6 + "narHash": "sha256-K2ViRJfdVGE8tpJejs8Qpvvejks1+A4GQej/lBk5y7I=", 7 + "owner": "nixos", 8 + "repo": "nixpkgs", 9 + "rev": "94def634a20494ee057c76998843c015909d6311", 10 + "type": "github" 11 + }, 12 + "original": { 13 + "owner": "nixos", 14 + "ref": "nixos-unstable", 15 + "repo": "nixpkgs", 16 + "type": "github" 17 + } 18 + }, 19 + "root": { 20 + "inputs": { 21 + "nixpkgs": "nixpkgs" 22 + } 23 + } 24 + }, 25 + "root": "root", 26 + "version": 7 27 + }
+33
flake.nix
··· 1 + { 2 + description = "Dev environment with Linux build dependencies"; 3 + 4 + inputs = { 5 + nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; 6 + }; 7 + 8 + outputs = { self, nixpkgs, ... }: 9 + 10 + let 11 + system = "x86_64-linux"; 12 + pkgs = import nixpkgs { 13 + inherit system; 14 + }; 15 + in { 16 + devShells.${system}.default = pkgs.mkShell { 17 + buildInputs = with pkgs; [ 18 + curl 19 + git 20 + gcc 21 + flex 22 + bison 23 + ncurses.dev 24 + openssl.dev 25 + bc 26 + elfutils.dev 27 + pahole 28 + pkg-config 29 + perl 30 + ]; 31 + }; 32 + }; 33 + }