最近在折腾RK3588开发板时,发现原厂系统自带的GPU驱动性能实在不够看。作为一款搭载Mali-G610 MP4 GPU的旗舰级芯片,RK3588的图形处理能力被严重浪费了。经过一周的反复测试,我终于摸清了在Ubuntu系统上部署Mali GPU驱动的完整流程,实测3D性能提升超过300%。下面就把这套"保姆级"安装方案分享给大家。
先说说为什么需要手动安装GPU驱动。RK3588出厂时通常搭载的是通用显示驱动,这种驱动虽然能保证基本显示功能,但无法充分发挥Mali GPU的硬件加速能力。就好比你给跑车加92号汽油,发动机虽然能转,但永远跑不出应有的速度。而我们要安装的Mali专用驱动,就是为这颗GPU量身定制的"98号汽油"。
国内用户第一步建议更换软件源,否则后续安装过程可能会因为网络问题卡住。打开终端执行:
bash复制sudo nano /etc/apt/sources.list
把文件内容替换为阿里云镜像源(以Ubuntu 22.04 Jammy为例):
bash复制deb http://mirrors.aliyun.com/ubuntu-ports/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu-ports/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu-ports/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu-ports/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu-ports/ jammy-backports main restricted universe multiverse
按Ctrl+O保存,Ctrl+X退出后,立即执行系统更新:
bash复制sudo apt update && sudo apt dist-upgrade -y
这里特别注意要用dist-upgrade而不是普通的upgrade,因为前者会处理依赖关系变更,确保系统组件完全兼容。我刚开始用错命令,导致后续驱动安装时出现各种奇怪的依赖错误,白白浪费了半天时间排查。
接下来添加两个关键PPA仓库,这是获取Mali驱动的主要来源:
bash复制sudo add-apt-repository ppa:liujianfeng1994/panfork-mesa
sudo add-apt-repository ppa:liujianfeng1994/rockchip-multimedia
如果遇到"add-apt-repository command not found"错误,需要先安装这个工具:
bash复制sudo apt install software-properties-common
添加完仓库后,再次更新软件包列表:
bash复制sudo apt update
现在可以安装GPU驱动和多媒体支持包了:
bash复制sudo apt install mali-g610-firmware rockchip-multimedia-config
这个过程中可能会提示缺少公钥,错误信息类似:
code复制W: GPG error: https://ppa.launchpadcontent.net/liujianfeng1994/panfork-mesa/ubuntu jammy InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AB17C6545B8A0D72
解决方法是用最后8位数字导入密钥:
bash复制sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com AB17C654
安装完成后建议重启系统:
bash复制sudo reboot
重启后可以通过以下命令检查驱动是否生效:
bash复制glxinfo | grep "OpenGL renderer"
如果显示"Mali-G610"就说明专用驱动已经启用。如果还是显示"llvmpipe"等软件渲染器,可能是桌面环境没有正确加载驱动。这时候可以尝试重装桌面:
bash复制sudo apt install --reinstall ubuntu-desktop
我在测试过程中发现,某些桌面环境(特别是轻量级桌面)可能需要额外配置才能正确使用GPU加速。如果遇到这种情况,可以尝试切换为GNOME或KDE等主流桌面环境。
如果重启后驱动没有生效,首先检查固件是否安装成功:
bash复制ls /lib/firmware/mali
应该能看到多个.bin固件文件。如果没有,可能是mali-g610-firmware包安装失败,可以尝试手动下载固件:
bash复制wget https://github.com/JeffyCN/mirrors/raw/libmali/libmali/lib/aarch64-linux-gnu/libmali-valhall-g610-g6p0-wayland-gbm.so
sudo cp libmali-valhall-g610-g6p0-wayland-gbm.so /usr/lib/aarch64-linux-gnu/
视频播放或编码出现问题时,检查Rockchip多媒体组件:
bash复制v4l2-ctl --list-devices
正常应该显示rk3588相关的视频编解码设备。如果缺少相关设备,可能需要重新安装:
bash复制sudo apt install --reinstall rockchip-multimedia-config
安装完驱动后,可以通过以下设置进一步提升GPU性能:
bash复制echo performance | sudo tee /sys/class/devfreq/*/governor
bash复制sudo sysctl -w vm.min_free_kbytes=81920
bash复制gsettings set org.gnome.mutter experimental-features "['kms-modifiers']"
为了验证驱动效果,我使用glmark2进行了基准测试:
| 测试项目 | 通用驱动 | Mali专用驱动 | 提升幅度 |
|---|---|---|---|
| 场景:build | 128 fps | 412 fps | 322% |
| 场景:terrain | 56 fps | 187 fps | 334% |
| 场景:shadow | 43 fps | 152 fps | 353% |
从数据可以看出,专用驱动带来了3倍以上的性能提升。在实际使用中,WebGL页面渲染速度明显加快,视频播放时的CPU占用率也从70%下降到15%左右。
新版Ubuntu默认使用Wayland显示协议,要启用GPU加速需要额外配置:
bash复制sudo nano /etc/gbm/gbm.conf
添加以下内容:
code复制[device]
driver=rockchip
然后编辑Wayland配置:
bash复制sudo nano /etc/environment
添加:
code复制GBM_BACKENDS_PATH=/usr/lib/aarch64-linux-gnu/gbm
要启用Vulkan支持,需要安装额外组件:
bash复制sudo apt install vulkan-tools mesa-vulkan-drivers
验证Vulkan是否正常工作:
bash复制vulkaninfo | grep GPU
应该能看到Mali-G610的相关信息。
RK3588支持多屏异显,配置方法如下:
bash复制sudo cat /sys/kernel/debug/dri/0/state | grep Connector
bash复制xrandr --output HDMI-1 --auto --right-of eDP-1
如果需要4K输出,记得在U-Boot中设置正确的EDID数据。