DRM framebuffer capture tool

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

DRM framebuffer capture tool

DRM framebuffer capture tool

On behalf of Gopise Yuan.

This is an update for the DRM framebuffer capture tool I used to share with the team. Some enhancement added.

Might be useful for debugging some display related issues.

 

Some special notes:

  1. Behavior of DRM subsystem is different between L4.x and L5.x.

For L4.x, you can capture the RGB buffer without any problem. But, there’s no API for YUV (multi-plane) buffer. To capture YUV, need to apply kernel_0001-drm-Add-getfb2-ioctl_L4.14.98.patch.

For L5.x, mapping/capturing the internal buffer is not allowed by default due to security reason. A simple change in “0001-drm-enable-mapping-of-internal-object-for-debugging_L5.x.patch can disable this guard.

  1. Capture raw data only. RGB and YUV (packed/planar, 420/422) supported.
  2. Support de-tile on “Amphion tile (VPU, NV12 only) and Super tile (Vivante GPU). Please use -t to enable this. Other tile might not be supported.
  3. This is a static linked binary. You can run it on any ARM64 based Linux/Android system in theory (prerequisites in item #1). If you need source code, come to me.

 

To get more details on how to use it, use “-? option:

DRM screen capture

DRM based screen capture program

Usage:

    ./drmfbcap [OP] [ARG]

[OP] OPeration (optional):

    -v Show version.

    -? Show help information.

    -i Show information about target DRM device only (no capture).

    -t Perform de-tile for tile format.

    -d DRM device to open. [ARG] should contain the path to the device node. Default: '/dev/dri/card0'

    -o Output folder. [ARG] should contain the path to the output folder. Default: '.'

    -p Specific plane # to capture. [ARG] should contain the plane number. If no '-p' specified, capture all planes

 

Example:

    ./drmfbcap

  Capture all planes on default DRM device.

    ./drmfbcap -d /dev/dri/controlD64

  Capture all planes on '/dev/dri/controlD64' device.

    ./drmfbcap -p 44 -t -o /sdcard

  Capture plane 44, do de-tile after capture and then output to /sdcard/.

 

Raw buffer capture will be done for each enabled/target plane and one file for each.

Captured file will be saved to './' if not specified.

--- By Gopise, 2022/08

 

Updated_2023_10_16:

continuous capture (repeat mode) support with this link:

https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/DRM-screen-capture-tool/ta-p/1725363

附件
%3CLINGO-SUB%20id%3D%22lingo-sub-1523863%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EDRM%E5%B8%A7%E7%BC%93%E5%86%B2%E6%8D%95%E8%8E%B7%E5%B7%A5%E5%85%B7%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1523863%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%0A%3CP%3E%E4%BB%A3%E8%A1%A8%20Gopise%20Yuan%E3%80%82%3C%2FP%3E%0A%3CP%3E%E8%BF%99%E6%98%AF%E6%88%91%E4%B9%8B%E5%89%8D%E5%88%86%E4%BA%AB%E7%BB%99%E5%9B%A2%E9%98%9F%E7%9A%84%20DRM%20%E5%B8%A7%E7%BC%93%E5%86%B2%E5%8C%BA%E6%8D%95%E8%8E%B7%E5%B7%A5%E5%85%B7%E7%9A%84%E6%9B%B4%E6%96%B0%E7%89%88%E6%9C%AC%E3%80%82%E5%85%B6%E4%B8%AD%E5%A2%9E%E5%8A%A0%E4%BA%86%E4%B8%80%E4%BA%9B%E5%A2%9E%E5%BC%BA%E5%8A%9F%E8%83%BD%E3%80%82%3C%2FP%3E%0A%3CP%3E%E5%8F%AF%E8%83%BD%E6%9C%89%E5%8A%A9%E4%BA%8E%E8%B0%83%E8%AF%95%E4%B8%80%E4%BA%9B%E4%B8%8E%E6%98%BE%E7%A4%BA%E7%9B%B8%E5%85%B3%E7%9A%84%E9%97%AE%E9%A2%98%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CSTRONG%3E%E4%B8%80%E4%BA%9B%E7%89%B9%E5%88%AB%E8%AF%B4%E6%98%8E%EF%BC%9A%3C%2FSTRONG%3E%3C%2FP%3E%0A%3COL%3E%0A%3CLI%3EL4.x%20%E5%92%8C%20L5.x%20%E7%89%88%E6%9C%AC%E7%9A%84%20DRM%20%E5%AD%90%E7%B3%BB%E7%BB%9F%E8%A1%8C%E4%B8%BA%E6%9C%89%E6%89%80%E4%B8%8D%E5%90%8C%E3%80%82%3C%2FLI%3E%0A%3C%2FOL%3E%0A%3CP%3E%E5%AF%B9%E4%BA%8E%20L4.x%EF%BC%8C%E6%82%A8%E5%8F%AF%E4%BB%A5%E6%AF%AB%E6%97%A0%E9%97%AE%E9%A2%98%E5%9C%B0%E6%8D%95%E8%8E%B7%20RGB%20%E7%BC%93%E5%86%B2%E5%8C%BA%E3%80%82%E4%BD%86%E6%98%AF%EF%BC%8C%3CSPAN%3E%E6%B2%A1%E6%9C%89%E7%94%A8%E4%BA%8E%20YUV%EF%BC%88%E5%A4%9A%E5%B9%B3%E9%9D%A2%EF%BC%89%E7%BC%93%E5%86%B2%E5%8C%BA%E7%9A%84%20API%E3%80%82%E8%A6%81%E6%8D%95%E8%8E%B7%20YUV%EF%BC%8C%E9%9C%80%E8%A6%81%E5%BA%94%E7%94%A8%3C%2FSPAN%3E%20%E2%80%9C%3CSPAN%3Ekernel_0001-drm-Add-getfb2-ioctl_L4.14.98.patch%E2%80%9D%3C%2FSPAN%3E%20%E8%A1%A5%E4%B8%81%3CSPAN%3E%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%E5%AF%B9%E4%BA%8E%20L5.x%EF%BC%8C%E5%87%BA%E4%BA%8E%E5%AE%89%E5%85%A8%E5%8E%9F%E5%9B%A0%EF%BC%8C%E9%BB%98%E8%AE%A4%E6%83%85%E5%86%B5%E4%B8%8B%E4%B8%8D%E5%85%81%E8%AE%B8%E6%98%A0%E5%B0%84%2F%E6%8D%95%E8%8E%B7%E5%86%85%E9%83%A8%E7%BC%93%E5%86%B2%E5%8C%BA%E3%80%82%E9%80%9A%E8%BF%87%E5%AF%B9%20%E2%80%9C%3CSPAN%3E0001-drm-enable-mapping-of-internal-object-for-debugging_L5.x.patch%3C%2FSPAN%3E%E2%80%9D%20%E8%A1%A5%E4%B8%81%E8%BF%9B%E8%A1%8C%E7%AE%80%E5%8D%95%E4%BF%AE%E6%94%B9%EF%BC%8C%3CSPAN%3E%E5%8F%AF%E4%BB%A5%E7%A6%81%E7%94%A8%E6%AD%A4%E4%BF%9D%E6%8A%A4%E6%9C%BA%E5%88%B6%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%0A%3COL%20start%3D%222%22%3E%0A%3CLI%3E%E4%BB%85%E6%8D%95%E8%8E%B7%E5%8E%9F%E5%A7%8B%E6%95%B0%E6%8D%AE%E3%80%82%E6%94%AF%E6%8C%81%20RGB%20%E5%92%8C%20YUV%EF%BC%88%E6%89%93%E5%8C%85%2F%E5%B9%B3%E9%9D%A2%EF%BC%8C420%2F422%EF%BC%89%E3%80%82%3C%2FLI%3E%0A%3CLI%3E%E6%94%AF%E6%8C%81%E2%80%9C%3CSPAN%3EAmphion%20tile%3C%2FSPAN%3E%E2%80%9D%3CSPAN%3E%EF%BC%88%E4%BB%85%E9%99%90%20VPU%E3%80%81NV12%EF%BC%89%E5%92%8C%3C%2FSPAN%3E%E2%80%9C%3CSPAN%3ESuper%20tile%3C%2FSPAN%3E%E2%80%9D%3CSPAN%3E%EF%BC%88Vivante%20GPU%EF%BC%89%E7%9A%84%E5%8E%BB%20Tile%20%E5%8A%9F%E8%83%BD%E3%80%82%E8%AF%B7%E4%BD%BF%E7%94%A8%3C%2FSPAN%3E%E2%80%9C%3CSPAN%3E-t%3C%2FSPAN%3E%E2%80%9D%3CSPAN%3E%E6%9D%A5%E5%90%AF%E7%94%A8%E6%AD%A4%E5%8A%9F%E8%83%BD%E3%80%82%E5%85%B6%E4%BB%96%20tile%20%E5%8F%AF%E8%83%BD%E4%B8%8D%E5%8F%97%E6%94%AF%E6%8C%81%E3%80%82%3C%2FSPAN%3E%3C%2FLI%3E%0A%3CLI%3E%E8%BF%99%E6%98%AF%E4%B8%80%E4%B8%AA%E9%9D%99%E6%80%81%E9%93%BE%E6%8E%A5%E7%9A%84%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E3%80%82%E7%90%86%E8%AE%BA%E4%B8%8A%EF%BC%8C%E6%82%A8%E5%8F%AF%E4%BB%A5%E5%9C%A8%E4%BB%BB%E4%BD%95%E5%9F%BA%E4%BA%8E%20ARM64%20%E7%9A%84%20Linux%2FAndroid%20%E7%B3%BB%E7%BB%9F%E4%B8%8A%E8%BF%90%E8%A1%8C%E5%AE%83%EF%BC%88%E7%AC%AC%201%20%E9%A1%B9%E4%B8%AD%E7%9A%84%E5%85%88%E5%86%B3%E6%9D%A1%E4%BB%B6%EF%BC%89%E3%80%82%E5%A6%82%E6%9E%9C%E6%82%A8%E9%9C%80%E8%A6%81%E6%BA%90%E4%BB%A3%E7%A0%81%EF%BC%8C%E8%AF%B7%E6%9D%A5%E6%89%BE%E6%88%91%E3%80%82%3C%2FLI%3E%0A%3C%2FOL%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E8%A6%81%E8%8E%B7%E5%8F%96%E6%9C%89%E5%85%B3%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E5%AE%83%E7%9A%84%E6%9B%B4%E5%A4%9A%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%8C%E8%AF%B7%E4%BD%BF%E7%94%A8%E2%80%9C%3CSPAN%3E-%3F%3C%2FSPAN%3E%E2%80%9D%3CSPAN%3E%E9%80%89%E9%A1%B9%EF%BC%9A%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3EDRM%20%E5%B1%8F%E5%B9%95%E6%8D%95%E8%8E%B7%3C%2FP%3E%0A%3CP%3E%E5%9F%BA%E4%BA%8EDRM%E7%9A%84%E5%B1%8F%E5%B9%95%E6%8D%95%E8%8E%B7%E7%A8%8B%E5%BA%8F%3C%2FP%3E%0A%3CP%3E%E7%94%A8%E6%B3%95%EF%BC%9A%3C%2FP%3E%0A%3CP%3E.%2Fdrmfbcap%20%5BOP%5D%20%5BARG%5D%3C%2FP%3E%0A%3CP%3E%5BOP%5D%20%E6%93%8D%E4%BD%9C%EF%BC%88%E5%8F%AF%E9%80%89%EF%BC%89%EF%BC%9A%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20-v%20%E6%98%BE%E7%A4%BA%E7%89%88%E6%9C%AC%E4%BF%A1%E6%81%AF%E3%80%82%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20-%3F%20%E6%98%BE%E7%A4%BA%E5%B8%AE%E5%8A%A9%E4%BF%A1%E6%81%AF%E3%80%82%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20-i%20%E4%BB%85%E6%98%BE%E7%A4%BA%E7%9B%AE%E6%A0%87%20DRM%20%E8%AE%BE%E5%A4%87%E7%9A%84%E4%BF%A1%E6%81%AF%EF%BC%88%E4%B8%8D%E8%BF%9B%E8%A1%8C%E6%8D%95%E8%8E%B7%EF%BC%89%E3%80%82%3C%2FP%3E%0A%3CP%3E-t%20%E6%89%A7%E8%A1%8C%20tile%20%E6%A0%BC%E5%BC%8F%E7%9A%84%E5%8E%BB%E7%93%A6%E7%89%87%E5%A4%84%E7%90%86%E3%80%82%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20-d%20%E8%A6%81%E6%89%93%E5%BC%80%E7%9A%84%20DRM%20%E8%AE%BE%E5%A4%87%E3%80%82%5BARG%5D%20%E5%BA%94%E5%8C%85%E5%90%AB%E8%AE%BE%E5%A4%87%E8%8A%82%E7%82%B9%E7%9A%84%E8%B7%AF%E5%BE%84%E3%80%82%E9%BB%98%E8%AE%A4%E5%80%BC%EF%BC%9A'%2Fdev%2Fdri%2Fcard0'%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20-o%20%E8%BE%93%E5%87%BA%E6%96%87%E4%BB%B6%E5%A4%B9%E3%80%82%5BARG%5D%20%E5%BA%94%E5%8C%85%E5%90%AB%E8%BE%93%E5%87%BA%E6%96%87%E4%BB%B6%E5%A4%B9%E7%9A%84%E8%B7%AF%E5%BE%84%E3%80%82%E9%BB%98%E8%AE%A4%E5%80%BC%EF%BC%9A'.'%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20-p%20%E8%A6%81%E6%8D%95%E8%8E%B7%E7%9A%84%E7%89%B9%E5%AE%9A%E5%B9%B3%E9%9D%A2%E7%BC%96%E5%8F%B7%E3%80%82%5BARG%5D%20%E5%BA%94%E5%8C%85%E5%90%AB%E5%B9%B3%E9%9D%A2%E7%BC%96%E5%8F%B7%E3%80%82%E5%A6%82%E6%9E%9C%E6%9C%AA%E6%8C%87%E5%AE%9A%20'-p'%EF%BC%8C%E5%88%99%E6%8D%95%E8%8E%B7%E6%89%80%E6%9C%89%E5%B9%B3%E9%9D%A2%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E7%A4%BA%E4%BE%8B%EF%BC%9A%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20.%2Fdrmfbcap%3C%2FP%3E%0A%3CP%3E%E6%8D%95%E8%8E%B7%E9%BB%98%E8%AE%A4DRM%E8%AE%BE%E5%A4%87%E4%B8%8A%E7%9A%84%E6%89%80%E6%9C%89%E5%B9%B3%E9%9D%A2%E3%80%82%3C%2FP%3E%0A%3CP%3E.%2Fdrmfbcap%20-d%20%2Fdev%2Fdri%2FcontrolD64%3C%2FP%3E%0A%3CP%3E%E5%9C%A8%E2%80%9C%2Fdev%2Fdri%2FcontrolD64%E2%80%9D%E8%AE%BE%E5%A4%87%E4%B8%8A%E6%8D%95%E8%8E%B7%E6%89%80%E6%9C%89%E5%B9%B3%E9%9D%A2%E3%80%82%3C%2FP%3E%0A%3CP%3E.%2Fdrmfbcap%20-p%2044%20-t%20-o%20%2Fsdcard%3C%2FP%3E%0A%3CP%3E%E6%8D%95%E8%8E%B7%E5%B9%B3%E9%9D%A244%EF%BC%8C%E6%8D%95%E8%8E%B7%E5%90%8E%E8%BF%9B%E8%A1%8C%E5%8E%BB%E7%93%A6%E7%89%87%E5%8C%96%E5%A4%84%E7%90%86%EF%BC%8C%E7%84%B6%E5%90%8E%E8%BE%93%E5%87%BA%E5%88%B0%2Fsdcard%2F%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E5%B0%86%E5%AF%B9%E6%AF%8F%E4%B8%AA%E5%90%AF%E7%94%A8%E7%9A%84%2F%E7%9B%AE%E6%A0%87%E5%B9%B3%E9%9D%A2%E8%BF%9B%E8%A1%8C%E5%8E%9F%E5%A7%8B%E7%BC%93%E5%86%B2%E5%8C%BA%E6%8D%95%E8%8E%B7%EF%BC%8C%E6%AF%8F%E4%B8%AA%E5%B9%B3%E9%9D%A2%E5%AF%B9%E5%BA%94%E4%B8%80%E4%B8%AA%E6%96%87%E4%BB%B6%E3%80%82%3C%2FP%3E%0A%3CP%3E%E5%A6%82%E6%9E%9C%E6%9C%AA%E6%8C%87%E5%AE%9A%EF%BC%8C%E6%8D%95%E8%8E%B7%E7%9A%84%E6%96%87%E4%BB%B6%E5%B0%86%E4%BF%9D%E5%AD%98%E5%88%B0%E2%80%9C.%2F%E2%80%9D%E3%80%82%3C%2FP%3E%0A%3CP%3E%E2%80%94%E2%80%94Gopise%EF%BC%8C2022%20%E5%B9%B4%208%20%E6%9C%88%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3EUpdated_2023_10_16%3A%3C%2FP%3E%0A%3CP%3E%E5%A2%9E%E5%8A%A0%E4%BA%86%E8%BF%9E%E7%BB%AD%E6%8D%95%E8%8E%B7%EF%BC%88%E9%87%8D%E5%A4%8D%E6%A8%A1%E5%BC%8F%EF%BC%89%E6%94%AF%E6%8C%81%EF%BC%8C%E8%AF%A6%E6%83%85%E8%AF%B7%E5%8F%82%E8%80%83%EF%BC%9A%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fi-MX-Processors-Knowledge-Base%2FDRM-screen-capture-tool%2Fta-p%2F1725363%22%20target%3D%22_blank%22%3Ehttps%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fi-MX-Processors-Knowledge-Base%2FDRM-screen-capture-tool%2Fta-p%2F1725363%3C%2FA%3E%3C%2FP%3E%0A%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1523863%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3E%E5%9B%BE%E5%BD%A2%E4%B8%8E%E6%98%BE%E7%A4%BA%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3Ei.MX%208%20%E7%B3%BB%E5%88%97%20%7C%20i.MX%208QuadMax%20(8QM)%20%7C%208QuadPlus%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3Ei.MX%208M%20%7C%20i.MX%208M%20Mini%20%7C%20i.MX%208M%20Nano%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
无评分
版本历史
最后更新:
‎10-13-2023 07:18 AM
更新人: