network/nix/nixos-module/container/netboot.nix

26 lines
1.0 KiB
Nix

{ pkgs, ... }:
let
netboot_xyz_efi = pkgs.fetchurl {
url = "https://github.com/netbootxyz/netboot.xyz/releases/download/2.0.40/netboot.xyz.efi";
sha256 = "1gvgvlaxhjkr9i0b2bjq85h12ni9h5fn6r8nphsag3il9kificcc";
};
netboot_xyz_kpxe = pkgs.fetchurl {
url = "https://github.com/netbootxyz/netboot.xyz/releases/download/2.0.40/netboot.xyz.kpxe";
sha256 = "1crkr995i1hv3q548gx2xan1ymxmzcnr7mxaf77s2410mpqfcx82";
};
tftpRoot = pkgs.runCommand "tftproot" {} ''
mkdir -p $out
ln -s ${netboot_xyz_efi} $out/netboot.xyz.efi
ln -s ${netboot_xyz_kpxe} $out/netboot.xyz.kpxe
cp -rs ${pkgs.raspberrypifw}/share/raspberrypi/boot/* $out/
echo "kernel=kernel8.img" > $out/config.txt
echo "dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/nfs nfsroot=172.22.99.20:/mnt/cephfs/c3d2/hosts/rpi-nfsroot,nolock,vers=3 nfsrootdebug ro rootwait ip=dhcp rootfstype=nfs verbose" > $out/cmdline.txt
'';
in
{
services.atftpd = {
enable = true;
root = tftpRoot;
};
}