VisionFive 2 Debian Image(December) Released

Ok, I think a step by step guide with images is needed for me to even try the flashing. I don’t want to brick the board.

  1. So what works without uart dongle? Do both 55 and 69 require it?

  2. What works without flashing at all (I read ubuntu/suse somewhere)?

  3. Do we need to use the debian release to get OpenGL ES on the GPU working?

And most important why all these steps, what caused the problems in the first place. We kinda need to understand this to build our own OSes.

I haven’t bothered to use a UART-USB dongle as for both the buildroot image and the full debian (69) you can ssh in with ssh user@$IP and do the firmware update from there. Trying to avoid the firmware update is a dead-end. (Finding the $IP depends on your setup. My router shows the DHCP assignments, but worst case you can just run nmap to find open ssh ports on your network).

So what are the instructions to do that?

There are multiple postings about that, but here’s the summary I wrote for myself:

# commands are run on the SBC, $ are run on your host
1. $ wget
2. Use your favorite method to write that image a µSDcard
3. Power-on with that in
4. Find with $IP and ssh root@$IP (pw: starfive)
5. get u-boot-spl.bin.normal.out and visionfive2_fw_payload.img from and scp from the SBC (it has very few binaries)
6. # flashcp -v u-boot-spl.bin.normal.out /dev/mtd0
7. # flashcp -v visionfive2_fw_payload.img /dev/mtd1
8. # shutdown -h now
9. Download starfive-jh7110-VF2_515_v2.5.0-69.img.bz2 from (use Google Cloud Disk)
10. $ bunzip2 starfive-jh7110-VF2_515_v2.5.0-69.img.bz2 and, again, use your favorite method to write that image a µSDcard
11. Insert in the board and power on.
12. Optional: if it fails to display on your monitor, you can log in over the network with ssh user@starfive (pw: starfive)

ADD: good thing I wrote the notes as I forget you have to log in as root to the buildroot image. Anyway, I hope it helps.


Ok, do the switches (next to GPIO for qspi or something) need to be in a certain position?

I was too lazy to log into my router to find the IP address. I booted the VF2 with Debian image 55 and found the ip address with: ip route get 1.2
As an example, it was
After I shut it down and booted with minimal image version 69, I was hoping it was still the same IP address, but it turned out it got assigned the next IP address:
Otherwise you have to use other tricks to find it.

If possible, write minimal image version 69 on a micro SD card and copy the two firmware files onto the micro SD card. Otherwise you can also use a USB stick and mount it.

ssh from another machine into the VF2 and follow the procedure as described in the PDF file.
You can skip the step to install the mtd-utils, as flashcp is already installed.
flashcp -v u-boot-spl.bin.normal.out /dev/mtd0
flashcp -v visionfive2_fw_payload.img /dev/mtd1

1 Like

Yes, but they are correct from factory and you needn’t touch them. For the record, both white plastic “tabs” needs to be shifted towards the CPU, which is the “boot from SPI” option. (The silk screen is ambigious IMO). No other setting works at the moment (well, UART might work, but that won’t help you).


I might have mixed up the images.
It’s better to use this image:
VisionFive 2 Debian Image(December) Released - #43 by LivingLinux

Yes now it is! :smiley: see: Starfive VisonFive2(RISC-V SBC) で遊ぶ – その2 ファームウェアの書き換え | ず@沖縄

You just need to use the sdcard.img and then you can patch it with the sdcard image after that boot the debain image :slight_smile:



Thanks for the video! Helps me a ton! :smiley:

Regarding your last sentence in the video…

I only have 4k Monitors here. Will there be an output of the hdmi ? Maybe even just tty would be ok for me for the start.

What resolution does work and how can i set this ?
Headless SSH Login is possible ?

How then set the correct resolution ?



@Manux please refer to this link to fix this 4k issue A unified reply to a question about the display of debian69 - #4 by Michael.Zhu
and you also can enable ssh by following this guide Enable SSH Root Login

1 Like

Would it be possible to remove the giant StarFive watermark splashed across each page of the manual? It makes it a real pain to read with grey blobs all over diagrams and text.


What’s the difference between the full and minimal desktop image?

It’d be nice to have a developer image that doesn’t contain the huge amount of desktop bloat, or even GUI, but just a set of development tools alongside the CLI. I assume most users are going to be using it for RISC-V development work rather than as a desktop system, so having a minimal image + dev tools would be useful here.


minimal desktop image + debian_packs = full image


Ah, thanks! So for non-GUI work it’d be the basic dev-system I asked about in another post, looks like minimal is the way to go unless you’re running it as a full desktop system or doing video development work.

Bug with Debian Image-69 (no others tested): The Linux Kernel Crypto API produces garbage when you try to use it for AES.

Filed as Linux Kernel Crypto API produces garbage for AES · Issue #25 · starfive-tech/VisionFive2 · GitHub as I wasn’t sure where to file bugs.

@gpshead many thanks. we have reproduced this isse and will try to fix it.

1 Like

Anyone else get this? Any fix?

root@starfive:~# apt update
Hit:1 unstable InRelease
Err:1 unstable InRelease
  The following signatures were invalid: EXPKEYSIG E852514F5DF312F6 Debian Ports Archive Automatic Signing Key (2022) <>
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: unstable InRelease: The following signatures were invalid: EXPKEYSIG E852514F5DF312F6 Debian Ports Archive Automatic Signing Key (2022) <>
W: Failed to fetch  The following signatures were invalid: EXPKEYSIG E852514F5DF312F6 Debian Ports Archive Automatic Signing Key (2022) <>
W: Some index files failed to download. They have been ignored, or old ones used instead.

Try this:

dpkg -i debian-ports-archive-keyring_2023.02.01_all.deb

apt-get update
apt-get upgrade

Many have succeeded with this.