NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
18.27k stars 14.25k forks source link

Raspberry Pi 5 support #260754

Open cor opened 1 year ago

cor commented 1 year ago

Has anyone been able to run NixOS on the newly released Raspberry Pi 5? It's not included yet in the wiki's compatibility matrix.

malteneuss commented 6 months ago

Just wanted to report back that @nvmd suggestion of https://github.com/tstat/raspberry-pi-nix so far has the simplest works-out-of-the-box experience i've seen so far; just use the example there. It seems to package the official firmware and kernels for Pi 5 and works without u-boot, as well as soon with u-boot https://github.com/tstat/raspberry-pi-nix/issues/13.

However, it can't be cross-compiled (yet), but setting up the Pi as a remote native builder is easier than i thought:

  1. Install the Nix package manager on Pi 5 Debian OS the normal way with sh <(curl -L https://nixos.org/nix/install) --daemon.
  2. setup a ssh connection from your local machine to the Pi, especially adding SetEnv PATH=/nix/var/nix/profiles/default/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin to the Pi's /etc/ssh/sshd_config file.
  3. add the remote Pi as a nix.buildMachines entry to your local machine and use connection protocol ssh-ng(!).

I've simplified the guide on https://wiki.nixos.org/wiki/Distributed_build a bit on the details for that.

fyi: The whole build for a final, pre-configured NixOS sd card image takes ~3h on the Pi 5 8GB. You can then dd that image onto an SD card or NVMe and boot.

aflox405 commented 5 months ago

Thanks everyone for bootstrapping this, it's awesome and much appreciated work :heart:

I've started following the combined guides of @RyanGibb and @cmacrae , but it seems I got stuck somewhere... I prepared the SDcard, booted the USB and installed NIxOS (24.05) to the SDcard as suggested. After rebooting, unplugging the USB drive and switching from AHCI to device tree, the PI boots into systemd-boot, I see the NixOS entry, but after selecting it, I see

EFI stub: Booting Linux Kernel ....
EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path
EFI stub: Generating empty DTB
EFI stub: Exiting boot service ...

And then nothing happens. I'd appreciate any pointers :pray:

jDmacD commented 5 months ago

Just wanted to report back that @nvmd suggestion of https://github.com/tstat/raspberry-pi-nix so far has the simplest works-out-of-the-box experience i've seen so far; just use the example there. It seems to package the official firmware and kernels for Pi 5 and works without u-boot, as well as soon with u-boot tstat/raspberry-pi-nix#13.

However, it can't be cross-compiled (yet), but setting up the Pi as a remote native builder is easier than i thought:

1. Install the Nix package manager on Pi 5 Debian OS the normal way with `sh <(curl -L https://nixos.org/nix/install) --daemon`.

2. setup a `ssh` connection from your local machine to the Pi, especially adding `SetEnv PATH=/nix/var/nix/profiles/default/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin` to the Pi's `/etc/ssh/sshd_config` file.

3. add the remote Pi as a `nix.buildMachines` entry to your local machine and use connection protocol `ssh-ng`(!).

I've simplified the guide on https://wiki.nixos.org/wiki/Distributed_build a bit on the details for that.

fyi: The whole build for a final, pre-configured NixOS sd card image takes ~3h on the Pi 5 8GB. You can then dd that image onto an SD card or NVMe and boot.

hetzner has very reasonably priced arm servers. I set one up as a a builder using nixos-anywhere. You can use the lowest tier and scale it up anytime you need to perform a kernel build. Using the 16 core instance it takes about 40 minutes!

celesrenata commented 4 months ago

So, I ran into new problems in 24.05 and the RPi5, for some reason one day, as I rolled up changes, my wifi drivers went poof! No matter what I couldn't get them back. So I decided to try to start my journey to upgrade out of the problem.

I've taken a few stabs at it over the weeks thanks to @leo60228's kernel base. I ended up with this working when married with the following overlay https://github.com/raspberrypi/firmware/tree/f1266637375cd7880946dbaceda871f3f308d901/boot/overlays

We now have access to 6.6.35 main! I noticed that stable 6.6.28 and 6.6.31 do not build for us, however, this does!

You will need to update your kernel packages with.... (https://github.com/celesrenata/nix-flakes/blob/rpi5/nixberry/boot.nix)

kernelPackages = let
        linux_rpi5_pkg = { stdenv, lib, buildPackages, fetchFromGitHub, perl, buildLinux, rpiVersion, ... } @ args:

        let
          # NOTE: raspberrypifw & raspberryPiWirelessFirmware should be updated with this
          modDirVersion = "6.6.35";
          tag = "rpi-6.6.y";
        in
        lib.overrideDerivation (buildLinux (args // {
          version = "${modDirVersion}-${tag}";
          inherit modDirVersion;

          src = fetchFromGitHub {
            owner = "raspberrypi";
            repo = "linux";
            rev = "c1432b4bae5b6582f4d32ba381459f33c34d1424";
            hash = "sha256-pzjgCWG9FhMU3LCZnvz5N4jYfaaJQDT6Pv5lD/3zsm4=";
          };
          defconfig = {
            "1" = "bcmrpi_defconfig";
            "2" = "bcm2709_defconfig";
            "3" = if stdenv.hostPlatform.isAarch64 then "bcmrpi3_defconfig" else "bcm2709_defconfig";
            "4" = "bcm2711_defconfig";
            "5" = "bcm2712_defconfig";
          }.${toString rpiVersion};

          features = {
            efiBootStub = false;
          } // (args.features or {});

         # Left over from a previous struggle and can be deleted
          makeFlags = [
            "CONFIG_CEPH_LIB=n"
            "CONFIG_CEPH_FS=n"
            "CONFIG_CEPH_FSCACHE=n"
            "CONFIG_CEPH_FS_POSIX_ACL=n"
            "CONFIG_EROFS_FS_XATTR=n"
            "CONFIG_EROFS_FS_POSIX_ACL=n"
            "CONFIG_EROFS_FS_SECURITY=n"
            "CONFIG_EROFS_FS_ZIP=n"
            "CONFIG_SND_SOC_SIMPLE_MUX=n"
          ];
          # /Delete

          extraMeta = if (rpiVersion < 3) then {
            platforms = with lib.platforms; arm;
            hydraPlatforms = [];
          } else {
            platforms = with lib.platforms; arm ++ aarch64;
            hydraPlatforms = [ "aarch64-linux" ];
          };
        } // (args.argsOverride or {}))) (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=""/'
            sed -i $buildRoot/include/config/auto.conf -e 's/^CONFIG_LOCALVERSION=.*/CONFIG_LOCALVERSION=""/'
          '';

          # 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.
          postFixup = ''
            dtbDir=${if stdenv.isAarch64 then "$out/dtbs/broadcom" else "$out/dtbs"}
            rm $dtbDir/bcm283*.dtb
            copyDTB() {
              cp -v "$dtbDir/$1" "$dtbDir/$2"
            }
          '' + lib.optionalString (lib.elem stdenv.hostPlatform.system ["armv6l-linux"]) ''
            copyDTB bcm2708-rpi-zero-w.dtb bcm2835-rpi-zero.dtb
            copyDTB bcm2708-rpi-zero-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
          '' + lib.optionalString (lib.elem stdenv.hostPlatform.system ["armv7l-linux"]) ''
            copyDTB bcm2709-rpi-2-b.dtb bcm2836-rpi-2-b.dtb
          '' + lib.optionalString (lib.elem stdenv.hostPlatform.system ["armv7l-linux" "aarch64-linux"]) ''
            copyDTB bcm2710-rpi-zero-2.dtb bcm2837-rpi-zero-2.dtb
            copyDTB bcm2710-rpi-3-b.dtb bcm2837-rpi-3-b.dtb
            copyDTB bcm2710-rpi-3-b-plus.dtb bcm2837-rpi-3-a-plus.dtb
            copyDTB bcm2710-rpi-3-b-plus.dtb bcm2837-rpi-3-b-plus.dtb
            copyDTB bcm2710-rpi-cm3.dtb bcm2837-rpi-cm3.dtb
            copyDTB bcm2711-rpi-4-b.dtb bcm2838-rpi-4-b.dtb
          '';
        } // (args.argsOverride or {}));
      linux_rpi5 = pkgs.callPackage linux_rpi5_pkg{
        kernelPatches = with pkgs.kernelPatches; [
          bridge_stp_helper
          request_key_helper
        ];
        rpiVersion = 5;
      };
    in
      pkgs.recurseIntoAttrs (pkgs.linuxPackagesFor linux_rpi5);

I am currently sitting happily on wifi on Hyprland again on my RPi5.

koalalorenzo commented 4 months ago

It's very sad to hear that this issue has been closed and not planned :(

I run NixOS successfully on 4 rpi 4, and I have started upgrading to rpi 5 slowly. It's a pity that the interest is not there, and I wish I could help somehow as I know that I am not alone!

I know there are difficulties, practical and philosophical. The user base of these board is massive, and I believe I am not the only one eyeing it! Is this something that will change in the future at some point?

redyf commented 4 months ago

It's very sad to hear that this issue has been closed and not planned :(

I run NixOS successfully on 4 rpi 4, and I have started upgrading to rpi 5 slowly. It's a pity that the interest is not there, and I wish I could help somehow as I know that I am not alone!

I know there are difficulties, practical and philosophical. The user base of these board is massive, and I believe I am not the only one eyeing it! Is this something that will change in the future at some point?

I meant that I accidentaly referenced this issue link on a PR I did 😅. Thanks to the awesome guides in this issue, I managed to install NixOS on a Raspberry PI 5, it's even running Sway (wayland). I'm really happy with it and appreciate all the hard work you guys did!

nbdd0121 commented 4 months ago

What do you mean by accidentally opened the issue? The issue is opened @cor ~9 month ago.

haras-unicorn commented 4 months ago

It's very sad to hear that this issue has been closed and not planned :( I run NixOS successfully on 4 rpi 4, and I have started upgrading to rpi 5 slowly. It's a pity that the interest is not there, and I wish I could help somehow as I know that I am not alone! I know there are difficulties, practical and philosophical. The user base of these board is massive, and I believe I am not the only one eyeing it! Is this something that will change in the future at some point?

I meant that I accidentaly referenced this issue link on a PR I did 😅. Thanks to the awesome guides in this issue, I managed to install NixOS on a Raspberry PI 5, it's even running Sway (wayland). I'm really happy with it and appreciate all the hard work you guys did!

just to make sure it is planned then but u referencing it somehow closed it? or am i missing something?

JonBoyleCoding commented 4 months ago

I'm a little confused - prior to @redyf closing as not planned 3 days ago, I believe this issue was still set to being open as I check it regularly? I see no reference to it being closed prior either. So why is it now closed?

redyf commented 4 months ago

This was a HUGE misunderstanding on my part, I apologize for anyone I affected by closing the issue. The concept of issues just wasn't clear enough for me and I thought I could just clear the reference I did to the commit. I had no clue I could actually close the issue that has been opened by other users. In summary, I'm dumb 😅

ElvishJerricco commented 4 months ago

To be clear: The intention going forward is for board-specific support to be done in https://github.com/NixOS/nixos-hardware. Realistically, this should be an issue on that repo, not nixpkgs. Ideally, the rpi kernels would be moved out of nixpkgs altogether.

tobiasBora commented 2 months ago

So I have a few questions:

First, has anyone tried https://github.com/nix-community/raspberry-pi-nix with the rpi5 kernel that is now in nixpkgs and built by hydra? https://github.com/NixOS/nixos-hardware/pull/927 If it works, does it mean that I don't need to rely on cachix anymore?

Then, the wiki mentions that the recommended option is rather to use EDK2 (that seems to default to ACPI mode) + the rpi5 kernel that is in nixpkgs. But my understanding (shared by @K900 in a matrix discussion) is that this solution cannot work since the rpi5 kernel expect devices to be served in a device tree mode… So is the wiki missing a step to enable DT mode here?

Finally, I find it quite hard to know which option to choose from in the wiki, can one compare them in term of:

  1. hardware support
  2. build time
  3. active support (I guess it is better to limit external dependencies that may be unmaintained)

Pinging @malteneuss @leo60228 since it seems like you contributed to the wiki.

malteneuss commented 2 months ago

Unfortunately, i can't remember in what setup EDK2 worked and i no longer own a Pi 5 as it required more tinkering than i have time for. I had the least issues with what is now https://github.com/nix-community/raspberry-pi-nix so you might start with that until a solution to the device tree problem is found.

leo60228 commented 2 months ago

So is the wiki missing a step to enable DT mode here?

@tobiasBora This is covered in the wiki. To my knowledge, the steps in the Alternative board-specific installation notes section are still accurate, though should likely be updated to refer to nixos-hardware instead of my flake.

The "Setting up a generic UEFI NixOS" section was not written by me, and does seem to contain some notable omissions. I think it should probably be unified with the latter section.

tobiasBora commented 2 months ago

@leo60228 Yeah, the steps in https://wiki.nixos.org/wiki/NixOS_on_ARM/Raspberry_Pi_5#Alternative_board-specific_installation_notes are not the ones that I was having issues with… but why do you say that they should be updated with nixos-hardware? Can't we simply use the kernel rpi5 that is now in nixpkgs? Or is this kernel different from the official rpi5 kernel?

Regarding the Setting up a generic UEFI NixOS, the main difference to me with your section is that it does not mention that one must enable DT… hence it seems like this uses ACPI mode, in which case how can this even have a chance to work with the rpi5 kernel that expects DT? Or do you mean that the upstream EDK2 readme mentions somewhere If you're running the RPi downstream kernel, enabling Device Tree instead of ACPI will provide better hardware support., and the wiki expects the user to follow this recommendation?

But yeah, the wiki page is getting a bit messy now ^^

I had the least issues with what is now https://github.com/nix-community/raspberry-pi-nix so you might start with that until a solution to the device tree problem is found.

Yeah, this worked flawlessly, with cache provided by cachix. For reference I added in my configuration.nix

  boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
  nix = {
    settings = {
      # Enable flakes and new 'nix' command
      experimental-features = "nix-command flakes";
      # Add binary cache
      trusted-substituters = [ "https://nix-community.cachix.org" ];
      trusted-public-keys = [
        "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
      ];
    };
  };

to enable flake and cachix and emulate compilation on aarch64, then I created a flake.nix containing:

{
  description = "raspberry-pi-nix example";
  nixConfig = {
    # Only during the first build, otherwise I don't want to allow such a binary cache
    extra-substituters = [ "https://nix-community.cachix.org" ];
    extra-trusted-public-keys = [
      "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
    ];
  };
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11";
    raspberry-pi-nix.url = "github:nix-community/raspberry-pi-nix";
  };

  outputs = { self, nixpkgs, raspberry-pi-nix }:
    let
      inherit (nixpkgs.lib) nixosSystem;
      basic-config = { pkgs, lib, ... }: {
        # bcm2711 for rpi 3, 3+, 4, zero 2 w
        # bcm2712 for rpi 5
        # See the docs at:
        # https://www.raspberrypi.com/documentation/computers/linux_kernel.html#native-build-configuration
        raspberry-pi-nix.board = "bcm2712";
        time.timeZone = "Europe/Paris";
        users.users.root = {
          initialPassword = "some password to change";
          openssh.authorizedKeys.keys = [
            "some ssh key"
          ];          
        };
          # Define a user account. Don't forget to set a password with ‘passwd’.
        users.users.me = {
          isNormalUser = true;
          extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
          initialPassword = "my initial password to change";
          openssh.authorizedKeys.keys = [
            "my ssh key to login directly via ssh"
          ];
        };

        networking = {
          hostName = "myrpi5";
          #useDHCP = false;
          #interfaces = { wlan0.useDHCP = true; };
        };
        environment.systemPackages = with pkgs; [
          emacs
          git
          wget
          bluez
          bluez-tools
        ];
        services.openssh = {
          enable = true;
        };
        hardware = {
          bluetooth.enable = true;
         # TODO: check if needed
          # raspberry-pi = {
          #   config = {
          #     all = {
          #       base-dt-params = {
          #         # enable autoprobing of bluetooth driver
          #         # https://github.com/raspberrypi/linux/blob/c8c99191e1419062ac8b668956d19e788865912a/arch/arm/boot/dts/overlays/README#L222-L224
          #         krnbt = {
          #           enable = true;
          #           value = "on";
          #         };
          #       };
          #     };
          #   };
          # };
        };
        system.stateVersion = "23.11";
      };

    in
      {
        nixosConfigurations = {
          myrpi5 = nixosSystem {
            system = "aarch64-linux";
            modules = [ raspberry-pi-nix.nixosModules.raspberry-pi basic-config ];
          };
        };
      };
}

basically copy/pasted from the readme with a few additions to add ssh keys (I have no HDMI monitor hence I want to be able to connect directly) and build it with:

$ nix build '.#nixosConfigurations.myrpi5.config.system.build.sdImage'

Then just burn on the SD card:

$ sudo su
# zstdcat -v result/sd-image/nixos-sd-image-23.11.20240709.205fd42-aarch64-linux.img.zst > /dev/mmcblk0

and finally just boot the raspberry pi, I did it with ethernet plugged (no monitor), and after a bit of nmap or check the internet box to get the raspberry pi IP, I could just connect via ssh directly. Great, now I need to check hardware support!

leo60228 commented 2 months ago

Can't we simply use the kernel rpi5 that is now in nixpkgs?

There isn't one? If you mean linux_rpi4, that has a different page size which results in worse performance.

tobiasBora commented 2 months ago

I was refering to this pr https://github.com/NixOS/nixos-hardware/pull/927 but do you mean this is rpi4 + some tweaks and not rpi5 itself?

leo60228 commented 2 months ago

nixos-hardware isn't part of Nixpkgs.

tobiasBora commented 2 months ago

Oh stupid me… thanks!

Daholli commented 4 days ago

Has anyone gotten this to work recently? I've tried multiple times to get the uefi bootloader to install but it just leads to black screens. The pi works I've installed Debian on it and it works like a charm, but I do want to have nixos on it

sydneymeyer commented 4 days ago

@Daholli I'm running my RPi5 for a while on NixOS now, booting from UEFI [1] with the vendor 6.6 LTS kernel [2] from @leo60228's nix-rpi5 flake [3].

[1] https://github.com/worproject/rpi5-uefi [2] https://github.com/raspberrypi/linux/releases/tag/stable_20241008 [3] https://gitlab.com/vriska/nix-rpi5

Daholli commented 4 days ago

@Daholli I'm running my RPi5 for a while on NixOS now, booting from UEFI [1] with the vendor 6.6 LTS kernel [2] from @leo60228's nix-rpi5 flake [3].

[1] https://github.com/worproject/rpi5-uefi [2] https://github.com/raspberrypi/linux/releases/tag/stable_20241008 [3] https://gitlab.com/vriska/nix-rpi5

I am just so confused by setting up the uefi-bootloader, supposedly there should be a menu/loading bar, but neither of them show up for me, I was just wondering if anyone else ran into that issue

sydneymeyer commented 4 days ago

The only issue i remember was somewhere between the switch from 6.1 LTS to 6.6 LTS, the kernel panicked in stage 1 with the DTB bundled with the 0.3 release of rpi-uefi. I copied over the one built from the nix flake and the system booted again.

But that was obviously after UEFI initialized the HW, etc.

For initial setup, i followed this comment from @RyanGibb, more or less (gptfdisk), but basically, it's just GPT with a FAT32 partition and extracting the files from the latest rpi5-uefi release zip-file onto it.

The last thing i could think of is a different bootloader?

rpi-eeprom-update BOOTLOADER: up to date CURRENT: Fri Feb 16 03:28:41 PM UTC 2024 (1708097321) LATEST: Fri Feb 16 03:28:41 PM UTC 2024 (1708097321) RELEASE: default (/nix/store/62bvhy29i92qb1v2zvvq9ra3j859s7j8-raspberrypi-eeprom-2024.02.16-2712/lib/firmware/raspberrypi/bootloader-2712/default) Use raspi-config to change the release.

I don't know if the rpi-eeprom-update output is indeed correct, though, considering i'm not running RaspberryPi OS.

Admittedly, i haven't seen (via HDMI) my Pi booting for quite a while now, so i can't tell if it's still working, but i'm about to switch to the 24.11 Beta and i'll wire up HDMI for the next reboot and have a peak.

Daholli commented 4 days ago

The only issue i remember was somewhere between the switch from 6.1 LTS to 6.6 LTS, the kernel panicked in stage 1 with the DTB bundled with the 0.3 release of rpi-uefi. I copied over the one built from the nix flake and the system booted again.

But that was obviously after UEFI initialized the HW, etc.

For initial setup, i followed this comment from @RyanGibb, more or less (gptfdisk), but basically, it's just GPT with a FAT32 partition and extracting the files from the latest rpi5-uefi release zip-file onto it.

The last thing i could think of is a different bootloader?

rpi-eeprom-update BOOTLOADER: up to date CURRENT: Fri Feb 16 03:28:41 PM UTC 2024 (1708097321) LATEST: Fri Feb 16 03:28:41 PM UTC 2024 (1708097321) RELEASE: default (/nix/store/62bvhy29i92qb1v2zvvq9ra3j859s7j8-raspberrypi-eeprom-2024.02.16-2712/lib/firmware/raspberrypi/bootloader-2712/default) Use raspi-config to change the release.

I don't know if the rpi-eeprom-update output is indeed correct, though, considering i'm not running RaspberryPi OS.

Admittedly, i haven't seen (via HDMI) my Pi booting for quite a while now, so i can't tell if it's still working, but i'm about to switch to the 24.11 Beta and i'll wire up HDMI for the next reboot and have a peak.

Thanks for all the advice, I've done all these already, maybe I will just give it another shot tomorrow...

So far I managed to have the nixos-installer show up, but once I select any option in the initial menu, the screen turns black but active. I was just so surprised nobody else seemed to have this problem.

sydneymeyer commented 4 days ago

The iso image i initially booted from is from this commit, if it's any help at all..

DerRockWolf commented 3 days ago

@Daholli I'm running my RPi5 for a while on NixOS now, booting from UEFI [1] with the vendor 6.6 LTS kernel [2] from @leo60228's nix-rpi5 flake [3]. [1] https://github.com/worproject/rpi5-uefi [2] https://github.com/raspberrypi/linux/releases/tag/stable_20241008 [3] https://gitlab.com/vriska/nix-rpi5

I am just so confused by setting up the uefi-bootloader, supposedly there should be a menu/loading bar, but neither of them show up for me, I was just wondering if anyone else ran into that issue

I've used nix-community/raspberry-pi-nix for my Pi 5s. Works perfectly for my use-case (hosts a small k3s cluster) and it was farely easy to setup.

Daholli commented 3 days ago

@DerRockWolf I am currently trying to set this up, since I was still not able to get UEFI boot to work.

@sydneymeyer have you ever seen this screen? edk2_setup_screen I dunno why but this is driving me crazy, it looks like the pi is doing something with the installer, i can also interact with it on the first screen but after that it is just a black image, but the background lighting stays on. I event tried custom isos, maybe i will try the graphical installer since I've only tried headless so far.

But I am just so confused the instructions and what is supposed to happen are so straight forward but for some reason I am stuck at step 1 with very little options to debug, as I don't think there is any logging happening at that level

sydneymeyer commented 3 days ago

@Daholli Yes, that is the aforementioned UEFI Menu. The odd thing here is, that i had to boot the NixOS Image in ACPI Mode (because of NixOS's upstream kernel). In the live-environment you only have network access via wifi. After nixos-install with the vendor kernel from the flake, one is supposed to switch from "ACPI" to "Device Tree" for the next boot.

Daholli commented 3 days ago

@Daholli Yes, that is the aforementioned UEFI Menu. The odd thing here is, that i had to boot the NixOS Image in ACPI Mode (because of NixOS's upstream kernel). In the live-environment you only have network access via wifi. After nixos-install with the vendor kernel from the flake, one is supposed to switch from "ACPI" to "Device Tree" for the next boot.

I haven't seen this screen even once, across multiple sd-cards, so I cannot even run the live image in ACPI mode, maybe this has to do with me having the 8GB version compared to this showing the 4GB ram version? It is just so confusing

sydneymeyer commented 3 days ago

@Daholli I also have the 8GB version, and i just checked, the UEFI Menu show the correct 8192MB of memory. This is confusing indeed, now i'm truly intrigued..

Daholli commented 3 days ago

@Daholli I also have the 8GB version, and i just checked, the UEFI Menu show the correct 8192MB of memory. This is confusing indeed, now i'm truly intrigued..

I am currently trying to compile a newer version of the firmware using the build.sh script in the uefi-rp5 repo, but setting this up to build on nix is a nightmare in itself

sydneymeyer commented 3 days ago

IMO, the whole platform is a nightmare, truly can understand the decision this time not to maintain for the RPI5.

This comment also mentions the apparently necessary step to make sure the esp flag were to be set on the FAT32 partition, but i guess, that's depends on the different partitioning tools used.

Furthermore, trying to disable the "force_turbo" option from the config.txt (perhaps an issue with your specific chip?). But that last one kind of illustrates the kind of perplexity of facing atm.

Also, i believe there is a newer stepping of the SoC getting produced, but i think it's only the 2GB version as of now.