The dreaded EFI framebuffer freeze in FreeBSD
If you ever booted FreeBSD or a system that is based on it like GhostBSD you may have come across this sight:
The screen will just be stuck. If you're a beginner you will have no idea what happened. If you research a bit you will find the component that is responsible for this message: loader.efi, the UEFI variant of the FreeBSD boot loader.
When I had this frozen screen I connected a serial cable to another PC, started PuTTY and could see the log messages totally fine, meaning it's just an output issue, the system is booting up normally in the background (unless you have another issue which causes an infinite boot loop).
When you research this issue on the internet you mostly find 5 groups:
- Server users with a misconfigured serial port
- Desktop users with multiple graphics cards
- Laptop users with multiple graphics cards
- Issues in virtual machines, e.g. Parallels Desktop for Mac
- Microcode and BIOS updates, see this thread and this post
A workaround is to disable one GPU, either the iGPU or the dGPU. The serial console bug in some HP/Dell servers seems to have been fixed in FreeBSD 15.1.
The main issue here probably is FreeBSD being an old server OS and it is not really fit to handle multiple GPU outputs in the boot loader and therefore seems to send the framebuffer to the wrong device sometimes.
So the Laptop Support and Usability Project should maybe put some focus on modernizing the loader.efi code. 😊
Update 07/28/206:
Added a fifth possible issue.
Comments
Post a Comment