grub: Add support for gfxpayload in grub. Needed for NVIDIA drivers before KMS, afaik

This commit is contained in:
Daniel Fabian 2019-03-21 10:00:39 +00:00 committed by Dany Fabian
parent 431d8e3038
commit 84ff0956a8
2 changed files with 23 additions and 3 deletions

View File

@ -61,7 +61,7 @@ let
inherit (cfg) inherit (cfg)
version extraConfig extraPerEntryConfig extraEntries forceInstall useOSProber version extraConfig extraPerEntryConfig extraEntries forceInstall useOSProber
extraEntriesBeforeNixOS extraPrepareConfig extraInitrd configurationLimit copyKernels extraEntriesBeforeNixOS extraPrepareConfig extraInitrd configurationLimit copyKernels
default fsIdentifier efiSupport efiInstallAsRemovable gfxmodeEfi gfxmodeBios; default fsIdentifier efiSupport efiInstallAsRemovable gfxmodeEfi gfxmodeBios gfxpayloadEfi gfxpayloadBios;
path = with pkgs; makeBinPath ( path = with pkgs; makeBinPath (
[ coreutils gnused gnugrep findutils diffutils btrfs-progs utillinux mdadm ] [ coreutils gnused gnugrep findutils diffutils btrfs-progs utillinux mdadm ]
++ optional (cfg.efiSupport && (cfg.version == 2)) efibootmgr ++ 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 { configurationLimit = mkOption {
default = 100; default = 100;
example = 120; example = 120;

View File

@ -67,6 +67,8 @@ my $efiInstallAsRemovable = get("efiInstallAsRemovable");
my $efiSysMountPoint = get("efiSysMountPoint"); my $efiSysMountPoint = get("efiSysMountPoint");
my $gfxmodeEfi = get("gfxmodeEfi"); my $gfxmodeEfi = get("gfxmodeEfi");
my $gfxmodeBios = get("gfxmodeBios"); my $gfxmodeBios = get("gfxmodeBios");
my $gfxpayloadEfi = get("gfxpayloadEfi");
my $gfxpayloadBios = get("gfxpayloadBios");
my $bootloaderId = get("bootloaderId"); my $bootloaderId = get("bootloaderId");
my $forceInstall = get("forceInstall"); my $forceInstall = get("forceInstall");
my $font = get("font"); my $font = get("font");
@ -293,10 +295,10 @@ else {
insmod gfxterm insmod gfxterm
if [ \"\${grub_platform}\" = \"efi\" ]; then if [ \"\${grub_platform}\" = \"efi\" ]; then
set gfxmode=$gfxmodeEfi set gfxmode=$gfxmodeEfi
set gfxpayload=keep set gfxpayload=$gfxpayloadEfi
else else
set gfxmode=$gfxmodeBios set gfxmode=$gfxmodeBios
set gfxpayload=text set gfxpayload=$gfxpayloadBios
fi fi
terminal_output gfxterm terminal_output gfxterm
fi fi