From 25118248489e047a7da43a21409b457aa2af315e Mon Sep 17 00:00:00 2001 From: Jamie Magee Date: Wed, 29 Jan 2025 20:39:50 -0800 Subject: [PATCH 1/5] Ignore kernel configuration errors Fixes #113 See https://github.com/NixOS/nixpkgs/pull/366004 --- overlays/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/overlays/default.nix b/overlays/default.nix index 325e9b2..ffbe76c 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -63,6 +63,7 @@ let features.efiBootStub = false; kernelPatches = if kernel ? "patches" then kernel.patches else [ ]; + ignoreConfigErrors = true; }).overrideAttrs (oldAttrs: { postConfigure = '' From 36d2ee3511581cbcb58bb09a820195c6da72408b Mon Sep 17 00:00:00 2001 From: Jamie Magee Date: Tue, 4 Feb 2025 09:23:49 -0800 Subject: [PATCH 2/5] Automatically update `flake.lock` using GitHub Actions --- .github/workflows/update-flake-lock.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .github/workflows/update-flake-lock.yml diff --git a/.github/workflows/update-flake-lock.yml b/.github/workflows/update-flake-lock.yml new file mode 100644 index 0000000..ec1a8cd --- /dev/null +++ b/.github/workflows/update-flake-lock.yml @@ -0,0 +1,23 @@ +name: update-flake-lock + +on: + workflow_dispatch: + schedule: + - cron: '0 0 * * 0' + +permissions: + contents: write + pull-requests: write + +jobs: + lockfile: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + + - name: Install nix + uses: DeterminateSystems/nix-installer-action@e50d5f73bfe71c2dd0aa4218de8f4afa59f8f81d # v16 + + - name: Update flake.lock + uses: DeterminateSystems/update-flake-lock@a2bbe0274e3a0c4194390a1e445f734c597ebc37 # v24 From 824ce252585a8fbf8b50023da67c8405d5f4ff85 Mon Sep 17 00:00:00 2001 From: Jeroen Leeuwestein Date: Sat, 8 Feb 2025 19:58:46 +0100 Subject: [PATCH 3/5] Make inclusion of console=serial0 in kernelParams (cmdline.txt) configurable --- rpi/default.nix | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/rpi/default.nix b/rpi/default.nix index dc207eb..ff0a62b 100644 --- a/rpi/default.nix +++ b/rpi/default.nix @@ -77,6 +77,18 @@ in package = mkPackageOption pkgs "uboot-rpi-arm64" { }; }; + serial-console = { + enable = mkOption { + default = true; + type = types.bool; + description = '' + Whether to enable a console on serial0. + + Corresponds with raspi-config's setting + "Would you like a login shell to be accessible over serial?" + ''; + }; + }; }; }; @@ -319,11 +331,14 @@ in boot = { kernelParams = if cfg.uboot.enable then [ ] - else [ - "console=tty1" - # https://github.com/raspberrypi/firmware/issues/1539#issuecomment-784498108 - "console=serial0,115200n8" - "init=/sbin/init" + else builtins.concatLists [ + [ "console=tty1" ] + (if cfg.serial-console.enable then [ + # https://github.com/raspberrypi/firmware/issues/1539#issuecomment-784498108 + "console=serial0,115200n8" + ] else [ ] + ) + [ "init=/sbin/init" ] ]; initrd = { availableKernelModules = [ From b54486ef66721f3e6c8fad98c83b8e7f61e2aad4 Mon Sep 17 00:00:00 2001 From: Will Fancher Date: Mon, 17 Feb 2025 14:11:59 -0500 Subject: [PATCH 4/5] use nixpkgs upstream uboot It's more up to date and it successfully cross compiles --- flake.lock | 16 +--------------- flake.nix | 4 ---- overlays/default.nix | 9 ++------- 3 files changed, 3 insertions(+), 26 deletions(-) diff --git a/flake.lock b/flake.lock index 71d9a0d..999dfd1 100644 --- a/flake.lock +++ b/flake.lock @@ -61,8 +61,7 @@ "rpi-linux-6_12_11-src": "rpi-linux-6_12_11-src", "rpi-linux-6_6_67-src": "rpi-linux-6_6_67-src", "rpi-linux-stable-src": "rpi-linux-stable-src", - "rpicam-apps-src": "rpicam-apps-src", - "u-boot-src": "u-boot-src" + "rpicam-apps-src": "rpicam-apps-src" } }, "rpi-bluez-firmware-src": { @@ -183,19 +182,6 @@ "repo": "rpicam-apps", "type": "github" } - }, - "u-boot-src": { - "flake": false, - "locked": { - "lastModified": 1719857238, - "narHash": "sha256-mJ2TBy0Y5ZtcGFgtU5RKr0UDUp5FWzojbFb+o/ebRJU=", - "type": "tarball", - "url": "https://ftp.denx.de/pub/u-boot/u-boot-2024.07.tar.bz2" - }, - "original": { - "type": "tarball", - "url": "https://ftp.denx.de/pub/u-boot/u-boot-2024.07.tar.bz2" - } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 1668198..8ede62a 100644 --- a/flake.nix +++ b/flake.nix @@ -3,10 +3,6 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11"; - u-boot-src = { - flake = false; - url = "https://ftp.denx.de/pub/u-boot/u-boot-2024.07.tar.bz2"; - }; rpi-linux-stable-src = { flake = false; url = "github:raspberrypi/linux/stable_20241008"; diff --git a/overlays/default.nix b/overlays/default.nix index 1ad69a6..83ef91f 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -1,5 +1,4 @@ -{ u-boot-src -, rpi-linux-stable-src +{ rpi-linux-stable-src , rpi-linux-6_6_67-src , rpi-linux-6_12_11-src , rpi-firmware-src @@ -83,14 +82,10 @@ in compressFirmwareZstd = x: x; # provide generic rpi arm64 u-boot - uboot-rpi-arm64 = final.buildUBoot rec { + uboot-rpi-arm64 = final.buildUBoot { defconfig = "rpi_arm64_defconfig"; extraMeta.platforms = [ "aarch64-linux" ]; filesToInstall = [ "u-boot.bin" ]; - version = "2024.04"; - patches = [ ]; - makeFlags = [ ]; - src = u-boot-src; # In raspberry pi sbcs the firmware manipulates the device tree in # a variety of ways before handing it off to the linux kernel. [1] # Since we have installed u-boot in place of a linux kernel we may From abd2352d0405bdae6c43d022e4c65085311d5d7d Mon Sep 17 00:00:00 2001 From: Jamie Magee Date: Sat, 1 Mar 2025 20:48:28 -0800 Subject: [PATCH 5/5] bump 6.6.y and 6.12.y kernel versions `rpi-6.6.y` went from `6.6.67` to `6.6.74`. `rpi-6.12.y` went from `6.12.11` to `6.12.17` --- flake.lock | 20 ++++++++++---------- flake.nix | 4 ++-- overlays/default.nix | 12 ++++++------ 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/flake.lock b/flake.lock index 999dfd1..81f91aa 100644 --- a/flake.lock +++ b/flake.lock @@ -58,8 +58,8 @@ "rpi-bluez-firmware-src": "rpi-bluez-firmware-src", "rpi-firmware-nonfree-src": "rpi-firmware-nonfree-src", "rpi-firmware-src": "rpi-firmware-src", - "rpi-linux-6_12_11-src": "rpi-linux-6_12_11-src", - "rpi-linux-6_6_67-src": "rpi-linux-6_6_67-src", + "rpi-linux-6_12_17-src": "rpi-linux-6_12_17-src", + "rpi-linux-6_6_78-src": "rpi-linux-6_6_78-src", "rpi-linux-stable-src": "rpi-linux-stable-src", "rpicam-apps-src": "rpicam-apps-src" } @@ -115,14 +115,14 @@ "type": "github" } }, - "rpi-linux-6_12_11-src": { + "rpi-linux-6_12_17-src": { "flake": false, "locked": { - "lastModified": 1738149451, - "narHash": "sha256-NGmZcaC2vlewTEV/p0z2+6PWnHB229dkGui45kI8HOE=", + "lastModified": 1740765145, + "narHash": "sha256-hoCsGc4+RC/2LmxDtswLBL5ZhWlw4vSiL4Vkl39r2MU=", "owner": "raspberrypi", "repo": "linux", - "rev": "fab655ee33e6d647da5996c5548cfd7d43447a53", + "rev": "5985ce32e511f4e8279a841a1b06a8c7d972b386", "type": "github" }, "original": { @@ -132,14 +132,14 @@ "type": "github" } }, - "rpi-linux-6_6_67-src": { + "rpi-linux-6_6_78-src": { "flake": false, "locked": { - "lastModified": 1734790986, - "narHash": "sha256-q9swM2TmmuzbUuQnbLZk5PseKWD7/SNPwtth6bpGIqE=", + "lastModified": 1740503700, + "narHash": "sha256-Y8+ot4Yi3UKwlZK3ap15rZZ16VZDvmeFkD46+6Ku7bE=", "owner": "raspberrypi", "repo": "linux", - "rev": "811ff707533bcd67cdcd368bbd46223082009b12", + "rev": "2e071057fded90e789c0101498e45a1778be93fe", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 8ede62a..fe3fc24 100644 --- a/flake.nix +++ b/flake.nix @@ -7,11 +7,11 @@ flake = false; url = "github:raspberrypi/linux/stable_20241008"; }; - rpi-linux-6_6_67-src = { + rpi-linux-6_6_78-src = { flake = false; url = "github:raspberrypi/linux/rpi-6.6.y"; }; - rpi-linux-6_12_11-src = { + rpi-linux-6_12_17-src = { flake = false; url = "github:raspberrypi/linux/rpi-6.12.y"; }; diff --git a/overlays/default.nix b/overlays/default.nix index f5e1367..b859342 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -1,6 +1,6 @@ { rpi-linux-stable-src -, rpi-linux-6_6_67-src -, rpi-linux-6_12_11-src +, rpi-linux-6_6_78-src +, rpi-linux-6_12_17-src , rpi-firmware-src , rpi-firmware-nonfree-src , rpi-bluez-firmware-src @@ -10,9 +10,9 @@ final: prev: let versions = { v6_6_51.src = rpi-linux-stable-src; - v6_6_67.src = rpi-linux-6_6_67-src; - v6_12_11 = { - src = rpi-linux-6_12_11-src; + v6_6_78.src = rpi-linux-6_6_78-src; + v6_12_17 = { + src = rpi-linux-6_12_17-src; patches = [ { name = "remove-readme-target.patch"; @@ -114,7 +114,7 @@ in # rpi kernels and firmware are available at # `pkgs.rpi-kernels..'. # - # For example: `pkgs.rpi-kernels.v6_6_67.bcm2712' + # For example: `pkgs.rpi-kernels.v6_6_78.bcm2712' rpi-kernels = rpi-kernels ( final.lib.cartesianProduct { board = boards; version = (builtins.attrNames versions); }