about summary refs log tree commit diff
path: root/nixos/modules/system
diff options
context:
space:
mode:
authorDaniel Fabian <daniel.fabian@integral-it.ch>2019-03-21 10:00:39 +0000
committerDany Fabian <daniel.fabian@microsoft.com>2019-04-08 11:34:39 +0100
commit84ff0956a8c4f0794b65dea5287b44cb9c312e76 (patch)
tree430556a7a236eb9776962ce3b2f886978580d03b /nixos/modules/system
parent431d8e30383d1dffdbeb7ebb59953998566f954b (diff)
downloadnixlib-84ff0956a8c4f0794b65dea5287b44cb9c312e76.tar
nixlib-84ff0956a8c4f0794b65dea5287b44cb9c312e76.tar.gz
nixlib-84ff0956a8c4f0794b65dea5287b44cb9c312e76.tar.bz2
nixlib-84ff0956a8c4f0794b65dea5287b44cb9c312e76.tar.lz
nixlib-84ff0956a8c4f0794b65dea5287b44cb9c312e76.tar.xz
nixlib-84ff0956a8c4f0794b65dea5287b44cb9c312e76.tar.zst
nixlib-84ff0956a8c4f0794b65dea5287b44cb9c312e76.zip
grub: Add support for gfxpayload in grub. Needed for NVIDIA drivers before KMS, afaik
Diffstat (limited to 'nixos/modules/system')
-rw-r--r--nixos/modules/system/boot/loader/grub/grub.nix20
-rw-r--r--nixos/modules/system/boot/loader/grub/install-grub.pl6
2 files changed, 23 insertions, 3 deletions
diff --git a/nixos/modules/system/boot/loader/grub/grub.nix b/nixos/modules/system/boot/loader/grub/grub.nix
index d3cf8b29bb46..99aa7759c954 100644
--- a/nixos/modules/system/boot/loader/grub/grub.nix
+++ b/nixos/modules/system/boot/loader/grub/grub.nix
@@ -61,7 +61,7 @@ let
       inherit (cfg)
         version extraConfig extraPerEntryConfig extraEntries forceInstall useOSProber
         extraEntriesBeforeNixOS extraPrepareConfig extraInitrd configurationLimit copyKernels
-        default fsIdentifier efiSupport efiInstallAsRemovable gfxmodeEfi gfxmodeBios;
+        default fsIdentifier efiSupport efiInstallAsRemovable gfxmodeEfi gfxmodeBios gfxpayloadEfi gfxpayloadBios;
       path = with pkgs; makeBinPath (
         [ coreutils gnused gnugrep findutils diffutils btrfs-progs utillinux mdadm ]
         ++ optional (cfg.efiSupport && (cfg.version == 2)) efibootmgr
@@ -393,6 +393,24 @@ in
         '';
       };
 
+      gfxpayloadEfi = mkOption {
+        default = "keep";
+        example = "text";
+        type = types.str;
+        description = ''
+          The gfxpayload to pass to GRUB when loading a graphical boot interface under EFI. 
+        '';
+      };
+
+      gfxpayloadBios = mkOption {
+        default = "text";
+        example = "keep";
+        type = types.str;
+        description = ''
+          The gfxpayload to pass to GRUB when loading a graphical boot interface under BIOS. 
+        '';
+      };
+
       configurationLimit = mkOption {
         default = 100;
         example = 120;
diff --git a/nixos/modules/system/boot/loader/grub/install-grub.pl b/nixos/modules/system/boot/loader/grub/install-grub.pl
index bda6a3136407..a36b3c180eb4 100644
--- a/nixos/modules/system/boot/loader/grub/install-grub.pl
+++ b/nixos/modules/system/boot/loader/grub/install-grub.pl
@@ -67,6 +67,8 @@ my $efiInstallAsRemovable = get("efiInstallAsRemovable");
 my $efiSysMountPoint = get("efiSysMountPoint");
 my $gfxmodeEfi = get("gfxmodeEfi");
 my $gfxmodeBios = get("gfxmodeBios");
+my $gfxpayloadEfi = get("gfxpayloadEfi");
+my $gfxpayloadBios = get("gfxpayloadBios");
 my $bootloaderId = get("bootloaderId");
 my $forceInstall = get("forceInstall");
 my $font = get("font");
@@ -293,10 +295,10 @@ else {
               insmod gfxterm
               if [ \"\${grub_platform}\" = \"efi\" ]; then
                 set gfxmode=$gfxmodeEfi
-                set gfxpayload=keep
+                set gfxpayload=$gfxpayloadEfi
               else
                 set gfxmode=$gfxmodeBios
-                set gfxpayload=text
+                set gfxpayload=$gfxpayloadBios
               fi
               terminal_output gfxterm
             fi