From f9197b9f63da8b6d9244c5a8e99507fdd294dcc5 Mon Sep 17 00:00:00 2001 From: Tuomas Tynkkynen Date: Thu, 20 Sep 2018 16:41:04 +0300 Subject: [PATCH] linux_rpi: Extend the logic for not installing unnecessary DTBs Now ARMv6 and ARMv7 builds avoid installing DTBs for boards where the resulting kernel won't run just like the aarch64 builds already do. Also deduplicates the logic a bit. --- pkgs/os-specific/linux/kernel/linux-rpi.nix | 23 ++++++++------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/linux-rpi.nix b/pkgs/os-specific/linux/kernel/linux-rpi.nix index 26fb595ad59..d95c2caa2cf 100644 --- a/pkgs/os-specific/linux/kernel/linux-rpi.nix +++ b/pkgs/os-specific/linux/kernel/linux-rpi.nix @@ -1,10 +1,10 @@ -{ stdenv, buildPackages, fetchFromGitHub, perl, buildLinux, ... } @ args: +{ stdenv, lib, buildPackages, fetchFromGitHub, perl, buildLinux, ... } @ args: let modDirVersion = "4.14.62"; tag = "1.20180817"; in -stdenv.lib.overrideDerivation (buildLinux (args // rec { +lib.overrideDerivation (buildLinux (args // rec { version = "${modDirVersion}-${tag}"; inherit modDirVersion; @@ -34,20 +34,13 @@ stdenv.lib.overrideDerivation (buildLinux (args // rec { # Make copies of the DTBs named after the upstream names so that U-Boot finds them. # This is ugly as heck, but I don't know a better solution so far. - postFixup = if stdenv.hostPlatform.system == "aarch64-linux" then '' - rm $out/dtbs/broadcom/bcm283*.dtb + postFixup = '' + dtbDir=${if stdenv.isAarch64 then "$out/dtbs/broadcom" else "$out/dtbs"} + rm $dtbDir/bcm283*.dtb copyDTB() { - cp -v "$out/dtbs/broadcom/$1" "$out/dtbs/broadcom/$2" + cp -v "$dtbDir/$1" "$dtbDir/$2" } - - copyDTB bcm2710-rpi-3-b.dtb bcm2837-rpi-3-b.dtb - copyDTB bcm2710-rpi-3-b-plus.dtb bcm2837-rpi-3-b-plus.dtb - '' else '' - rm $out/dtbs/bcm283*.dtb - copyDTB() { - cp -v "$out/dtbs/$1" "$out/dtbs/$2" - } - + '' + lib.optionalString (lib.elem stdenv.hostPlatform.system ["armv6l-linux"]) '' copyDTB bcm2708-rpi-0-w.dtb bcm2835-rpi-zero.dtb copyDTB bcm2708-rpi-0-w.dtb bcm2835-rpi-zero-w.dtb copyDTB bcm2708-rpi-b.dtb bcm2835-rpi-a.dtb @@ -57,7 +50,9 @@ stdenv.lib.overrideDerivation (buildLinux (args // rec { copyDTB bcm2708-rpi-b-plus.dtb bcm2835-rpi-b-plus.dtb copyDTB bcm2708-rpi-b-plus.dtb bcm2835-rpi-zero.dtb copyDTB bcm2708-rpi-cm.dtb bcm2835-rpi-cm.dtb + '' + lib.optionalString (lib.elem stdenv.hostPlatform.system ["armv7l-linux"]) '' copyDTB bcm2709-rpi-2-b.dtb bcm2836-rpi-2-b.dtb + '' + lib.optionalString (lib.elem stdenv.hostPlatform.system ["armv7l-linux" "aarch64-linux"]) '' copyDTB bcm2710-rpi-3-b.dtb bcm2837-rpi-3-b.dtb copyDTB bcm2710-rpi-3-b-plus.dtb bcm2837-rpi-3-b-plus.dtb copyDTB bcm2710-rpi-cm3.dtb bcm2837-rpi-cm3.dtb