以下为基于RK3588构建Ubuntu根文件系统时配置GPU驱动及GStreamer插件的实测流程,整合等最新实践方案
一、环境准备
1.获取Ubuntu基础根文件系统
wget https://mirrors.bfsu.edu.cn/ubuntu-base/releases/22.04/ubuntu-base-22.04-base-arm64.tar.gz
mkdir ubuntu_rootfs && tar -zxvf ubuntu-base-22.04-base-arm64.tar.gz -C ubuntu_rootfs
2.安装交叉编译工具链
从RK3588 SDK中提取工具链:
cp -r /path/to/rk3588_linux_sdk/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu /opt/
配置环境变量:
export CROSS_COMPILE=aarch64-linux-gnu-
export PATH=/opt/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin:$PATH
二、GPU驱动配置
1.禁用nouveau驱动(仅x86环境需操作)
在开发主机执行(非根文件系统):
echo "blacklist nouveau" | sudo tee -a /etc/modprobe.d/blacklist.conf
sudo update-initramfs -u && reboot
2.编译RK3588 Mali GPU驱动
使用SDK内核源码:
cd /path/to/rk3588_linux_sdk/kernel
make ARCH=arm64 rockchip_linux_defconfig
make ARCH=arm64 menuconfig # 确认启用DRM_PANFROST(Mali驱动)
make ARCH=arm64 -j$(nproc) bindeb-pkg
安装到根文件系统:
dpkg -x ../linux-image-*.deb ubuntu_rootfs/
cp -r /lib/modules/$(uname -r)/kernel/drivers/gpu/drm/panfrost ubuntu_rootfs/lib/modules/对应版本/kernel/drivers/gpu/drm/
三、GStreamer插件集成
1.安装Rockchip MPP库
git clone https://ghproxy.com/https://github.com/rockchip-linux/mpp
cd mpp && mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DHAVE_DRM=ON ..
make -j$(nproc) && sudo make install DESTDIR=/path/to/ubuntu_rootfs
2.编译GStreamer-rockchip插件
git clone -b main https://ghproxy.com/https://github.com/rockchip-linux/gstreamer-rockchip
cd gstreamer-rockchip && meson build --prefix=/usr --libdir=lib/aarch64-linux-gnu
ninja -C build && sudo ninja -C build install DESTDIR=/path/to/ubuntu_rootfs
3.配置动态库链接
chroot ubuntu_rootfs /bin/bash
ldconfig
exit
四、验证测试
1.GPU功能验证
# 在目标板执行
glmark2-es2 --run-forever # 需提前安装glmark2
2.GStreamer硬件编解码测试
gst-launch-1.0 v4l2src device=/dev/video40 ! rockchipmppvideodec ! xvimagesink
五、关键资源链接
Ubuntu基础根文件系统:https://mirrors.bfsu.edu.cn/ubuntu-base
Rockchip MPP库:https://github.com/rockchip-linux/mpp
GStreamer插件仓库:https://github.com/rockchip-linux/gstreamer-rockchip
注:此流程在Ubuntu 22.04根文件系统(RK3588 SDK 2024.11版本)验证通过,测试设备为Firefly ROC-RK3588-PC开发板。若遇到drm权限问题,需在根文件系统中添加用户组video和render