VisionFive 2 up and running instructions

Here’s my version of the HOWTO notes, based on the latest release, these also correct things that don’t quite work as described in the docs.

Check latest release at Releases · starfive-tech/VisionFive2 · GitHub, currently 2.6.0 for which $releasepath is https://github.com/starfive-tech/VisionFive2/releases/download/VF2_v2.6.0/ so download https://github.com/starfive-tech/VisionFive2/releases/download/VF2_v2.6.0/sdcard.img

Download $release-path/sdcard.img (ca.800MB), flash to micro SD card and insert. This isn’t the full image but a stripped-down one to allow firmware flashing so doesn’t need the usual SSH-enabling hack.

Plug an ethernet cable into the left ethernet port, the right one doesn’t give you a DHCP address, and power up. The boot process may take awhile.

ssh to the device which will appear on the LAN as ‘buildroot’, user = root, password = starfive. In theory you should now do:

releasepath="https://github.com/starfive-tech/VisionFive2/releases/download/VF2_v2.6.0"
wget $releasepath/u-boot-spl.bin.normal.out
wget $releasepath/visionfive2_fw_payload.img

however the Busybox wget doesn’t understand HTTPS so you need to download it on another machine:

https://github.com/starfive-tech/VisionFive2/releases/download/VF2_v2.6.0/u-boot-spl.bin.normal.out
https://github.com/starfive-tech/VisionFive2/releases/download/VF2_v2.6.0/visionfive2_fw_payload.img

uuencode it, paste it into an SSH session (this may take awhile, the VisionFive will appear to hang as it catches up on the pasted stream), uudecode it on the VisionFive, and then check it with md5sum, which if you’re using a Windows machine that doesn’t have it needs to be done with:

certutil -hashfile u-boot-spl.bin.normal.out md5
md5sum u-boot-spl.bin.normal.out
certutil -hashfile visionfive2_fw_payload.img md5
md5sum visionfive2_fw_payload.img

This is to make sure that nothing went wrong in the binary → text → paste → binary translation. Finally, reflash:

flashcp -v u-boot-spl.bin.normal.out /dev/mtd0
flashcp -v visionfive2_fw_payload.img /dev/mtd1
shutdown -h now

Unplug the power to fully shut down.

Download the latest image from the Google Cloud link at https://debian.starfivetech.com/, current direct link Engineering Release - Google 云端硬盘, this is a 6GB image. Note that this will require retrying the download over and over again until it stops failing, once you get past the endless “Failed” or “Failed: Network error” problems it downloads in a few minutes.

bunzip2 starfive-jh7110-VF2*

This takes around fifteen minutes since it’s a single-threaded decompress of 16 GB of data. Write to SD card (if this had sdcard.img flashed to it earlier it’ll contain multiple partitions that may appear as odd drives, may need to delete these first and unplug and re-plug to de-confuse the OS), which also takes around 15 minutes. Finally plug into the device, wait some time for it to boot and it’ll appear on the LAN as ‘starfive’. SSH in with user = user (not root), password = starfive.

Next, fix up some missing stuff:

sudo rm /etc/ssh/ssh_host_*
sudo dpkg-reconfigure openssh-server
sudo apt install unzip
sudo apt install mtd-utils
sudo apt install usbutils
sudo apt install clang
sudo apt install make

At this point you’ve got a basic dev system up and running.

Finally, to compensate for all the junk you’ve just dumped on there in the previous set of commands:

sudo apt purge --auto-remove libx11-6 libwayland-client0

This gets rid of the GUI bloat.

5 Likes