From 9c8a4fc486dbc6f16630255b2e08f19f9886b5a8 Mon Sep 17 00:00:00 2001 From: Travis Staton Date: Thu, 11 Jan 2024 10:08:33 -0500 Subject: [PATCH] bump kernel, firmware, and libcamera/libcamera-apps --- flake.nix | 18 +++++++--- overlay/default.nix | 24 ++++++++++++-- overlay/libcamera-apps.nix | 40 ++++++++++++++++------- overlay/raspberrypi-wireless-firmware.nix | 2 +- 4 files changed, 64 insertions(+), 20 deletions(-) diff --git a/flake.nix b/flake.nix index 51e26dc..8a9fa7e 100644 --- a/flake.nix +++ b/flake.nix @@ -8,23 +8,31 @@ }; rpi-linux-6_1-src = { flake = false; - url = "github:raspberrypi/linux/1.20230405"; + url = "github:raspberrypi/linux/stable_20231123"; }; rpi-firmware-src = { flake = false; - url = "github:raspberrypi/firmware/1.20230405"; + url = "github:raspberrypi/firmware/7e6decce72fdff51923e9203db46716835ae889a"; }; rpi-firmware-nonfree-src = { flake = false; - url = "github:RPi-Distro/firmware-nonfree"; + url = "github:RPi-Distro/firmware-nonfree/88aa085bfa1a4650e1ccd88896f8343c22a24055"; }; rpi-bluez-firmware-src = { flake = false; - url = "github:RPi-Distro/bluez-firmware"; + url = "github:RPi-Distro/bluez-firmware/d9d4741caba7314d6500f588b1eaa5ab387a4ff5"; }; libcamera-apps-src = { flake = false; - url = "github:raspberrypi/libcamera-apps/v1.1.2"; + url = "github:raspberrypi/libcamera-apps/v1.4.1"; + }; + libcamera-src = { + flake = false; + url = "github:raspberrypi/libcamera/563cd78e1c9858769f7e4cc2628e2515836fd6e7"; # v0.1.0+rpt20231122 + }; + libpisp-src = { + flake = false; + url = "github:raspberrypi/libpisp/v1.0.3"; }; }; diff --git a/overlay/default.nix b/overlay/default.nix index ae44d43..ea9b0aa 100644 --- a/overlay/default.nix +++ b/overlay/default.nix @@ -4,11 +4,13 @@ , rpi-firmware-nonfree-src , rpi-bluez-firmware-src , libcamera-apps-src +, libcamera-src +, libpisp-src }: final: prev: let # The version to stick at `pkgs.rpi-kernels.latest' - latest = "v6_1_21"; + latest = "v6_1_63"; # Helpers for building the `pkgs.rpi-kernels' map. rpi-kernel = { kernel, version, fw, wireless-fw, argsOverride ? null }: @@ -42,6 +44,24 @@ in libcamera-apps = final.callPackage ./libcamera-apps.nix { inherit libcamera-apps-src; }; + libpisp = final.stdenv.mkDerivation { + name = "libpisp"; + version = "1.0.3"; + src = libpisp-src; + nativeBuildInputs = with final; [ pkg-config meson ninja ]; + buildInputs = with final; [ nlohmann_json boost ]; + # Meson is no longer able to pick up Boost automatically. + # https://github.com/NixOS/nixpkgs/issues/86131 + BOOST_INCLUDEDIR = "${prev.lib.getDev final.boost}/include"; + BOOST_LIBRARYDIR = "${prev.lib.getLib final.boost}/lib"; + }; + + libcamera = prev.libcamera.overrideAttrs (old: { + version = "0.1.0"; + src = libcamera-src; + buildInputs = old.buildInputs ++ (with final; [ libpisp ]); + }); + # provide generic rpi arm64 u-boot uboot_rpi_arm64 = prev.buildUBoot rec { defconfig = "rpi_arm64_defconfig"; @@ -75,7 +95,7 @@ in # # For example: `pkgs.rpi-kernels.v5_15_87.kernel' rpi-kernels = rpi-kernels [{ - version = "6.1.21"; + version = "6.1.63"; kernel = rpi-linux-6_1-src; fw = rpi-firmware-src; wireless-fw = import ./raspberrypi-wireless-firmware.nix { diff --git a/overlay/libcamera-apps.nix b/overlay/libcamera-apps.nix index 04e29b8..df92f34 100644 --- a/overlay/libcamera-apps.nix +++ b/overlay/libcamera-apps.nix @@ -1,22 +1,38 @@ -{ libcamera-apps-src, lib, stdenv, fetchFromGitHub, fetchpatch, cmake -, pkg-config, libjpeg, libtiff, libpng, libcamera, libepoxy, boost, libexif }: +{ libcamera-apps-src +, lib +, stdenv +, fetchFromGitHub +, fetchpatch +, meson +, pkg-config +, libjpeg +, libtiff +, libpng +, libcamera +, libepoxy +, boost +, libexif +, ninja +}: stdenv.mkDerivation rec { pname = "libcamera-apps"; - version = "v1.1.2"; + version = "v1.4.1"; src = libcamera-apps-src; - nativeBuildInputs = [ cmake pkg-config ]; - buildInputs = [ libjpeg libtiff libcamera libepoxy boost libexif libpng ]; - cmakeFlags = [ - "-DENABLE_QT=0" - "-DENABLE_OPENCV=0" - "-DENABLE_TFLITE=0" - "-DENABLE_X11=1" - "-DENABLE_DRM=1" - (if (stdenv.hostPlatform.isAarch64) then "-DARM64=ON" else "-DARM64=OFF") + nativeBuildInputs = [ meson pkg-config ]; + buildInputs = [ libjpeg libtiff libcamera libepoxy boost libexif libpng ninja ]; + mesonFlags = [ + "-Denable_qt=false" + "-Denable_opencv=false" + "-Denable_tflite=false" + "-Denable_drm=true" ]; + # Meson is no longer able to pick up Boost automatically. + # https://github.com/NixOS/nixpkgs/issues/86131 + BOOST_INCLUDEDIR = "${lib.getDev boost}/include"; + BOOST_LIBRARYDIR = "${lib.getLib boost}/lib"; meta = with lib; { description = "Userland tools interfacing with Raspberry Pi cameras"; diff --git a/overlay/raspberrypi-wireless-firmware.nix b/overlay/raspberrypi-wireless-firmware.nix index 904cbcf..c4cf5db 100644 --- a/overlay/raspberrypi-wireless-firmware.nix +++ b/overlay/raspberrypi-wireless-firmware.nix @@ -3,7 +3,7 @@ stdenvNoCC.mkDerivation { pname = "raspberrypi-wireless-firmware"; - version = "2023-01-19"; + version = "2023-11-15"; srcs = [ ];