diff --git a/modules/installer/generations-dir/generations-dir-builder.sh b/modules/installer/generations-dir/generations-dir-builder.sh index 80f2b638e51..2dbe1356753 100644 --- a/modules/installer/generations-dir/generations-dir-builder.sh +++ b/modules/installer/generations-dir/generations-dir-builder.sh @@ -68,18 +68,31 @@ addEntry() { mkdir -p $outdir ln -sf $(readlink -f $path) $outdir/system ln -sf $(readlink -f $path/init) $outdir/init - ln -sf $(readlink -f $path/initrd) $outdir/initrd - ln -sf $(readlink -f $path/kernel) $outdir/kernel + ln -sf $initrd $outdir/initrd + ln -sf $kernel $outdir/kernel if test $(readlink -f "$path") = "$default"; then cp "$kernel" /boot/nixos-kernel cp "$initrd" /boot/nixos-initrd cp "$(readlink -f "$path/init")" /boot/nixos-init + mkdir -p /boot/default + if [ -e /boot/default/system ]; + rm /boot/default/system + fi ln -sf $(readlink -f $path) /boot/default/system + if [ -e /boot/default/init ]; + rm /boot/default/init + fi ln -sf $(readlink -f $path/init) /boot/default/init - ln -sf $(readlink -f $path/initrd) /boot/default/initrd - ln -sf $(readlink -f $path/kernel) /boot/default/kernel + if [ -e /boot/default/initrd ]; + rm /boot/default/initrd + fi + ln -sf $initrd /boot/default/initrd + if [ -e /boot/default/kernel ]; + rm /boot/default/kernel + fi + ln -sf $kernel /boot/default/kernel fi } diff --git a/modules/installer/generations-dir/generations-dir.nix b/modules/installer/generations-dir/generations-dir.nix index 7ee7a1828da..4b999a8d5a4 100644 --- a/modules/installer/generations-dir/generations-dir.nix +++ b/modules/installer/generations-dir/generations-dir.nix @@ -41,6 +41,9 @@ let inherit (config.boot.loader.generationsDir) copyKernels; }; + # Temporary check, for nixos to cope both with nixpkgs stdenv-updates and trunk + platform = (if pkgs ? platform then pkgs.platform else + { name = "pc"; uboot = null; }); in { require = [ @@ -55,6 +58,9 @@ in menuBuilder = generationsDirBuilder; }; boot.loader.id = "generationsDir"; - boot.loader.kernelFile = "uImage"; + boot.loader.kernelFile = ( + if (platform.name == "sheevaplug") then "uImage" + else if (platform.name == "versatileARM") then "zImage" + else "vmlinuz"); }; }