Kernel hacking

Fire up your NixOS workhose and let's get to work:

# Fetch all the goodies
git clone -b devel https://github.com/vpsfreecz/vpsadminos
cd vpsadminos && git clone -b vpsadminos_dev https://github.com/vpsfreecz/nixpkgs

# set $NIX_PATH so that we have <nixpkgs/..> and <vpsadminos/...> both working:
export NIX_PATH="nixpkgs=`pwd`/nixpkgs:vpsadminos=`pwd`"

# Create temporary unpack path and jump to it
mkdir -p ~/tmp/kernel-dev; cd ~/tmp/kernel-dev

# Enter nix-shell with the package environment
nix-shell -E "with import <nixpkgs> {}; (callPackage <vpsadminos/os/packages/linux/default.nix> {}).overrideAttrs(old:  {nativeBuildInputs=old.nativeBuildInputs ++ [ pkgconfig ncurses ];})"

# unpack the sources
unpackPhase

# go to the unpacked dir
cd linux-*

# to apply currently defined patches
patchPhase

# now you can generate new .config with
make menuconfig

# and run build
buildPhase

To be able to generate patches easily cloning the Linux kernel repository and checking out the correct tag might work better for you - you can still use nix-shell command from the previous section to create build environment.