Booting a Raspberry Pi 4 without HDMI
… AKA, beheading raspberries?
I wanted to use a Raspberry Pi 4 as a small server. So, I connected it to my HDMI display to set it up, made sure that it boots, and sent it away to be deployed. To my surprise, they sent it back to me, saying that it didn’t boot. What’s worse; it was supposed to run headless, and they didn’t have a micro-HDMI cable ready on-site, so they couldn’t really debug what was wrong.
I took the little device, connected it to my screen… it boots up just fine. I disconnected it from the display and keyboard… no luck, it doesn’t show up on the network…? A little searching showed me that I had to configure a default display resolution, but that also didn’t seem to do the trick.
I soon realised that I was facing a different issue: If the device boots up without HDMI connected, the Ethernet port doesn’t work, it doesn’t recognise that a cable is plugged in. If I connect HDMI and wait a few seconds, suddenly the LEDs light up and the device goes online.
Okay, that’s weird. Maybe the device doesn’t get enough power from the USB-C power adaptor, and then draws a little more power from the HDMI cable and manages to bring the interface up? I tested three different power adaptors, but had the same problem with all of them. I tried disabling Wi-Fi and Bluetooth, in case they did the trick, but they didn’t. This post suggested that maybe it’s the USB3 hard drive’s fault, but said hard drive had an external power supply. Anyway, I tried applying the netdev
and nofail
options as suggested, but nothing changed.
Then I looked a bit further up in the same post, and someone suggested it might be the Ethernet cable. Okay, no, that can’t be. Broken Ethernet cables don’t act like that – they either work, or don’t. But I had nothing much to lose after wasting the whole evening, so I quickly unplugged my printer to plug in the Raspberry Pi. And … It Worked… It actually WAS the Ethernet cable!
I still can’t believe it. The device will be deployed again in a few days, and this time I’ll send a micro-HDMI cable with it. I’ll update here.