Following on from @cuihuir’s A7Z image (PowerVR + Vulkan + OpenCL + Wayland) and @robertoj’s interest in the Zero 3W above — ported the same bring-up to an Orange Pi Zero 3W on Armbian (not Debian) and wrote it up in full: https://github.com/davidhfrankelcodes/pvr-a733-armbian
Same SoC/GPU (A733, sun60iw2, PowerVR BXM-4-64), different distro/kernel base, so a few things diverged. Three things came out of it that I don’t think exist anywhere else yet, in case they’re useful to others on Cubie/Zero3W/4Pro too since the DTS issue below isn’t board-specific:
1. GCC 15 build fix for the pvrsrvkm DRM-PRIME patch from ayiejosh/a733-powervr-fex — it doesn’t build as published under GCC 15’s -Wstringop-overread (-Werror in kernel builds), which is what Ubuntu 26.04/Armbian resolute ships. Standalone patch, no functional change: patches/gcc15-stringop-overread-fix.patch
2. A published Vulkan feature-strip layer — zink needs geometryShader and VK_EXT_robustness2/nullDescriptor, which this closed driver doesn’t report. The original repo describes faking these (“the feature-strip layer”) but never shipped source for it; this is a from-scratch implementation, verified with a pixel-readback test (real GPU-rendered output, not just “it didn’t crash”): vk-feature-strip/vk_layer_pvr_strip.c
3. The GPU clock is capped at 600 MHz on every sun60iw2 board Armbian ships — checked the Zero 3W, 4 Pro, and Armbian’s own Cubie A7Z DTB, none of them set it. Root cause: the vendor driver (sunxi_platform.c in the img-bxm-dkms source) reads a plain clk_rate DT property and hardcodes 600 MHz if it’s missing — it’s not the standard OPP/devfreq framework. Each board’s DTS already ships a GPU OPP table with a vendor-supplied 1008 MHz step (with real voltage data), just never wired up. A small DT overlay fixes it — verified stable with clpeak, throughput scales ~1:1 with the clock ratio (35 → 59.88 GFLOPS float4): dts-overlay/sun60i-a733-gpu-clk-1008m.dts
Full log with every step, dead ends, and exact package versions: https://github.com/davidhfrankelcodes/pvr-a733-armbian/blob/main/ARMBIAN-REPLICATION.md
Known limitation, not attempted on purpose: a live GPU-composited desktop reproducibly deadlocks the kernel under this closed driver (same wall the original repo hit) — off-screen rendering is the ceiling regardless of distro, as far as I can tell. Maybe I need to read Armbian posts more broadly to find out.
Happy to answer questions or compare notes if anyone’s hitting the same DTS gap on a different sun60iw2 board. I did most of this with LLM (claude).