Fixing “GIANT-LOCKED” Boot Issue on HP T740 with OPNsense

Symptom

When booting OPNsense (or FreeBSD-based systems) on an HP T740 thin client, the system may freeze during device probe, showing messages like:

atkbd0: [GIANT-LOCKED]
psm0: unable to allocate IRQ

At this point, the system won’t continue to boot.

Cause

The HP T740 has legacy PS/2 keyboard (atkbd) and serial/COM ports (UART) defined in firmware, even if no physical device is present.
FreeBSD (the base of OPNsense) tries to probe them, but the hardware doesn’t respond properly. This causes a deadlock (“GIANT-LOCKED”) during initialization.

If you are going to use this as a server with now keyboard attached you are most likely going to not have a keyboard attached… also, it would probably give you a headache trying to figure out why it boots when you set it up or trouble shoot ( with keyboard attached), but when you place it in a rack and start it up… you see nothing on your network. I had that headache.

I could not believe I bought the one bit of kit to run opnsense with this unique issue!!!

I had that headache.

Solution

Disable probing of these legacy devices by adding hints to the boot loader configuration.

Step-by-Step Fix

1. Boot from the OPNsense Installer USB (Live mode)

If your installed system won’t boot, plug in your OPNsense USB installer and select the Live/Install environment.
Login as root (password: opnsense).

2. Mount your installed system

Identify your NVMe or SSD device:

gpart show

Find the partition labeled freebsd-ufs (your main OPNsense install). For example /dev/nda0p3.

Mount it:

mount /dev/nda0p3 /mnt

3. Create/Edit loader config file

Open (or create) the file:

nano /mnt/boot/loader.conf.local

Add the following lines:

hint.uart.0.disabled="1"
hint.uart.1.disabled="1"
hint.atkbd.0.disabled="1"

Explanation:

  • uart → disables legacy serial ports.
  • atkbd → disables PS/2 keyboard probe.

4. Save and unmount

Save in nano (CTRL+O, ENTER, CTRL+X).

Then unmount cleanly:

umount /mnt

5. Reboot into installed system

Remove the USB installer and boot from the NVMe/SSD again.
Your system should now bypass the “GIANT-LOCKED” hang and boot normally into OPNsense.

Notes

  • This issue is specific to HP T740 thin clients (and sometimes T640) due to their quirky firmware.
  • Linux distributions (Ubuntu, Mint, etc.) usually ignore these legacy devices, so they don’t show this problem.
  • Once fixed, you don’t need a keyboard connected — the system runs headless just fine.

Quick Fix Summary:

Create /boot/loader.conf.local with:

hint.uart.0.disabled="1"
hint.uart.1.disabled="1"
hint.atkbd.0.disabled="1"

system boots clean.

Fixing “Fan Spin, Black Screen After Power Cut” on HP T740 with OPNsense

quick temporary fix: If your T740 ends up in the “fan spinning, black screen” state after a power cut, don’t panic—it isn’t dead. To recover, unplug the power cable then hold the power button for about 10 seconds. This drains residual charge from the system’s embedded controller and forces a cold reset. After waiting ~10 seconds, plug the unit back in and power on normally—OPNsense should boot as expected.

Please read on to make the fix permanent.

Symptom

When running OPNsense (or FreeBSD-based systems) on an HP T740 thin client, the system may appear to shut down normally but, after a power cut or AC loss, it fails to restart.

On power restore:

  • The fans spin at full speed.
  • The screen stays black.
  • The system does not POST or boot into OPNsense.

This makes the T740 unreliable as a router/firewall, since it won’t auto-recover after outages.

Cause

The T740 firmware does not properly reset after an unclean power loss if FreeBSD left certain ACPI reset hints in memory. Unlike Windows/ThinPro, FreeBSD leaves behind “garbage state” that confuses the BIOS on cold boot.

The result: the SoC sits half-initialized (fan spin only) until you do a manual power drain (hold power button with AC removed).

Solution

Force FreeBSD to ignore ACPI reset handoffs and always perform a true cold boot on power restore.

Step-by-Step Fix

1. Boot into OPNsense (working install).

Important Recovery Note:
If your HP T740 ever ends up in the “fan spinning, black screen” state after a power cut or failed test, don’t worry — it isn’t dead. To recover, disconnect the power cord, then hold the power button down for at least 10 seconds. This drains residual charge and fully resets the embedded controller. After waiting ~10 seconds, plug the power back in and power on — the system will boot normally again. This step is frustrating but necessary until you apply the fix below.

2. Edit loader configuration

Open the loader override file:

    nano /boot/loader.conf.local

    3. Add these lines (or append to the file if you already fixed the GIANT-LOCKED issue):

    # Disable legacy devices (GIANT-LOCKED fix)
    hint.uart.0.disabled="1"
    hint.uart.1.disabled="1"
    hint.atkbd.0.disabled="1"
    
    # ACPI/firmware quirks (power cut fix)
    hw.acpi.disable_on_reboot="1"
    hw.acpi.handle_reboot="0"
    debug.acpi.ignore_acpi_reset="1"

    4. Save and exit (Ctrl+O, Enter, Ctrl+X).

    5. Reboot normally once to confirm OPNsense still boots fine.

    6. Test the fix

    • While OPNsense is running, pull the power cord.
    • Wait ~10 seconds.
    • Plug it back in.
    • The T740 should now boot cleanly on its own, no button press required.

    Quick Fix Summary

    Create or edit /boot/loader.conf.local and add:

    hw.acpi.disable_on_reboot="1"
    hw.acpi.handle_reboot="0"
    debug.acpi.ignore_acpi_reset="1"

    System now boots cleanly after power cuts or shutdowns.

    Unique FreeBSD issue

    Note: These problems are unique to FreeBSD-based systems like OPNsense and pfSense.

    • On Linux distributions (Ubuntu, Mint, Debian, etc.), the HP T740 boots and recovers from power cuts normally, because the Linux ACPI implementation leaves cleaner power state information for the firmware.
    • On Windows/ThinPro (HP’s factory OS), the issue also doesn’t appear.

    So if you’ve run Linux or Windows on the T740 without trouble, you’re not imagining things — it’s specifically a FreeBSD quirk combined with HP’s firmware.

    Leave a Reply