From 84ff0956a8c4f0794b65dea5287b44cb9c312e76 Mon Sep 17 00:00:00 2001 From: Daniel Fabian Date: Thu, 21 Mar 2019 10:00:39 +0000 Subject: grub: Add support for gfxpayload in grub. Needed for NVIDIA drivers before KMS, afaik --- nixos/modules/system/boot/loader/grub/grub.nix | 20 +++++++++++++++++++- .../modules/system/boot/loader/grub/install-grub.pl | 6 ++++-- 2 files changed, 23 insertions(+), 3 deletions(-) (limited to 'nixos/modules/system') 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 -- cgit v1.2.3