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.
Update 2023-03-18: HDMI console works now, bootloader update present in
Update 2023-04-08: NVMe interface successfully tested
Table of contents
- RISC-V and the VisionFive 2 Kickstarter project
- Installation of DietPi on the VisionFive 2
- Functionality limitations/constraints
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 “testing”, also not all DietPi functionalities are working on the board yet (e.g. the X11 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:
2.1 DietPi system
You can download and flash the DietPi testing image DietPi_VisionFive2-RISC-V-Sid.img.xz from
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:
2.2.1 Update image
In case DietPi does not boot on your VisionFive 2, you may need to update the bootloader first.
The update can be done with the following steps:
sdcard.imgto a free SD card, e.g. via Rufus or balenaEtcher
- Plug the SD card to the VisionFive 2 board and power on (no need to connect a monitor and keyboard)
- Wait for the green LED to blink
- Login to the board via SSH (find out the IP address or just use “buildroot” as hostname):
- 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
- Mount the USB stick and check for the two files
- Navigate to the files location with
- 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
- Power off the system with
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.
3.1 Hardware options
HDMI output: Works
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.
NVMe disk access: Works
Tested with an NMVe disk formatted to ext4.
This shows the root file system on /dev/mmcblk1 and the 500 GB NVMe mounted to
2023-04-08 12:55:41 root@DietPi:~# lsblk /dev/nvme0n1 /dev/mmcblk1
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
mmcblk1 179:0 0 14,8G 0 disk
└─mmcblk1p1 179:1 0 14,8G 0 part /
nvme0n1 259:0 0 465,8G 0 disk
└─nvme0n1p1 259:3 0 465,8G 0 part /mnt/nvme
df command (free disk space) then shows:
2023-04-08 12:51:57 root@DietPi:~# df -h /dev/nvme0n1p1
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
/dev/nvme0n1p1 458G 28K 458G 1% /mnt/nvme
NVMe boot: Works
3.2 Unsupported software titles
The following list shows software titles which are known to not ne supported on RISC-V yet. We will regularly review and update these cases and try to help developers adding RISC-V support to their build systems. You are invited to share your experiences on GitHub: https://github.com/MichaIng/DietPi/issues/6212
- AdGuard Home
- Docker Compose
- IPFS Node
- Logitech Media Server
- NAA Daemon
- NZBGet (request up)
- Plex Media Server
- Roon Bridge, Roon Server
- Snapcast Server and Client
- StarFive: New-Generation of Intelligent Vision Processing Platform-JH7110
- Kickstarter project VisionFive 2
- StarFive JH7110 Datasheet
- Basic description how to update the bootloader
- VisionFive 2 Single Board Computer Quick Start Guide