summary refs log tree commit diff
path: root/nixos/modules/system/boot/loader/generic-extlinux-compatible
diff options
context:
space:
mode:
authorTuomas Tynkkynen <tuomas.tynkkynen@iki.fi>2015-06-18 00:45:46 +0300
committerTuomas Tynkkynen <tuomas.tynkkynen@iki.fi>2015-07-22 16:08:17 +0300
commit8496f71e9219e1a5ea01898c1c306ab58cf6773a (patch)
treea960ad98a2e2bf44cb30fdfdab98b2ac68300c1a /nixos/modules/system/boot/loader/generic-extlinux-compatible
parent6147909f8e80d7fbf15e73f556ee1f6ab4c93289 (diff)
downloadnixlib-8496f71e9219e1a5ea01898c1c306ab58cf6773a.tar
nixlib-8496f71e9219e1a5ea01898c1c306ab58cf6773a.tar.gz
nixlib-8496f71e9219e1a5ea01898c1c306ab58cf6773a.tar.bz2
nixlib-8496f71e9219e1a5ea01898c1c306ab58cf6773a.tar.lz
nixlib-8496f71e9219e1a5ea01898c1c306ab58cf6773a.tar.xz
nixlib-8496f71e9219e1a5ea01898c1c306ab58cf6773a.tar.zst
nixlib-8496f71e9219e1a5ea01898c1c306ab58cf6773a.zip
extlinux-conf-builder: Make it work on non-DTB systems
With this, boot.loader.generic-extlinux-compatible can be used with
linuxPackages_rpi on the Raspberry Pi.
Diffstat (limited to 'nixos/modules/system/boot/loader/generic-extlinux-compatible')
-rw-r--r--nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix3
-rw-r--r--nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh10
2 files changed, 9 insertions, 4 deletions
diff --git a/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix b/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix
index 261192c6d24e..c5c250c14cea 100644
--- a/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix
+++ b/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix
@@ -3,6 +3,7 @@
 pkgs.substituteAll {
   src = ./extlinux-conf-builder.sh;
   isExecutable = true;
-  inherit (pkgs) bash;
   path = [pkgs.coreutils pkgs.gnused pkgs.gnugrep];
+  inherit (pkgs) bash;
+  kernelDTB = pkgs.stdenv.platform.kernelDTB or false;
 }
diff --git a/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh b/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh
index 9f32dbcce1a3..642bdf4673bd 100644
--- a/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh
+++ b/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh
@@ -75,8 +75,10 @@ addEntry() {
 
     copyToKernelsDir "$path/kernel"; kernel=$result
     copyToKernelsDir "$path/initrd"; initrd=$result
-    # XXX UGLY: maybe the system config should have a top-level "dtbs" entry?
-    copyToKernelsDir $(readlink -m "$path/kernel/../dtbs"); dtbs=$result
+    if [ -n "@kernelDTB@" ]; then
+        # XXX UGLY: maybe the system config should have a top-level "dtbs" entry?
+        copyToKernelsDir $(readlink -m "$path/kernel/../dtbs"); dtbs=$result
+    fi
 
     timestampEpoch=$(stat -L -c '%Z' $path)
 
@@ -93,7 +95,9 @@ addEntry() {
     fi
     echo "  LINUX ../nixos/$(basename $kernel)"
     echo "  INITRD ../nixos/$(basename $initrd)"
-    echo "  FDTDIR ../nixos/$(basename $dtbs)"
+    if [ -n "@kernelDTB@" ]; then
+        echo "  FDTDIR ../nixos/$(basename $dtbs)"
+    fi
     echo "  APPEND systemConfig=$path init=$path/init $extraParams"
 }