Nexus BIOS: enable auto power-on after AC loss #210

Open
opened 2026-08-10 02:21:51 +00:00 by claude-bot · 1 comment
Collaborator

Incident: Power outage overnight 2026-08-09. Nexus (HP Workstation) shut down gracefully via NUT at 05:20 EDT when its UPS (Battery Backup 2, CyberPower) hit low battery. AC power appears to have been restored by ~06:32 (based on PVE, on the separate Battery Backup 1/APC UPS, auto-recovering at that time), but Nexus stayed powered off until manually turned on at 20:26 EDT -- roughly 15 hours of unplanned downtime for all Docker services (Home Assistant, Frigate, Komodo, etc.).

Root cause: Nexus BIOS setting Power state after power loss is set to Previous State (readable via /sys/class/firmware-attributes/hp-bioscfg/attributes/Power state after power loss/current_value). Since NUT shut the machine down (S5/off) before AC returned, "previous state" was OFF, so the BIOS kept it off when power came back instead of booting.

Fix: In BIOS/UEFI setup (or via the exposed hp-bioscfg sysfs interface as root -- no BIOS admin password is set), change Power state after power loss from Previous State to Power On. This matches how PVE recovers automatically today.

The sysfs write to make this change without a physical reboot into F10 setup:

echo "Power On" | sudo tee "/sys/class/firmware-attributes/hp-bioscfg/attributes/Power state after power loss/current_value"
**Incident:** Power outage overnight 2026-08-09. Nexus (HP Workstation) shut down gracefully via NUT at 05:20 EDT when its UPS (Battery Backup 2, CyberPower) hit low battery. AC power appears to have been restored by ~06:32 (based on PVE, on the separate Battery Backup 1/APC UPS, auto-recovering at that time), but Nexus stayed powered off until manually turned on at 20:26 EDT -- roughly 15 hours of unplanned downtime for all Docker services (Home Assistant, Frigate, Komodo, etc.). **Root cause:** Nexus BIOS setting `Power state after power loss` is set to `Previous State` (readable via `/sys/class/firmware-attributes/hp-bioscfg/attributes/Power state after power loss/current_value`). Since NUT shut the machine down (S5/off) before AC returned, "previous state" was OFF, so the BIOS kept it off when power came back instead of booting. **Fix:** In BIOS/UEFI setup (or via the exposed `hp-bioscfg` sysfs interface as root -- no BIOS admin password is set), change `Power state after power loss` from `Previous State` to `Power On`. This matches how PVE recovers automatically today. The sysfs write to make this change without a physical reboot into F10 setup: ```bash echo "Power On" | sudo tee "/sys/class/firmware-attributes/hp-bioscfg/attributes/Power state after power loss/current_value" ```
Author
Collaborator

Update: The hp-bioscfg sysfs write path does NOT work on this hardware. Tried echo "Power On" | sudo tee .../current_value and printf %s "Power On" | sudo tee ... -- both failed with tee: Invalid argument.

Kernel log shows why:

hp_bioscfg: ACPI-package does not have enough elements: 11 < 13
hp_bioscfg: Returned error 0x3004, "Generic/Other error"
... (on write attempts) ...
hp_bioscfg: Returned error 0x4, "Invalid command type"

This machine's BIOS WMI implementation returns a truncated ACPI package (the driver expects 13 elements, gets 11), so hp_bioscfg can read attribute values but its write/set path is broken for this firmware -- not a string-formatting issue, a firmware/driver incompatibility.

Resolution: use physical BIOS setup instead of the sysfs interface. Reboot -> F10 at POST -> Advanced/Power Management -> set "Power state after power loss" to "Power On" -> save & exit. That path doesn't go through this WMI interface so it should work regardless of the ACPI-package bug.

**Update:** The `hp-bioscfg` sysfs write path does NOT work on this hardware. Tried `echo "Power On" | sudo tee .../current_value` and `printf %s "Power On" | sudo tee ...` -- both failed with `tee: Invalid argument`. Kernel log shows why: ``` hp_bioscfg: ACPI-package does not have enough elements: 11 < 13 hp_bioscfg: Returned error 0x3004, "Generic/Other error" ... (on write attempts) ... hp_bioscfg: Returned error 0x4, "Invalid command type" ``` This machine's BIOS WMI implementation returns a truncated ACPI package (the driver expects 13 elements, gets 11), so `hp_bioscfg` can read attribute values but its write/set path is broken for this firmware -- not a string-formatting issue, a firmware/driver incompatibility. **Resolution: use physical BIOS setup instead of the sysfs interface.** Reboot -> F10 at POST -> Advanced/Power Management -> set "Power state after power loss" to "Power On" -> save & exit. That path doesn't go through this WMI interface so it should work regardless of the ACPI-package bug.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
matt/homelab-docker#210
No description provided.