vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / installer / sd-card / sd-image-powerpc64le.nix
blob143c678e43fbc7f2363f4d3022dd08d736a8e04b
1 # To build, use:
2 # nix-build nixos -I nixos-config=nixos/modules/installer/sd-card/sd-image-powerpc64le.nix -A config.system.build.sdImage
3 { config, lib, pkgs, ... }:
6   imports = [
7     ../../profiles/base.nix
8     ../../profiles/installation-device.nix
9     ./sd-image.nix
10   ];
12   boot.loader = {
13     # powerpc64le-linux typically uses petitboot
14     grub.enable = false;
15     generic-extlinux-compatible = {
16       # petitboot is not does not support all of the extlinux extensions to
17       # syslinux, but its parser is very forgiving; it essentially ignores
18       # whatever it doesn't understand.  See below for a filename adjustment.
19       enable = true;
20     };
21   };
23   boot.consoleLogLevel = lib.mkDefault 7;
24   boot.kernelParams = [ "console=hvc0" ];
26   sdImage = {
27     populateFirmwareCommands = "";
28     populateRootCommands = ''
29       mkdir -p ./files/boot
30       ${config.boot.loader.generic-extlinux-compatible.populateCmd} \
31         -c ${config.system.build.toplevel} \
32         -d ./files/boot
33     ''
34     # https://github.com/open-power/petitboot/blob/master/discover/syslinux-parser.c
35     # petitboot will look in these paths (plus all-caps versions of them):
36     #  /boot/syslinux/syslinux.cfg
37     #  /syslinux/syslinux.cfg
38     #  /syslinux.cfg
39     + ''
40       mv ./files/boot/extlinux ./files/boot/syslinux
41       mv ./files/boot/syslinux/extlinux.conf ./files/boot/syslinux/syslinux.cfg
42     ''
43     # petitboot does not support relative paths for LINUX or INITRD; it prepends
44     # a `/` when parsing these fields
45     + ''
46       sed -i 's_^\(\W\W*\(INITRD\|initrd\|LINUX\|linux\)\W\)\.\./_\1/boot/_' ./files/boot/syslinux/syslinux.cfg
47     '';
48   };