Arch Linux Image for VisionFive 2

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.

1 Like

Good。 :+1:
cwt, thank.
I like to use archLinux cwt and debian together on VF2. :grinning: :clap:


New packages for the VF2 are now available:

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).

1 Like

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).

1 Like

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. :laughing:

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.

4 Likes

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.

2 Likes

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.

2 Likes

@elraphik please test this image with your VF2-Lite emmc board.

1 Like

Both boards booted with the same micro SD.

3 Likes

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).

1 Like

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.

2 Likes

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 ###