DietPi on RISC-V StarFive VisionFive 2 SBC

This blog post gives an overview about what can actually be done with a system consisting of the brand new RISC-V single board computer VisionFive 2 from StarFive.
The article will be updated whenever new insights and findings are present.

RISC-V StarFive VisionFive 2 photo

Table of contents

  1. RISC-V and the VisionFive 2 Kickstarter project
  2. Installation of DietPi on the VisionFive 2
  3. Functionality limitations/constraints
  4. References

1. RISC-V and the VisionFive 2 Kickstarter project

A new star was born on the open source CPU firmament about 2010, the RISC-V platform. Open source in this area means open source ISA (instruction set architecture), there are no roalty fees to pay when selling CPU or SoC devices using this technology inside and internals of the CPU core are transparent. This makes the technology interesting for combining it within the open source Linux orbit.

Since a couple of months, a promising RISC-V board from StarFive, the VisionFive 2 is available as a Kickstarter project with an achievable price: The board contains a quad-core RISC-V JH7110 system with 2/4/8 GiB of RAM and many other bells and whistles of the Raspberry Pi type world (see the datasheet for details).

Since a preliminary Debian Bookworm/Sid version was ported to the board, it was exciting to generate a DietPi version from this.

Spoiler: All that glitters is not gold, which means that there is much work to do in the future to achieve a fool proof DietPi system. The actual status should be seen as “experimental”, also only a subset of all DietPi functionalities are working on the board yet (especially the HDMI output, read below).
But, let’s go ahead with our first steps.

2. Installation of DietPi on the VisionFive 2

The installation of a board should be done in these two steps:

  1. Install and run the DietPi system
  2. Updating the bootloader

2.1 DietPi system

You can download and flash the DietPi testing image DietPi_VisionFive2-RISC-V-Sid.7z from
https://dietpi.com/downloads/images/testing/.
Boot your system with this image … and off we go!

In case the system does not boot, try to update the bootloader first with a dedicated image provided by StarFive, as described below. Since it currently has no HDMI output, verify that it really does not boot via serial console and/or LED status signals. SSH and network access can fail for other reasons, unrelated to the bootloader version. EDIT: HDMI out has been enabled in the meantime!

2.2 Bootloader update

The bootloader typically does not need to be updated so often, but in this early development stage it is a good idea to check for a newer bootloader from time to time at the StarFive GitHub repository.

To update the bootloader in DietPi, either use dietpi-config > Advanced Options > Update bootloader, or run the following console command:

/boot/dietpi/func/dietpi-set_hardware vf2-spi-update

2.2.1 Update image

In case DietPi does not boot on your VisionFive 2, you may need to update the bootloader first.

The basic description is given there: You need to download three files from the VisionFive 2 GitHub repository:

  • sdcard.img
  • u-boot-spl.bin.normal.out
  • visionfive2_fw_payload.img

The update can be done with the following steps:

  1. Flash sdcard.img to a free SD card, e.g. via Rufus or balenaEtcher
  2. Plug the SD card to the VisionFive 2 board and power on (no need to connect a monitor and keyboard)
  3. Wait for the green LED to blink
  4. Login to the board via SSH (find out the IP address or just use “buildroot” as hostname):
    ssh root@buildroot
    Use starfive as password.
    RISC-V StarFive VisionFive 2 SSH login
  5. Place the other two files on a USB stick and plug it into the board. In the following is assumed, that the USB stick partition with the two files will be /dev/sda1, which can be checked via lsblk command.
  6. Mount the USB stick and check for the two files
    RISC-V StarFive VisionFive 2 bootloader files
  7. Navigate to the files location with cd /mnt
  8. Flash the two files with
    flashcp -v u-boot-spl.bin.normal.out /dev/mtd0
    flashcp -v visionfive2_fw_payload.img /dev/mtd1
    and wait until all is finished
    RISC-V StarFive VisionFive 2 bootloader flash
  9. Power off the system with poweroff

Now, the bootloader is updated and the DietPi system should successfully boot, following the instructions above.

3. Functionality limitations/constraints

There are a couple of limitations which you should be aware of.
The most relevant issue in my point of view is, that the actual image does not support a console on the HDMI output. (EDIT: This has been fixed now!) SSH however works via Ethernet. Alternatively, a UART adapter can be attached to the GPIO header as described there (chapter 3.4.3. “Using a USB to Serial Converter”), to get a serial console.
We focus on headless applications for now, until we get HDMI support back into the kernel.

The following lists show software titles which have successfully been tested on the VisionFive 2, and those which re known to be not supported on RISC-V yet . They will be updated whenever new tests are done. So you are invited to share your experiences via the replies below or at our related testing issue on GitHub: https://github.com/MichaIng/DietPi/issues/6212

3.1 Positive list

  • Box64
  • CAVA
  • Go
  • InfluxDB
  • Midnight Commander
  • Mopidy
  • MPD
  • Nextcloud
  • NFS Server and Client
  • Node-RED
  • OctoPrint
  • OpenSSH Server and Client
  • PHP
  • phpSysInfo
  • Python 3
  • Samba Server and Client
  • Syncthing
  • Tailscale
  • Webmin
  • WordPress
  • X11 with XRDP (fairly slow)
  • ZeroTier

3.2 Negative list

  • AdGuard Home
  • Amiberry
  • Chromium
  • Cuberite
  • DietPi-Dashboard (in progress)
  • Docker, Docker Compose, Portainer
  • Firefox
  • Folding@Home
  • FuguHub
  • Gitea
  • Gogs
  • Grafana
  • IPFS Node
  • Jackett
  • Jellyfin
  • Lidarr
  • Logitech Media Server
  • MariaDB
  • myMPD
  • NAA Daemon
  • Navidrome
  • NoMachine
  • ownCloud
  • Pi-hole (in progress)
  • Plex Media Server
  • Prometheus Node Exporter
  • Prowlarr
  • Radarr
  • Readarr
  • Remote.It
  • Roon Bridge, Roon Server
  • Snapcast Server and Client
  • Sonarr
  • UrBackup
  • VirtualHere
  • VSCodium
  • ympd

4. References

DietPi on RISC-V StarFive VisionFive 2 SBC

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top