summaryrefslogtreecommitdiffstats
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)
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