RK3568截图工具,方便UI开发问题记录和远程调试

编号:EB-00003

环境:创龙RK3568开发板 (嵌入式linux 4.19.232) + HDMI&USB电容触摸屏;Host:win10专业版

现象:同事们用RK3568做QT UI开发,需要使用截图工具,一方面记录问题,一方面远程调试也需要。之前同事用过嵌入式截图工具gscap,觉得挺好用。自己移植过来后,发现在Rk3568平台上不能用。       

解决:

        移植两个开源的小工具(很小众,但是尝试了很多其他工具,只有这两个好用,在此也感谢作者的开源精神)。一个是drmcap,用于抓包得到RGB RAW格式的截图源文件;另一个YUVplayer,用于在win10上查看raw格式的文件。
    drmcap移植和使用
    1. github下载源码drmcap ,比较简单只有一个.c文件和Makefile文件
    2. 修改Makefile指定编译工具链和ROOTFS、编译选项指定静态链接-static(以免工具在开发板上运行时动态库加载找不到)
    3. 修改源文件drmcap.c:删除不必要的宏定义(直接编译会报错重复定义的宏)、修改截图输出文件的命名方式(这个视需要修改,默认是每次截图文件会覆盖之前)
    4. 编译得到可执行文件drmcap。
    5. 将编译好的drmcap上传到3568开发板,直接运行"./drmcap"。默认会捕获所有planes的数据并在当前目录下得到截图raw文件。当然工具支持很多参数(-h查看),可以指定捕获特定plane。例如, "./drmcap -p 57"
    6. 注意,运行过程的打印信息也很重要,显示了截图文件的分辨率和色彩空间等信息,在后面查看该文件时需要。如下图所示。我们使用文件,默认分辨率1024*768,RGB32。
    
    YUVplayer移植和使用
    1. github下载源码YUVplayer
    2. 其实也不需要移植修改什么,软件本身就能用。只不过打开一个截图文件,每次需要设置一下分辨率大小和色彩空间。每次这样操作比较麻烦,所以就改了一点:默认的分辨率和色彩空间与我们触摸屏截图一致,然后增加了默认打开raw截图文件就自动转成png图片格式并保存(改动很小,但是同事们用起来会方便很多)。
    3. 运行yuvplayer.exe,将raw格式截图文件拖进来就好了(如果是没有移植直接使用,拖进来后需要根据raw截图文件的信息,设置一下分辨率和色彩空间),如下所示。


分析:

        网上大量的嵌入式截图工具移植资料都是用的gsnap,但是它是只基于framebuffer的。对于基于DRM架构的显示驱动,是没法用的。基于DRM的嵌入式linux截图工具,网上资料居然少之又少,所以特地写出来跟大家分享一下。因为不是通用工具,所以就不发源码了,如果大家有需要请评论或私信,我把移植前后的源码包和可执行程序分享出来。

        

扩展:
    对于DRM框架的扩展学习,可以参考DRM Display Driver Guide

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值