Recently Ubuntu has received official preview images for some RISC-V boards. One of those boards is (indirectly) the MangoPi MQ Pro! RISC-V boards have been available for a while but the software support lags that of ARM substantially. It’s steadily catching up though with an official Ubuntu preview out as well as official OpenJDK support coming soon.
Today I wanted to review the MangoPi MQ Pro D1 (Revision 1.4) as well as look at the experience of the Ubuntu preview version on it acknowledging that this isn’t the final release of Ubuntu for RISC-V boards yet and is just a developer preview. My intent is to simply see what the experience is like and get an idea of what is already working and what isn’t ready yet.
Let’s get started!
The Geekworm copper heatsink set is designed to fit many different single board computers. It uses thermal conductive adhesive which many “cheap” heatsink kits for SBCs don’t have. Eliminates hotspots and reduces throttling. Can be further enhanced by powered cooling over the heatsinks.
Let’s take a closer look at the board. Here is the top view:
The PCB is honestly beautiful. Look at the gold rings lining the solder holes for the GPIO pins. Tracing is clearly visible.
Here is the bottom view:
The edges of the board are very clean. I’ve reviewed a lot of boards lately and this one you can tell that they care and are proud of the board.
Right now this consists of an Armbian distribution and a Tina-Linux distribution.
Once you go to the official Ubuntu download page you will choose the “AllWinner Nezha” section like this:
Keep in mind this image isn’t intended for our exact board. It seems to be compatible though as they share the AllWinner D1 chip.
I strongly recommend using the newer 22.10 version. Some drivers still don’t seem to be present but the newer kernel you have the better off you will be as this is the bleeding edge (it’s literally a developer preview).
I imaged my SD card with Ubuntu 22.10 and put it into the device. I used a USB to Ethernet adapter so I could get a headless network connection to the device and
I logged in over SSH with the default credentials:
After the mandatory password change I then updated the device with:
sudo apt update && sudo apt full-upgrade -y
I first noticed that the WiFi and Bluetooth weren’t present for the board. The MangoPi MQ Pro is using the rtl8723ds. I searched apt for rtl8723ds and there is a package available for another board that has this driver (licheerv-rtl8723ds-dkms).
sudo apt install licheerv-rtl8723ds-dkms net-tools wireless-tools rfkill
This took a very long time to build the module on my device (at least an hour). Once it is finally done you can either reboot the device or use:
sudo modprobe 8723ds
Bingo! You should now have a wireless card:
root@ubuntu:/home/ubuntu# iwconfig lo no wireless extensions. usb0 no wireless extensions. enx3c18a07c2cb9 no wireless extensions. wlan0 unassociated Nickname:"<WIFI@REALTEK>" Mode:Auto Frequency=2.412 GHz Access Point: Not-Associated Sensitivity:0/0 Retry:off RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality=0/100 Signal level=0 dBm Noise level=0 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Connecting to WiFi (persistently)
Since this is Ubuntu we need to use netplan to set up the WiFi connection. To do this we will edit the file /etc/netplan/50-cloud-init.yaml:
sudo nano /etc/netplan/50-cloud-init.yaml
We are going to modify the file and add the “wifis” section like this:
network: ethernets: zz-all-en: dhcp4: true match: name: en* optional: true zz-all-eth: dhcp4: true match: name: eth* optional: true version: 2 wifis: wlan0: optional: true access-points: "YourSSID": password: "YourPassword" dhcp4: true
Note that the spacing is *extremely* sensitive with YAML. You should paste your code into a YAML validator and make sure you don’t have any spacing errors as they will break the file.
Now let’s apply the netplan configuration with:
sudo netplan --debug generate sudo netplan --debug apply
Now let’s check iwconfig again:
root@ubuntu:/etc/netplan# iwconfig lo no wireless extensions. usb0 no wireless extensions. enx3c18a07c2cb9 no wireless extensions. wlan0 IEEE 802.11bgn ESSID:"jamesachambers.net" Nickname:"<WIFI@REALTEK>" Mode:Managed Frequency:2.437 GHz Access Point: 24:5A:XX:XX:XX:XX Bit Rate:72.2 Mb/s Sensitivity:0/0 Retry:off RTS thr:off Fragment thr:off Encryption key:****-****-****-****-****-****-****-**** Security mode:open Power Management:off Link Quality=0/100 Signal level=-55 dBm Noise level=0 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
You’ve now configured netplan and will persistently connect to the network!
Note on Bluetooth
The Bluetooth radio also isn’t present. Installing the WiFi driver does not fix this unfortunately. I’m not sure how to get the onboard Bluetooth going on here yet.
We will score this one as not working for right now for the purposes of the review.
Finally it was time to answer one of my original questions: is Ubuntu including the new OpenJDK RISC builds? The answer:
ubuntu@ubuntu:~$ sudo apt search openjdk | grep 'openjdk-' | grep '\-jre' WARNING: apt does not have a stable CLI interface. Use with caution in scripts. openjdk-11-jre/kinetic 11.0.16+8-0ubuntu1 riscv64 openjdk-11-jre-headless/kinetic 11.0.16+8-0ubuntu1 riscv64 openjdk-17-jre/kinetic 17.0.4+8-1 riscv64 openjdk-17-jre-headless/kinetic 17.0.4+8-1 riscv64 openjdk-18-jre/kinetic 18.0.2+9-2 riscv64 openjdk-18-jre-headless/kinetic 18.0.2+9-2 riscv64 openjdk-19-jre/kinetic 19+36-2 riscv64 openjdk-19-jre-headless/kinetic 19+36-2 riscv64 openjdk-19-jre-zero/kinetic 19+36-2 riscv64 openjdk-20-jre/kinetic 20~17ea-2 riscv64 openjdk-20-jre-headless/kinetic 20~17ea-2 riscv64 openjdk-20-jre-zero/kinetic 20~17ea-2 riscv64
Excellent, there is a wide range of versions available in here. Very impressive!
Benchmarking I/O Performance
You can verify the performance of your SD card on Pi Benchmarks using the following command:
sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash
Here are the results:
Category Test Result HDParm Disk Read 11.36 MB/s HDParm Cached Disk Read 11.37 MB/s DD Disk Write 9.5 MB/s FIO 4k random read 1501 IOPS (6005 KB/s) FIO 4k random write 757 IOPS (3028 KB/s) IOZone 4k read 4334 KB/s IOZone 4k write 2130 KB/s IOZone 4k random read 4229 KB/s IOZone 4k random write 2519 KB/s Score: 718
This is a pretty slow result performance wise. I wasn’t surprised because you can feel it as you’re using the board. The 1GB of RAM is fantastic but you only have a single CPU core to work with and it’s not a very high powered one.
The average score for a Pi 3 is something like 900 points and for a Pi Zero the average is slightly under that. In other words it’s slightly slower than a Pi Zero at 718 points. The board will turn heads for it’s looks but not for it’s performance for sure.
To be clear I think the performance on it is fine but just want to give the context of what to expect. A Pi Zero isn’t very fast and this is slightly slower than that so keep that in mind for your use cases. It’s a great board for low performance applications or services but should not be expected to carry a heavy load.
Pros / Cons
- Quite inexpensive at prices ranging from ~$22-27
- Can run Ubuntu with everything but the Bluetooth working
- Very stylish and bold appearance
- 1GB of RAM option available which can be hard to come by on boards of this size
- Only has a single core 1GHz CPU so performance is limited to services/applications that don’t need a lot of processing power
- Image selection is limited (but improving)
The new Ubuntu support is looking fantastic. It’s everything you would expect from a supported Ubuntu distribution. There are definitely problems (I couldn’t get the Bluetooth going) but since the WiFi is fixable I’d guess this is ready for early adopters or anyone who wants to try using a RISC board to start playing with. If you have one of these boards already you should absolutely try the new Ubuntu distribution!
If you are wanting a really cheap board to start playing with the RISC architecture on with the new Ubuntu support coming there’s honestly never been a better time. Considering these are available for < $25 this is a pretty cheap and fun way to get into RISC. It will probably be ready for the general public in 6-12 months and come out of developer preview within that time frame would be my guess. It definitely seems on track for it to me.
The board itself is quite the eye catcher. My wife highly approves of the board’s visual aesthetics (and not just because it’s pink, it’s the style and lettering on the back with phrases like “Your tiny-tiny-tiny Card Computer”. The quality seems great especially for the price. Let’s be clear that this is not a high performance board as it only has a single core. This is meant for lower-powered applications and use cases for sure.
I definitely would recommend getting the heat sink kit for this board. I put a copper heat sink on mine that I’ve linked to in the “Hardware Used” section. This should keep the board running stable and for a long time!
If you are interested in alternatives to the Compute Module check out my BIGTREETECH CB1 review here