I am now the lucky booter of Manjaro ARM directly from nvme on my rockpi4c! I owe this advance to the rockpi4b armbian installer which installs the armbian u-boot which is also perfectly happy booting Manjaro ARM for the rockpi4c, If you have a rockpi4 b or c with a SPI chip
I’d recommend rockpi4 owners install Pak0sts kernel to get 4K video output working until it appears in mainline:
If I run:
hdparm -t /dev/nvme0n1
Under Manjaro, it only gives me read speeds of ~200 MB/s with my Samsung EVO 960 which should easily manage 4x that (on a PC), if not more.
If I install the radxa Ubuntu, I can edit /boot/hw_intfc.conf and uncomment the line:
After doing this and rebooting I get in excess of 400 MB/s so I’d like to replicate this tweak under Manjaro.
So far I have tried creating that file with that line in and also adding dtoverlay=pcie-gen2 as a kernel boot parameter (in /boot/extlinux/extlinux.conf) but neither has increased my SSD speed so there are two likely possibilities left. Could this be a kernel feature or module that I’ll need to rebuild the kernel for (if the relevant patch/feature exists for mainline? I’ve not attempted to rebuild Manjaro ARM yet) or I have got to do this via a u-boot command?
I had a go at rebuilding pak0sts Manjaro kernel with this patch added unmodified last night but it failed at the linking stage. I think I’ll have to strip it down so it is just the pci-gen2 dtbo instead of including the other bits.
I tried using the pcie-gen2.dtbo from the Armbian (5.13.12) kernel with the Manjaro (5.17.1) kernel but it failed to boot so it looks like the dtbo will need to be built specifically for the Manjaro kernel.
The syntax for loading a dtbo with extlinux under Manjaro is different from how they are loaded under Armbian. It seems the correct way to load a dtbo under Manjaro is to add a line like:
After the FDT line in extlinux.conf.
This page states:
“It (DTB overlays) requires both the base and all the overlays to be compiled with the -@ command line switch so that symbol information is included.” which I expect won’t be the case with the current Manjaro rockpi4 kernel?
Here’s the post explaining the fdtoverlays keyword:
What you might be missing is that the u-boot needs to support overlays too, which it currently does not for the Rock Pi 4. You need to add CONFIG_OF_LIBFDT_OVERLAY=y to the config used to build u-boot with for that.
Yesterday I rebuilt the rockpi4c u-boot package via:
I modified the PKGBUILD to enable CONFIG_OF_LIBFDT_OVERLAY=y but, after installing the modified u-boot it still failed to boot when loading the dtbo from Armbian.
Yes, I was aware of some people claiming to have probs with the gen2 overlay, hence why we should keep at as an optional overlay. It would seem to depend on your make and model of SSD what kind of results you get.
I will get those dd benchmarks and hdparm benchmarks for my SSD under both Manjaro and Radxa Ubuntu, the latter with and without the pcie-gen2.dtbo over the weekend. I seem to get better transfer rates with the Radxa Ubuntu image vs Armbian or Manjaro.
At last, I have a fully functional Rock Pi 4c with PCIe 2.0 NVME, 4K display support, ethernet, wifi and bluetooth support!
I have patched the rockpi 4b dtb that is included with pak0st’s 4K kernel. I actually have a 4c but Manjaro currently detects it as a 4b. Without the patched dtb file, I get about 201 MB/s read from my Samsung EVO 960 NVME SSD. After patching the DTB I get about 340 MB/s.