nixpkgs/pkgs/os-specific/linux/kernel/linux-rpi.nix
Tuomas Tynkkynen a8c898be60 linux_rpi: More downstream device tree name fixups
Also remove the upstream device trees beforehand so we don't
accidentally end using them if we mess up in postFixup.

Also on the topic of mess ups, make the copy unconditional since they
always seem to be built on all architectures anyway so checking for
their existence just hides typos.
2018-06-01 13:48:55 +03:00

57 lines
1.9 KiB
Nix

{ stdenv, buildPackages, hostPlatform, fetchFromGitHub, perl, buildLinux, ... } @ args:
let
modDirVersion = "4.14.34";
tag = "1.20180417";
in
stdenv.lib.overrideDerivation (buildLinux (args // rec {
version = "${modDirVersion}-${tag}";
inherit modDirVersion;
src = fetchFromGitHub {
owner = "raspberrypi";
repo = "linux";
rev = "raspberrypi-kernel_${tag}-1";
sha256 = "1xgisvmcq50lpnd4rpqhaw52399n0rx2n8mp6k0bf8qm1g3vnza2";
};
defconfig = {
"armv6l-linux" = "bcmrpi_defconfig";
"armv7l-linux" = "bcm2709_defconfig";
}.${stdenv.system} or (throw "linux_rpi not supported on '${stdenv.system}'");
features = {
efiBootStub = false;
} // (args.features or {});
extraMeta.hydraPlatforms = [];
})) (oldAttrs: {
postConfigure = ''
# The v7 defconfig has this set to '-v7' which screws up our modDirVersion.
sed -i $buildRoot/.config -e 's/^CONFIG_LOCALVERSION=.*/CONFIG_LOCALVERSION=""/'
'';
postFixup = ''
# 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.
rm $out/dtbs/bcm283*.dtb
copyDTB() {
cp -v "$out/dtbs/$1" "$out/dtbs/$2"
}
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
copyDTB bcm2708-rpi-b.dtb bcm2835-rpi-b.dtb
copyDTB bcm2708-rpi-b.dtb bcm2835-rpi-b-rev2.dtb
copyDTB bcm2708-rpi-b-plus.dtb bcm2835-rpi-a-plus.dtb
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
copyDTB bcm2709-rpi-2-b.dtb bcm2836-rpi-2-b.dtb
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
'';
})