Raspberry Pi 5 will not ignore EDID

Required Information

  • DietPi version
G_DIETPI_VERSION_CORE=9
G_DIETPI_VERSION_SUB=8
G_DIETPI_VERSION_RC=0
G_GITBRANCH='master'
G_GITOWNER='MichaIng'
  • Distro version
    bookworm 0
  • Kernel version
    Linux A3ProdEngTV 6.6.62+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.62-1+rpt1 (2024-11-25) aarch64 GNU/Linux
  • Architecture
    arm64
  • SBC model
    RPi 5 Model B (aarch64)
  • Power supply used
    Official Raspberry Pi Adapter
  • SD card used
    PNY Elite

Note: I revised the description to more accurately reflect the problem I am facing.

According to the official documentation, the Raspberry Pi 5 does not parse the EDID of any connected HDMI device by default. I don’t know if that only applies when the official Raspberry Pi OS is used, but I would assume the same is supposed to be true with DeitPi as well since it is based on the official image. However, despite what the docs say, my Raspberry Pi 5 does parse the EDID even when disable_fw_kms_setup=1 is added to config.txt file.

This has presented an issue for me with one of my deployments. I have a 4K TV (TCL 55Q650F) that, according to the Pi, advertises 1920x1080@60 as its preferred mode. As a result, the Pi will not display its output in 4K with this TV but is happy to do so with other 4K TVs I have.

I have Chromium installed in use with the autostart feature. No desktop.

This is what I have tried so far, but has not worked:

  • Add video=HDMI-A-1:3840x2160M@30D to /boot/firmware/cmdline.txt
  • Add disable_fw_kms_setup=1 to /boot/firmware/config.txt
    • I also tried =0
  • framebuffer_width=3840 and framebuffer_height=2160 in /boot/firmware/config.txt

Did you try to change the resolution withdietpi-config already?

I have not, since there are no 4K resolution options there.

Here’s a bit more information…

kmsprint -m seems to indicate that the display’s "preferred’ mode is 1080P @ 60Hz and only supports 4K @ 30Hz. I’m guessing that its reverting to 1080 because the Pi is trying to push 4K @ 60?

$ kmsprint -m
Connector 0 (32) HDMI-A-1 (connected)
   0 1920x1080@60.00  148.500 1920/88/44/148/+   1080/4/5/36/+      60 (60.00) P|D
   1 4096x2160@24.00  297.000 4096/1020/88/296/+ 2160/8/10/72/+     24 (24.00) D     256:135
   2 4096x2160@23.98  296.703 4096/1020/88/296/+ 2160/8/10/72/+     24 (23.98) D     256:135
   3 3840x2160@30.00  297.000 3840/176/88/296/+  2160/8/10/72/+     30 (30.00) U|D   16:9
   4 3840x2160@29.97  296.703 3840/176/88/296/+  2160/8/10/72/+     30 (29.97) D     16:9
   5 3840x2160@25.00  297.000 3840/1056/88/296/+ 2160/8/10/72/+     25 (25.00) D     16:9
   6 3840x2160@24.00  297.000 3840/1276/88/296/+ 2160/8/10/72/+     24 (24.00) D     16:9
   7 3840x2160@23.98  296.703 3840/1276/88/296/+ 2160/8/10/72/+     24 (23.98) D     16:9
...

I added video=HDMI-A-1:3840x2160M@30D to /boot/firmware/cmdline.txt . . . No luck.

I loaded a SD card with the official Raspberry Pi OS (with desktop) and was able to set the resolution to 3840x2160 @ 30Hz and 4096x2160 @ 24Hz without issue. I was also able to do the same with DietPi and the LXDE desktop.

I thought that saving the display settings and then rebooting with Chromium autostart might be the fix, but it was not. :frowning_face:

Here’s another update . . . Finally landed on my first workaround/temp fix.

I did this remotely via SSH, that’s why I specified the display environment variable.

$ export DISPLAY=:0
$ xrandr --output HDMI-1 --mode 3840x2160

I’m guessing that this won’t persist after a reboot so I’m thinking about putting the xrandr command at the end of the autostart script.

1 Like