Grub is a great option for many reasons, such as being easier for maintaining multiple versions of kernel packages. I try to enable it whenever I can.
New packages for the VF2 are now available:
- U-Boot: https://github.com/cwt-vf2/u-boot-starfive-vf2/releases/tag/2025.10-1
- Kernel: https://github.com/cwt-vf2/linux-cwt-starfive-vf2/releases/tag/cwt25-6.0.0-1
- Mesa: https://github.com/cwt-vf2/mesa-pvr-ddk119/releases/tag/22.1.7-2
The IMG GPU blob has remained unchanged for two years.
This kernel is based on the same 6.12.5 version as StarFive’s previous release; the changes primarily add support for their new VF2 Lite and VF2 CM editions.
I’ve also built the modules for AIC Wi-Fi and Bluetooth, so this kernel should be able to boot the VF2 Lite (hopefully—I don’t have the actual hardware to test it).
Use this script to download and upgrade the kernel linux-cwt-starfive-vf2/kernel-update.sh at 6.12 · cwt-vf2/linux-cwt-starfive-vf2 · GitHub but I still recommend upgrade mesa and u-boot (require flashcp to your mtd manually).
Good night! Wow, @lzzhzh may I ask you how did you manage to install hyprland? Did you install it from any AUR repo or did you compile it?
When I try to install hyprland with “yay -S –needed hyprland” it says it cannot resolve libhyprgraphics.so=0-64 nor libhyprutils.so=7-64…
Thank you all for helping out with this project!
I didn’t install it from the AUR repo, I should have installed Hyprland using pacman back then, At that time, I didn’t know how to use yay. ![]()
Good morning, thanks for replying so fast! I was able to install it running (I needed to compile yay first)
yay -S hyprland-git
The package manager compiled Hyprland and I was able to run it!
However GPU acceleration does not work even though i installed all most recent packages and img-gpu-vf2 package. Did you manage to run it GPU accelerated?
I’m starting the Hyprland window manager using both greetd and agreety configured with this command
command = "agreety --cmd 'dbus-run-session Hyprland'"
However both vkmark and glmark2 cannot initialize, glxinfo fails to run, and vulkaninfo seems to show output, i will review it if something useful found.
If someone was able to use GPU acceleration using pure Wayland window manager please let me know. In addition if someone know if still need work to be done both with opengl and vulkan I would appreciate sharing resources where to start from. Thanks!
sudo watch cat /sys/kernel/debug/pvr/status
Try using this instruction, it is to check the VF2-GPU usage rate.I have verified that this command can run on debian2409, debian2510, and Deepin for VF2.
Yeah, it works on those distributions, it shows GPU usage running glxgears (I can also play SuperTuxKart in debian2510). I was out of luck with Ubuntu, maybe I can run glxgears but not sure. I will test openKylin too (i know vkcube is already installed and it works, this is the only distro I tested where Vulkan works…)
That proves the SCB GPU is capable of running accelerated graphics. However I wasn’t able to run OpenGL nor Vulkan with cwt24 image. Which work may be done in order to archieve this? I tried to install all newest .zst packages (originally inside /root/pkgs) but it seems it didn’t work to me
Do you know if it is related to this issue (Request for Full Linux support for the PowerVR B-Series BXE-4-32 used by the VisionFive 2) This page also say the BXE-4-32 gpu hardware is not supported… PowerVR
I would appreciate is someone could shed some light in this topic. In addition it would be great to know if this driver could be run in cwt24 image, that would be great!
Thank you all for the info!
UPDATE: Both vkcube and glxgears work in deepin OS!
There are currently two types of PowerVR B-Series GPU drivers, for xorg and for wayland. Their functions are different. debian2510 arch-cwt is wayland, deepin openkylin revyos(th1520) is xorg.
GPU drivers need to be further improved by GPU manufacturers. I am waiting.
At least there have been changes, For example, debian2409 cannot support MPV hardware decoding, while debian2510 already supports MPV hardware decoding.
Hi, after flashing my new VF2-lite and battling a little with it (it’s my first time with one of those babies), I apparently have a little xhci-hcd error when booting, preventing me from using the USB hub… here are some examples of dmesg output :
[user@ArchVF2 ~]$ dmesg | grep -i xhci
[ 4.290325] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[ 4.295919] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1
[ 26.059834] xhci-hcd xhci-hcd.1.auto: can't setup: -110
[ 26.065132] xhci-hcd xhci-hcd.1.auto: USB bus 1 deregistered
[ 26.070866] xhci-hcd xhci-hcd.1.auto: probe with driver xhci-hcd failed with error -110
[user@ArchVF2 ~]$ sudo dmesg | grep -i error
[ 26.070866] xhci-hcd xhci-hcd.1.auto: probe with driver xhci-hcd failed with error -110
[ 26.090055] mailbox_test mailbox_client: error -EINVAL: invalid resource (null)
[ 26.097463] mailbox_test mailbox_client: error -EINVAL: invalid resource (null)
[ 26.233667] starfive_jadard 2-0019: [drm:panel_probe] *ERROR* failed to get our reset GPIO
[ 26.251528] starfive_jadard 2-0019: probe with driver starfive_jadard failed with error -2
[ 26.929863] vs-simple-encoder dsi-output: encoder_bind error
[ 28.692133] Error: Driver 'cdns-dsi' is already registered, aborting...
[ 37.544226] platform snd-card1: deferred probe pending: asoc-simple-card: parse error
[ 41.405014] Goodix-TS 2-0014: Error reading 1 bytes from 0x8140: -121
[ 41.496309] Goodix-TS 2-0014: Error reading 1 bytes from 0x8140: -121
[ 41.680575] Goodix-TS 2-0014: probe with driver Goodix-TS failed with error -121
[ 41.723684] imx219 6-0010: probe with driver imx219 failed with error -5
[ 42.157659] [st_camss] error: Failed to get reset controls
[ 42.322918] Error: Driver 'cdns-dsi' is already registered, aborting...
[ 42.348459] jh7110-vin 19800000.vin_sysctl: probe with driver jh7110-vin failed with error -16
[ 42.600407] imx296 6-001a: probe with driver imx296 failed with error -121
[ 42.908590] ov4689 6-0036: ov4689_read_reg: error: reg=300a
[ 42.947475] ov4689 6-0036: probe with driver ov4689 failed with error -121
for info, i have a VF2-lite 8GB + 64GB eMMC, u-boot uses the emmc file as the default does not work
also, i have updated pretty much everything i could on the device atm, ran the kernel-upgrade too
does anyone have an idea ? should i just retry the whole install process ?
You might have to wait, I guess CWT hasn’t received his VF2 lite yet.
There are rumours that Starfive is giving away VF2 Lite to CWT for free.
@elraphik @lzzhzh I’m working on it. I’m loaded with my daily jobs, but I’m in the process of building a universal image for both VF2 and VF2-lite.
The cwt25 pre‑release image is available here: https://github.com/cwt-vf2/archlinux-image-vf2/releases/tag/cwt25.
I marked it as a pre‑release because I haven’t tested it on all of my boards yet. I’m on a long holiday and only have Model A and the Lite version with me, so I can’t verify the others right now.
@elraphik please test this image with your VF2-Lite emmc board.
Quick update & warning: Do not flash my SPL and U-Boot to the VF2-Lite. It’s not working yet, however the provided on-board SPL and U-Boot can boot Arch (as in my previous comment).
I just flashed my SPL and U-Boot on a VF2 model A, and it booted perfectly. So on Lite, we have to stick to vendor firmware, which booted Arch on SD and NVMe fine, and wait for everything to go upstream.
hi , cwt
ArchLinux-VF2_6.12_v6.0.0-cwt25.img.zst It seems that it can’t start on VF2-1.3B.
U-Boot SPL 2021.10 (Sep 28 2025 - 08:56:58 +0000)
LPDDR4: 8G version: g8ad50857.
Trying to boot from SPI
OpenSBI v1.2
____ _____ ____ _____
/ __ \ / ____| _ \_ _|
| | | |_ __ ___ _ __ | (___ | |_) || |
| | | | '_ \ / _ \ '_ \ \___ \| _ < | |
| |__| | |_) | __/ | | |____) | |_) || |_
\____/| .__/ \___|_| |_|_____/|___/_____|
| |
|_|
Platform Name : StarFive VisionFive V2
Platform Features : medeleg
Platform HART Count : 5
Platform IPI Device : aclint-mswi
Platform Timer Device : aclint-mtimer @ 4000000Hz
Platform Console Device : uart8250
Platform HSM Device : ---
Platform PMU Device : ---
Platform Reboot Device : pm-reset
Platform Shutdown Device : pm-reset
Platform Suspend Device : ---
Firmware Base : 0x40000000
Firmware Size : 248 KB
Firmware RW Offset : 0x20000
Runtime SBI Version : 1.0
Domain0 Name : root
Domain0 Boot HART : 1
Domain0 HARTs : 0*,1*,2*,3*,4*
Domain0 Region00 : 0x0000000002000000-0x000000000200ffff M: (I,R,W) S/U
: ()
Domain0 Region01 : 0x0000000040000000-0x000000004001ffff M: (R,X) S/U:
()
Domain0 Region02 : 0x0000000040020000-0x000000004003ffff M: (R,W) S/U:
()
Domain0 Region03 : 0x0000000000000000-0xffffffffffffffff M: (R,W,X) S/U
: (R,W,X)
Domain0 Next Address : 0x0000000040200000
Domain0 Next Arg1 : 0x0000000042200000
Domain0 Next Mode : S-mode
Domain0 SysReset : yes
Domain0 SysSuspend : yes
Boot HART ID : 1
Boot HART Domain : root
Boot HART Priv Version : v1.11
Boot HART Base ISA : rv64imafdcbx
Boot HART ISA Extensions : none
Boot HART PMP Count : 8
Boot HART PMP Granularity : 4096
Boot HART PMP Address Bits: 34
Boot HART MHPM Count : 2
Boot HART MIDELEG : 0x0000000000000222
Boot HART MEDELEG : 0x000000000000b109
U-Boot 2021.10 (Sep 28 2025 - 08:56:58 +0000)
CPU: rv64imacu_zba_zbb
Model: StarFive VisionFive V2
DRAM: 8 GiB
MMC: sdio0@16010000: 0, sdio1@16020000: 1
Loading Environment from SPIFlash... SF: Detected gd25lq128 with page size 256 B
ytes, erase size 4 KiB, total 16 MiB
*** Warning - bad CRC, using default environment
StarFive EEPROM format v2
--------EEPROM INFO--------
Vendor : StarFive Technology Co., Ltd.
Product full SN: VF7110B1-2253-D008E000-00001694
data version: 0x2
PCB revision: 0xb2
BOM revision: A
Ethernet MAC0 address: 6c:cf:39:00:2b:41
Ethernet MAC1 address: 6c:cf:39:00:2b:42
--------EEPROM INFO--------
In: serial
Out: serial
Err: serial
Model: StarFive VisionFive V2
Net: eth0: ethernet@16030000, eth1: ethernet@16040000
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc1 is current device
Try booting from MMC1 ...
Card did not respond to voltage select! : -110
starfive_pcie pcie@2B000000: Port link up.
starfive_pcie pcie@2B000000: Starfive PCIe bus probed.
PCI: Failed autoconfig bar 10
starfive_pcie pcie@2C000000: Port link up.
starfive_pcie pcie@2C000000: Starfive PCIe bus probed.
PCI: Failed autoconfig bar 10
Device 0: Vendor: 0x1e0f Rev: 0105AELA Prod: 81FPC106QXQ2
Type: Hard Disk
Capacity: 122104.3 MB = 119.2 GB (250069680 x 512)
... is now current device
Try booting from NVME0 ...
Device 0: Vendor: 0x1e0f Rev: 0105AELA Prod: 81FPC106QXQ2
Type: Hard Disk
Capacity: 122104.3 MB = 119.2 GB (250069680 x 512)
... is now current device
Try booting from NVME0 ...
Tring booting distro ...
switch to partitions #0, OK
mmc1 is current device
Try booting from MMC1 ...
338 bytes read in 2 ms (165 KiB/s)
Retrieving file: /extlinux/extlinux.conf
715 bytes read in 3 ms (232.4 KiB/s)
1: Arch Linux
Retrieving file: /initramfs-linux.img
10573374 bytes read in 460 ms (21.9 MiB/s)
Retrieving file: /vmlinuz
10427861 bytes read in 451 ms (22 MiB/s)
append: root="LABEL=VF2" rw console=tty1 console=ttyS0,115200 earlycon rootwait
stmmaceth=chain_mode:1 selinux=0 rootflags=defaults,discard=async,compress=lzo,u
ser_subvol_rm_allowed,subvol=@
Retrieving file: /dtbs/jh7110-starfive-visionfive-2-v1.3b.dtb
Failed to load '/dtbs/jh7110-starfive-visionfive-2-v1.3b.dtb'
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
Uncompressing Kernel Image
Device tree not found or missing FDT support
### ERROR ### Please RESET the board ###



