0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

技术笔记 | RK3588平台RGA驱动与API版本升级指南

眺望电子 2025-12-05 08:32 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言:

Rockchip RK35xx等平台开发中,RGA(2D 图形加速单元)对图像编解码、图形渲染等核心功能的效率与稳定至关重要。随着官方持续优化,适时更新RGA驱动与API版本,能带来更好的性能、更丰富的功能支持以及更稳定的运行表现。


本文将以 RK3588 为例,详细介绍如何从驱动到应用层全面升级RGA版本,并提供实测验证方法,干货满满,建议收藏备用~

一、开发环境准备

在开始更新操作前,需确保开发环境一致,避免因环境不兼容导致更新失败:

•系统版本:Ubuntu 20.04(主机端 + 板卡端)

•内核版本:5.10

•工具依赖:交叉编译器(如 gcc-arm-8.2-2018.08-x86_64-aarch64-linux-gnu)、cmake、git 等

升级目标:

获取最新版本的 RGA 驱动与 API 库,替换旧版本,完成编译与部署。

二、实操步骤

2.1获取最新驱动源码

RK35xx 系列的RGA驱动源码已开源在 GitHub,从 git下载 RGA 的最新驱动:

https://github.com/airockchip/librga

下载后,将驱动文件替换至 SDK 中的对应目录:

kernel/drivers/video/rockchip/rga3/

2.2内核配置检查

若尚未开启 RGA3 支持,请在内核配置中确认以下选项已启用:

CONFIG_VIDEO_ROCKCHIP_RGA=y# CONFIG_ROCKCHIP_RGA is not setCONFIG_ROCKCHIP_MULTI_RGA=yCONFIG_ROCKCHIP_RGA_ASYNC=y# CONFIG_ROCKCHIP_RGA_PROC_FS is not setCONFIG_ROCKCHIP_RGA_DEBUG_FS=yCONFIG_ROCKCHIP_RGA_DEBUGGER=y

2.3重新验证

执行内核编译命令,更新后可在板卡上执行以下命令确认版本,若输出显示为新下载的驱动版本号,则说明驱动更新成功。

cat/sys/kernel/debug/rkrga/driver_versionRGAmulticore Device Driver: v1.2.23

三、RGA API 库更新部署

API 库是开发者调用 RGA 功能的接口,需与驱动版本兼容,否则会出现调用失败。更新流程如下:

3.1获取最新 librga 源码

同样从 GitHub 下载最新版本:

https://github.com/airockchip/librga

3.2检查版本兼容性

在下载的 librga 源码根目录中,查看README.md文件,确认该版本 API 库支持的驱动版本范围,确认 API 库与当前内核驱动版本兼容。

ddd972c8-d171-11f0-8ce9-92fbcf53809c.png

3.3编译 librga.so 库

进入 librga 源码的toolchains目录,编辑toolchain_linux.cmake文件,修改工具链名称和路径(根据实际安装的交叉编译器调整):

SET(TOOLCHAIN_NAME"aarch64-linux-gnu")SET(TOOLCHAIN_HOME"/home/twdz/3588/gcc-arm-8.2-2018.08-x86_64-aarch64-linux-gnu")
# this is required#SET(CMAKE_SYSTEM_NAME Linux)
# specify the cross compilerSET(CMAKE_C_COMPILER${TOOLCHAIN_HOME}/bin/${TOOLCHAIN_NAME}-gcc)SET(CMAKE_CXX_COMPILER${TOOLCHAIN_HOME}/bin/${TOOLCHAIN_NAME}-g++)
# where is the target environmentSET(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN_HOME})
# search for programs in the build host directories (not necessary)SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)# for libraries and headers in the target directoriesSET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

3.4编译与部署

在 librga 源码根目录执行编译脚本:

./cmake-linux.sh

ddf43fd6-d171-11f0-8ce9-92fbcf53809c.png

编译完成后,在 build/build_linux/install 目录下获取生成的文件:

de124030-d171-11f0-8ce9-92fbcf53809c.png

将 lib/ 中的库文件复制到板卡 /usr/lib/aarch64-linux-gnu/

将 bin/rgaImDemo 复制到板卡 /bin/

3.5验证 API 版本

在板卡上运行,确认 API 版本已更新:

rgaImDemo--querystring

输出中可查看 RGA_api version 和功能支持列表,确认更新成功。

root@talowe :~# rgaImDemo --querystring Start selecting mode0im2dquerystring ..RGAdemo mode =0x0

