missing displays in framebuffer list
edrex opened this issue · comments
With external plugged, only external is listed:
After unplugging external, main display is missing:
But other times only the laptop display is shown when both are plugged.
Following on from #8 (comment)
I'm working on a project using libdrm and stumbled upon this thread:
I guess this has to do with hotplugging in drm. Framebuffers disappear for me too when no device is plugged.
There is a way to trick the kernel to think there is a device plugged in by passing a parameter at boot time.
video=HDMI-A-1:1920x1080@60 drm.edid_firmware=edid/myedid.dat
As I understand it causes the kms (kernel mode setting) to initialize the crtc no matter if there is a device is plugged.
The second parameter (which i found to be required for some cases) is the location of an edid file.
This file is normally read out through HDMI and contains modes (resolution, refresh rates) available for a
specific monitor. It can either be read out from the display using some command line tool or a generic
edid file can be used.
Here is a link to info on these topics: https://wiki.archlinux.org/title/Kernel_mode_setting#Forcing_modes_and_EDID
btw: the enumeration seems to list "cursor" framebuffers as well - these are the 256x256 sized framebuffers in the dropdown.
They could be filtered out by determining the type when enumerating.
I hope this helps.