Contents
Introduction
A common problem with Single Board Computer (SBC) is that their official OS support sucks. Except the BeagleBones, Raspberry Pi(s) and the NVIDIA Jetson family there is hardly any SBC with well maintained software support. If new SBCs are released it is not uncommon that the software stack/operating system is close to End Of Life (EOL) already. Another thing I experienced multiple times that a full system update (apt-get update && apt-get dist-upgrade
) broke something and a SBC did not boot anymore or was no longer functioning properly. Some may consider this less of an issue if they simply use them to fiddle around a bit to build their own personal projects. However, when it come to building products which are connected to the internet this is not acceptable. I’m well aware that the “S” in IOT stands for security… .. Further, personally I prefer to work with upstream software (even LTS upstream) instead of dealing with old versions with backports.
Why on Earth did I bought a Tinker Edge R in the first place when there are well supported SBCs such as the Raspberry Pi and Jetson product lines? In summer 2021 I was working on something that required something for model inference and with decent CPU and memory specs while not exceeding certain price limits. And most importantly it needed to be available. That is how I ended up with a Tinker Edge R despite having mixed and bad experiences with RockChip powered devices. With the device in my hands I tried to flash it… .
Flashing the Original OS
The official image was usable when booting from the microSD card but dead slow and hardly usable. A big draw back was that the only images available where some super old Debian 9 version which were no longer supported by Debian. Further, some old TensorFlow 1.5 version was provided by ASUS and some other outdated libraries I can’t remember at the moment. There was some weird rkdeveloptool
which of course did not work but at some point I managed to flash it on one device but not on the others. I can’t remember how but it did not made things better/usable. Of course I did not end up using this SBC for anything.
Fast forward to November 2022. I learned that a “new” Debian image is available. Since I still have on Tinker Edge R lying around in my SBC box, I thought I give it a try. First things first, the “new” version was is outdated as well as Debian 10 is no longer supported by the Debian team.
The official guide lines and flash tools still don’t work. This one works. Do not short the recovery pins and connect a USB-C cable to the board and to a computer. The board will be recognized as a USB storage device (universal mass storage) and the sd card image can simply be flashed/copied to the board using standard tools such as dd
, GNOME Disks
or Etcher
.
After changing user names and passwords and installing the NPU stuff which is provided in a folder on the desktop, the device seems to be somewhat usable with a decent amount of compute capabilities. As far as I can tell, the rknn toolkit seems to work now and it comes with TensorFlow 2.0.0 - which of course is outdated as well.
I would like to point out that I’m not only blaming ASUS for awful software support and documentation for this SBC. I’m certainly biased when it comes to SBCs using RockChip SoCs. Even within the super heterogeneous ARM realm, I never came across any other SoC producer/provider with such awful software support with respect to keeping it up to date to ensure driver compatibility with latest Linux kernels. I hope this changes for newer SoCs. The BSDs 1 2 are often not an option when wanting to use these SBCs for anything beyond a rather simple server.
Hints for Production Usage
First, I would consider replacing the fan with something less noisy (giant heat sink, better fan etc.) as it emits quite annoying sounds. Given that the software stack provided is super outdated again and hardly maintained at all, I would recommend building custom images when considering using this device in production deployments. This may require porting kernel patches to newer versions which might be a bit of work but kernel sources are available on github.