HomeGeekbakery
Rock64 vs openSUSE
Sometimes you need to take an ARM when you need a hand

I have installed openSUSE Tumbleweed, onto a couple of my Rock64 boards, with 16GB MicroSD cards. (Basically) everything seems to work fine for my needs out of the box, but there are some things I noticed. I'm not entirely sure why the distro is not currently on the Rock64 wiki, and there hasn't been much on the official forum about it, so I thought I'd toss my thoughts out there for anyone else who's grumbling at pointlessly needing yet another distro for yet another SBC.

The Rock64 isn't an extremely powerful ARM SBC, but it can sometimes be had for extremely cheaply. And if you can find it for under US$20, it is definitely a contender for consideration in your next project requiring an SBC, something very low power, an airgapped system, something which is not overly demanding but which calls for a physical machine rather than a virtual machine/container, or just for tinkering.

The Rock64 HCL notes the availability of Leap, though it is not available at the time of this writing. Further, only JeOS is available at this time, though there are (broken) links on the HCL page for E20, XFCE, LXQT, KDE, and X11. I can think of no reason one might reasonably want any of those though, especially with the caveats below.

The HCL lists instructions for writing the xz file to SD card using an existing Linux install. But I can confirm that the usual Windows tools, including Rufus, will write the xz file fine. 🆒

Also, HDMI video output works for initial boot, so you do not need a serial port for initial configuration (I cannot confirm how useful a serial connection is, so the HCL might be right that you want one). As it's likely to be running headless long-term, it might be easiest to do your initial boot (it might take a couple minutes) and configuration over SSH, by finding the DHCP lease in your DHCP server's database (probably the most recent entry, of course) and SSHing in with the credentials on the HCL page (don't forget to change them immediately!). Why bother hooking it up to a keyboard and monitor for a one-time thing that can be done with your usual tools? :D

Anyhow, the caveats:

  1. Booting takes a while sometimes. I'm not sure why just yet, but there's a 100 second gap in dmesg each cold boot for me (10 seconds on warm boot, which I think are due to installing rng-tools as they need to gather entropy). But ideally you're not rebooting often and know how to plan a 30 second outage window. ;)
  2. The default btrfs partition at /dev/mmcblk0p3 is only 1.7GB and starts off 1.2GB full with a bit over 400MB free. You can either create a new partition, or you can extend the one that's there (exercise for the reader, but you could probably do worse than yast2 disk). I opted for the latter and btrfs filesystem resize max / once I fixed the partition size was all I needed, myself.
  3. SPIDF/I2S audio doesn't work. This generates some kernel spew and a mostly harmless set of traces. As I'm not using sound, I've done zero investigation. I've also not bothered to blacklist the modules, so I can't help you reduce boot-spew. I do not know if HDMI audio works, though the drivers seem to load without incident.
  4. There is a *lot* of screen tearing in the console, even if there's no scrolling or other activity, especially if you have more than just VT1 in use. I have not tried X11, but I can't imagine it having useful performance if it can't even draw the text console error-free. This may be related to the following kernel message: rockchip-drm display-subsystem: [drm] Cannot find any crtc or sizes
  5. If you're used to using DTBOs with this SBC, you're going to have a bit more challenge than with some of the more widely-used distros. I do not recommend the task for those not extremely comfortable with the idea of a distro which doesn't have /sys/kernel/config/device-tree/overlays available without you having to do your own legwork and doesn't seem to have a way to take the Raspberry Pi approach.
  6. I do not see evidence of eth1 in either dmesg or YaST. As I do not currently have plans to multihome any of my Rock64s running openSUSE, I have not investigated further (including the whole magjack situation which doesn't look like anyone has documented properly, in general).
  7. Blinking the NIC LED doesn't seem to visibly do anything, but it also doesn't generate errors. This is mostly just a note since it's pretty common behavior on ARM SBCs, and since there's only one port, there's no reason to blink it anyhow.
  8. It does not seem that there is yet TrustZone support. For most users, this is probably a non-issue.
  9. Some things seem to perform much worse than I'd expect, quite notably YaST2. Since performance hasn't shown itself to be an issue with my workload, I've not investigated. It may just be due to the fact that I'm not using an eMMC.
  10. Again, this is a JeOS image. Lots of things are going to be missing compared to even a minimal standard install. Be prepared to use zypper a bit, or to hit the Install button in YaST when you set up things like NTP sync.
  11. openSUSE's aarch64 support isn't quite first class in my opinion. Be aware you're gonna probably need to add some stuff from openSUSE:Factory:ARM or even its upstreams.

This is almost certainly not suitable for desktop use, or even general-purpose use. But if you already package stuff for yourself using OBS and are otherwise embedded (hah!) within the openSUSE ecosystem, this is definitely a viable option for your SBC. (Note that the download repository has images for other SBCs, as well. Currently the list is fireflyrk3288, rock64, rockpi, and tinker. I have not used any of the other images. I cannot likely assist with issues related to SBCs that I do not own.)

Links:

(Header shows 1G Rock64, with kdump enabled, so only 776M available)

Written by lewellyn on Oct 20 2020, 10:26 PM.
Geek
Projects
  • Restricted Project
  • Restricted Project
Subscribers
None

Event Timeline