diff options
author | Weijia Wang <9713184+wegank@users.noreply.github.com> | 2023-02-23 07:09:46 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-23 07:09:46 +0200 |
commit | b65d2ea436f2381cda4825cc8fe98851af05bb0c (patch) | |
tree | 072a7ff7b6ba00e49164588125a859b3e41de0ef /nixos/modules/installer | |
parent | 128877b73aa6dd17c86d4a6a858c77fd802535f3 (diff) | |
parent | f99e8bafe6f751c8ff56eeb4e0fb0415a8b805da (diff) |
Merge pull request #192672 from amjoseph-nixpkgs/pr/nixos/sd/powerpc64le
enable NixOS installer for powerpc64le
Diffstat (limited to 'nixos/modules/installer')
-rw-r--r-- | nixos/modules/installer/sd-card/sd-image-powerpc64le.nix | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/nixos/modules/installer/sd-card/sd-image-powerpc64le.nix b/nixos/modules/installer/sd-card/sd-image-powerpc64le.nix new file mode 100644 index 0000000000000..143c678e43fbc --- /dev/null +++ b/nixos/modules/installer/sd-card/sd-image-powerpc64le.nix @@ -0,0 +1,49 @@ +# To build, use: +# nix-build nixos -I nixos-config=nixos/modules/installer/sd-card/sd-image-powerpc64le.nix -A config.system.build.sdImage +{ config, lib, pkgs, ... }: + +{ + imports = [ + ../../profiles/base.nix + ../../profiles/installation-device.nix + ./sd-image.nix + ]; + + boot.loader = { + # powerpc64le-linux typically uses petitboot + grub.enable = false; + generic-extlinux-compatible = { + # petitboot is not does not support all of the extlinux extensions to + # syslinux, but its parser is very forgiving; it essentially ignores + # whatever it doesn't understand. See below for a filename adjustment. + enable = true; + }; + }; + + boot.consoleLogLevel = lib.mkDefault 7; + boot.kernelParams = [ "console=hvc0" ]; + + sdImage = { + populateFirmwareCommands = ""; + populateRootCommands = '' + mkdir -p ./files/boot + ${config.boot.loader.generic-extlinux-compatible.populateCmd} \ + -c ${config.system.build.toplevel} \ + -d ./files/boot + '' + # https://github.com/open-power/petitboot/blob/master/discover/syslinux-parser.c + # petitboot will look in these paths (plus all-caps versions of them): + # /boot/syslinux/syslinux.cfg + # /syslinux/syslinux.cfg + # /syslinux.cfg + + '' + mv ./files/boot/extlinux ./files/boot/syslinux + mv ./files/boot/syslinux/extlinux.conf ./files/boot/syslinux/syslinux.cfg + '' + # petitboot does not support relative paths for LINUX or INITRD; it prepends + # a `/` when parsing these fields + + '' + sed -i 's_^\(\W\W*\(INITRD\|initrd\|LINUX\|linux\)\W\)\.\./_\1/boot/_' ./files/boot/syslinux/syslinux.cfg + ''; + }; +} |