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!
Hardware Used
The MangoPi MQ Pro Revision 1.4 has a very bold pink PCB as well as USB-C ports, options for 512MB or 1GB of RAM, WiFi and Bluetooth and a single core 1GHz D1 processor.
Links: AliExpress*, Alt AliExpress*
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.
Links: Amazon.com*, Amazon.ca*, Amazon.co.jp*, Amazon.co.uk*, Amazon.de*, Amazon.es*, Amazon.fr*, Amazon.it*
Build Quality
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.
Images Available
The official images for the MangoPi MQ Pro are available here.
Right now this consists of an Armbian distribution and a Tina-Linux distribution.
The official Ubuntu download page for the RISC-V platform is here.
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).
Testing Ubuntu
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:
ubuntu/ubuntu
After the mandatory password change I then updated the device with:
sudo apt update && sudo apt full-upgrade -y
Fixing WiFi
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.
OpenJDK Availability
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
The full MangoPi MQ-Pro D1 benchmark can be viewed here on Pi Benchmarks.
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
Pros
- 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
Cons
- 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)
Conclusion
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!
Other Resources
Check out my Sispeed LicheeRV review here for another great RISC-V board option
If you are interested in alternatives to the Compute Module check out my BIGTREETECH CB1 review here
How could I enable WiFi, since I don’t have an USB to Ethernet adapter?
I wonder if I:
– Put the SD card with Ubuntu-Image in a working machine, and copy the packages (licheerv-rtl8723ds-dkms // net-tools // wireless-tools // rfkill) to it
– boot Mango-Pi with this SD card and:
– access Mango Pi command line from serial
..or..
– access Mango Pi command line with HDMI monitor and keyboard
and install the packets from command line.
Could it work? The greatest problem that I fear is that, since I’m not able to run apt-get full-upgrade, some of the wi-fi packets could have dependency questions with the OS.
Hey Manoel,
That could definitely work if the other machine is also RISC-V. You could also chroot into the ISO and run apt install from there.
It can be pretty tricky to chroot into these though on an x86_64. You typically need QEMU and binfmt-misc but once it’s all set up you can chroot right into an iso and modify it.
I’ll be perfectly honest though: it probably isn’t worth your time to build a chroot for this vs. getting a USB to Ethernet adapter. Here’s a USB-C one for $9.99. If you want to do it without one though I’d recommend investigating creating a chroot compatible with RISC-V.
You actually can get Bluetooth to work on the ubuntu image. Here is link.
Hey Zaddle,
Thanks for sharing, that looks great!
Hey i just got a mango pi the one with the h616 , I tried to install diffrent os on it and i failed. nothing shows up when i connect it to a monitor (the led light is on). I’m trying to use it for a retro pi project
Hey Mohammed,
The OS will definitely need to support the Mango Pi I believe before it will boot or do anything. I doubt there will be a prebuilt RetroPie image available but it should be possible to build RetroPie and run it like any other Linux. The pre-built image selection may be pretty limited or non-existent though for this board. Hopefully that helps!
Thanks James for the review,
you mentioned issues with Bluetooth in your review about the Mango Pi Pro running Ubuntu:
Then you also tested the Mango Pi quad running Debian in this review, but you did not mention Bluetooth. Did Bluetooth work with Debian and this device?
Hey Peter,
Great question! So that review with the Mango Pi MQ Pro was with the official Ubuntu preview for RISC-V. If you use the official operating systems Bluetooth already works on the Mango Pi MQ Pro. There just weren’t any Bluetooth drivers in the Ubuntu preview. In other words it’s a driver issue with the Ubuntu RISC-V preview. If you use the new Armbian build Bluetooth should be working on that board as well.
This is just a regular ARM board. I just used an official operating system with the Mango Pi MQ Quad. All of them are going to work on ARM though as that’s a much older and more well established technology. I used the Debian image from their main page and it’s working.
Hopefully that helps!