|  | 
| 1 | 1 | { pinned, core-overlay, libcamera-overlay }: | 
| 2 | 2 | { lib, pkgs, config, ... }: | 
| 3 | 3 | 
 | 
| 4 |  | -let cfg = config.raspberry-pi-nix; | 
|  | 4 | +let | 
|  | 5 | +  cfg = config.raspberry-pi-nix; | 
|  | 6 | +  kernel-pkgs = if cfg.pin-kernel.enable then pinned else pkgs; | 
| 5 | 7 | in | 
| 6 | 8 | { | 
| 7 | 9 |   imports = [ ../sd-image ./config.nix ./i2c.nix ]; | 
|  | 
| 96 | 98 |                 TARGET_OVERLAYS_DIR="$TARGET_FIRMWARE_DIR/overlays" | 
| 97 | 99 |                 TMPFILE="$TARGET_FIRMWARE_DIR/tmp" | 
| 98 | 100 |                 UBOOT="${pkgs.uboot_rpi_arm64}/u-boot.bin" | 
| 99 |  | -                KERNEL="${pkgs.rpi-kernels.latest.kernel}/Image" | 
|  | 101 | +                KERNEL="${kernel-pkgs.rpi-kernels.latest.kernel}/Image" | 
| 100 | 102 |                 SHOULD_UBOOT=${if cfg.uboot.enable then "1" else "0"} | 
| 101 | 103 |                 SRC_FIRMWARE_DIR="${pkgs.raspberrypifw}/share/raspberrypi/boot" | 
| 102 | 104 |                 STARTFILES=("$SRC_FIRMWARE_DIR"/start*.elf) | 
|  | 
| 124 | 126 |                   cp "$KERNEL" "$TMPFILE" | 
| 125 | 127 |                   mv -T "$TMPFILE" "$TARGET_FIRMWARE_DIR/kernel.img" | 
| 126 | 128 |                   echo "${ | 
| 127 |  | -                    builtins.toString pkgs.rpi-kernels.latest.kernel | 
|  | 129 | +                    builtins.toString kernel-pkgs.rpi-kernels.latest.kernel | 
| 128 | 130 |                   }" > "$STATE_DIRECTORY/kernel-version" | 
| 129 | 131 |                   rm "$STATE_DIRECTORY/kernel-migration-in-progress" | 
| 130 | 132 |                 } | 
|  | 
| 180 | 182 |                 fi | 
| 181 | 183 | 
 | 
| 182 | 184 |                 if [[ "$SHOULD_UBOOT" -ne 1 ]] && [[ ! -f "$STATE_DIRECTORY/kernel-version" || $(< "$STATE_DIRECTORY/kernel-version") != ${ | 
| 183 |  | -                  builtins.toString pkgs.rpi-kernels.latest.kernel | 
|  | 185 | +                  builtins.toString kernel-pkgs.rpi-kernels.latest.kernel | 
| 184 | 186 |                 } ]]; then | 
| 185 | 187 |                   migrate_kernel | 
| 186 | 188 |                 fi | 
|  | 
| 284 | 286 |       # This pin is not necessary, it would be fine to replace it with | 
| 285 | 287 |       # `pkgs.rpi-kernels.latest.kernel`. It is helpful to ensure | 
| 286 | 288 |       # cache hits for kernel builds though. | 
| 287 |  | -      kernelPackages = | 
| 288 |  | -        if cfg.pin-kernel.enable | 
| 289 |  | -        then pinned.linuxPackagesFor (pinned.rpi-kernels.latest.kernel) | 
| 290 |  | -        else pkgs.linuxPackagesFor (pkgs.rpi-kernels.latest.kernel); | 
|  | 289 | +      kernelPackages = kernel-pkgs.linuxPackagesFor kernel-pkgs.rpi-kernels.latest.kernel; | 
| 291 | 290 | 
 | 
| 292 | 291 |       loader = { | 
| 293 | 292 |         grub.enable = lib.mkDefault false; | 
|  | 
0 commit comments