diff options
author | Tuomas Tynkkynen <tuomas@tuxera.com> | 2016-06-19 22:49:36 +0300 |
---|---|---|
committer | Tuomas Tynkkynen <tuomas@tuxera.com> | 2016-07-04 02:07:13 +0300 |
commit | 36f4a8a485732da98e1fcf40945ecda305677579 (patch) | |
tree | a04514dcf7e01088337c7f3d7bf3d809ea827c6d /nixos/modules/installer | |
parent | d8cd615720524bf7600ff31e4ba3779264c084e9 (diff) | |
download | nixlib-36f4a8a485732da98e1fcf40945ecda305677579.tar nixlib-36f4a8a485732da98e1fcf40945ecda305677579.tar.gz nixlib-36f4a8a485732da98e1fcf40945ecda305677579.tar.bz2 nixlib-36f4a8a485732da98e1fcf40945ecda305677579.tar.lz nixlib-36f4a8a485732da98e1fcf40945ecda305677579.tar.xz nixlib-36f4a8a485732da98e1fcf40945ecda305677579.tar.zst nixlib-36f4a8a485732da98e1fcf40945ecda305677579.zip |
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.
Diffstat (limited to 'nixos/modules/installer')
-rw-r--r-- | nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix | 22 |
1 files changed, 20 insertions, 2 deletions
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 - ''; + ''; }; } |