How to fool a laptop into thinking a monitor is connected?

tubbadu@lemmy.kde.social to Linux@lemmy.ml – 65 points –

Hello! I converted an old laptop with a broken screen into a home server, and it all works well except for one thing: when I reboot it (via ssh), if no screen is connected, it will get stuck and refuse to boot. as soon as I connect an HDMI monitor, the fans will start spinning and it will start booting as usual. Then I can remove the HDMI and it will work flawlessly. I don't know if this is a linux problem, a GRUB problem, or a firmware problem.
Any idea on how to solve this, or on how to fool it into thinking a screen is connected? The problem is not the lid switch as I removed the magnet from the screen, so it thinks the lid is always open

Thanks in advance!

32

A HDMI Dummy Plug?

I didn't think this could actually exist, just ordered one! thanks!

It works great! I use one for a headless server for steam remote play.

There is also vga to hdmi adapter that works

These are also good for headless servers. GPUs tend to not "kick-in" if they don't think a monitor is connected.

I think there are dummy hdmi plugs that act as a monitor, that might work

This, EDID dummy plug, $2 on aliexpress

just ordered one XD

If I'll find a better solution I'll have wasted 1.67€

On windows I think you need a HDMI dummy plug as others mentioned here before but Linux has to have a way to run headless. You can run Linux in Qemu without a connected display. If you find anything on why it’s not booting please let me know!

Linux supports it, but (some?) motherboards won't boot without a display connected. I had this issue recently when I converted my old PC to a NAS and I had to buy a dummy plug.

It's definitely only some. ASRock motherboards almost always allow headless boot, MSI almost never do iirc, Gigabyte and Asus are really model specific

I had this issue as well where my mobo wouldn't boot without a GPU. In my case a BIOS update resolved the issue (it just beeps angrily a few times but continues booting).

There might be settings in the bios that allow you to disable the graphics card, not halt on errors or disable the internal screen, but they're not usually exposed on laptop BIOS, they're quite locked down.

It sounds like the issue is with the lid latch/sensor, not with the graphics. Some laptops may not boot if the lid is closed, and some have options on the firmware to enable to boot when the lid is closed / on a docking station.

I don't think this is the problem, as it refuses to boot even when the lid is open

That is why I also mentioned the latch/sensor, it may got stuck.

What do you mean? Like if the lid is open, but it thinks it's closed?

This seems unlikely since it boots with a monitor attached. From past experience most laptops that refuse to boot while closed don't boot even if an HDMI display is connected.

There are a few ways to investigate, but for that we would need a bit more info. Firstly, what distro do you use ? Try using a different bootloader than GRUB to see if it solves the issue. Otherwise you could also try to use Linux's UEFI stub.

So you think it's a grub problem?

I'm running fedora 39

I don't know what the problem is. I'm trying to rule things out one after the other.

Maybe try using systemd-boot instead of GRUB?

Is it getting stuck in the BIOS? If you can't ssh in, can you even ping it? Network should come up before graphics.

Have you disabled the display manager?

As someone eles mentioned, boot it with a screen and check the BIOS. Since this was a laptop, the BIOS is certainly expecting a display, so you might have to adjust something there.

Yes I can ping it!

Have you disabled the display manager?

yep, I did `systemctl set-default multi-user.target'

As someone eles mentioned, boot it with a screen and check the BIOS. Since this was a laptop, the BIOS is certainly expecting a display, so you might have to adjust something there.

I already looked into the bios but it was pretty empty, just a few options, nothing about displays or graphics card

but now I have a doubts, perhaps there is a "show advanced settings" button somewhere that I didn't see? I have to look for it

Most likely it's hard coded in the firmware and not exposed as a BIOS option because the OEM didn't ever think anyone would run into this. The dummy plug is your lowest effort workaround. Hope that works, good luck!

It could be Linux, too. Some distros have fancy boot graphics - look for something called "plasma" - not the KDE one, but a different one - and uninstall or disable that. It's a common thing that hides the boot log behind a logo-and-progress bar. Arch doesn't use it, so I haven't seen it in years, but IIRC it can cause problems on headless systems.

I had an old laptop that I removed the screen from and it still booted. Perhaps if your screen has broken in a way that the GPU detects as a hardware failure, it might prevent booting? Maybe removing the screen entirely might solve the issue? Or at least disconnecting the internal cable from the screen to the motherboard..

Did you take a little journey into the BIOS yet? Is definitely firmware, the question is if you can just change a setting there. Otherwise, somebody already mentioned dummy HDMI plugs.

You can attach a fake one in software via XVFB (X Virtual Frame Buffer). It’s a little involved if you aren’t familiar with X, but it only took me an hour or so to get setup. Then you don’t need any hardware at all, and can set whatever resolution you'd like.