May be the two firmware files are not included in the initrd image?
They are included:
$ lsinitcpio /boot/initrd.img-5.15.2-cwt13.orig | grep rgx
usr/lib/firmware/rgx.fw.36.50.54.182
usr/lib/firmware/rgx.sh.36.50.54.182
$ lsinitcpio /boot/initrd.img-5.15.2-cwt13.orig | grep rgx
usr/lib/firmware/rgx.fw.36.50.54.182
usr/lib/firmware/rgx.sh.36.50.54.182
lsinitcpio
to files and compare …
$ diff /tmp/orig.txt /tmp/new.txt
0a1
> VERSION
12,13d12
< etc/modprobe.d/rtl88x2bu.conf
< etc/modprobe.d/rtw8822bu.conf
202a202
> usr/lib/libc.so.6
207d206
< usr/lib/libcrypto.so.3
210c209
< usr/lib/libc.so.6
---
> usr/lib/libcrypto.so.3
223a223
> usr/lib/libm.so.6
226d225
< usr/lib/libm.so.6
271c270
< usr/lib/systemd/libsystemd-shared-253.4-1.so
---
> usr/lib/systemd/libsystemd-shared-253.5-2.so
288d286
< VERSION
However, we’re getting closer. One firmware file in the original initramfs is different from the firmware file on the image (same name).
From lsinitcpio -v
and diff the two:
< -rw-r--r-- 0 root root 122880 Jan 1 1970 usr/lib/firmware/rgx.fw.36.50.54.182
---
> -rw-r--r-- 0 root root 126976 Jan 1 1970 usr/lib/firmware/rgx.fw.36.50.54.182
I think we have a winner. Next, copy the firmware file from the original initramfs and build a new one.
Done.
- cwt13 shipped different
rgx.fw.36.50.54.182
files in the initramfs and in/usr/lib/firmware
(thank you upstream for providing two versions with the same name). - The
rgx.fw.36.50.54.182
of122880
bytes allows GPU initialisation without error - The not-working firmware file was on the file system, so generating a new initramfs would break GPU initialisation.
And finally, cwt13 3.0.4-2 (packaged kernel) with rootfs on f2fs
, properly initialised GPU.
I have created new kernel packages and the GPU driver package based on the latest release VF2_v3.1.5. If you are already running the cwt13 image, you can simply download and install the following packages by running the commands below:
$ mkdir cwt14 && cd cwt14
$ wget https://github.com/cwt/pkgbuild-linux-cwt-starfive-visionfive2/releases/download/cwt14-3.1.5-1/linux-cwt-515-starfive-visionfive2-14.3.1.5-1-riscv64.pkg.tar.zst
$ wget https://github.com/cwt/pkgbuild-linux-cwt-starfive-visionfive2/releases/download/cwt14-3.1.5-1/linux-cwt-515-starfive-visionfive2-headers-14.3.1.5-1-riscv64.pkg.tar.zst
$ wget https://github.com/cwt/pkgbuild-linux-cwt-starfive-visionfive2/releases/download/cwt14-3.1.5-1/linux-cwt-515-starfive-visionfive2-soft_3rdpart-14.3.1.5-1-riscv64.pkg.tar.zst
$ wget https://github.com/cwt/aur-visionfive2-img-gpu/releases/download/cwt14-1.19.6345021-2/visionfive2-img-gpu-1.19.6345021-2-riscv64.pkg.tar.zst
Note that if you use the cwt13 image without the packaged kernel that came after the cwt13 image release, you will need to overwrite any existing files using the following command:
$ sudo pacman -U --overwrite "*" *.zst
Also, ensure that your /boot/extlinux/extlinux.conf
file is correctly set up as follows:
default Arch
menu title U-Boot menu
prompt 0
timeout 50
label Arch
menu label Arch Linux
linux /vmlinuz
initrd /initramfs-linux.img
fdtdir /dtbs/
append root=/dev/mmcblk1p4 rw console=tty1 console=ttyS0,115200 earlycon rootwait stmmaceth=chain_mode:1 selinux=0 rootflags=defaults,discard=async,compress=lzo,user_subvol_rm_allowed,subvol=arch
Change /dev/mmcblk1p4
to /dev/nvme0n1p4
if you are already on NVMe SSD.
The new cwt14 image will be released later this week.
Excellent, no problems at all. Really nice to have packages rather than scraping files off an image.
Really didn’t expect this to work. cwt14, wayfire-git
. Wobbly windows, cube.
The build script for cwt14 is complete. The new image differs from my previous images as it is now based on the latest Arch RISC-V rootfs, and the btrfs subvolumes are created according to the Arch Wiki guidelines. The kernel, StarFive’s soft_3rdpart, and the GPU driver are built and installed as packages. The image can be downloaded directly from the GitHub release page at Releases · cwt/Arch-VF2-Image · GitHub.
Can you explain your setup? I think many people want to try.
I Just update the Mesa to version 21.2.5. Could you try it please? Release v21.2.5-1 · cwt/aur-mesa-pvr-vf2 · GitHub
Thanks for the update.
I installed it. No user perceptible difference to the prior version.
It didn’t fix the problem about the missing symbol, right?
The Arch’s official Mesa is version 23.x.x, this one is just version 21.x.x. @sajattack said it’s very hard to migrate pvr driver into the newer version, and from what I see in the 23 source code, there is a new driver name imagination-experimental, and also this: Imagination PowerVR Rogue GPU Vulkan Driver Merged Into Mesa 22.1 - Phoronix
May be we can use the new driver soon without patching.
It did not fix the missing symbol. I didn’t really expect it to, 21 → 23 is too big a jump. There seems to be a lot of work happening without much concrete detail.
For anyone who wanna try the Real-Time kernel, you can download from here: Release cwt14-rt 3.1.5-1 · cwt/pkgbuild-linux-cwt-starfive-visionfive2 · GitHub
OK, it’s running here. I don’t need an RT kernel; I have a full backup so let’s see what happens. Nothing out of the ordinary so far.
@cwt, the dtbs/starfive/jh7110-visionfive-v2.dtb
shipped in cwt14 differs in content from the same in cwt13 (it’s the only changed dtbs
file).
The jh7110-visionfive-v2.dtb
file from cwt14 limits RAM to 4GB on an 8GB system; the version from cwt13 does not have this limitation.
(note this is not dependent on the kernel version, both 5.15.2-cwt-3.1.5 and the rt kernel show this behaviour).
@stronnag $ free
said it has only 4G? or 8G but you can’t actually allocate the memory more than 4G? because on my VF2 both version 1.2a and 1.3b said I still have 8G or RAM.
Edit: I just tried allocate 2GB of RAM on 3 dd
at the same time, I can actually allocate 6GB of RAM successfully.