Loading nixos/modules/system/boot/loader/grub/memtest.nix +11 −38 Original line number Diff line number Diff line # This module adds Memtest86+/Memtest86 to the GRUB boot menu. # This module adds Memtest86+ to the GRUB boot menu. { config, lib, pkgs, ... }: with lib; let memtest86 = pkgs.memtest86plus; efiSupport = config.boot.loader.grub.efiSupport; cfg = config.boot.loader.grub.memtest86; in Loading @@ -19,11 +17,8 @@ in default = false; type = types.bool; description = lib.mdDoc '' Make Memtest86+ (or MemTest86 if EFI support is enabled), a memory testing program, available from the GRUB boot menu. MemTest86 is an unfree program, so this requires `allowUnfree` to be set to `true`. Make Memtest86+, a memory testing program, available from the GRUB boot menu. ''; }; Loading Loading @@ -63,34 +58,12 @@ in }; }; config = mkMerge [ (mkIf (cfg.enable && efiSupport) { assertions = [ { assertion = cfg.params == []; message = "Parameters are not available for MemTest86"; } ]; boot.loader.grub.extraFiles = { "memtest86.efi" = "${pkgs.memtest86-efi}/BOOTX64.efi"; }; boot.loader.grub.extraEntries = '' menuentry "Memtest86" { chainloader /memtest86.efi } ''; }) (mkIf (cfg.enable && !efiSupport) { config = mkIf cfg.enable { boot.loader.grub.extraEntries = '' menuentry "Memtest86+" { linux16 @bootRoot@/memtest.bin ${toString cfg.params} linux @bootRoot@/memtest.bin ${toString cfg.params} } ''; boot.loader.grub.extraFiles."memtest.bin" = "${memtest86}/memtest.bin"; }) ]; }; } nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix +8 −13 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ let inherit (config.system.nixos) distroName; memtest86 = optionalString cfg.memtest86.enable pkgs.memtest86-efi; memtest86 = optionalString cfg.memtest86.enable pkgs.memtest86plus; netbootxyz = optionalString cfg.netbootxyz.enable pkgs.netbootxyz-efi; Loading Loading @@ -147,10 +147,8 @@ in { default = false; type = types.bool; description = lib.mdDoc '' Make MemTest86 available from the systemd-boot menu. MemTest86 is a program for testing memory. MemTest86 is an unfree program, so this requires `allowUnfree` to be set to `true`. Make MemTest86+ available from the systemd-boot menu. MemTest86+ is a program for testing memory. ''; }; Loading Loading @@ -193,8 +191,8 @@ in { default = {}; example = literalExpression '' { "memtest86.conf" = ''' title MemTest86 efi /efi/memtest86/memtest86.efi title MemTest86+ efi /efi/memtest86/memtest.efi '''; } ''; description = lib.mdDoc '' Loading @@ -213,7 +211,7 @@ in { type = types.attrsOf types.path; default = {}; example = literalExpression '' { "efi/memtest86/memtest86.efi" = "''${pkgs.memtest86-efi}/BOOTX64.efi"; } { "efi/memtest86/memtest.efi" = "''${pkgs.memtest86plus}/memtest.efi"; } ''; description = lib.mdDoc '' A set of files to be copied to {file}`/boot`. Loading Loading @@ -276,11 +274,8 @@ in { boot.loader.supportsInitrdSecrets = true; boot.loader.systemd-boot.extraFiles = mkMerge [ # TODO: This is hard-coded to use the 64-bit EFI app, but it could probably # be updated to use the 32-bit EFI app on 32-bit systems. The 32-bit EFI # app filename is BOOTIA32.efi. (mkIf cfg.memtest86.enable { "efi/memtest86/BOOTX64.efi" = "${pkgs.memtest86-efi}/BOOTX64.efi"; "efi/memtest86/memtest.efi" = "${pkgs.memtest86plus.efi}"; }) (mkIf cfg.netbootxyz.enable { "efi/netbootxyz/netboot.xyz.efi" = "${pkgs.netbootxyz-efi}"; Loading @@ -291,7 +286,7 @@ in { (mkIf cfg.memtest86.enable { "${cfg.memtest86.entryFilename}" = '' title MemTest86 efi /efi/memtest86/BOOTX64.efi efi /efi/memtest86/memtest.efi ''; }) (mkIf cfg.netbootxyz.enable { Loading nixos/tests/systemd-boot.nix +2 −8 Original line number Diff line number Diff line Loading @@ -118,14 +118,11 @@ in nodes.machine = { pkgs, lib, ... }: { imports = [ common ]; boot.loader.systemd-boot.memtest86.enable = true; nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "memtest86-efi" ]; }; testScript = '' machine.succeed("test -e /boot/loader/entries/memtest86.conf") machine.succeed("test -e /boot/efi/memtest86/BOOTX64.efi") machine.succeed("test -e /boot/efi/memtest86/memtest.efi") ''; }; Loading @@ -152,15 +149,12 @@ in imports = [ common ]; boot.loader.systemd-boot.memtest86.enable = true; boot.loader.systemd-boot.memtest86.entryFilename = "apple.conf"; nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "memtest86-efi" ]; }; testScript = '' machine.fail("test -e /boot/loader/entries/memtest86.conf") machine.succeed("test -e /boot/loader/entries/apple.conf") machine.succeed("test -e /boot/efi/memtest86/BOOTX64.efi") machine.succeed("test -e /boot/efi/memtest86/memtest.efi") ''; }; Loading Loading
nixos/modules/system/boot/loader/grub/memtest.nix +11 −38 Original line number Diff line number Diff line # This module adds Memtest86+/Memtest86 to the GRUB boot menu. # This module adds Memtest86+ to the GRUB boot menu. { config, lib, pkgs, ... }: with lib; let memtest86 = pkgs.memtest86plus; efiSupport = config.boot.loader.grub.efiSupport; cfg = config.boot.loader.grub.memtest86; in Loading @@ -19,11 +17,8 @@ in default = false; type = types.bool; description = lib.mdDoc '' Make Memtest86+ (or MemTest86 if EFI support is enabled), a memory testing program, available from the GRUB boot menu. MemTest86 is an unfree program, so this requires `allowUnfree` to be set to `true`. Make Memtest86+, a memory testing program, available from the GRUB boot menu. ''; }; Loading Loading @@ -63,34 +58,12 @@ in }; }; config = mkMerge [ (mkIf (cfg.enable && efiSupport) { assertions = [ { assertion = cfg.params == []; message = "Parameters are not available for MemTest86"; } ]; boot.loader.grub.extraFiles = { "memtest86.efi" = "${pkgs.memtest86-efi}/BOOTX64.efi"; }; boot.loader.grub.extraEntries = '' menuentry "Memtest86" { chainloader /memtest86.efi } ''; }) (mkIf (cfg.enable && !efiSupport) { config = mkIf cfg.enable { boot.loader.grub.extraEntries = '' menuentry "Memtest86+" { linux16 @bootRoot@/memtest.bin ${toString cfg.params} linux @bootRoot@/memtest.bin ${toString cfg.params} } ''; boot.loader.grub.extraFiles."memtest.bin" = "${memtest86}/memtest.bin"; }) ]; }; }
nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix +8 −13 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ let inherit (config.system.nixos) distroName; memtest86 = optionalString cfg.memtest86.enable pkgs.memtest86-efi; memtest86 = optionalString cfg.memtest86.enable pkgs.memtest86plus; netbootxyz = optionalString cfg.netbootxyz.enable pkgs.netbootxyz-efi; Loading Loading @@ -147,10 +147,8 @@ in { default = false; type = types.bool; description = lib.mdDoc '' Make MemTest86 available from the systemd-boot menu. MemTest86 is a program for testing memory. MemTest86 is an unfree program, so this requires `allowUnfree` to be set to `true`. Make MemTest86+ available from the systemd-boot menu. MemTest86+ is a program for testing memory. ''; }; Loading Loading @@ -193,8 +191,8 @@ in { default = {}; example = literalExpression '' { "memtest86.conf" = ''' title MemTest86 efi /efi/memtest86/memtest86.efi title MemTest86+ efi /efi/memtest86/memtest.efi '''; } ''; description = lib.mdDoc '' Loading @@ -213,7 +211,7 @@ in { type = types.attrsOf types.path; default = {}; example = literalExpression '' { "efi/memtest86/memtest86.efi" = "''${pkgs.memtest86-efi}/BOOTX64.efi"; } { "efi/memtest86/memtest.efi" = "''${pkgs.memtest86plus}/memtest.efi"; } ''; description = lib.mdDoc '' A set of files to be copied to {file}`/boot`. Loading Loading @@ -276,11 +274,8 @@ in { boot.loader.supportsInitrdSecrets = true; boot.loader.systemd-boot.extraFiles = mkMerge [ # TODO: This is hard-coded to use the 64-bit EFI app, but it could probably # be updated to use the 32-bit EFI app on 32-bit systems. The 32-bit EFI # app filename is BOOTIA32.efi. (mkIf cfg.memtest86.enable { "efi/memtest86/BOOTX64.efi" = "${pkgs.memtest86-efi}/BOOTX64.efi"; "efi/memtest86/memtest.efi" = "${pkgs.memtest86plus.efi}"; }) (mkIf cfg.netbootxyz.enable { "efi/netbootxyz/netboot.xyz.efi" = "${pkgs.netbootxyz-efi}"; Loading @@ -291,7 +286,7 @@ in { (mkIf cfg.memtest86.enable { "${cfg.memtest86.entryFilename}" = '' title MemTest86 efi /efi/memtest86/BOOTX64.efi efi /efi/memtest86/memtest.efi ''; }) (mkIf cfg.netbootxyz.enable { Loading
nixos/tests/systemd-boot.nix +2 −8 Original line number Diff line number Diff line Loading @@ -118,14 +118,11 @@ in nodes.machine = { pkgs, lib, ... }: { imports = [ common ]; boot.loader.systemd-boot.memtest86.enable = true; nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "memtest86-efi" ]; }; testScript = '' machine.succeed("test -e /boot/loader/entries/memtest86.conf") machine.succeed("test -e /boot/efi/memtest86/BOOTX64.efi") machine.succeed("test -e /boot/efi/memtest86/memtest.efi") ''; }; Loading @@ -152,15 +149,12 @@ in imports = [ common ]; boot.loader.systemd-boot.memtest86.enable = true; boot.loader.systemd-boot.memtest86.entryFilename = "apple.conf"; nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "memtest86-efi" ]; }; testScript = '' machine.fail("test -e /boot/loader/entries/memtest86.conf") machine.succeed("test -e /boot/loader/entries/apple.conf") machine.succeed("test -e /boot/efi/memtest86/BOOTX64.efi") machine.succeed("test -e /boot/efi/memtest86/memtest.efi") ''; }; Loading