diff --git a/overlay/default.nix b/overlay/default.nix index 9142720..890f211 100644 --- a/overlay/default.nix +++ b/overlay/default.nix @@ -22,6 +22,9 @@ let rpi-kernels = builtins.foldl' (b: a: b // rpi-kernel a) { }; in { + # disable firmware compression so that brcm firmware can be found at + # the path expected by raspberry pi firmware/device tree + compressFirmwareXz = x: x; libcamera-apps = final.callPackage ./libcamera-apps.nix { }; # provide generic rpi arm64 u-boot @@ -35,6 +38,8 @@ in { sha256 = "0png7p8k6rwbmmcyhc22xczcaz7kx0dafw5zmp0i9ni4kjs8xc4j"; }; }; + raspberrypiWirelessFirmware = final.rpi-kernels.v5_15_87.wireless-firmware; + raspberrypifw = final.rpi-kernels.v5_15_87.firmware; # raspberrypiWirelessFirmware = prev.raspberrypiWirelessFirmware.overrideAttrs # (old: { diff --git a/rpi-3b-plus/default.nix b/rpi-3b-plus/default.nix index b378229..f3f7de2 100644 --- a/rpi-3b-plus/default.nix +++ b/rpi-3b-plus/default.nix @@ -3,22 +3,10 @@ rpi: { imports = [ rpi ]; - nixpkgs = { - overlays = [ - (final: prev: { - raspberrypiWirelessFirmware = - final.rpi-kernels.v5_15_87.wireless-firmware; - raspberrypifw = final.rpi-kernels.v5_15_87.firmware; - }) - ]; - }; - boot.kernelPackages = - pkgs.linuxPackagesFor (pkgs.rpi-kernels.v5_15_87.kernel); hardware.raspberry-pi.deviceTree = { base-dtb = "bcm2710-rpi-3-b-plus.dtb"; - # u-boot expects bcm2837-rpi-3-b-plus.dtb for the 3b+ (as of - # 2020.04), although the kernel has 2710. We rename it to satisfy - # u-boot for now. + # u-boot expects bcm2837-rpi-3-b-plus.dtb for the 3b+ Rename the + # raspberry pi dtb to match mainline linux and satisfy u-boot. postInstall = '' mv $out/broadcom/bcm2710-rpi-3-b-plus.dtb $out/broadcom/bcm2837-rpi-3-b-plus.dtb ''; diff --git a/rpi-4b/default.nix b/rpi-4b/default.nix index 1c3c825..c9141e2 100644 --- a/rpi-4b/default.nix +++ b/rpi-4b/default.nix @@ -2,18 +2,7 @@ rpi: { lib, pkgs, config, ... }: { - nixpkgs = { - overlays = [ - (final: prev: { - raspberrypiWirelessFirmware = - final.rpi-kernels.v5_15_87.wireless-firmware; - raspberrypifw = final.rpi-kernels.v5_15_87.firmware; - }) - ]; - }; imports = [ rpi ]; hardware.raspberry-pi.deviceTree.base-dtb = "bcm2711-rpi-4-b.dtb"; - boot.kernelPackages = - pkgs.linuxPackagesFor (pkgs.rpi-kernels.v5_15_87.kernel); } diff --git a/rpi-zero-2-w/default.nix b/rpi-zero-2-w/default.nix index 93dd016..13a649b 100644 --- a/rpi-zero-2-w/default.nix +++ b/rpi-zero-2-w/default.nix @@ -3,22 +3,11 @@ rpi: { imports = [ rpi ]; - nixpkgs = { - overlays = [ - (final: prev: { - raspberrypiWirelessFirmware = - final.rpi-kernels.v5_15_36.wireless-firmware; - raspberrypifw = final.rpi-kernels.v5_15_36.firmware; - }) - ]; - }; hardware.raspberry-pi.deviceTree.base-dtb = "bcm2710-rpi-zero-2.dtb"; - # u-boot expects bcm2837-rpi-zero-2.dtb for the zero 2 w (as of - # 2020.04), although the kernel has 2710. We rename it to satisfy - # u-boot for now. + # u-boot expects bcm2837-rpi-zero-2.dtb for the zero 2 w (this is + # the device tree name in the upstream kernel), Rename the raspberry + # pi dtb to the expected name to satisfy u-boot. hardware.raspberry-pi.deviceTree.postInstall = '' mv $out/broadcom/bcm2710-rpi-zero-2.dtb $out/broadcom/bcm2837-rpi-zero-2.dtb ''; - boot.kernelPackages = - pkgs.linuxPackagesFor (pkgs.rpi-kernels.v5_15_36.kernel); } diff --git a/rpi/default.nix b/rpi/default.nix index 9969816..1ee75e9 100644 --- a/rpi/default.nix +++ b/rpi/default.nix @@ -14,6 +14,7 @@ nixpkgs = { overlays = [ overlay ]; }; boot = { initrd.availableKernelModules = [ "usbhid" "usb_storage" "vc4" ]; + kernelPackages = pkgs.linuxPackagesFor (pkgs.rpi-kernels.v5_15_87.kernel); loader = { grub.enable = lib.mkDefault false;