Installing NixOS on Renegade ROC-RK3328-CC

Hello everyone,
I am currently trying to install NixOS on my recently bought SBC “Renegae ROC-RK3328-CC” by libre computer. I followed the wiki article’s (NixOS on ARM/Libre Computer ROC-RK3328-CC - NixOS Wiki) both methods (I will walk you through every step I took shortly).
I also found this reddit post (Reddit - The heart of the internet), where someone successfully installed it and commented how they made it work but too short for me to recreate it.

I had a hard time following the wiki, because I am not too familiar with u-boot and building images and all of that.

When I say “successfully” I mean, there was no error running the command. Also it is very repetitive. It is basically way 1, way 1 in a different step order, way 3, way 3 in a different order, way 3 in a different order, way 6, way 6 in a different order. Way 6 is also basically way 3 but with an extra step.

I have tried multiple different ways and combinations to install it
Way 1:

  1. I run
$ nix-build '<nixpkgs>' -A ubootRock64 --argstr system aarch64-linux

because the wiki says so, to download the Hydra build.

  1. I successsfully run
dd if=idbloader.img of=/dev/mmcblk0 conv=fsync,notrunc bs=512 seek=64
dd if=u-boot.itb of=/dev/mmcblk0 conv=fsync,notrunc bs=512 seek=16384

because the wiki says so, but with sudo to write to the sd-card / usb-stick. (I tried every version on both, but i will just reference the sd-card from now on because the result seemed to be the same)
But looking at the sd-card in gnome-disks does not show any changes.

  1. I install the nixos-gnome-24.11pre706477.dc460ec76cbf-aarch64-linux.iso and use gnome-disks’ “restore disk image” function to flash it to the sd-card, resulting in 1 partition with the NixOS installer on it.

  2. I plug it in the SBC, try booting, nothing shows up on my monitor.

Way 2:
The same as way 1 but this time I first restore the disk image nixos-gnome-24.11pre706477.dc460ec76cbf-aarch64-linux.iso to the sd-card and afterwards run the commands

dd if=idbloader.img of=/dev/mmcblk0 conv=fsync,notrunc bs=512 seek=64
dd if=u-boot.itb of=/dev/mmcblk0 conv=fsync,notrunc bs=512 seek=16384

Does not show anything on my monitor as well on boot.

Way 3:

  1. I successfully build my own image natively with the sd-card.nix looking like this:
# sd-image.nix
{ ... }: {
  # needed for crosscompilation from my working NixOS Desktop
  nixpkgs.crossSystem = lib.systems.elaborate lib.systems.examples.aarch64-multiplatform;

  imports = [
    <nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64.nix>
  ];

  nixpkgs.config.allowUnfree = true; # needed for ubootRock64
  # at the time of writing the u-boot version from FireFly hasn't been successfully ported yet
  # so we use the one from Rock64 (Copied from the wiki)
  sdImage.postBuildCommands = with pkgs; ''
    dd if=${ubootRock64}/idbloader.img of=$img conv=fsync,notrunc bs=512 seek=64
    dd if=${ubootRock64}/u-boot.itb of=$img conv=fsync,notrunc bs=512 seek=16384
  '';
}

which is basically copied directly from the wikis example sd-card.nix
My build command is this:

nix-build '<nixpkgs/nixos>' -A config.system.build.sdImage -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/nixos-unstable.tar.gz -I nixos-config=./sd-image.nix
  1. I flash it to the sd-card, again, using the gnome-disks “restore disk image” function and have a promising looking MBR partition table:
  • /dev/mmcblk0 = 8.4MB Unallocated Space
  • /dev/mmcblk0p1 = 31MB W95 FAT32
  • /dev/mmcblk0p2 = 3.3GB Ext4 UUID: 44444444-4444-4444-8888-888888888888 Bootable
  • /dev/mmcblk0 = 125GB Unallocated Space
  1. I change the line APPEND init=/nix/store/...-nixos-system-nixos-sd-card-25.05pre-git/init conosle=ttyS0,115200n8 console=ttyAMA0,115200n8 console=tty0 nohibernate loglevel=7
    to APPEND init=/nix/store/...-nixos-system-nixos-sd-card-25.05pre-git/init console=tty1 console=ttyS2,1500000n8 in extlinux.conf

  2. I plug it into my SBC, again nothing on my monitor on boot.

Way 4:

  1. I flash my built Image to the sd-card

  2. I successfully run

dd if=idbloader.img of=/dev/mmcblk0 conv=fsync,notrunc bs=512 seek=64
dd if=u-boot.itb of=/dev/mmcblk0 conv=fsync,notrunc bs=512 seek=16384
  1. I change the line APPEND init=/nix/store/...-nixos-system-nixos-sd-card-25.05pre-git/init conosle=ttyS0,115200n8 console=ttyAMA0,115200n8 console=tty0 nohibernate loglevel=7
    to APPEND init=/nix/store/...-nixos-system-nixos-sd-card-25.05pre-git/init console=tty1 console=ttyS2,1500000n8 in extlinux.conf

  2. Nothing on my monitor on boot.

Way 5:

  1. I successfully run
dd if=idbloader.img of=/dev/mmcblk0 conv=fsync,notrunc bs=512 seek=64
dd if=u-boot.itb of=/dev/mmcblk0 conv=fsync,notrunc bs=512 seek=16384
  1. I flash my built Image to the sd-card

  2. I change the line APPEND init=/nix/store/...-nixos-system-nixos-sd-card-25.05pre-git/init conosle=ttyS0,115200n8 console=ttyAMA0,115200n8 console=tty0 nohibernate loglevel=7
    to APPEND init=/nix/store/...-nixos-system-nixos-sd-card-25.05pre-git/init console=tty1 console=ttyS2,1500000n8 in extlinux.conf

  3. Nothing on my monitor on boot.

Way 6:

  1. I flash my built Image to the sd-card

  2. I change the line APPEND init=/nix/store/...-nixos-system-nixos-sd-card-25.05pre-git/init conosle=ttyS0,115200n8 console=ttyAMA0,115200n8 console=tty0 nohibernate loglevel=7
    to APPEND init=/nix/store/...-nixos-system-nixos-sd-card-25.05pre-git/init console=tty1 console=ttyS2,1500000n8 in extlinux.conf

  3. I use the libretech-flash-tool (GitHub - libre-computer-project/libretech-builder-simple) to successfully flash the bootloader on my sd-card with

sudo ./lft.sh bl-flash roc-rk3328-cc mmcblk0
  1. Nothing on my monitor on boot.

Way 7:

  1. I use the libretech-flash-tool (GitHub - libre-computer-project/libretech-builder-simple) to successfully flash the bootloader on my sd-card with
sudo ./lft.sh bl-flash roc-rk3328-cc mmcblk0
  1. I flash my built Image to the sd-card

  2. I change the line APPEND init=/nix/store/...-nixos-system-nixos-sd-card-25.05pre-git/init conosle=ttyS0,115200n8 console=ttyAMA0,115200n8 console=tty0 nohibernate loglevel=7
    to APPEND init=/nix/store/...-nixos-system-nixos-sd-card-25.05pre-git/init console=tty1 console=ttyS2,1500000n8 in extlinux.conf

  3. Nothing on my monitor on boot.

And that’s pretty much everything I tried.

I also tried building the libre computer bootloader with this GitHub - libre-computer-project/libretech-builder-simple on my arch machine, but it failed and I didn’t look too deep into making it work.
Any advice would be very appreciated.