From 36f4a8a485732da98e1fcf40945ecda305677579 Mon Sep 17 00:00:00 2001 From: Tuomas Tynkkynen Date: Sun, 19 Jun 2016 22:49:36 +0300 Subject: sd-image-armv7l-multiplatform.nix: Preliminary Raspberry Pi 2/3 support - RPi3 successfully gets to U-Boot, but then fails to boot the kernel due to a missing device tree file. This should get added to the 4.8 kernel release once this patch is merged: https://lkml.org/lkml/2016/6/1/841 - RPi2 is not tested, but it should successfully boot the NixOS image. --- .../cd-dvd/sd-image-armv7l-multiplatform.nix | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'nixos/modules/installer/cd-dvd') 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 - ''; + ''; }; } -- cgit 1.4.1