When two monitors are connected at boot, the Linux kernel completely hangs at fb0: switching to i915 from EFI VGA. The screens stay on and continue displaying the last message, but everything is otherwise unresponsive. Numlock/Capslock lights don't toggle. Alt-SysRq usually does not work, though I can occasionally force a reboot with Alt-SysRq+B. Dmesg and other logs are not written to disk. When two monitors are connected at boot the UEFI splash image displays at a lower resolution - so I wonder if the issue is caused by incorrect video information given to Linux by the UEFI. Connecting the second monitor after POST works fine, Linux starts using the monitor before even switching to the DRM framebuffer and there's no hang. nomodeset or i915.modeset=0 also work, but this is obviously undesirable.
Hardware
- Intel Core i7-11700K (HD750 Graphics - gen12)
- Asus ROG Strix B560-A Gaming WiFi w/UEFI v1203
- Monitor 1: Dell P2419H over HDMI @ 1920x1080p60
- Monitor 2: Dell P2419HC over DisplayPort 1.2 @ 1920x1080p60
Software
- Pop_OS! 21.10 x64 (Issue also occurs with Ubuntu 21.10)
- Linux pop-os 5.15.5-76051505-generic #202111250933~1638201579~21.10~09f1aa7 SMP
The issue seems similar to other issues related to Intel Gen12+ graphics on Linux:
- https://bbs.archlinux.org/viewtopic.php?id=269278
- https://forums.unraid.net/topic/105034-uhd-750-rocket-lake-igp-support/
- https://gist.github.com/Postrediori/556706b28aff3b831d9e41acb47418c5
However, those issues are supposed to be fixed by Linux 5.15, and I've tried their workarounds already.
Attempted Fixes
UEFI
- Disable PCIe low power modes
- Change eGPU dedicated VRAM amount
- Disable eGPU low power modes
- Disable VT-d
- Disable SR-IOV
- Disable chipset/DMI low power modes
- Set splash screen logo display to "Full screen" rather than Auto
- Disable Fast Boot
systemd-boot
- loader.conf:
console-mode autoconsole-mode max
Kernel command line
- Set
drm.edid_firmwareto firmware dumps read from each monitor - Disable one monitor with
video=DP-1:d(The monitor still comes on?) - Force monitor modes with
video=DP-1:1920x1080@60 video=HDMI-1:1920x1080@60 - Remove
quiet loglevel=0 systemd.show_status=false splash - Set
vga=ask(doesn't work) i915.force_probe=4c8ai915.fastboot=1andi915.fastboot=0i915.enable_guc=2i915.enable_dc=0i915.enable_fbc=1andenable_fbc=0- Many combinations of the above
Initramfs
- Added
i915to initramfs
Still need to try
- Change bootloader to GRUB2, since it supports overriding the resolution from the UEFI.
- Compile kernel with USB serial console support to see if there are messages printed after the display driver fails.
Any suggestions?