RK3588关于panthor驱动的移植

RK3588关于panthor驱动的移植

说明

除了gnome之外,用的GPU驱动都是arm官方的闭源驱动libmali,只支持openGL ES和openCL。
由于wayland方式需要openGL支持,而openGL ES仅仅是openGL的子集,所以官方驱动其实并不支持wayland方式。
也就是说,使用官方驱动的镜像都只能使用xorg的显示服务器。

主要是 Valhall(Mali-G57, Mali-G610 ...)支持

mali GPU 系列:Mali Midgard(T7xx/T8xx)、Bifrost(Gxx)、Valhall(G6x/G7x)。

到6.10就是合入主线内核,直接支持了。
“Arm Mali-G310、Mali-G510、Mali-G610 和 Mali-G710 GPU 的 Panthor 开源驱动程序将成为 Linux 6.10 的一部分 ”一致性测试在 Linux 6.10.0-rc1 下的 Rock5b 板上运行。
开源官方链接:[https://www.cnx-software.com/2024/07/18/panthor-open-source-driver-achieves-opengl-es-3-1-conformance-with-arm-mali-g610-gpu-rk3588-soc/]

Panthor 开源方案与 Mesa 图形库的技术解析
[https://blog.csdn.net/froxy/article/details/148599546]

panthor的开源官方仓库:
[https://www.collabora.com/news-and-blog/news-and-events/release-the-panthor.html]

mesa3文档:
[https://docs.mesa3d.org/drivers/panfrost.html]

橘子派的panthor支持:
[https://github.com/WillzenZou/linux-orangepi/releases/tag/rk3588-panthor-v0.2]

https://docs.radxa.com/rock5/rock5a/radxa-os/mali-gpu?Driver=Panfrost%2FPanthor

https://www.cnblogs.com/zyly/p/17459196.html#_label0_1

https://www.khronos.org/conformance/adopters/conformant-products#submission_939

环境

我是debian12的文件系统

官方的驱动库

存放rk3588开源panthor驱动的镜像仓库:(并不好用)
[https://gitee.com/yuunnn-w/rk3588-panthor-v0.2#https://gitee.com/link?target=https%3A%2F%2Fgithub.com%2FWillzenZou%2Flinux-orangepi%2Freleases%2Ftag%2Frk3588-panthor-v0.2]

尝试自己移植

# 设置代理

export http_proxy=http://192.168.1.244:7890
export https_proxy=http://192.168.1.244:7890

git clone https://gitlab.freedesktop.org/panfrost/linux.git
git checkout panthor-next+rk3588
cp -rf drivers/gpu/drm/panthor ../../RK3588/xxx-RK3588-MB-kernel-6.1/kernel/drivers/gpu/drm/

make rockchip_linux_defconfig ARCH=arm64

查看两个分支的交点:
panthor-v3+rk3588
panthor-v5+rk3588
git merge-base panthor-v5+rk3588 panthor-v3+rk3588

就知道从哪里开始改的了。

5.10版本mesa/panfrost支持
[https://github.com/ChisBread/rk3588-gaming-step-by-step/blob/main/gpu-envs.md]

自己移植还是没有成功

网上找到一个分享的移植的patch

地址:
https://github.com/xuesong10210/rk3588-panthor-6.1/tree/master

打上之后,问题:

root@linaro-alip:~# dmesg |grep panthor
[    3.467526] panthor fb000000.gpu-panthor: [drm] clock rate = 198000000
[    3.468398] panthor fb000000.gpu-panthor: [drm] mali-g610 id 0xa867 major 0x0 minor 0x0 status 0x5
[    3.468409] panthor fb000000.gpu-panthor: [drm] Features: L2:0x7120306 Tiler:0x809 Mem:0x301 MMU:0x2830 AS:0xff
[    3.468416] panthor fb000000.gpu-panthor: [drm] shader_present=0x50005 l2_present=0x1 tiler_present=0x1
[    3.469544] panthor fb000000.gpu-panthor: [drm] Firmware protected mode entry not be supported, ignoring
[    3.469605] panthor fb000000.gpu-panthor: [drm] Firmware git sha: 814b47b551159067b67a37c4e9adda458ad9d852
[    3.469719] panthor fb000000.gpu-panthor: [drm] CSF FW using interface v1.1.0, Features 0x0 Instrumentation features 0x71
[    3.469953] [drm] Initialized panthor 1.3.0 20230801 for fb000000.gpu-panthor on minor 1

解决:

# 内核配置 
CONFIG_CPU_FREQ=y
CONFIG_ENERGY_MODEL=y
CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y  # EAS 相关

kernel/power/energy_model.c 是 Linux 内核中与 能量模型(Energy Model, EM) 相关的核心实现文件,主要用于为系统中的设备(尤其是 CPU)提供能耗行为的抽象模型。

检查GPU驱动是否OK
# 驱动:
root@linaro-alip:~# sudo cat /sys/kernel/debug/dri/*/name
rockchip dev=display-subsystem unique=display-subsystem
rockchip dev=display-subsystem unique=display-subsystem
panthor dev=fb000000.gpu-panthor unique=fb000000.gpu-panthor
rknpu dev=fdab0000.npu unique=fdab0000.npu
panthor dev=fb000000.gpu-panthor unique=fb000000.gpu-panthor
rknpu dev=fdab0000.npu unique=fdab0000.npu

正常日志:

root@linaro-alip:~# dmesg | grep panthor
[    2.017728] panthor fb000000.gpu-panthor: [drm] clock rate = 198000000
[    2.019247] panthor fb000000.gpu-panthor: EM: OPP:400000 is inefficient
[    2.019260] panthor fb000000.gpu-panthor: EM: OPP:300000 is inefficient
[    2.019439] panthor fb000000.gpu-panthor: EM: created perf domain
[    2.020015] panthor fb000000.gpu-panthor: [drm] mali-g610 id 0xa867 major 0x0 minor 0x0 status 0x5
[    2.020036] panthor fb000000.gpu-panthor: [drm] Features: L2:0x7120306 Tiler:0x809 Mem:0x301 MMU:0x2830 AS:0xff
[    2.020053] panthor fb000000.gpu-panthor: [drm] shader_present=0x50005 l2_present=0x1 tiler_present=0x1
[    2.022054] panthor fb000000.gpu-panthor: [drm] Firmware protected mode entry not be supported, ignoring
[    2.022180] panthor fb000000.gpu-panthor: [drm] Firmware git sha: 814b47b551159067b67a37c4e9adda458ad9d852
[    2.022401] panthor fb000000.gpu-panthor: [drm] CSF FW using interface v1.1.0, Features 0x0 Instrumentation features 0x71
[    2.022787] [drm] Initialized panthor 1.3.0 20230801 for fb000000.gpu-panthor on minor 1

mesa库

接下来就是文件系统的opengl接口配置了。

export http_proxy=http://192.168.1.244:7890
export https_proxy=http://192.168.1.244:7890

#配置apt源
root@linaro-alip:~# cat /etc/apt/sources.list
deb http://mirrors.ustc.edu.cn/debian bookworm main contrib
deb-src http://mirrors.ustc.edu.cn/debian bookworm main contrib
deb http://mirrors.ustc.edu.cn/debian-security bookworm-security main contrib
deb-src http://mirrors.ustc.edu.cn/debian-security bookworm-security main contrib
deb http://mirrors.ustc.edu.cn/debian bookworm-updates main contrib
deb-src http://mirrors.ustc.edu.cn/debian bookworm-updates main contrib
deb http://mirrors.ustc.edu.cn/debian/ bookworm-backports main contrib
deb-src http://mirrors.ustc.edu.cn/debian/ bookworm-backports main contrib
deb http://ftp.cn.debian.org/debian trixie main

# 之后卸载mali官方的deb包

apt remove libmali-*
apt install aptitude

# 就是 https://packages.debian.org/source/trixie/mesa 下面的包

apt install libd3dadapter9-mesa libd3dadapter9-mesa-dev libegl-mesa0 libegl1-mesa-dev libgbm-dev libgbm1 libgl1-mesa-dri libglx-mesa0 libosmesa6 libosmesa6-dev mesa-common-dev mesa-drm-shim mesa-libgallium mesa-opencl-icd mesa-teflon-delegate mesa-va-drivers mesa-vdpau-drivers mesa-vulkan-drivers -y

检查

检查当前 GL 渲染器

glxinfo | grep "OpenGL renderer"

问题:
驱动加载成功但是运行glmark2失败。
alt text

桌面:

# 检查
ps aux | grep Xorg
# 重新安装高版本的
sudo apt list -a xserver-common xserver-xorg-core xserver-xorg-legacy
sudo apt install xserver-common xserver-xorg-core xserver-xorg-legacy
# 桌面的鼠标
apt install xserver-xorg-input-all  xserver-xorg-input-evdev xserver-xorg-input-libinput

解决:

alt text

glmark2性能检测

apt install glmark2-x11

看上图即可

Chrome浏览器检测

apt install -y chromium

安装之后,播放视频,top命令查看CPU占用率,一般是30-40%左右的。

PS 总结

内核patch还是比较好配置,主要是文件系统的mesa配置,用mesa调用opengl,直接用debian编译好的就行。

posted @ 2025-10-31 10:03  杨旭0324  阅读(293)  评论(0)    收藏  举报