I have rebuilt the kernel from release v2.6.0 and then v2.8.0 for cwt6 (GitHub - starfive-tech/VisionFive2) to include Btrfs and various other USB, network, and WiFi drivers. Additionally, it includes almost everything in the “Networking” section as I intend to use this board as a home server in the future. As such, I did not focus much on the GUI and GPU. However, I also built the JPU, VENC, and VDEC modules for this kernel.
I then used the rootfs from https://riscv.mirror.pkgbuild.com/ to create my own initial image and subsequently updated all packages and installed NetworkManager, OpenSSH and other necessary components to make it ready for use. The verisilicon framebuffer patched has been applied since cwt5, so you can use text console on HDMI. However, accessing the u-boot prompt and extlinux boot menu may still be useful in certain situations.
Changelog for the cwt6 image:
- The kernel is built from the VF2_v2.8.0 tag, which includes the latest benefits from Starfive (e.g. hibernation and perf), plus some additional patches (newer binutils, verisilicon framebuffer, and
- Security-oriented options are enabled by default, such as LSM, AppArmor, Audit, Tracing, and seccomp. AppArmor is up and running.
- Added Sound Sequencer and I2C/SPI RTC.
- Three preemption modes are available:
cwt6-lowlatency. You can select them from the boot menu or change the default in
Here the links to download:
make sure you got the corrected sha256sum:
The xz compressed file:
The raw image file:
root password is
user password is
user is sudoer, and it can run sudo without password.
It can be used as a base building block for your project.
After flashing the image to an SD card of at least 32 GB, please edit partition 3 and expand it to the rest of the available space. Then use the following command to maximize the partition.
btrfs filesystem resize max /
If you wish to mount NVMe as the root partition, please format it as btrfs and then create a subvolume with the desired name. Mount the path
/mnt which already in the
/etc/fstab (so just run
mount /mnt as root), then use rsync to copy the contents of
/mnt/arch-minimal to the new subvolume on the NVMe. Finally, edit the
/boot/boot/extlinux/extlinux.conf and the
/etc/fstab on the new subvolume.
The kernel source and other necessary components such as GPU drivers are already included in the
And if you’ve got a big enough SD or SSD, you can also create another subvolume and store the Debian Image 69 on it. But you’ll need to install
dracut and create an
dracut instead of using the provided
initrd . That way, you can add another option in the
extlinux.conf file, giving you the ability to boot into the Debian image.