Stephen Smith's Blog

Musings on Machine Learning…

Starfive Visionfive 2 RISC-V SBC Review

with 2 comments


I’ve blogged a few times on RISC-V processors, but even though they show great promise, there has been a definite lack of hardware. Finally, a number of single board computers (SBCs) are appearing. I recently purchased and received a Starfive Visionfive 2, which is roughly equivalent to a Raspberry Pi 4. It comes with a RISC-V 64-bit quad core CPU running at 1.5GHz, a GPU and an M.2 connector for an SSD. I opted for 8 Gig of memory. The board has two physical internet ports, but no built-in Wifi. I opted for a USB Wifi model, which can be included during ordering. I was able to order this on Amazon to take advantage of free shipping and received it in about a week, shipped from China.

The RISC-V world isn’t nearly as polished as the ARM world as led by the Raspberry Pi, and technical knowledge is required to set up and get things running, including a good knowledge of Linux. In this blog article I’ll go through what is needed to get Linux up and running and highlight the various pitfalls along the way.

Unboxing and Setup

The board and Wifi plug came in the mail in a box. On the bottom of the box is a QR code which links to Starfive’s documentation page. The quickstart guide is fairly straight forward, but there are a couple of mistakes and a couple of things that aren’t at all clear. With all that being said, I was able to get Linux up and running reasonably easily, though I did need to reburn the SDCard once.

Fortunately the Visionfive board uses the same USB-C connector for power as a Raspberry Pi 4, so I was able to easily unplug my Raspberry Pi and plug the power connector, keyboard and mouse into the Visionfive. The Visionfive uses a full size HDMI plug for video, unlike the Pi’s micro-HDMI port, so I needed to dig a regular HDMI cable out of my box of cables, which was no problem.

The quick start guide contains a link to Starfive’s versions of Debian Linux for RISC-V. It looks like they produce a version every month or so. I took the latest which was dated March 31, 2023. I burned it to an SD card, inserted it into the Visionfive board and powered it up. A red light came on, but otherwise nothing happened. No indication that anything was booting, no power to the USB ports, no signal to the monitor.

Set Boot Device DIP Switches

Back to the quick start manual and it talked about setting a couple of dip switches to select the boot device. One would think these would come set for SD card boot, since that is what the quick start guide gives directions for. But no these were set to boot from a UART.

Then I had to scratch my head as to which of these four labels corresponds to booting from the SD card. The correct answer is eMMC which stands for embedded multimedia card, not that is explained anywhere. But with one dip switch changed, the card booted from the SD card and I had Debian Linux up and running.

Manually Resize the File System

Once booted and logged in, the only three GUI programs available are settings, help and terminal. With settings, I entered in my Wifi password and got connected to the Internet. Ok, so let’s install something. The first program I went to install, resulted immediately in a disk full error. WTF? The image is only a couple of gigs and I used a 32 gig SD card. Looking at the quick start guide again, it says the disk image isn’t resized automatically on first boot, you have to perform this operation by hand. There were instructions for this in an appendix on how to use df, fdisk and resize2fs to do this. The instructions were ok, but left out the fact you had to run fdisk and resize2fs using sudo. Any regular Linux user knows this, but this might trip up beginners. Never mind that everyone else, including all Raspberry products, do this automatically on first boot.


Alright, now I have lots of disk space, and Wifi, let’s apply any operating system updates before installing anything else. So I ran “sudo apt update” and then “sudo apt upgrade” and the only thing to upgrade were the Mesa video drivers. I did this and rebooted. Now the system worked terribly. The mouse kept jumping around and the screen wasn’t updating properly. Obviously a bad update, so I had to reburn the SD card and repeated the previous steps to get back to a working system with Wifi and free disk space.

Installing Software

Some things were easy to install, some not. The easy ones included GCC, GEdit and Thonny Which is what I needed for doing software development. These all installed easily using the Debian apt command line package manager.

Installing a browser was not easy. Chromium doesn’t seem to have a RISC-V build. Firefox doesn’t install using apt. So I installed the Gnome Epiphany browser, which since Gnome is the default desktop, I thought should work. However it doesn’t, the screen comes up blank. I tried installing the Konqueror browser, which I thought is fairly simple and should work. It installed fine, but I couldn’t type in anything in the URL bar. At least Konqueror also installed the Dolphin file manager, which did work and I find useful.

Then browsing the documentation for the Visionfive board on, I found instructions on how to install custom builds of Firefox and a number of other packages. Run the script they provide, installed all these packages, including Firefox, but sadly Firefox would not start. One of the other packages is LibreOffice which does seem to work fine. So now I’m running fairly well, but without a browser, so I’m accessing the Internet through command line tools only.

The release notes mention that Firefox doesn’t work with hardware acceleration, but I wasn’t able to see where to turn off hardware acceleration with a quick look through the settings. Hopefully this is solved when the next update to the Visionfive Debian image drops.

Update 2023/04/23:

Here are a few things I’ve learned since originally publishing this article:

  • The display appears a bit pink, this is a bug that can be corrected by running the script: /opt/
  • The Lynx browser, a text based browser works and can be installed using “sudo apt install lynx”. Clumsy but very retro.
  • If you connect using ssh or putty then the host to use is starfive.local which is much easier than the documented way of using the IP address. This works for either WiFi or direct connect.


It’s exciting to be running a SBC with a RISC-V processor. There are still lots of glitches and the performance isn’t where it needs to be, but it is a legitimate RISC-V development platform where you can experiment with this new exciting open instruction set architecture (ISA). Hopefully, there is enough community support to develop out the Linux support. ARM is backed by a number of large companies that spend a lot of money hiring people to refine and improve their Linux support. Hopefully the RISC-V community can rise to the challenge and match what is happening in the ARM world. Afterall, ten years ago ARM was at a similar disadvantage to the Intel/AMD world and it managed to overcome that and surpass Intel/AMD in many ways.


Written by smist08

April 21, 2023 at 10:30 am

Posted in RiscV

Tagged with , , ,

2 Responses

Subscribe to comments with RSS.

  1. Great writeup, thank you! I was curious about power consumption; other blog posts say this board uses about 3-5W depending on load. Compare 3-6W for an RPi 4.


    April 23, 2023 at 9:18 am

    • I haven’t tried measuring the power usage, but I’m using a Raspberry Pi 4 USB-C power cord and it is working fine.


      April 23, 2023 at 10:38 am

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: