2022-09-29 02:27 AM
Hello everyone ~
Below link is my last question about display quality of dual screen.
Fortunately I solved it but I faced other problem.
As I mentioned in the above question, I want to implement dual screen that display same contents same time.
My TFT-LCD's resolution is 1280x800 (10.1inch).
so HDMI also has to has 1280x800 same resolution with LCD.
The monitor or TV that support 1280x800 resolution in EDID display well both all.
Below is "modetest" log when work fine.
root@stm32mp15-prox:~# modetest -M stm -c
Connectors:
id encoder status name size (mm) modes encoders
33 32 connected HDMI-A-1 480x270 1 32
modes:
index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
#0 1280x800 59.91 1280 1328 1360 1440 800 803 809 823 71000 flags: phsync, nvsync; type: driver
props:
1 EDID:
flags: immutable blob
blobs:
value:
00ffffffffffff001e6db85a01010101
0118010380301b78ea3135a5554ea126
0c5054a54b00714f81809500b300a9c0
810081c09040023a801871382d40582c
4500e00e1100001e000000fd00384b1e
530f000a202020202020000000fc004c
47204950532046554c4c4844000000ff
000a2020202020202020202020200164
02031df14a900403011412051f101323
0907078301000065030c002000023a80
1871382d40582c4500e00e1100001e01
1d8018711c1620582c2500e00e110000
9e011d007251d01e206e285500e00e11
00001e8c0ad08a20e02d10103e9600e0
0e110000180000000000000000000000
0000000000000000000000000000009e
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: 40
35 0 connected DPI-1 217x136 1 34
modes:
index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
#0 1280x800 60.19 1280 1300 1310 1330 800 804 808 812 65000 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
4 TILE:
flags: immutable blob
blobs:
value:
20 CRTC_ID:
flags: object
value: 0
However, some TV can not display anything because they doesn't support 1280x800 resolution in EDID.
Therefore, I'm trying to specify the EDID data.
I found DRM_LOAD_EDID_FIRMWARE kernel option.
https://wiki.archlinux.org/title/kernel_mode_setting#Forcing_modes_and_EDID
A. Copy 1280x800.bin to /lib/firmware/edid
B. Enable kernel option.
-> Device Drivers
-> Graphics support
-> Direct Rendering Manager
-> (*) Allow to specify an EDID data set instead of probing for it
C. Specify edid data on the U-boot
env set bootargs "drm.edid_firmware=edid/1280x800.bin"
or
env set bootargs "drm.edid_firmware=HDMI-A-1:edid/1280x800.bin"
but not working as I expected.
I'm newbie in U-boot.
Is this the correct way to pass kernel parameters?
OpenSTLinux support this feature?
Thanks in advance.
Solved! Go to Solution.
2022-09-30 12:11 AM
I solved.
It was problem that I don't know exactly how to pass the kernel command line parameters.
drm.edid_firmware=edid/1280x800.bin
I referenced this wiki and succeed to pass the kernel parameter.
https://wiki.st.com/stm32mpu/wiki/Dmesg_and_Linux_kernel_log#Default_values
As a reference, thankfully we can download various possible resolution EDID files.
https://download.phytec.de/Software/Linux/Driver/
2022-09-30 12:11 AM
I solved.
It was problem that I don't know exactly how to pass the kernel command line parameters.
drm.edid_firmware=edid/1280x800.bin
I referenced this wiki and succeed to pass the kernel parameter.
https://wiki.st.com/stm32mpu/wiki/Dmesg_and_Linux_kernel_log#Default_values
As a reference, thankfully we can download various possible resolution EDID files.
https://download.phytec.de/Software/Linux/Driver/