Hi,
I have an Asus ROG Strix G15 Advantage Edition 2021 laptop. I’m currently running Fedora Workstation on it, but I was running Arch on it up until a month ago.
I have this intermittent issue where the laptop fully boots up but the display does not turn on at all, not even the backlight. This happens about 50% of the time I boot the laptop. I noticed it happens more often when the laptop has not been turned on for more than an hour or so, but that’s not set in stone either.
I have re-seated the internal eDP cable on the motherboard and checked it for damage, and everything seemed fine on the motherboard side of the cable. There is some part of the cable in the hinge and behind the display as well, but of course I did not want to mess with that. The display is 1440p 165Hz, and a replacement costs more than $250. I did not want to damage the display.
For a while I believed it was eDP cable damage inside the hinge, and that might still be the case. But I saw something in software that is making me question it.
When the screen does not turn on, I can connect the laptop to an external display (a cheap mini-projector I have). In settings, I can see that the external display is connected but the internal display is nowhere to be found. This is not very useful information. But today, I ran this command:
find /sys/devices -name "edid"
And I got this
/sys/devices/pci0000:00/0000:00:08.1/0000:08:00.0/drm/card1/card1-HDMI-A-1/edid
/sys/devices/pci0000:00/0000:00:08.1/0000:08:00.0/drm/card1/card1-eDP-1/edid
/sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0/0000:02:00.0/0000:03:00.0/drm/card0/card0-Writeback-1/edid
/sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0/0000:02:00.0/0000:03:00.0/drm/card0/card0-DP-1/edid
Rebooting once, after closing and reopening the lid of the laptop, the display turned on again and I ran the command again, and got this instead.
/sys/devices/pci0000:00/0000:00:08.1/0000:08:00.0/drm/card2/card2-HDMI-A-1/edid
/sys/devices/pci0000:00/0000:00:08.1/0000:08:00.0/drm/card2/card2-eDP-1/edid
/sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0/0000:02:00.0/0000:03:00.0/drm/card1/card1-Writeback-1/edid
/sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0/0000:02:00.0/0000:03:00.0/drm/card1/card1-DP-1/edid
The difference in the outputs is that when the display does not turn on, the iGPU is recognized as card1 and dGPU as card0, but when the display works, the iGPU is recognized as card2 and dGPU as card1.
When I run this command when the display is working:
cat /sys/devices/pci0000:00/0000:00:08.1/0000:08:00.0/drm/card2/card2-eDP-1/status
The result is
connected
But when I run this command when the display is working:
cat /sys/devices/pci0000:00/0000:00:08.1/0000:08:00.0/drm/card1/card1-eDP-1/status
The result is
cat: '/sys/devices/pci0000:00/0000:00:08.1/0000:08:00.0/drm/card1/card1-eDP-1/status': No such file or directory
When I run the card1 status command when the display is not working, I get connected.
From what I can gather, somewhere along the boot process, the GPUs get assigned different names (but not different PCI IDs). The eDP display data is expected to be received through the dGPU which is not connected by a cable through a display; it routes the signal through the iGPU. This might be why the display does not turn on when the dGPU is assigned card1 instead of the iGPU.
Is there a way for this to be avoided? Do you know of any similar issues?
I would really like my laptop to reliably turn on every time.
Thanks for all the help