diff options
| author | Gregor Kleen <gkleen@yggdrasil.li> | 2025-04-29 13:15:07 +0200 |
|---|---|---|
| committer | Gregor Kleen <gkleen@yggdrasil.li> | 2025-04-29 13:15:07 +0200 |
| commit | 4f3cbe56200b751bc8f9e0b3f6beabc1c0c44ff9 (patch) | |
| tree | 643a61a09e0b1942825382441bf9bfe9b632b4f3 /hosts | |
| parent | 0bc645ed2c97279c7a99a0227310647b3ccf8270 (diff) | |
| download | nixos-4f3cbe56200b751bc8f9e0b3f6beabc1c0c44ff9.tar nixos-4f3cbe56200b751bc8f9e0b3f6beabc1c0c44ff9.tar.gz nixos-4f3cbe56200b751bc8f9e0b3f6beabc1c0c44ff9.tar.bz2 nixos-4f3cbe56200b751bc8f9e0b3f6beabc1c0c44ff9.tar.xz nixos-4f3cbe56200b751bc8f9e0b3f6beabc1c0c44ff9.zip | |
...
Diffstat (limited to 'hosts')
| -rw-r--r-- | hosts/vidhar/network/dhcp/default.nix | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/hosts/vidhar/network/dhcp/default.nix b/hosts/vidhar/network/dhcp/default.nix index 22991094..f36d0c7f 100644 --- a/hosts/vidhar/network/dhcp/default.nix +++ b/hosts/vidhar/network/dhcp/default.nix | |||
| @@ -7,8 +7,7 @@ let | |||
| 7 | tftpIp = "10.141.0.1"; | 7 | tftpIp = "10.141.0.1"; |
| 8 | ipxe = pkgs.ipxe.override { | 8 | ipxe = pkgs.ipxe.override { |
| 9 | additionalTargets = { | 9 | additionalTargets = { |
| 10 | "bin-i386-efi/snponly.efi" = "i386-snponly.efi"; | 10 | "bin-i386-efi/ipxe.efi" = "i386-ipxe.efi"; |
| 11 | "bin-x86_64-efi/snponly.efi" = "snponly.efi"; | ||
| 12 | }; | 11 | }; |
| 13 | additionalOptions = [ | 12 | additionalOptions = [ |
| 14 | "NSLOOKUP_CMD" | 13 | "NSLOOKUP_CMD" |
| @@ -66,23 +65,23 @@ in { | |||
| 66 | option-data = [ | 65 | option-data = [ |
| 67 | { name = "vendor-class-identifier"; data = "HTTPClient"; } | 66 | { name = "vendor-class-identifier"; data = "HTTPClient"; } |
| 68 | ]; | 67 | ]; |
| 69 | boot-file-name = "${nfsrootBaseUrl}/snponly.efi"; | 68 | boot-file-name = "${nfsrootBaseUrl}/ipxe.efi"; |
| 70 | only-if-required = true; | 69 | only-if-required = true; |
| 71 | } | 70 | } |
| 72 | 71 | ||
| 73 | { name = "ipxe-uefi-64"; | 72 | { name = "ipxe-uefi-64"; |
| 74 | test = "option[77].hex == 'iPXE' and (substring(option[60].hex,0,20) == 'PXEClient:Arch:00007' or substring(option[60].hex,0,20) == 'PXEClient:Arch:00008' or substring(option[60].hex,0,20) == 'PXEClient:Arch:00009')"; | 73 | test = "option[77].hex == 'iPXE' and (substring(option[60].hex,0,20) == 'PXEClient:Arch:00007' or substring(option[60].hex,0,20) == 'PXEClient:Arch:00008' or substring(option[60].hex,0,20) == 'PXEClient:Arch:00009')"; |
| 75 | boot-file-name = "${nfsrootBaseUrl}/snponly.efi"; | 74 | boot-file-name = "${nfsrootBaseUrl}/ipxe.efi"; |
| 76 | only-if-required = true; | 75 | only-if-required = true; |
| 77 | } | 76 | } |
| 78 | { name = "ipxe-uefi-32"; | 77 | { name = "ipxe-uefi-32"; |
| 79 | test = "option[77].hex == 'iPXE' and (substring(option[60].hex,0,20) == 'PXEClient:Arch:00002' or substring(option[60].hex,0,20) == 'PXEClient:Arch:00006')"; | 78 | test = "option[77].hex == 'iPXE' and (substring(option[60].hex,0,20) == 'PXEClient:Arch:00002' or substring(option[60].hex,0,20) == 'PXEClient:Arch:00006')"; |
| 80 | boot-file-name = "${nfsrootBaseUrl}/i386-snponly.efi"; | 79 | boot-file-name = "${nfsrootBaseUrl}/i386-ipxe.efi"; |
| 81 | only-if-required = true; | 80 | only-if-required = true; |
| 82 | } | 81 | } |
| 83 | { name = "ipxe-legacy"; | 82 | { name = "ipxe-legacy"; |
| 84 | test = "option[77].hex == 'iPXE' and substring(option[60].hex,0,20) == 'PXEClient:Arch:00000'"; | 83 | test = "option[77].hex == 'iPXE' and substring(option[60].hex,0,20) == 'PXEClient:Arch:00000'"; |
| 85 | boot-file-name = "${nfsrootBaseUrl}/undionly.kpxe"; | 84 | boot-file-name = "${nfsrootBaseUrl}/ipxe.lkrn"; |
| 86 | only-if-required = true; | 85 | only-if-required = true; |
| 87 | } | 86 | } |
| 88 | 87 | ||
| @@ -91,7 +90,7 @@ in { | |||
| 91 | option-data = [ | 90 | option-data = [ |
| 92 | { name = "tftp-server-name"; data = tftpIp; } | 91 | { name = "tftp-server-name"; data = tftpIp; } |
| 93 | ]; | 92 | ]; |
| 94 | boot-file-name = "snponly.efi"; | 93 | boot-file-name = "ipxe.efi"; |
| 95 | only-if-required = true; | 94 | only-if-required = true; |
| 96 | } | 95 | } |
| 97 | { name = "uefi-32"; | 96 | { name = "uefi-32"; |
| @@ -99,7 +98,7 @@ in { | |||
| 99 | option-data = [ | 98 | option-data = [ |
| 100 | { name = "tftp-server-name"; data = tftpIp; } | 99 | { name = "tftp-server-name"; data = tftpIp; } |
| 101 | ]; | 100 | ]; |
| 102 | boot-file-name = "i386-snponly.efi"; | 101 | boot-file-name = "i386-ipxe.efi"; |
| 103 | only-if-required = true; | 102 | only-if-required = true; |
| 104 | } | 103 | } |
| 105 | { name = "legacy"; | 104 | { name = "legacy"; |
| @@ -107,7 +106,7 @@ in { | |||
| 107 | option-data = [ | 106 | option-data = [ |
| 108 | { name = "tftp-server-name"; data = tftpIp; } | 107 | { name = "tftp-server-name"; data = tftpIp; } |
| 109 | ]; | 108 | ]; |
| 110 | boot-file-name = "undionly.kpxe"; | 109 | boot-file-name = "ipxe.lkrn"; |
| 111 | only-if-required = true; | 110 | only-if-required = true; |
| 112 | } | 111 | } |
| 113 | ]; | 112 | ]; |
| @@ -351,7 +350,7 @@ in { | |||
| 351 | goto start | 350 | goto start |
| 352 | 351 | ||
| 353 | :memtest | 352 | :memtest |
| 354 | iseq ''${platform} efi && chain --autofree memtest.efi dark || chain --autofree memtest.bin dark | 353 | iseq ''${platform} efi && chain --autofree memtest.efi || chain --autofree memtest.bin |
| 355 | goto start | 354 | goto start |
| 356 | ''; | 355 | ''; |
| 357 | }) | 356 | }) |
| @@ -361,7 +360,7 @@ in { | |||
| 361 | (pkgs.runCommandLocal "utils" {} '' | 360 | (pkgs.runCommandLocal "utils" {} '' |
| 362 | mkdir $out | 361 | mkdir $out |
| 363 | install -m 0444 -t $out \ | 362 | install -m 0444 -t $out \ |
| 364 | ${ipxe}/{snponly.efi,i386-snponly.efi,undionly.kpxe} \ | 363 | ${ipxe}/{ipxe.efi,i386-ipxe.efi,ipxe.lkrn} \ |
| 365 | ${pkgs.memtest86plus}/{memtest.efi,memtest.bin} | 364 | ${pkgs.memtest86plus}/{memtest.efi,memtest.bin} |
| 366 | install -m 0444 ${sources.netbootxyz-efi.src} $out/netboot.xyz.efi | 365 | install -m 0444 ${sources.netbootxyz-efi.src} $out/netboot.xyz.efi |
| 367 | install -m 0444 ${sources.netbootxyz-lkrn.src} $out/netboot.xyz.lkrn | 366 | install -m 0444 ${sources.netbootxyz-lkrn.src} $out/netboot.xyz.lkrn |
| @@ -415,7 +414,7 @@ in { | |||
| 415 | goto start | 414 | goto start |
| 416 | 415 | ||
| 417 | :memtest | 416 | :memtest |
| 418 | iseq ''${platform} efi && chain --autofree memtest.efi dark || chain --autofree memtest.bin dark | 417 | iseq ''${platform} efi && chain --autofree memtest.efi || chain --autofree memtest.bin |
| 419 | goto start | 418 | goto start |
| 420 | ''; | 419 | ''; |
| 421 | }) | 420 | }) |
| @@ -432,7 +431,7 @@ in { | |||
| 432 | tftpRoot = pkgs.runCommandLocal "netboot" {} '' | 431 | tftpRoot = pkgs.runCommandLocal "netboot" {} '' |
| 433 | mkdir -p $out | 432 | mkdir -p $out |
| 434 | install -m 0444 -t $out \ | 433 | install -m 0444 -t $out \ |
| 435 | ${ipxe}/{snponly.efi,i386-snponly.efi,undionly.kpxe} | 434 | ${ipxe}/{ipxe.efi,i386-ipxe.efi,ipxe.lkrn} |
| 436 | ''; | 435 | ''; |
| 437 | in "${pkgs.atftp}/sbin/atftpd --daemon --no-fork --bind-address=${tftpIp} ${tftpRoot}"; | 436 | in "${pkgs.atftp}/sbin/atftpd --daemon --no-fork --bind-address=${tftpIp} ${tftpRoot}"; |
| 438 | }; | 437 | }; |
