TrueNAS on ARM - Now Available

Hi @Joel0 I got it working now with the NumberOneGit/rpi5-uefi UEFI. I think the root of my issue was not setting:

To enable PCIe support, go to Device Manager->Raspberry Pi Configuration->ACPI / Device Tree and change ECAM Compatibility Mode to AMAZON GRAVITON.

I was able to install it as a 2 drive boot pool mirror. However it does not see my network interface. I will do some more research.

@geerlingguy In your working pi 5 configuration are you using a usb adapter for the ethernet? I see on the uefi github that the ethernet port on the pi is not working.

Yes, I have tested a few 1 and 2.5 Gbps adapters, and all the ones I had were recognized by TrueNAS.

I think the main thing @Joel0’s efforts show is all the underlying software works perfectly fine on Arm (most of which we already proved out individually external to TrueNAS, for example ZFS has run fine on Arm for years), and most of the incompatibility is just assumptions in code that you’re only installing on Intel/AMD CPUs.

With a 5-10 year horizon, it would probably be considered a bug to hardcode x86/amd64 assumptions in a codebase, especially as RISC-V has seen a lot of uptake and is in a state where Arm was maybe 5-10 years prior. I’m still not sure if the Chinese push for RISC-V will result in it kind of leapfrogging Arm in high performance / high efficiency, though. Right now RISC-V cores are still fairly far behind.

Most of the stuff in TrueNAS doesn’t look like it was intentionally hardcoded, though. It was just written in a time when Arm was for mobile, x86/amd64 was pretty much the only server game in town, and RISC-V wasn’t even a proposal.

That makes sense. I don’t believe the Pi in particular was seriously considered a desktop replcement board/the kind of system where you’d want a customizable, standard UEFI BIOS (as opposed to a bespoke U-Boot tailored to an embedded system/SoC) to boot generalized ARM-compatible, UEFI-based Linux distributions (or BSDs) until the Raspberry Pi 4B really took off. You could do general purpose desktop work on a Pi 3, but it wasn’t a good experience from my undrestanding.

I do think the Pi 5 is the first model that can really be considered for building a functional, stable NAS. Hopefully, some day we’ll get an official way to enable UEFI. The unofficial GitHub is awesome, and the Pi devs work wtih them to patch issues in the EEPROM that the UEFI add-on exposes, but I’d really love to see that as an (optional) first party feature at some point.

1 Like

Couldn’t edit the message anymore so here is my early results:

RK3588 with EDK2-RK3588

  • with Radxa Rock5B-Plus and ACPI mode I was able to get into the installer but when selecting the (sata via usb) drive I got a this device is busy. Trying to boot with an nvme attached instead didn’t work.
  • What I can try next is to get a mainline device tree supporting built of EDK2-RK3588 and I messaged the maintainer of it so we can debug that together hopefully
  • If someone has a Rock5B (non plus) you could try Mainline DeviceTree mode (in EDK2) with it and report back

Radxa Orion O6 (Cix-P1)

  • Also didn’t work. I did get a this plattform isn’t supported cpu error once but mostly BTRFS errors of my Fedora instance on a NVMe. Haven’t tried yet with the M.2 unplugged. @geerlingguy did you have any luck on the Orion O6?

Thanks @Joel0 for developing this and @geerlingguy for the suggestion on the usb ethernet adapter.

This is working for me with my PI 5 8gb with the penta sata hat. I am using the tailscale custom app to make this my offsite replication target. All is working well. I will keep testing.

Two of the sata ports are my mirrorred boot ssds and the other two are my 12 tb 3.5in hdds.

For the Pi, I’ve written up the process (detailing quirks like only a single PCIe device being supported at a time, so just an HBA/SATA controller, or just one NVMe drive) in a blog post (How to install TrueNAS on a Raspberry Pi). There’s a video linked from within there, but let’s be honest, if you’re reading this forum post, you’re probably in favor of text like I am :smiley:

7 Likes

I tested on the original Rock5B and it’s working fine. No issues with my SATA HDDs on an m.2 to Sata board. It does only boot in ACPI mode, though.

3 Likes

where did you install it to? EMMC, SATA drive?

I put a bunch of RK3588 stuff in my cart and then decided I just didn’t want to spend that much right now. If I had a pile of NVME drives sitting around, I’d probably buy the RK3588 NAS kit and give this a whirl, but I don’t and spending $500-$600 on a test just doesn’t sit well with me right now. And not going to buy a bunch of smaller NVME drives just to prove the concept, that would be wasted money. Less than four 1TB drives would be kind of a waste. And these are consumer drives, imagine if I were looking at enterprise drives.

Maybe after this matures a little, I’ll dive in, but not right now as I have too many other things going on.

I am also able to Run it in CM3588 NAS kit, I have used EDK2 UEFI firmware for Rockchip RK3588 My CM3588 NAS Kit comes with 16GB Ram and 64GB EMMC,
Below are the some issues which I have found

  1. You need to have UEFI in separate SD Card/USB
  2. During testing I have seen only 2 NVME SSD’s are detected by OS Might be due to UEFI limitation or PCIe express.
1 Like

