Hi bro, I just enabled the radeon module in the kernel, but I had to download firmware files from the console first while the card was plugged in, and then put them in the right places, also I had to rename files in /lib/firmware/SomeFolders for it to match depending on DMESG message logs. Then it worked by itself, I could get GUI, not just console ![]()
Thatās great to hear! Iāll have to do some experimentation then⦠also, have you seen whether the card can work for ffmpeg video accelerated encoding? I am considering seeing whether I could compile it that way so I could use it for better encoding (if itās hard to get H.264 encode working on the onboard GPU especially).
Sorry, no I didnāt try ffmpeg encoding yet.
Regarding the Mesa packages ā can you be more specific? I have been trying to get my Radeon HD 7450 running and need the AMD firmware, but firmware-amd-graphics doesnāt seem to be available. Should I just copy the firmware files (in my case radeon/CAICOS_pfp.bin) from another system? (Not sure if theyāre arch-specific).
Edit: Nevermind, just ran the following to grab the firmware:
git clone --depth 1 --filter=blob:none --sparse https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
cd linux-firmware
git sparse-checkout set radeon
sudo cp -R radeon /lib/firmware
Just wondering, since Iāve never set this up⦠did you follow these instructions or something like user-mode linux?
From the JH7110 datasheet the VPU hardware supports H.265 encoding 1080p@30fps, the JH7100 on the VisionFive 1 supports both. The VisionFive 2 does not have the hardware to support H.264 encoding.
This block diagram of the multimedia features confused me, until I realised that the same block diagram was used for both SoCās.
There are example commands of video encoding using the custom starfive build of ffmpeg but some of the commands still mention h264 in this documentation, which at a guess is because some of the information in that document was migrated from the VisionFive 1 board.
When it comes to video encoding, the JH7100 must have licensed more expensive IP for the VPU than the JH7110. Form the two chips datasheets:
JH7100: Video Decoder(H264/H265): up to 1 channel 4K@60fps or 8 channel 1080p30fps
JH7100: Video Encoder(H264/H265): up to 1 channel 4K@60fps or 8 channel 1080p30fps
JH7110: Video Decoder(H264/H265): up to 1 channel 4K@60fps or 8-channel 1080p30fps
JH7110: Video Encoder(H265): 1080p@30fps
The GPU (IMG BXE-4-32 mc1) does not naively support video encoding, and if someone did write code for it to do so, Iām guessing that it would be really really really slow.
Video encoding/decoding happens in dedicated VPU blocks inside the SoC:
JH7110: Chips and Media WAVE420L IP (encode)
JH7110: Chips and Media WAVE511 IP (decode)
JH7100: Chips and Media WAVE521 IP (encode)
JH7100: Chips and Media WAVE511 IP (decode)
In my mind the future will be AV1 for computers and streaming services and H.266 for satellite and terrestrial TV services.
I have my Radeon HD 7470 working, and I get console output, but after boot it starts flashing the screen and over and over I get these logs for like a minute:
[ 144.420246] Allocated coherent memory, vaddr: 0xFFFFFFE1F97BAB60, paddr: 0x8010C000
[ 144.427903] ====> vs_gem_alloc_buf, 162.vs_obj->get_pages = 0
[ 145.648363] PVR_K: 1035: X disconnected - (devID = 0)
[ 145.946836] vs_gem_dumb_create size = 1000
[ 145.950986] Allocated coherent memory, vaddr: 0xFFFFFFE1FB3FF388, paddr: 0x10149F000
[ 145.958755] ====> vs_gem_alloc_buf, 162.vs_obj->get_pages = 0
[ 146.008825] PVR_K: 1044: X connected - (devID = 0)
[ 146.362182] vs_gem_dumb_create size = 300000
[ 146.368724] Allocated coherent memory, vaddr: 0xFFFFFFE1F97BE0C0, paddr: 0x80200000
[ 146.376446] ====> vs_gem_alloc_buf, 162.vs_obj->get_pages = 0
[ 146.395626] vs_gem_dumb_create size = 4000
[ 146.399871] Allocated coherent memory, vaddr: 0xFFFFFFE1F97BAA80, paddr: 0x80108000
[ 146.407528] ====> vs_gem_alloc_buf, 162.vs_obj->get_pages = 0
[ 146.413293] vs_gem_dumb_create size = 4000
[ 146.417462] Allocated coherent memory, vaddr: 0xFFFFFFE1F97BAB60, paddr: 0x8010C000
[ 146.425137] ====> vs_gem_alloc_buf, 162.vs_obj->get_pages = 0
[ 147.626145] PVR_K: 1044: X disconnected - (devID = 0)
It seems to be the PVR GPU driver conflict mentioned earlier. I canāt seem to use the console display with keyboard and mouseāonly the internal HDMI port with its much slower performance (and no support for OpenGL it seems right now).
AV1 software support could be made that uses the cpu/gpu to make it happen.
In fact, Iām certain there are packages already built for this for the cpu, albeit not the fastest as you mentioned, it still already exists.
GPU support for AV1 yet? I donāt know if anybody has invested effort here. If it did, it wouldnāt be so slow.
Most limiting factor at hand for the VF2 is the pcie 2.0 with access to only one lane for storage. That really slows everything down with respect to processing data everywhere because data wants to be stored.
I think there will need to be an VF3 sooner rather than later with better/more recent pcie storage. Consumers of course would pay for this. The form-factor is whatās most attractive. The power envelope to support pcie3/4/5 and the attached devices is the big question mark. It would also require reflection how the SBC case would be made to handle all such attached devices for pcie3/4/5. Even USB needs faster pcie 3/4/5 and the question of power usage would need to be clearly answered as well.
All these subtleties are that the VF2 capabilities are honestly compared to what users usual requirements which are the average desktop/laptop, but in a mini-pc form factor.
When you add up all the little accessories one buys to make the VF2 work, it adds up to a intel x86_64 mini-pcās cost or a used x86_64 laptop. Yet even a used x86_64 mini-pc/laptop still provides more capability than the VF2 to be quite honest. One needs to be truly dedicated to the fruition of the riscv ecosystem to commit to using VF2 hardware at the moment.
One should not be needing to be dedicated to use such hardware. Rather the hardware should be designed to compete with and exceed the usersā requirements/expectations and the consumers will be willing to pay for that.
Itās a lot like that movie āField of Dreamsā, āBuild it and they will come.ā X-window had a spin-off saying as well when it surfaced: āBuild the software and the hardware will come.ā Hifive unmatched has met a great deal of the requirements since they have a board that supports more recent pcie, but the core count is still very low considering the price of the hifive unmatched is 7 to 10 times the price of the VF2, but the core for the Hifive unmatched is the price of a mid-range pc that has more cores available.
Are there plans to offer a new Vision Five board that has more cores, newer pcie, more powerful gpu equivalent to a professional workstation?
Why? Because to be taken seriously, we need something that can provide for the required workstation tasks. All users have different requirements, but by the existence of gaming desktops, graphics/engineering workstations and such in x86_64 land, it should nudge Starfive to consider offering matching features at a matching price point to be taken more seriously.
Iām honest when I say VF2 at present is still very much a toy. I wish it were more than that.
It has the potential to be much more than that. I mean this in a good way. I am a backer after all. I would back another more powerful version of the VisionFive that would match and exceed high-end graphics workstations. I certainly canāt even recommend this as a replacement for an existing graphics workstation when I would like to, but I canāt because I would be laughed out of the room with the VF2ās existing capabilities compared to AMDās/Intelās latest x86_64 offerings and price points.
For the next version of Starfive VisionFive, make a survey and ask consumers what they really want. Let the consumers make the decisions as to the hardware specs.
# ./target/release/freshfetch
.. blah@blahcantsay
.PLTJ.
<><><><> OS: CentOS Linux 7 (Core) x86_64
KKSSV' 4KKK LJ KKKL.'VSSKK Host: HP Z4 G4 Workstation
KKV' 4KKKKK LJ KKKKAL 'VKK Kernel: Linux 3.10.0-1160.81.1.el7.x86_64
V' ' 'VKKKK LJ KKKKV' ' 'V Uptime: 4 days, 18 hours, 56 minutes
.4MA.' 'VKK LJ KKV' '.4Mb. Packages: 1697 (rpm)
. KKKKKA.' 'V LJ V' '.4KKKKK . Shell: bash
.4D KKKKKKKA.'' LJ ''.4KKKKKKK FA. Resolution: 1920x1080
<QDD ++++++++++++ ++++++++++++ GFD> CPU: Intel Core i9-10980XE @ 3.00GHz (36) @ 4.8GHz
'VD KKKKKKKK'.. LJ ..'KKKKKKKK FV Board: HP 81C5
' VKKKKK'. .4 LJ K. .'KKKKKV ' Memory: 2692MB / 131639MB
'VK'. .4KK LJ KKA. .'KV'
A. . .4KKKK LJ KKKKA. . .4
KKA. 'KKKKK LJ KKKKK' .4KK
KKSSA. VKKK LJ KKKV .4SSKK
<><><><>
'MKKM'
''
PCIE 3.0 CPU/Motherboard I just got last week. it has lots of cores, lots of RAM, but honestly the pcie 3.0 was a savings measure and I have no decision making power to buy the hardware. Both AMD/Intel offer PCIE 5.0 CPUās and motherboards along with Supermicro. If it were up to me, I would go pcie5.0 with as many lanes in the cpu/gpu/storage as possible. Thatās what Starfive should be aiming for.
Why are we still talking PCIE 2 on a new RISC-V CPU and only offering one pcie lane to get to the storage and graphics? Starfive please offer something much better on the next SBC.
I heard that JH8100 might have pcie3.0x8, if thatās true, it would be interesting.(Though there might be some PHY sharing between other peripherals)
Hi Broļ¼Can you share the stepsļ¼
I rebuild the kernel source code,but the display-monitor is not lit up.Iām sure the radeon module is M and firmwares are also loaded in menuconfig.
Successfully used a GT 710 with nouveau driver on Debian Trixie, I needed to blacklist snd_hda_intel module otherwise it would cause kernel task hangs during startup and freeze the system.
$ uname -a
Linux visionfive-debian 6.12.48+deb13-riscv64 #1 SMP Debian 6.12.48-1 (2025-09-20) riscv64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 13 (trixie)
Release: 13
Codename: trixie
$ lsmod
Module Size Used by
snd_usb_audio 2101248 1
snd_usbmidi_lib 212992 1 snd_usb_audio
snd_hwdep 69632 1 snd_usb_audio
snd_ctl_led 98304 0
snd_rawmidi 339968 1 snd_usbmidi_lib
mc 425984 1 snd_usb_audio
hid_jabra 20480 0
nls_ascii 16384 1
nls_cp437 20480 1
vfat 135168 1
fat 602112 1 vfat
snd_seq_dummy 16384 0
snd_hrtimer 32768 1
snd_seq 659456 7 snd_seq_dummy
snd_seq_device 32768 2 snd_seq,snd_rawmidi
cfg80211 9011200 0
rfkill 188416 3 cfg80211
8021q 253952 0
garp 69632 1 8021q
stp 24576 1 garp
mrp 106496 1 8021q
llc 49152 2 stp,garp
evdev 151552 8
joydev 131072 0
snd_soc_simple_card 61440 1
jh7110_pwmdac 53248 2
snd_soc_simple_card_utils 106496 1 snd_soc_simple_card
snd_soc_spdif_tx 16384 1
cdns3 942080 0
snd_soc_core 1703936 4 snd_soc_spdif_tx,snd_soc_simple_card_utils,snd_soc_simple_card,jh7110_pwmdac
udc_core 299008 1 cdns3
snd_compress 110592 1 snd_soc_core
cdns_usb_common 135168 1 cdns3
snd_pcm_dmaengine 40960 1 snd_soc_core
roles 40960 1 cdns_usb_common
snd_pcm 978944 5 snd_usb_audio,snd_compress,snd_soc_simple_card_utils,snd_soc_core,snd_pcm_dmaengine
ofpart 36864 0
spi_nor 626688 0
snd_timer 356352 3 snd_seq,snd_hrtimer,snd_pcm
cdns3_starfive 28672 0
snd 749568 17 snd_ctl_led,snd_seq,snd_seq_device,snd_hwdep,snd_usb_audio,snd_usbmidi_lib,snd_timer,snd_compress,snd_soc_core,snd_pcm,snd_rawmidi
mtd 479232 5 spi_nor,ofpart
jh7110_trng 61440 0
sfctemp 36864 0
soundcore 57344 2 snd_ctl_led,snd
cpufreq_dt 45056 0
binfmt_misc 122880 1
nvme_fabrics 143360 0
nvme_keyring 36864 1 nvme_fabrics
nvme_core 1261568 1 nvme_fabrics
nvme_auth 73728 1 nvme_core
configfs 462848 1
nfnetlink 118784 1
ip_tables 131072 0
x_tables 237568 1 ip_tables
autofs4 438272 2
ext4 7385088 1
crc16 12288 1 ext4
mbcache 81920 1 ext4
jbd2 1351680 1 ext4
crc32c_generic 20480 2
nouveau 17698816 5
hid_generic 16384 0
usbhid 495616 0
hid 909312 3 usbhid,hid_generic,hid_jabra
drm_gpuvm 274432 1 nouveau
drm_exec 40960 2 drm_gpuvm,nouveau
gpu_sched 389120 1 nouveau
i2c_algo_bit 49152 1 nouveau
drm_display_helper 950272 1 nouveau
xhci_pci 98304 0
drm_ttm_helper 49152 2 nouveau
xhci_hcd 2080768 1 xhci_pci
ttm 614400 2 drm_ttm_helper,nouveau
motorcomm 204800 1
drm_kms_helper 1011712 3 drm_display_helper,drm_ttm_helper,nouveau
dwmac_starfive 20480 0
stmmac_platform 90112 1 dwmac_starfive
usbcore 2232320 6 xhci_hcd,snd_usb_audio,usbhid,snd_usbmidi_lib,cdns_usb_common,xhci_pci
stmmac 2613248 4 dwmac_starfive,stmmac_platform
axp20x_regulator 94208 6
drm 3620864 11 gpu_sched,drm_kms_helper,drm_exec,drm_gpuvm,drm_display_helper,drm_ttm_helper,ttm,nouveau
mmc_block 319488 2
axp20x_i2c 16384 0
axp20x 61440 1 axp20x_i2c
usb_common 49152 6 xhci_hcd,cdns3_starfive,cdns_usb_common,usbcore,cdns3,udc_core
pcs_xpcs 188416 1 stmmac
mfd_core 40960 1 axp20x
dw_mmc_starfive 32768 0
regmap_i2c 36864 1 axp20x_i2c
dw_mmc_pltfm 20480 1 dw_mmc_starfive
mdio_devres 20480 1 pcs_xpcs
of_mdio 45056 3 mdio_devres,stmmac_platform,stmmac
dw_mmc 397312 1 dw_mmc_pltfm
fixed_phy 40960 1 of_mdio
phylink 348160 2 stmmac,pcs_xpcs
mmc_core 1183744 3 dw_mmc,mmc_block,dw_mmc_starfive
fwnode_mdio 28672 1 of_mdio
libphy 815104 9 mdio_devres,fwnode_mdio,of_mdio,stmmac,fixed_phy,motorcomm,phylink,pcs_xpcs
starfive_wdt 81920 0
phy_jh7110_dphy_rx 45056 0
spi_cadence_quadspi 241664 0
dw_axi_dmac_platform 282624 1
watchdog 229376 1 starfive_wdt
clk_starfive_jh7110_vout 24576 0
clk_starfive_jh7110_isp 24576 3
clk_starfive_jh7110_aon 20480 3
virt_dma 49152 1 dw_axi_dmac_platform
clk_starfive_jh7110_stg 20480 16
phy_jh7110_pcie 32768 2
phy_jh7110_usb 32768 1
i2c_designware_platform 32768 0
$ glxinfo | grep OpenGL
OpenGL vendor string: Mesa
OpenGL renderer string: NV106
OpenGL core profile version string: 4.3 (Core Profile) Mesa 25.0.7-2
OpenGL core profile shading language version string: 4.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.3 (Compatibility Profile) Mesa 25.0.7-2
OpenGL shading language version string: 4.30
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 25.0.7-2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
