Incidentally, HDMI has a DDC wire. DisplayPort has the equivalent. That wire uses an i2c protocol to query the monitor and ask the monitor what its specs are. Power for that query comes from the host, not the monitor, and so if the DDC wire, or the i2c bus power were to be missing, then automatic configuration would no longer work correctly and you’d end up with a default resolution. Most of this is also triggered by a detection mechanism which might use a GPIO, but if hot plug detect fails, then it won’t matter if the DDC i2c communications works or not, the GPU will never ask the monitor for its specs (it might query during boot though if it thinks a monitor is present). The communications is the EDID data (nowadays it is EDID2 data sent over the i2c of the DDC wire).
I don’t know what should be in the schematic, but often the device tree will cause failure because this is what routes GPIO and i2c and power rails. Should your schematic be perfect, but require a change to deal with HDMI instead of DisplayPort, then automatic configuration would fail.
In your GUI, at a terminal, you can type “echo $DISPLAY
”. The answer is usually “:0
”, but it might differ. That would tie your GUI to the log “/var/log/Xorg.0.log
” (if it were “:1
”, then it would be Xorg.1.log
). That log should offer information regarding the use of the EDID data (and indirectly the i2c). You might want to include that log.
If there is EDID data being indicated in the log, then you could insert a line in Section "Device"
which would make the log give verbose answers as to every single mode it sees the monitor supporting, and if that mode is acceptable. The edit of “/etc/X11/Xorg.conf
” would be one extra line:
Section "Device"
Option "ModeDebug"
Look for the mode you are interested in within that log, and see what it says. Incidentally, the list of all acceptable modes together is the “mode pool”, and even if both HDMI and DisplayPort have the same mode pool, then perhaps something caused a different mode to be picked from the pool. In that case you’d know that the DDC wire and associated i2c, power rails, and hot plug detect are working; if the mode pool differs, then perhaps your schematic or device tree configuring for that schematic is incorrect.