Playing with the Ubuntu image for the VisionFive 2

This was written on the week of November 23rd.

A few weeks ago, StarFive released a desktop image of Ubuntu 24.04 for the VisionFive 2 and VisionFive 2 Lite. This goes over some of my thoughts and discoveries.

Most of this Leaflet page was written on the VisionFive 2.

Set up

I use Raspberry Pi Imager to write images these days mainly because etcher was broken on Linux the last time I tried that.

This image uses the same boot system as their previous Debian images, some extlinux thing that displays a boot logo on startup, which I've always liked. Later on I would discover that the dtb overlay thing they mentioned in the release notes is actually quite similar to how what Raspberry Pi does.

After installing updates and restarting, the GPU acceleration will break because it doesn't copy the GPU firmware to the initramfs for some reason. You can fix this, preferably before rebooting, by running:

sudo dpkg-reconfigure linux-image-6.12.5-starfive

Getting passkeys working

If you've followed me, you might know that I've managed to get hardware security keys working on this image. Userspace is already ready to handle security keys, it's just the kernel that's missing support. Therefore, to get security keys working, we have to compile the Linux kernel. Don't fret, it's more time consuming than difficult.

Due to the length of this section, I decided to split it into a separate page which you can read below:

How to compile a new Linux kernel for the VisionFive 2 - Kuruma

To enable support for security keys or make other changes

Real world performance

I have not really used GNOME prior to this so I don't have a baseline on its speed (or lack thereof), but it takes a notable amount of time (a few seconds) to open Files or the video player. Window composition is decent at least.

Firefox is decent, the menus are sluggish but actual browsing and scrolling seems to be fine. After installing uBlock Origin, it pins a core at 100% for a minute or two on startup as it loads the filters (during which you can't open web pages), and continues to do so for a few minutes after for some reason. It's to the point where I've started turning it off when I don't need to block ads for my session. Also, WebAssembly does not work at all for some reason, though fortunately nothing major requires it. Yet.

Bluesky is really slow. It really makes you appreciate having a native client. Cerulean comes to mind: my Windows Me machine with a 667 MHz Pentium III ran it a lot better than the Bluesky web client in Firefox on the VisionFive 2 with its SoC running at 1.5 GHz. Though Cerulean is jank as hell and missing a lot of features, I might take it over the web client as it's basically unusably slow.

Leaflet isn't a great showing either. It's not as bad as Bluesky, though typing isn't in real time.

Tangled and PDSls are nice and snappy compared to the previous ATProto entrants. I more-or-less expected Tangled to perform well since it predominately uses server-side rendering, but PDSls performs unexpectedly well for a client-side webapp. I previously rolled my eyes at atcute's claims of being more lightweight compared to Bluesky's official SDK, but now I can validate that claim.

Navyfragen also ran decently, although typing was again slow. The accompanying Anubis instance was hilariously slow, with the progress bar inching along at only around 3-5 kH/s.

I also tried Google Drive, and it was pretty slow. Security key login did work though, so I suppose there's that.

Originally it didn't want to play AAC audio, fortunately installing gstreamer1.0-libav was able to get it working. VLC seems to exhibit the same problem where audio is slightly too slow or fast with Bluetooth headphones like it does on Android.

Lastly, YouTube sort of worked. The CPU is too slow to play 1080p video without buffering although video decoding is hardware accelerated. However, watching in full screen causes a rather disturbing stutter; I tried watching a video from Chyrosran22 and it made his hands stutter like he had Parkinson's or something.

VisionFive 2 Lite

A day after starting to write this, my VisionFive 2 Lites arrived, so I decided to take one out and hook it up in place of the original VisionFive 2 I was using. It worked without any fuss, albeit a bit slower due to the slower specifications.

Closing thoughts?

The main complaints I have about the VisionFive 2 have been and continue to be GPU related. The GPU driver is buggy, they still have not fixed the washed out colors, and support has still not been upstreamed to the Linux kernel and Mesa, which necessitates the use of old, vendor versions of both that don't get security updates.