diff --git a/nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix b/nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix index 715deca02b58..80fb47072286 100644 --- a/nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix +++ b/nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix @@ -19,6 +19,9 @@ in "it cannot be cross compiled"; }; + # Needed by RPi firmware + nixpkgs.config.allowUnfree = true; + boot.loader.grub.enable = false; boot.loader.generic-extlinux-compatible.enable = true; @@ -30,8 +33,23 @@ in users.extraUsers.root.initialHashedPassword = ""; sdImage = { - populateBootCommands = '' + populateBootCommands = let + configTxt = pkgs.writeText "config.txt" '' + [pi2] + kernel=u-boot-rpi2.bin + + [pi3] + kernel=u-boot-rpi3.bin + enable_uart=1 + ''; + in '' + for f in bootcode.bin fixup.dat start.elf; do + cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/$f boot/ + done + cp ${pkgs.ubootRaspberryPi2}/u-boot.bin boot/u-boot-rpi2.bin + cp ${pkgs.ubootRaspberryPi3}/u-boot.bin boot/u-boot-rpi3.bin + cp ${configTxt} boot/config.txt ${extlinux-conf-builder} -t 3 -c ${config.system.build.toplevel} -d ./boot - ''; + ''; }; }