1. 作者
付汉杰 hankf@xilinx.com
2. 测试环境
ZCU106 Rev 1.0
Vivado 2020.1
PetaLinux 2020.1
VCU TRD 2020.1
3. Mixer的硬件设置
将VCU TRD 2020.1 的Vivado工程中的Mixer的Layer 8按如下修改。
Video format修改为BGRA8
勾选 Enable Global Alpha
编译整个工程, 得到bit文件,导出含有bit的xsa文件。
4. PetaLinux 工程
基于rdf0428-zcu106-vcu-trd-2020.1/apu/vcu_petalinux_bsp/xilinx-vcu-zcu106-v2020.1-final.bsp创建工程,导入上述xsa文件。
4.1. Mixer的软件设置
在project-spec/meta-user/recipes-bsp/device-tree/files/vcu_trd.dtsi里,设置Mixer的DMA和Primary Plane等信息。
4.1.1. 删除layer0的primary
&xx_mix_master { /delete-property/ xlnx,layer-primary; };
4.1.2. 增加layer 8的primary
&xx_mix_overlay_8 { xlnx,layer-alpha; xlnx,layer-primary; xlnx,layer-max-height = <1080>; xlnx,layer-max-width = <1920>; xlnx,vformat = "AR24"; };
4.2. 指定xorg使用DRI设备
把文件project-spec/meta-user/recipes-graphics/xorg-xserver/xserver-xf86-config/zynqmp/xorg.conf中的DRICard值,从0改为1。修改后,Section "Device"如下。
Section "Device" Identifier "ZynqMP" Driver "armsoc" Option "DRICard" "1" Option "DRI2" "true" Option "DRI2_PAGE_FLIP" "false" Option "DRI2_WAIT_VSYNC" "true" Option "SWcursorLCD" "false" Option "DEBUG" "false" Option "DPMS" "false" EndSection
4.3. 编译PetaLinux 工程
编译PetaLinux工程,生成BOOT.BIN、boot.scr、Image.ub文件。
5. 测试过程 5.1. 启动开发板
将BOOT.BIN、boot.scr、Image.ub文件,拷入SD卡中,启动开发板。
5.2. 查看DRI设备信息
查看DRI设备信息, ls -l /dev/dri/by-path/,可以得到准确的mixer信息。
root@vcu_trd:~# ls -l /dev/dri/by-path/ total 0 lrwxrwxrwx 1 root root 8 Aug 26 01:41 platform-a0070000.v_mix-card -> ../card1 lrwxrwxrwx 1 root root 8 Aug 26 01:41 platform-fd4a0000.zynqmp-display-card -> ../card0
5.3. 查看并设置mixer primary Plane
root@vcu_trd:~# ls -l /sys/module/xlnx_mixer/parameters/mixer_primary_enable -rw------- 1 root root 4096 Aug 26 01:46 /sys/module/xlnx_mixer/parameters/mixer_primary_enable root@vcu_trd:~# cat /sys/module/xlnx_mixer/parameters/mixer_primary_enable N root@vcu_trd:~# echo Y > /sys/module/xlnx_mixer/parameters/mixer_primary_enable root@vcu_trd:~# cat /sys/module/xlnx_mixer/parameters/mixer_primary_enable Y
5.4. 使用命令modetest查看HDMI-TX信息
modetest的设备信息与硬件相关。根据DRI设备信息,本设计的modetest命令是“modetest -D a0070000.v_mix”。通过查看HDMI-TX信息,可以得到Connectors ID。
上述命令的执行记录很长,也可以使用grep过滤输出,比如使用grep -A 8 -i "connectors",之输出 Connectors字段后的8行打印。过滤后的信息如下:
root@vcu_trd:~# modetest -D a0070000.v_mix | grep -A 8 -i "connectors" Connectors: id encoder status name size (mm) modes encoders 44 43 connected HDMI-A-1 610x350 57 43 modes: name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot) 3840x2160 60.00 3840 4016 4104 4400 2160 2168 2178 2250 594000 flags: phsync, nvsync; type: preferred, driver 3840x2160 60.00 3840 4016 4104 4400 2160 2168 2178 2250 594000 flags: phsync, pvsync; type: driver 3840x2160 59.94 3840 4016 4104 4400 2160 2168 2178 2250 593407 flags: phsync, pvsync; type: driver 3840x2160 50.00 3840 4896 4984 5280 2160 2168 2178 2250 594000 flags: phsync, pvsync; type: driver root@vcu_trd:~#
命令“modetest -D a0070000.v_mix”的完整执行记录如下:
使用命令modetest -D a0070000.v_mix查看HDMI-TX信息
root@vcu_trd:~# modetest -D a0070000.v_mix Encoders: id crtc type possible crtcs possible clones 43 42 TMDS 0x00000001 0x00000000 Connectors: id encoder status name size (mm) modes encoders 44 43 connected HDMI-A-1 610x350 57 43 modes: name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot) 3840x2160 60.00 3840 4016 4104 4400 2160 2168 2178 2250 594000 flags: phsync, nvsync; type: preferred, driver 3840x2160 60.00 3840 4016 4104 4400 2160 2168 2178 2250 594000 flags: phsync, pvsync; type: driver 3840x2160 59.94 3840 4016 4104 4400 2160 2168 2178 2250 593407 flags: phsync, pvsync; type: driver 3840x2160 50.00 3840 4896 4984 5280 2160 2168 2178 2250 594000 flags: phsync, pvsync; type: driver 3840x2160 30.00 3840 4016 4104 4400 2160 2168 2178 2250 297000 flags: phsync, pvsync; type: driver 3840x2160 30.00 3840 4016 4104 4400 2160 2168 2178 2250 297000 flags: phsync, pvsync; type: driver 3840x2160 29.97 3840 4016 4104 4400 2160 2168 2178 2250 296703 flags: phsync, pvsync; type: driver 3840x2160 25.00 3840 4896 4984 5280 2160 2168 2178 2250 297000 flags: phsync, pvsync; type: driver 3840x2160 25.00 3840 4896 4984 5280 2160 2168 2178 2250 297000 flags: phsync, pvsync; type: driver 3840x2160 24.00 3840 5116 5204 5500 2160 2168 2178 2250 297000 flags: phsync, pvsync; type: driver 3840x2160 24.00 3840 5116 5204 5500 2160 2168 2178 2250 297000 flags: phsync, pvsync; type: driver 3840x2160 23.98 3840 5116 5204 5500 2160 2168 2178 2250 296703 flags: phsync, pvsync; type: driver 2560x1440 59.95 2560 2608 2640 2720 1440 1443 1448 1481 241500 flags: phsync, nvsync; type: driver 2048x1280 59.99 2048 2192 2416 2784 1280 1281 1284 1325 221277 flags: nhsync, pvsync; type: 2048x1080 24.00 2048 2096 2128 2208 1080 1083 1093 1099 58230 flags: phsync, nvsync; type: driver 1920x1080 60.00 1920 2008 2052 2200 1080 1084 1089 1125 148500 flags: nhsync, nvsync; type: driver 1920x1080 60.00 1920 2008 2052 2200 1080 1084 1089 1125 148500 flags: phsync, pvsync; type: driver 1920x1080 59.94 1920 2008 2052 2200 1080 1084 1089 1125 148352 flags: phsync, pvsync; type: driver 1920x1080 50.00 1920 2448 2492 2640 1080 1084 1089 1125 148500 flags: phsync, pvsync; type: driver 1920x1080 30.00 1920 2008 2052 2200 1080 1084 1089 1125 74250 flags: phsync, pvsync; type: driver 1920x1080 29.97 1920 2008 2052 2200 1080 1084 1089 1125 74176 flags: phsync, pvsync; type: driver 1920x1080 25.00 1920 2448 2492 2640 1080 1084 1089 1125 74250 flags: phsync, pvsync; type: driver 1920x1080 24.00 1920 2558 2602 2750 1080 1084 1089 1125 74250 flags: phsync, pvsync; type: driver 1920x1080 23.98 1920 2558 2602 2750 1080 1084 1089 1125 74176 flags: phsync, pvsync; type: driver 1600x1200 60.00 1600 1664 1856 2160 1200 1201 1204 1250 162000 flags: phsync, pvsync; type: driver 1600x900 60.00 1600 1624 1704 1800 900 901 904 1000 108000 flags: phsync, pvsync; type: driver 1280x1024 75.02 1280 1296 1440 1688 1024 1025 1028 1066 135000 flags: phsync, pvsync; type: driver 1280x1024 60.02 1280 1328 1440 1688 1024 1025 1028 1066 108000 flags: phsync, pvsync; type: driver 1920x1080i 30.00 1920 2008 2052 2200 540 1084 1094 1125 74250 flags: phsync, pvsync, interlace; type: driver 1920x1080i 29.97 1920 2008 2052 2200 540 1084 1094 1125 74176 flags: phsync, pvsync, interlace; type: driver 1920x1080i 25.00 1920 2448 2492 2640 540 1084 1094 1125 74250 flags: phsync, pvsync, interlace; type: driver 1920x1080i 25.00 1920 1952 2120 2304 540 1126 1136 1250 72000 flags: phsync, nvsync, interlace; type: driver 1152x864 75.00 1152 1216 1344 1600 864 865 868 900 108000 flags: phsync, pvsync; type: driver 1280x720 60.00 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver 1280x720 59.94 1280 1390 1430 1650 720 725 730 750 74176 flags: phsync, pvsync; type: driver 1280x720 50.00 1280 1720 1760 1980 720 725 730 750 74250 flags: phsync, pvsync; type: driver 1024x768 75.03 1024 1040 1136 1312 768 769 772 800 78750 flags: phsync, pvsync; type: driver 1024x768 60.00 1024 1048 1184 1344 768 771 777 806 65000 flags: nhsync, nvsync; type: driver 800x600 75.00 800 816 896 1056 600 601 604 625 49500 flags: phsync, pvsync; type: driver 800x600 60.32 800 840 968 1056 600 601 605 628 40000 flags: phsync, pvsync; type: driver 720x576 50.00 720 732 796 864 576 581 586 625 27000 flags: nhsync, nvsync; type: driver 720x576 50.00 720 732 796 864 576 581 586 625 27000 flags: nhsync, nvsync; type: driver 720x480 60.00 720 736 798 858 480 489 495 525 27027 flags: nhsync, nvsync; type: driver 720x480 60.00 720 736 798 858 480 489 495 525 27027 flags: nhsync, nvsync; type: driver 720x480 59.94 720 736 798 858 480 489 495 525 27000 flags: nhsync, nvsync; type: driver 720x480 59.94 720 736 798 858 480 489 495 525 27000 flags: nhsync, nvsync; type: driver 640x480 75.00 640 656 720 840 480 481 484 500 31500 flags: nhsync, nvsync; type: driver 640x480 60.00 640 656 752 800 480 490 492 525 25200 flags: nhsync, nvsync; type: driver 640x480 59.94 640 656 752 800 480 490 492 525 25175 flags: nhsync, nvsync; type: driver 640x480 59.94 640 656 752 800 480 490 492 525 25175 flags: nhsync, nvsync; type: driver 720x400 70.08 720 738 846 900 400 412 414 449 28320 flags: nhsync, pvsync; type: driver 720x576i 50.00 720 732 795 864 288 580 586 625 27000 flags: nhsync, nvsync, interlace, dblclk; type: driver 720x576i 50.00 720 732 795 864 288 580 586 625 27000 flags: nhsync, nvsync, interlace, dblclk; type: driver 720x480i 60.00 720 739 801 858 240 488 494 525 27028 flags: nhsync, nvsync, interlace, dblclk; type: driver 720x480i 60.00 720 739 801 858 240 488 494 525 27028 flags: nhsync, nvsync, interlace, dblclk; type: driver 720x480i 59.94 720 739 801 858 240 488 494 525 27000 flags: nhsync, nvsync, interlace, dblclk; type: driver 720x480i 59.94 720 739 801 858 240 488 494 525 27000 flags: nhsync, nvsync, interlace, dblclk; type: driver props: 1 EDID: flags: immutable blob blobs: value: 00ffffffffffff0010ac27a14c543830 171d0103803d2378eeee95a3544c9926 0f5054a54b00714f8180a9c0a940d1c0 e1000101010108e80030f2705a80b058 8a00615d2100001a000000ff004d5950 464b3936323038544c0a000000fc0044 454c4c205532373138514d0a000000fd 0031560a893c000a2020202020200101 02033ef15861605f5e5d100504020716 01141f1213272021220306111523091f 07830100006d030c0010003044200060 03020167d85dc401788001e20f03565e 00a0a0a0295030203500615d2100001a 04740030f2705a80b0588a00615d2100 001ebf1600a08038134030203a00615d 2100001a0000000000000000000000a4 2 DPMS: flags: enum enums: On=0 Standby=1 Suspend=2 Off=3 value: 0 5 link-status: flags: enum enums: Good=0 Bad=1 value: 0 6 non-desktop: flags: immutable range values: 0 1 value: 0 4 TILE: flags: immutable blob blobs: value: 20 CRTC_ID: flags: object value: 42 CRTCs: id fb pos size 42 48 (0,0) (3840x2160) 60.00 3840 4016 4104 4400 2160 2168 2178 2250 594000 flags: phsync, nvsync; type: props: 22 ACTIVE: flags: range values: 0 1 value: 1 23 MODE_ID: flags: blob blobs: value: 50100900000fb00f0810301100007008 78088208ca0800000000000009000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000 19 OUT_FENCE_PTR: flags: range values: 0 18446744073709551615 value: 0 24 VRR_ENABLED: flags: range values: 0 1 value: 0 Planes: id crtc fb CRTC x,y x,y gamma size possible crtcs 33 0 0 0,0 0,0 0 0x00000001 formats: NV12 props: 8 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 0 17 FB_ID: flags: object value: 0 18 IN_FENCE_FD: flags: signed range values: -1 2147483647 value: -1 20 CRTC_ID: flags: object value: 0 13 CRTC_X: flags: signed range values: -2147483648 2147483647 value: 0 14 CRTC_Y: flags: signed range values: -2147483648 2147483647 value: 0 15 CRTC_W: flags: range values: 0 2147483647 value: 0 16 CRTC_H: flags: range values: 0 2147483647 value: 0 9 SRC_X: flags: range values: 0 4294967295 value: 0 10 SRC_Y: flags: range values: 0 4294967295 value: 0 11 SRC_W: flags: range values: 0 4294967295 value: 0 12 SRC_H: flags: range values: 0 4294967295 value: 0 34 0 0 0,0 0,0 0 0x00000001 formats: NV12 props: 8 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 0 17 FB_ID: flags: object value: 0 18 IN_FENCE_FD: flags: signed range values: -1 2147483647 value: -1 20 CRTC_ID: flags: object value: 0 13 CRTC_X: flags: signed range values: -2147483648 2147483647 value: 0 14 CRTC_Y: flags: signed range values: -2147483648 2147483647 value: 0 15 CRTC_W: flags: range values: 0 2147483647 value: 0 16 CRTC_H: flags: range values: 0 2147483647 value: 0 9 SRC_X: flags: range values: 0 4294967295 value: 0 10 SRC_Y: flags: range values: 0 4294967295 value: 0 11 SRC_W: flags: range values: 0 4294967295 value: 0 12 SRC_H: flags: range values: 0 4294967295 value: 0 35 0 0 0,0 0,0 0 0x00000001 formats: NV12 props: 8 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 0 17 FB_ID: flags: object value: 0 18 IN_FENCE_FD: flags: signed range values: -1 2147483647 value: -1 20 CRTC_ID: flags: object value: 0 13 CRTC_X: flags: signed range values: -2147483648 2147483647 value: 0 14 CRTC_Y: flags: signed range values: -2147483648 2147483647 value: 0 15 CRTC_W: flags: range values: 0 2147483647 value: 0 16 CRTC_H: flags: range values: 0 2147483647 value: 0 9 SRC_X: flags: range values: 0 4294967295 value: 0 10 SRC_Y: flags: range values: 0 4294967295 value: 0 11 SRC_W: flags: range values: 0 4294967295 value: 0 12 SRC_H: flags: range values: 0 4294967295 value: 0 36 0 0 0,0 0,0 0 0x00000001 formats: NV12 props: 8 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 0 17 FB_ID: flags: object value: 0 18 IN_FENCE_FD: flags: signed range values: -1 2147483647 value: -1 20 CRTC_ID: flags: object value: 0 13 CRTC_X: flags: signed range values: -2147483648 2147483647 value: 0 14 CRTC_Y: flags: signed range values: -2147483648 2147483647 value: 0 15 CRTC_W: flags: range values: 0 2147483647 value: 0 16 CRTC_H: flags: range values: 0 2147483647 value: 0 9 SRC_X: flags: range values: 0 4294967295 value: 0 10 SRC_Y: flags: range values: 0 4294967295 value: 0 11 SRC_W: flags: range values: 0 4294967295 value: 0 12 SRC_H: flags: range values: 0 4294967295 value: 0 37 0 0 0,0 0,0 0 0x00000001 formats: NV12 props: 8 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 0 17 FB_ID: flags: object value: 0 18 IN_FENCE_FD: flags: signed range values: -1 2147483647 value: -1 20 CRTC_ID: flags: object value: 0 13 CRTC_X: flags: signed range values: -2147483648 2147483647 value: 0 14 CRTC_Y: flags: signed range values: -2147483648 2147483647 value: 0 15 CRTC_W: flags: range values: 0 2147483647 value: 0 16 CRTC_H: flags: range values: 0 2147483647 value: 0 9 SRC_X: flags: range values: 0 4294967295 value: 0 10 SRC_Y: flags: range values: 0 4294967295 value: 0 11 SRC_W: flags: range values: 0 4294967295 value: 0 12 SRC_H: flags: range values: 0 4294967295 value: 0 38 0 0 0,0 0,0 0 0x00000001 formats: NV12 props: 8 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 0 17 FB_ID: flags: object value: 0 18 IN_FENCE_FD: flags: signed range values: -1 2147483647 value: -1 20 CRTC_ID: flags: object value: 0 13 CRTC_X: flags: signed range values: -2147483648 2147483647 value: 0 14 CRTC_Y: flags: signed range values: -2147483648 2147483647 value: 0 15 CRTC_W: flags: range values: 0 2147483647 value: 0 16 CRTC_H: flags: range values: 0 2147483647 value: 0 9 SRC_X: flags: range values: 0 4294967295 value: 0 10 SRC_Y: flags: range values: 0 4294967295 value: 0 11 SRC_W: flags: range values: 0 4294967295 value: 0 12 SRC_H: flags: range values: 0 4294967295 value: 0 39 0 0 0,0 0,0 0 0x00000001 formats: NV12 props: 8 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 0 17 FB_ID: flags: object value: 0 18 IN_FENCE_FD: flags: signed range values: -1 2147483647 value: -1 20 CRTC_ID: flags: object value: 0 13 CRTC_X: flags: signed range values: -2147483648 2147483647 value: 0 14 CRTC_Y: flags: signed range values: -2147483648 2147483647 value: 0 15 CRTC_W: flags: range values: 0 2147483647 value: 0 16 CRTC_H: flags: range values: 0 2147483647 value: 0 9 SRC_X: flags: range values: 0 4294967295 value: 0 10 SRC_Y: flags: range values: 0 4294967295 value: 0 11 SRC_W: flags: range values: 0 4294967295 value: 0 12 SRC_H: flags: range values: 0 4294967295 value: 0 40 42 48 0,0 0,0 0 0x00000001 formats: AR24 props: 8 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 1 17 FB_ID: flags: object value: 48 18 IN_FENCE_FD: flags: signed range values: -1 2147483647 value: -1 20 CRTC_ID: flags: object value: 42 13 CRTC_X: flags: signed range values: -2147483648 2147483647 value: 0 14 CRTC_Y: flags: signed range values: -2147483648 2147483647 value: 0 15 CRTC_W: flags: range values: 0 2147483647 value: 3840 16 CRTC_H: flags: range values: 0 2147483647 value: 2160 9 SRC_X: flags: range values: 0 4294967295 value: 0 10 SRC_Y: flags: range values: 0 4294967295 value: 0 11 SRC_W: flags: range values: 0 4294967295 value: 251658240 12 SRC_H: flags: range values: 0 4294967295 value: 141557760 32 alpha: flags: range values: 0 256 value: 256 41 0 0 0,0 0,0 0 0x00000001 formats: BG24 props: 8 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 0 17 FB_ID: flags: object value: 0 18 IN_FENCE_FD: flags: signed range values: -1 2147483647 value: -1 20 CRTC_ID: flags: object value: 0 13 CRTC_X: flags: signed range values: -2147483648 2147483647 value: 0 14 CRTC_Y: flags: signed range values: -2147483648 2147483647 value: 0 15 CRTC_W: flags: range values: 0 2147483647 value: 0 16 CRTC_H: flags: range values: 0 2147483647 value: 0 9 SRC_X: flags: range values: 0 4294967295 value: 0 10 SRC_Y: flags: range values: 0 4294967295 value: 0 11 SRC_W: flags: range values: 0 4294967295 value: 0 12 SRC_H: flags: range values: 0 4294967295 value: 0
Frame buffers:
id size pitch
5.4.0.1. 使用命令modetest设置分辨率
modetest的Connectors ID与硬件设计相关。根据HDMI-TX设备信息,本设计的Connectors ID是44。对应的modetest命令是“modetest -D a0070000.v_mix -s 41:1920x1080-60@AR24”。执行记录如下。
root@vcu_trd:~# modetest -D a0070000.v_mix -s 44:1920x1080-60@AR24 setting mode 1920x1080-60.00Hz@AR24 on connectors 44, crtc 42
5.4.0.2. 启动Xorg
使用新的配置启动Xorg,需要先杀掉旧的Xorg。
root@vcu_trd:~# ps -A |grep -i xorg 853 root 0:00 xinit /etc/X11/Xsession -- /usr/bin/Xorg :0 -br -pn 859 root 0:00 /usr/bin/Xorg :0 -br -pn 1095 root 0:00 grep -i xorg root@vcu_trd:~# kill 853 xinit: connection to X server lost waiting for X server to shut down dbus-daemon[896]: Reloaded configuration [ 696.359949] Warning: Unknown drm_fourcc format code: 875713089 (II) Server terminated successfully (0). Closing log file. xinit: unexpected signal 15 root@vcu_trd:~# ps -A |grep -i xorg 1100 root 0:00 grep -i xorg root@vcu_trd:~# Xorg & [1] 1101 X.Org X Server 1.20.5 X Protocol Version 11, Revision 0 Build Operating System: Linux 3.10.0-693.el7.x86_64 x86_64 Current Operating System: Linux vcu_trd 5.4.0-xilinx-v2020.1 #1 SMP Tue Aug 25 09:25:42 UTC 2020 aarch64 Kernel command line: earlycon clk_ignore_unused consoleblank=0 cma=1700M uio_pdrv_genirq.of_id=generic-uio Build Date: 26 May 2020 09:01:47PM Current version of pixman: 0.38.4 Before reporting problems, check http://wiki.x.org to make sure that you have the latest version. Markers: (--) probed, (**) from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. (==) Log file: "/var/log/Xorg.0.log", Time: Wed Aug 26 01:53:07 2020 (==) Using config file: "/etc/X11/xorg.conf" (==) Using system config directory "/usr/share/X11/xorg.conf.d" root@vcu_trd:~# The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Unsupported high keycode 372 for nameignored > X11 cannot support keycodes above 255. > This warning only shows for the first high keycode. Errors from xkbcomp are not fatal to the X server
5.5. 运行QT程序
运行QT程序后,HDMI显示器上,能看到六个每面有数字立方体。
root@vcu_trd:~# export DISPLAY=:0.0 root@vcu_trd:~# QT_QPA_PLATFORM=eglfs /usr/share/examples/opengl/textures/textures QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/var/volatile/tmp/runtime-root' Unable to query physical screen size, defaulting to 100 dpi. To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters). Attribute Qt::AA_ShareOpenGLContexts must be set before QCoreApplication is created.
6. 常见问题 6.1. modetest设置格式失败。
因为primary layer没有使能AR24格式,检查硬件和devicetree。
root@vcu_trd:~# modetest -D a0070000.v_mix -s 44:1920x1080-60@AR24 setting mode 1920x1080-60.00Hz@AR24 on connectors 44, crtc 42 failed to set mode: Function not implemented
6.2. Xorg设置格式失败。
因为primary layer没有使能AR24格式,检查硬件和devicetree。
root@vcu_trd:~# cat /var/log/Xorg.0.log [ 400.794] (II) ARMSOC(0): Setting swap chain size: 2 [ 400.794] (II) ARMSOC(0): [DRI2] Setup complete [ 400.794] (II) ARMSOC(0): [DRI2] DRI driver: armsoc [ 400.794] (==) ARMSOC(0): Backing store enabled [ 400.794] (==) ARMSOC(0): Silken mouse enabled [ 400.794] (II) ARMSOC(0): HW cursor init() [ 400.794] (EE) ARMSOC(0): ERROR: drm failed to set mode: Invalid argument [ 400.794] (EE) ARMSOC(0): ERROR: xf86SetDesiredModes() failed! [ 400.794] (EE) ARMSOC(0): ERROR: ARMSOCEnterVT() failed! [ 400.800] (EE) Fatal server error: [ 400.800] (EE) AddScreen/ScreenInit failed for driver 0 [ 400.800] (EE) [ 400.800] (EE) Please consult the The X.Org Foundation support at http://wiki.x.org for help. [ 400.800] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information. [ 400.800] (EE) [ 400.801] (EE) Server terminated with error (1). Closing log file.
7. 参考文档
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841850/Video+Mix...
https://github.com/Xilinx/linux-xlnx/blob/master/Documentation/devicetre...
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/460948332/Zynq+Ult...
https://xilinx.sharepoint.com/sites/xkb/SitePages/ArticleViewer.aspx?art...
8. 支持人员
Lonley Zhang,Jimmy Chen, Liu Ka。
文章转载自:赛灵思中文社区论坛