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失败。

桌面:
# 检查
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
解决:

glmark2性能检测
apt install glmark2-x11
看上图即可
Chrome浏览器检测
apt install -y chromium
安装之后,播放视频,top命令查看CPU占用率,一般是30-40%左右的。
PS 总结
内核patch还是比较好配置,主要是文件系统的mesa配置,用mesa调用opengl,直接用debian编译好的就行。
本文来自博客园,作者:杨旭0324,转载请注明原文链接:https://www.cnblogs.com/allalonewithyou/p/19178978,个人邮箱:yaonie4444@foxmail.com

浙公网安备 33010602011771号