Currently running onto a Honeycomb LX2 without much problem, only adding the iommu.passthrough=1 parameter on the kernel at boot. Apps working without problem using the custom app trick.

Most appreciate the effort to release!

1 Like

Hello everyone, first time posting here :wave:

I wanted to share that I successfully installed TrueNAS on a Radxa ROCK 5 ITX+[1] board (32 GB RAM), using the Radxa M.2 to Hexa SATA Adapter [2] connected to 5 × 8 TB Toshiba N300 drives. The OS itself is installed on a 1 TB NVMe SSD.

To boot the ISO created by @Joel0, I first installed EDK2 UEFI for the RK3588 onto the board’s embedded storage, then set the boot mode to ACPI. With that configuration, I was able to boot the image from a USB stick without issues.

I haven’t tested every feature yet since my goal is just a simple NAS for storage, but so far everything looks good. The only thing I noticed is that CPU temperature is not being reported. Both 2.5 G Ethernet ports, however, were detected successfully.

I hope it helps, best regards!

  1. /radxa.com/products/rock5/5itxp
  2. /radxa.com/products/accessories/m2-to-hexa-sata-adapter
  3. /interfacinglinux.com/2025/08/25/edk2-uefi-for-the-rock-5-itx
3 Likes

@crosvera Glad to hear that you got Truenas installed on Radxa ROCK 5 ITX+.
I tried your setting and managed to install Truenas on my ROCK 5 ITX+, however I didn’t get any video via HDMI.
Did you get any video output via HDMI after the install?

Hello @james_grant yes, I did get video output, but only when connecting the HDMI to the left port.

After the GRUB boot menu from the USB stick, it took a few seconds before the installer interface appeared. The same happened after installation: when booting from the SSD, the menu took a little while to show up as well.

1 Like

You need to check a setting in the UEFI for video output. It is detailed in the EDK2-RK3588 where it mentions that it enables video output but disables gpu acceleration as the HDMI output stuff was merged in kernel 6.15 and TrueNas uses an older kernel

1 Like

ARM storage servers ARE coming… (with a 500 W CPU :face_with_spiral_eyes: )

2 Likes

I have been able to install TrueNAS Scale arm64 on raspberry Pi4 B successfully. Tried different combinations from SD Card to external HDD and eventually ended with following setup.

Hardware used:

Raspberry Pi4 Model B - 8GB
RPI4 official Power Supply
8GB Class 4 SD Card (Just for RPI4 bootloader, you can use smallest size available)
QZ Active Powered USB 3.1 Hub, 4 Port USB Hub with 12V 2A 24W Power Adapter, USB 3.1 Gen 1
2.5G Network Switch
Samsung SSD 256GB 840 Pro (Acting as boot drive and App Pool)
4TB Samnsung Nvme SSD 990 Pro (Acting as Data Drive)
2.5G USB NIC (RTL 8156B)

High Level steps

1- Create a FAT16/32 SD Card with RPI4 bootloader. I used RPI4 bootloader from pftf on GitHub. (Unable to add weblink while posting)

2- Create a USB Ventoy Disk with MBR partition and copy TrueNAS Scale iso into the folder

3- Attach SSD to RPI4 USB 3 port and also connect Ventoy USB stick

4- Boot to RPI4 BIOS and disable 3GB RAM limit

5- Save BIOS settings and boot from Ventoy USB stick and select TrueNAS Scale iso

6- On Install screen, select SHELL and hit Enter

7- While in the shell, run the following commands. I used 50GB as boot pool size. You can change based on your need.
sed -i ‘s/-n3:0:0/-n3:0:+50GB/g’ /usr/lib/python3/dist-packages/truenas_installer/install.py

8- Type exit to return to install screen

9- Continue with normal installation

10- After installation finishes, it will ask to restart the system. If I hit YES, it does not restart automatically. So, I pull the power plug.

11- Remove Ventoy USB stick before you start the 1st boot. (1st boot make take 6-7 minutes. Subsequent boot takes 3-4 minutes)

12- Once logged into WebUI, open shell and use following command to create AppPool from the free space available on the boot-pool SSD

gdisk /dev/sXX
n <for new part>
<default start – after last part>
<default size – till the end>
BF01 <to mark disk as ZFS>
w <write>

------------------------------------

zpool create AppPool /dev/sxxN
zpool export AppPool

13 - Once above commands complete, ensure you immediately reboot the Pi.

After creating DataPool, I added few datasets and created SMB shares to check throughout
With a Gigabit NIC, I was getting around 80-85 MB/s
With 2.5G USB NIC, it was around 130-140 MB/s

Issues:

Docker and VM didn’t work.
Docker was failing due to permission issues, which after troubleshooting I found was because of architecture. Truechart pulls x86 image only and not arm64.

Temporary solution:

I had to create a custom container using docker compose file for DOCKGE, which worked.
Then I installed 3-4 additional docker containers from within Dockge and it worked nicely.
Running it from past 24 hours. No issues yet.

Suggestion:

Don’t use spinning disk, msata ssd. If feasible prefer good quality SSD as it will give better throughput and less chance of failure.

1 Like

I too would like the ability to run this on a qnap machine so that I could just restore from backup and drop my drives in. That’d be fantastic