...
Codeblock | ||||||
---|---|---|---|---|---|---|
| ||||||
# modetest trying to open device 'i915'...failed trying to open device 'amdgpu'...failed trying to open device 'radeon'...failed trying to open device 'nouveau'...failed trying to open device 'vmwgfx'...failed trying to open device 'omapdrm'...failed trying to open device 'exynos'...failed trying to open device 'tilcdc'...failed trying to open device 'msm'...failed trying to open device 'sti'...failed trying to open device 'tegra'...failed trying to open device 'imx-drm'...failed trying to open device 'rockchip'...failed trying to open device 'atmel-hlcdc'...failed trying to open device 'fsl-dcu-drm'...failed trying to open device 'vc4'...failed trying to open device 'virtio_gpu'...failed trying to open device 'mediatek'...failed trying to open device 'meson'...failed trying to open device 'pl111'...failed trying to open device 'stm'...done Encoders: id crtc type possible crtcs possible clones 3128 0 DPI 0x00000001 0x000000010x00000000 3330 3733 DSI 0x00000001 0x000000020x00000000 |
So the display controller has two encoders:
...
Codeblock | ||||||
---|---|---|---|---|---|---|
| ||||||
Connectors: id encoder status name size (mm) modes encoders 3229 0 disconnectedconnected HDMI-A-1 0x0520x320 5 0 3128 propsmodes: 1index EDID: name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot) #0 1280x720 60.00 1280 flags:1390 immutable1430 blob 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver #1 1280x720 60.00 1280 blobs: 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver #2 800x600 75.00 800 816 896 1056 600 601 604 625 49500 flags: phsync, pvsync; type: driver #3 720x480 59.94 720 736 798 858 480 489 495 525 27000 flags: nhsync, nvsync; type: driver #4 720x480 59.94 720 736 798 858 480 489 495 525 27000 flags: nhsync, nvsync; type: driver props: 1 EDID: flags: immutable blob blobs: value: 00ffffffffffff0009d10a7845540000 1d120103803420782ec5c4a3574a9c23 124f52a56b807100810095008180b300 a940d1000101283c80a070b023403020 360007442100001a000000ff00463738 30303937345a4c300a20000000fd0032 551f5e11000a202020202020000000fc 0042656e51204732343030570a2001e6 02031af14604900301850766030c0010 00008301000023090707011d007251d0 1e206e285500c48e2100001f011d8018 711c1620582c2500c48e2100009e8c0a d08a20e02d10103e9600c48e21000019 023a801871382d40582c4500c48e2100 0006d60980a020e02d1008602200128e 2108081800000000000000000000002c 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 19 CRTC_ID: flags: object value: 0 31 30 connected DSI-1 52x86 1 30 modes: index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot) #0 480x800 50.00 480 578 610 708 800 815 825 839 29700 flags: ; type: preferred, driver props: 1 EDID: flags: immutable blob blobs: value: 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 19 CRTC_ID: flags: object value: 33 CRTCs: id fb pos size 33 41 (0,0) (480x800) #0 480x800 50.00 480 578 610 708 800 815 825 839 29700 flags: ; type: preferred, driver valueprops: 220 DPMSACTIVE: flags: enumrange enumsvalues: On=0 Standby=1 Suspend=2 Off=3 value: 01 5 link-status21 MODE_ID: flags: enumblob enums: Good=0 Bad=1blobs: value: 0 6 non-desktop: flags: immutable range values: 0 1 04740000e00142026202c40200002003 value: 0 4 TILE:2f033903470300003200000000000000 flags: immutable blob 48000000343830783830300000000000 blobs: value:00000000000000000000000000000000 34 33 connected DSI-1 00000000 52x86 18 OUT_FENCE_PTR: 1 33 flags: modes:range index name refresh (Hz) hdisp hss hse htot vdisp vssvalues: vse0 vtot18446744073709551615 #0 480x800 50.00 480 578 610 708 800 815 825 839 29700 flags: ; type: preferred, driver propsvalue: 0 125 EDIDGAMMA_LUT: flags: immutable blob blobs: value: 2 DPMS26 GAMMA_LUT_SIZE: flags: immutable enumrange enumsvalues: On=0 Standby=1 Suspend=2 Off=3 4294967295 value: 256 Planes: id crtc fb CRTC x,y x,y value: 0 gamma size 5 link-status: possible crtcs 32 33 41 flags: enum 0,0 0,0 enums: Good=0 Bad=1 0 value: 00x00000001 formats: AR24 XR24 RG24 RG16 AR15 6 non-desktop: XR15 AR12 XR12 C8 props: 7 flags: immutable rangetype: valuesflags: 0immutable 1enum valueenums: Overlay=0 Primary=1 Cursor=2 4 TILE: value: 1 16 flags: immutable blobFB_ID: blobsflags: object value: CRTCs: id 41 fb 17 IN_FENCE_FD: pos size 37 40 flags: (0,0) (480x800)signed range #0 480x800 50.00 480 578 610 708 800 815 825 839 29700 flags: ; typevalues: preferred,-1 driver2147483647 props: 24 VRR_ENABLED: value: -1 19 flagsCRTC_ID: range valuesflags: 0 1object value: 033 2812 GAMMACRTC_LUTX: flags: signed blobrange blobsvalues: -2147483648 2147483647 value: 0 2913 GAMMACRTC_LUT_SIZEY: flags: immutablesigned range values: 0-2147483648 42949672952147483647 value: 256 Planes: id0 14 CRTC_W: crtcflags: range fb CRTC x,y values: 0 x,y2147483647 gamma size possible crtcs 35 value: 480 37 4015 CRTC_H: 0,0 flags: range 0,0 0 values: 0 2147483647 0x00000001 formats: AR24 XR24 RG24 RG16 AR15 XR15 AR12 XR12 C8 propsvalue: 800 8 typeSRC_X: flags: immutable enumrange enumsvalues: Overlay=0 Primary=1 Cursor=24294967295 value: 10 309 INSRC_FORMATSY: flags: immutable blobrange blobsvalues: 0 4294967295 value: 0 10 SRC_W: 01000000000000000900000018000000 flags: range values: 0 4294967295 01000000400000004152323458523234 value: 31457280 11 SRC_H: 52473234524731364152313558523135 flags: range 41523132585231324338202000000000 values: 0 4294967295 value: ff01000000000000000000000000000052428800 34 0 0 0,0 0000000000000000 0,0 0 in_formats blob decoded: 0x00000001 formats: AR24 RG24 RG16 AR15 AR12 C8 props: AR24: LINEAR(0x0)7 type: flags: immutable enum XR24: LINEAR(0x0) enums: Overlay=0 Primary=1 Cursor=2 RG24value: LINEAR(0x0)0 16 FB_ID: RG16flags: LINEAR(0x0)object value: 0 AR15: LINEAR(0x0)17 IN_FENCE_FD: flags: signed range XR15: LINEAR(0x0) values: -1 2147483647 AR12value: LINEAR(0x0)-1 19 CRTC_ID: XR12flags: LINEAR(0x0)object C8: LINEAR(0x0) 38value: 0 0 12 CRTC_X: 0 0,0 flags: signed range 0,0 0 values: -2147483648 2147483647 0x00000001 formats: AR24 RG24 RG16 AR15 AR12 C8 propsvalue: 0 813 typeCRTC_Y: flags: immutablesigned enumrange enumsvalues: Overlay=0 Primary=1 Cursor=2-2147483648 2147483647 value: 0 3014 INCRTC_FORMATSW: flags: immutable blobrange blobs: values: 0 2147483647 value: 0 15 CRTC_H: flags: 01000000000000000600000018000000 range values: 0 2147483647 01000000300000004152323452473234 value: 0 8 SRC_X: 52473136415231354152313243382020 flags: range values: 0 3f0000000000000000000000000000004294967295 value: 0 0000000000000000 9 SRC_Y: in_formats blob decodedflags: range values: 0 4294967295 AR24: LINEAR(0x0) value: 0 10 SRC_W: RG24: LINEAR(0x0) flags: range RG16values: 0 LINEAR(0x0)4294967295 value: 0 AR15: LINEAR(0x0)11 SRC_H: flags: range AR12: LINEAR(0x0) values: 0 4294967295 C8value: LINEAR(0x0)0 Frame buffers: id size pitch |
We have a HDMI connector, which can be used with the encoder of id 31, that is the DPI encoder. Indeed, the RGB parallel interface of the STM32 processor is fed on the board into an HDMI transceiver, that goes out with HDMI signals on connector CN9. So from the point of view of the SoC, it is a parallel RGB interface, but thanks to the HDMI transceiver on the Discovery board, it is in fact usable as an HDMI connector.
The second connector is the DSI connector, which can be used with encoder of id 3330, i.e the DSI encoder, which makes sense.
So let’s ask modetest to display its test picture on the DSI connector, which has id 34 30 for DSI panel resolution is 480×800, so we’ll use the following command:
# modetest -s 3431:480x800
And voilà:
Now if we plug an HDMI screen to the HDMI connector, the modetest output about connector 32 29 changes as the connector is no longer disconnected:
...
Codeblock | ||||||
---|---|---|---|---|---|---|
| ||||||
Connectors: id encoder status name size (mm) modes encoders 3229 0 connected HDMI-A-1 520x320 35 3128 modes: index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot #0) hdisp hss hse htot vdisp vss vse vtot) #0 1280x720 60.00 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver #1 1280x720 60.00 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver #1#2 800x600 75.00 800 816 896 1056 600 601 604 625 49500 flags: phsync, pvsync; type: driver #3 720x480 59.94 720 736 #2798 858 480 489 495 525 27000 flags: nhsync, nvsync; type: driver #4 720x480 59.94 720 736 798 858 480 489 495 525 27000 flags: nhsync, nvsync; type: driver props: 1 EDID: flags: immutable blob blobs: value: 00ffffffffffff0009d10a7845540000 1d120103803420782ec5c4a3574a9c23 124f52a56b807100810095008180b300 a940d1000101283c80a070b023403020 360007442100001a000000ff00463738 30303937345a4c300a20000000fd0032 551f5e11000a202020202020000000fc 0042656e51204732343030570a2001e6 02031af14604900301850766030c0010 00008301000023090707011d007251d0 1e206e285500c48e2100001f011d8018 711c1620582c2500c48e2100009e8c0a d08a20e02d10103e9600c48e21000019 023a801871382d40582c4500c48e2100 0006d60980a020e02d1008602200128e 2108081800000000000000000000002c 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 419 TILECRTC_ID: flags: immutable blobobject blobs: value: 0 |
So we can ask modetest to display a 1280×720 picture on the HDMI screen:
# modetest -s 3229:1280x720
Enabling Qt5 support in Buildroot
...