RGAvendor : Rockchip Electronics Co.,Ltd.RGA_apiversion : v1.10.3_[1]RGAversion : RGA_2_Enhance RGA_3Maxinput :8192x8192Maxoutput :8128x8128Bytestride :16byteScalelimit :0.0625~16Inputsupport format : RGBA/ARGB_8888 RGB_888 RGB_565 ARGB_4444 ARGB_5551 YUV420_sp_8bit YUV420_sp_10bit YUV420_p_8bit YUV420_p_10bit YUV422_sp_8bit YUV422_sp_10bit YUV422_p_8bit YUV422_p_10bit YUYV422 YUV400outputsupport format : RGBA/ARGB_8888 RGB_888 RGB_565 ARGB_4444 ARGB_5551 RGBA_4444 RGBA_5551 YUV420_sp_8bit YUV420_sp_10bit YUV420_p_8bit YUV422_sp_8bit YUV422_sp_10bit YUV422_p_8bit YUYV420 YUYV422 YUV400 Y4RGAfeature : color_fill color_palette ROP quantize src1_r2y_cscdst_full_cscFBC_mode blend_in_YUV BT.2020expected performance : max4pixel/cycle

四、功能测试

通过rgaImDemo工具进行图像拷贝测试,验证 RGA 功能正常:

rgaImDemo -w6--copy

该命令会执行 6 次拷贝操作,并输出每次耗时,可用于验证驱动与库是否正常工作。若输出类似 “copying .... cost time XXX us” 的日志,且最终提示 “write ok”,则说明 RGA 功能可正常使用,更新流程全部完成。

root@talowe :~# rgaImDemo -w6 --copyStartselecting mode0im2dwhile ..6time.Startselecting mode80im2dcopy ..RGAdemo mode =0x81allocbuffer from"/dev/dma_heap/system-uncached-dma32". Could not open /data/in0w1280-h720-rgba8888.bincannot open file for src channel, memset to0x11.Thisis1time in the loopcopying.... cost time675us This is2time in the loopcopying.... cost time722us This is3time in the loopcopying.... cost time762us This is4time in the loopcopying.... cost time758us This is5time in the loopcopying.... cost time720us This is6time in the loopcopying.... cost time724usopen/data/out0w1280-h720-rgba8888.bin and write ok

五、总结

1.版本兼容:务必确认驱动与 API 版本匹配,避免接口不一致导致异常。

2.环境一致:编译工具链与目标系统架构需对应(如 aarch64),编译过程中若出现 “工具链未找到”“头文件缺失” 等报错,优先检查交叉编译器路径配置和依赖库安装;

3.备份原文件:建议在更新前备份原驱动、API 库和内核镜像,若更新失败可快速回滚到稳定版本。替换驱动文件时,需确保覆盖所有相关文件,避免部分旧文件残留导致功能异常;

4.实测验证:更新后务必进行实际图像处理测试,确保功能与性能符合预期。


通过以上步骤,相信你应该能顺利完成 RK3588 平台RGA驱动与API的版本升级。更新后不仅可获得官方的性能优化与bug修复,还能支持更多图像格式与处理特性。

Tips :温馨提示

本文所述操作基于特定内核与系统环境,实际执行时请根据自身 SDK 版本与硬件平台适当调整。如有疑问,欢迎在留言交流或与我们联系获得技术支持。

