I have also been frustrated with this problem. Recently, I also noticed that the USB Power factors into seeing the problem.
An additional observation I have noticed, the time for the Laptop screen backlight to turn on is an early indicator of whether the External HDMI monitor will be seen by the OS. (Five seconds good. Long delay, about 20 seconds, bad.) Since this preseeds the OS starting, maybe this is a BIOS issue.
Steps for recreating Working and Failing cases
For the working scenario:
- Setup:
- External HDMI Monitor already plugged in
- Laptop powered off
- unplug the Laptop power
- wait 1+ minutes (1.25 should be enough)
- press the power button.
- After about 5 seconds, you will notice that the Laptop backlight comes on. This has been an indicator that it will boot fine. And, the external monitor will be seen by Linux.
For the falling scenario:
- Setup:
- External HDMI Monitor already plugged in
- Laptop powered off
- plug in the Laptop power
- wait 1+ minutes (1.25 should be enough)
- press the power button
- When failing, there is a long boot delay (about 20 seconds) before you see the Laptop backlight come on. This has correlated with the External HDMI monitor not being recognized.
When the External HDMI Monitor fails to work, xrandr --listmonitors
does not list the monitor. Also, sudo get-edid
does not report the External HDMI Monitor.