Merge pull request #226821 from enc0urage/memtest

authored by Maciej Krüger and committed by GitHub 56700d64 2dadab48

+21 -59
+11 -38
nixos/modules/system/boot/loader/grub/memtest.nix
··· 1 - # This module adds Memtest86+/Memtest86 to the GRUB boot menu. 2 - 1 + # This module adds Memtest86+ to the GRUB boot menu. 3 2 { config, lib, pkgs, ... }: 4 3 5 4 with lib; 6 5 7 6 let 8 7 memtest86 = pkgs.memtest86plus; 9 - efiSupport = config.boot.loader.grub.efiSupport; 10 8 cfg = config.boot.loader.grub.memtest86; 11 9 in 12 10 ··· 19 17 default = false; 20 18 type = types.bool; 21 19 description = lib.mdDoc '' 22 - Make Memtest86+ (or MemTest86 if EFI support is enabled), 23 - a memory testing program, available from the 24 - GRUB boot menu. MemTest86 is an unfree program, so 25 - this requires `allowUnfree` to be set to 26 - `true`. 20 + Make Memtest86+, a memory testing program, available from the GRUB 21 + boot menu. 27 22 ''; 28 23 }; 29 24 ··· 63 58 }; 64 59 }; 65 60 66 - config = mkMerge [ 67 - (mkIf (cfg.enable && efiSupport) { 68 - assertions = [ 69 - { 70 - assertion = cfg.params == []; 71 - message = "Parameters are not available for MemTest86"; 72 - } 73 - ]; 74 - 75 - boot.loader.grub.extraFiles = { 76 - "memtest86.efi" = "${pkgs.memtest86-efi}/BOOTX64.efi"; 77 - }; 78 - 79 - boot.loader.grub.extraEntries = '' 80 - menuentry "Memtest86" { 81 - chainloader /memtest86.efi 82 - } 83 - ''; 84 - }) 85 - 86 - (mkIf (cfg.enable && !efiSupport) { 87 - boot.loader.grub.extraEntries = '' 88 - menuentry "Memtest86+" { 89 - linux16 @bootRoot@/memtest.bin ${toString cfg.params} 90 - } 91 - ''; 92 - 93 - boot.loader.grub.extraFiles."memtest.bin" = "${memtest86}/memtest.bin"; 94 - }) 95 - ]; 61 + config = mkIf cfg.enable { 62 + boot.loader.grub.extraEntries = '' 63 + menuentry "Memtest86+" { 64 + linux @bootRoot@/memtest.bin ${toString cfg.params} 65 + } 66 + ''; 67 + boot.loader.grub.extraFiles."memtest.bin" = "${memtest86}/memtest.bin"; 68 + }; 96 69 }
+8 -13
nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
··· 32 32 33 33 inherit (config.system.nixos) distroName; 34 34 35 - memtest86 = optionalString cfg.memtest86.enable pkgs.memtest86-efi; 35 + memtest86 = optionalString cfg.memtest86.enable pkgs.memtest86plus; 36 36 37 37 netbootxyz = optionalString cfg.netbootxyz.enable pkgs.netbootxyz-efi; 38 38 ··· 147 147 default = false; 148 148 type = types.bool; 149 149 description = lib.mdDoc '' 150 - Make MemTest86 available from the systemd-boot menu. MemTest86 is a 151 - program for testing memory. MemTest86 is an unfree program, so 152 - this requires `allowUnfree` to be set to 153 - `true`. 150 + Make MemTest86+ available from the systemd-boot menu. MemTest86+ is a 151 + program for testing memory. 154 152 ''; 155 153 }; 156 154 ··· 193 191 default = {}; 194 192 example = literalExpression '' 195 193 { "memtest86.conf" = ''' 196 - title MemTest86 197 - efi /efi/memtest86/memtest86.efi 194 + title MemTest86+ 195 + efi /efi/memtest86/memtest.efi 198 196 '''; } 199 197 ''; 200 198 description = lib.mdDoc '' ··· 213 211 type = types.attrsOf types.path; 214 212 default = {}; 215 213 example = literalExpression '' 216 - { "efi/memtest86/memtest86.efi" = "''${pkgs.memtest86-efi}/BOOTX64.efi"; } 214 + { "efi/memtest86/memtest.efi" = "''${pkgs.memtest86plus}/memtest.efi"; } 217 215 ''; 218 216 description = lib.mdDoc '' 219 217 A set of files to be copied to {file}`/boot`. ··· 276 274 boot.loader.supportsInitrdSecrets = true; 277 275 278 276 boot.loader.systemd-boot.extraFiles = mkMerge [ 279 - # TODO: This is hard-coded to use the 64-bit EFI app, but it could probably 280 - # be updated to use the 32-bit EFI app on 32-bit systems. The 32-bit EFI 281 - # app filename is BOOTIA32.efi. 282 277 (mkIf cfg.memtest86.enable { 283 - "efi/memtest86/BOOTX64.efi" = "${pkgs.memtest86-efi}/BOOTX64.efi"; 278 + "efi/memtest86/memtest.efi" = "${pkgs.memtest86plus.efi}"; 284 279 }) 285 280 (mkIf cfg.netbootxyz.enable { 286 281 "efi/netbootxyz/netboot.xyz.efi" = "${pkgs.netbootxyz-efi}"; ··· 291 286 (mkIf cfg.memtest86.enable { 292 287 "${cfg.memtest86.entryFilename}" = '' 293 288 title MemTest86 294 - efi /efi/memtest86/BOOTX64.efi 289 + efi /efi/memtest86/memtest.efi 295 290 ''; 296 291 }) 297 292 (mkIf cfg.netbootxyz.enable {
+2 -8
nixos/tests/systemd-boot.nix
··· 118 118 nodes.machine = { pkgs, lib, ... }: { 119 119 imports = [ common ]; 120 120 boot.loader.systemd-boot.memtest86.enable = true; 121 - nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ 122 - "memtest86-efi" 123 - ]; 124 121 }; 125 122 126 123 testScript = '' 127 124 machine.succeed("test -e /boot/loader/entries/memtest86.conf") 128 - machine.succeed("test -e /boot/efi/memtest86/BOOTX64.efi") 125 + machine.succeed("test -e /boot/efi/memtest86/memtest.efi") 129 126 ''; 130 127 }; 131 128 ··· 152 149 imports = [ common ]; 153 150 boot.loader.systemd-boot.memtest86.enable = true; 154 151 boot.loader.systemd-boot.memtest86.entryFilename = "apple.conf"; 155 - nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ 156 - "memtest86-efi" 157 - ]; 158 152 }; 159 153 160 154 testScript = '' 161 155 machine.fail("test -e /boot/loader/entries/memtest86.conf") 162 156 machine.succeed("test -e /boot/loader/entries/apple.conf") 163 - machine.succeed("test -e /boot/efi/memtest86/BOOTX64.efi") 157 + machine.succeed("test -e /boot/efi/memtest86/memtest.efi") 164 158 ''; 165 159 }; 166 160