summary refs log tree commit diff
path: root/img/combined/default.nix
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2022-04-20 10:01:27 +0000
committerAlyssa Ross <hi@alyssa.is>2022-04-21 11:47:07 +0000
commitb1ff26eb27ea905357f8bf217d0f0cfbea33c37b (patch)
tree187498f607ea57b0e5218793ae281f1f3d4c5978 /img/combined/default.nix
parentb72a136e9ae265f61f5c6dbbd37367c8e659ae49 (diff)
downloadspectrum-b1ff26eb27ea905357f8bf217d0f0cfbea33c37b.tar
spectrum-b1ff26eb27ea905357f8bf217d0f0cfbea33c37b.tar.gz
spectrum-b1ff26eb27ea905357f8bf217d0f0cfbea33c37b.tar.bz2
spectrum-b1ff26eb27ea905357f8bf217d0f0cfbea33c37b.tar.lz
spectrum-b1ff26eb27ea905357f8bf217d0f0cfbea33c37b.tar.xz
spectrum-b1ff26eb27ea905357f8bf217d0f0cfbea33c37b.tar.zst
spectrum-b1ff26eb27ea905357f8bf217d0f0cfbea33c37b.zip
img/combined: avoid chainloading in GRUB
Some UEFI implementations (like the one on Ville's Thinkpad P43s)
failed to chainload Spectrum from GRUB.  Now that Spectrum has a
proper bootloader, we can avoid that chainloading entirely, which will
hopefully make the broken firmware happier.

Reported-by: Ville Ilvonen <ville.ilvonen@unikie.com>
Cc: Puck Meerburg <puck@puckipedia.com>
Message-Id: <20220420101214.1228221-3-hi@alyssa.is>
Tested-by: Ville Ilvonen <ville.ilvonen@unikie.com>
Diffstat (limited to 'img/combined/default.nix')
-rw-r--r--img/combined/default.nix10
1 files changed, 10 insertions, 0 deletions
diff --git a/img/combined/default.nix b/img/combined/default.nix
index 86e07e2..16cd506 100644
--- a/img/combined/default.nix
+++ b/img/combined/default.nix
@@ -35,6 +35,16 @@ let
 
   grubCfg = substituteAll {
     src = ./grub.cfg.in;
+
+    nativeBuildInputs = [ mtools ];
+
+    preInstall = ''
+      export spectrumKernelParams="$(
+          mcopy -i ${eosimages.image}@@1M ::/loader/entries/spectrum.conf - |
+          grep '^options ' |
+          sed 's/^options //')"
+    '';
+
     linux = removePrefix storeDir installer.kernel;
     initrd = removePrefix storeDir installer.initramfs;
     inherit (installer) kernelParams;