广州眺望电子科技有限公司专注于嵌入式处理器模组的研发与应用,提供从硬件设计到驱动开发,系统解决方案的全流程技术支持。欢迎关注我们的公众号,获取更多嵌入式项目开发实战经验!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 驱动
    +关注

    关注

    12

    文章

    2002

    浏览量

    88830
  • API
    API
    +关注

    关注

    2

    文章

    2516

    浏览量

    67193
  • RK3588
    +关注

    关注

    8

    文章

    606

    浏览量

    7759
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    瑞芯微RK3588开发板RK3588 EVB和RK3588S EVB解读

    瑞芯微RK3588开发板RK3588 EVB和RK3588S EVB解读 瑞芯微旗舰芯RK3588系列开发板受到广大开发者伙伴的关注和问询。针对相关的开发板功能、操作
    的头像 发表于 09-22 15:54 2.4w次阅读
    瑞芯微<b class='flag-5'>RK3588</b>开发板<b class='flag-5'>RK3588</b> EVB和<b class='flag-5'>RK3588</b>S EVB解读

    RK3588编解码盒子之RTL8211FS-CG光口调试

    本文是基于RK3588平台,SDK版本RK3588_ANDROID12.0 RTL8211FS-CG光口调试总结。
    的头像 发表于 06-10 09:00 5030次阅读
    <b class='flag-5'>RK3588</b>编解码盒子之RTL8211FS-CG光口调试

    RK3588-MIPI屏幕调试笔记:RK3588-MIPI-DSI之LCD上电初始化时序

    RK3588-MIPI屏幕调试笔记:RK3588-MIPI-DSI之LCD上电初始化时序
    的头像 发表于 06-10 10:32 8529次阅读

    RK3588-MIPI屏幕调试笔记:RK3588-MIPI-DSI之屏参配置

    RK3588-MIPI屏幕调试笔记:RK3588-MIPI-DSI之屏参配置
    的头像 发表于 06-10 10:36 5017次阅读
    <b class='flag-5'>RK3588</b>-MIPI屏幕调试<b class='flag-5'>笔记</b>:<b class='flag-5'>RK3588</b>-MIPI-DSI之屏参配置

    基于RK3588芯片方案开发ARM PC项目

    V-by-One、LVDS等屏幕接口,可以满足各种尺寸的一体机电脑需求。  瘦客户端机也是RK3588的一个应用方向,准确地讲,RK3588平台的ARMPC已经不算是严格意义上的瘦客户端机了,因为
    发表于 07-27 16:05

    求一种基于RK3588平台的高端游戏掌机产品解决方案

    。目前RK3588的SDK版本也较新,支持最新的安卓12、Debian11和Ubuntu20.04等系统,都是稳定的新版本,这对于软件开发者来说是十分重要的。  目前基于RK3588
    发表于 08-01 16:55

    RK3588 SDK编译与固件烧写步骤

    ; make ARCH=arm64 rk3588sevb1-lp4x-v10.img -j24  单独编译uboot  $ 。/make.sh rk3588  2、固件烧写  升级工具
    发表于 08-31 17:45

    RK3588 Android 12.0 SDK编译步骤分享

    rk3588sevb1-lp4x-v10.img -j24单独编译uboot$ ./make.sh rk35882、固件烧写升级工具版本:AndroidTool_Relea
    发表于 09-20 17:11

    基于RK3588平台的会议平板即将发布

    瑞芯微与宇视合作推出的会议平板即将发布,据官方测试,这款 RK3588 平板安兔兔跑分可达 55 万。 RK3588性能强大,RK3588平台针对平板瑞芯微有多款高端平板方案,
    的头像 发表于 10-09 16:13 3377次阅读
    基于<b class='flag-5'>RK3588</b><b class='flag-5'>平台</b>的会议平板即将发布

    RK3588-MIPI屏幕调试笔记:RK3588-MIPI-DSI

    RK3588-MIPI屏幕调试笔记:RK3588-MIPI-DSI
    的头像 发表于 06-10 10:31 8387次阅读
    <b class='flag-5'>RK3588</b>-MIPI屏幕调试<b class='flag-5'>笔记</b>:<b class='flag-5'>RK3588</b>-MIPI-DSI

    rk3588rk3588s的区别

    高性能、低功耗的处理器,是针对不同市场设计的不同版本。这篇文章将介绍这两种处理器的区别。 RK3588RK3588S的概述 - RK3588 RK
    的头像 发表于 08-15 16:44 2.1w次阅读

    RK35883588s的区别

    RK35883588s的区别 Rockchip RK3588RK3588s是两种功能强大且广受欢迎的片上系统(SoC)解决方案,用于一系列设备,包括智能电视、高性能平板电脑、
    的头像 发表于 08-15 17:03 2.9w次阅读

    RK3588系列有多少型号?

    和多种应用的功能而受到广泛的认可。但是,对于普通用户而言,RK3588系列又分别有多少型号呢?下面就详细介绍RK3588系列的各种型号及其功能。 RK3588系列主要有以下几种型号: 1. R
    的头像 发表于 08-15 17:04 7443次阅读

    Banana Pi BPI-W3 RK3588平台驱动调试篇 [ PCIE篇二 ] - PCIE的开发指南

    Banana Pi BPI-W3 RK3588平台驱动调试篇 [ PCIE篇 ] - PCIE的开发指南(二)
    的头像 发表于 11-02 09:24 2292次阅读
    Banana Pi BPI-W3 <b class='flag-5'>RK3588</b><b class='flag-5'>平台</b><b class='flag-5'>驱动</b>调试篇 [ PCIE篇二 ] - PCIE的开发<b class='flag-5'>指南</b>

    北京迅为RK3588平台成功适配“望获”国产OS

    北京迅为RK3588平台成功适配“望获”国产OS
    的头像 发表于 04-09 15:35 1253次阅读
    北京迅为<b class='flag-5'>RK3588</b><b class='flag-5'>平台</b>成功适配“望获”国产OS