This was a really useful post, thanks.
For anybody who wants to get their own screen working, all the settings you need are in these docs:
Have a read of the docs for
hdmi_group before trying to set
I had to set
hdmi_drive to 1 because I've connected to an old monitor with a DVI socket. Set it to 2 if you're using an HDMI screen.
Then you can decide whether you want
hdmi_group to be 1 or 2. tl;dr — use 1 for TVs and 2 for monitors.
Finally, now you know which group you should be using, you can read the value for
hdmi_mode out of the relevant table.
To control which HDMI port you're applying it to you can specify
:1 (for the left and right ports on the Pi 4).
I've configured one of the ports to work with my vintage 1600x1200 60Hz monitor and (hopefully) left the other so it'll work if I take the Pi somewhere that I'd like to use a TV.
Here's the patch I applied to the
config.txt that ships with 19.12:
patch /boot/config.txt <<'EOPATCH'
--- /boot/config.txt.orig 2020-02-08 18:47:17.000000000 +0000
+++ /boot/config.txt 2020-02-08 18:47:31.000000000 +0000
@@ -9,8 +9,16 @@
+hdmi_drive:1=2 # HDMI, with sound, on second HDMI port
+# Configure first HDMI port to work with 1600x1200 60Hz monitor.
+# See https://www.raspberrypi.org/documentation/configuration/config-txt/video.md
+hdmi_drive:0=1 # DVI (no sound)