Author: viric
Date: Mon Apr  2 17:19:21 2012
New Revision: 33539
URL: https://nixos.org/websvn/nix/?rev=33539&sc=1

Log:
Adding a module for memtest86+, so if enabled, will appear in the grub menu.

To enable it:
boot.loader.grub.memtest86 = true;

Added:
   nixos/trunk/modules/installer/grub/memtest.nix
Modified:
   nixos/trunk/modules/installer/grub/grub-menu-builder.sh
   nixos/trunk/modules/installer/grub/grub.nix
   nixos/trunk/modules/module-list.nix

Modified: nixos/trunk/modules/installer/grub/grub-menu-builder.sh
==============================================================================
--- nixos/trunk/modules/installer/grub/grub-menu-builder.sh     Mon Apr  2 
15:19:05 2012        (r33538)
+++ nixos/trunk/modules/installer/grub/grub-menu-builder.sh     Mon Apr  2 
17:19:21 2012        (r33539)
@@ -240,6 +240,7 @@
     mkdir -p /boot/kernels
 fi
 
+@extraPrepareConfig@
 
 # Additional entries specified verbatim by the configuration.
 extraEntries=`cat <<EOF

Modified: nixos/trunk/modules/installer/grub/grub.nix
==============================================================================
--- nixos/trunk/modules/installer/grub/grub.nix Mon Apr  2 15:19:05 2012        
(r33538)
+++ nixos/trunk/modules/installer/grub/grub.nix Mon Apr  2 17:19:21 2012        
(r33539)
@@ -12,7 +12,7 @@
     inherit grub;
     inherit (pkgs) bash;
     path = [pkgs.coreutils pkgs.gnused pkgs.gnugrep];
-    inherit (config.boot.loader.grub) copyKernels
+    inherit (config.boot.loader.grub) copyKernels extraPrepareConfig
       extraConfig extraEntries extraEntriesBeforeNixOS extraPerEntryConfig
       splashImage configurationLimit version default timeout;
   };
@@ -85,6 +85,14 @@
         '';
       };
 
+      extraPrepareConfig = mkOption {
+        default = "";
+        description = ''
+          Additional bash commands to be run at the script that
+          prepares the grub menu entries.
+        '';
+      };
+
       extraConfig = mkOption {
         default = "";
         example = "serial; terminal_output.serial";

Added: nixos/trunk/modules/installer/grub/memtest.nix
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ nixos/trunk/modules/installer/grub/memtest.nix      Mon Apr  2 17:19:21 
2012        (r33539)
@@ -0,0 +1,33 @@
+# This module adds Memtest86 to the Grub boot menu on the CD.  !!! It
+# would be nice if this also worked for normal configurations.
+
+{config, pkgs, ...}:
+
+with pkgs.lib;
+let
+  isEnabled = config.boot.loader.grub.memtest86;
+in
+{
+  options = {
+    boot.loader.grub.memtest86 = mkOption {
+      default = false;
+      type = types.bool;
+      description = ''
+        Add a menu entry in grub for memtest86+
+      '';
+    };
+  };
+
+  config.boot.loader.grub = mkIf isEnabled {
+    extraEntries = 
+      ''
+        menuentry "Memtest86+" {
+          linux16 $bootRoot/memtest.bin
+        }
+      '';
+    extraPrepareConfig =
+      ''
+        cp ${pkgs.memtest86}/memtest.bin /boot/memtest.bin;
+      '';
+  };
+}

Modified: nixos/trunk/modules/module-list.nix
==============================================================================
--- nixos/trunk/modules/module-list.nix Mon Apr  2 15:19:05 2012        (r33538)
+++ nixos/trunk/modules/module-list.nix Mon Apr  2 17:19:21 2012        (r33539)
@@ -25,6 +25,7 @@
   ./installer/efi-boot-stub/efi-boot-stub.nix
   ./installer/generations-dir/generations-dir.nix
   ./installer/grub/grub.nix
+  ./installer/grub/memtest.nix
   ./installer/init-script/init-script.nix
   ./installer/tools/nixos-checkout.nix
   ./installer/tools/tools.nix
_______________________________________________
nix-commits mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-commits

Reply via email to