HHD exits immediately on Ayaneo 3 due to missing platform_profile
Device
- Device: Ayaneo 3
- OS: Bazzite (bazzite-deck:stable)
- HHD version: 4.1.5
Summary
HHD starts, acquires the lock, detects the Ayaneo 3 correctly, loads all plugins, then immediately exits. The AYA button does nothing and no HHD UI/tray icon appears. The root cause is that /sys/firmware/acpi/platform_profile does not exist on this device, which causes HHD to abort.
Steps to Reproduce
- Install Bazzite on an Ayaneo 3
- Enable HHD:
systemctl enable --now hhd@$(whoami)
- Check status:
systemctl status hhd@$(whoami)
- HHD shows "active (running)" briefly then exits with
code=exited, status=0/SUCCESS
What We Found
1. Stale lock file on first boot
On first run, HHD gets stuck at "Trying to acquire hhd lock..." indefinitely because a stale lock file exists at /etc/hhd/lock. The process hangs at fcntl.flock(lock_fd, fcntl.LOCK_EX) in __main__.py:220 and never times out or errors — it just blocks forever.
Workaround: sudo rm /etc/hhd/lock then restart HHD.
2. Missing platform_profile causes immediate exit
After clearing the lock, HHD starts properly, detects the Ayaneo 3, and loads all plugins including ayaneo_controllers@AYANEO 3. However it then logs:
MAIN INFO Could not enumerate platform profile choices. Disabling platform profile.
MAIN WARNING Platform profile map was provided but device does not have...
Then immediately stops all plugins and exits cleanly (status=0/SUCCESS).
Root cause confirmed:
$ ls /sys/firmware/acpi/platform_profile
# Returns: No such file or directory
The platform_profile ACPI interface is completely absent on the Ayaneo 3 with the current Bazzite kernel. HHD appears to treat this as a fatal condition and exits rather than continuing without platform profile support.
3. HHD API is partially functional
Interestingly, despite HHD exiting, http://localhost:5335 is accessible and hhdctl get returns data including full Ayaneo 3 controller settings. So the API layer works but the main daemon is not running.
Expected Behavior
HHD should either:
- Continue running without platform profile support (graceful degradation), or
- Load the appropriate kernel module to enable
platform_profile on the Ayaneo 3
Symptoms for the User
- AYA button does nothing
- No HHD tray icon in desktop mode
- Controller remapping not available
- On-screen keyboard not triggered by controller
Logs
May 10 15:31:07 bazzite hhd[8825]: MAIN INFO Handheld Daemon starting...
May 10 15:31:07 bazzite hhd[8825]: MAIN INFO Trying to acquire hhd lock...
May 10 15:31:07 bazzite hhd[8825]: MAIN INFO Running under Linux distro 'bazzite'.
May 10 15:31:07 bazzite hhd[8825]: MAIN INFO Running autodetection...
May 10 15:31:08 bazzite hhd[8825]: MAIN INFO Found plugin providers: adjustor, aura, ayaneo, bootc, debug, generic, gpd_win, legion_go, msi_claw, onexplayer, orange_pi, overlay, power, powerbuttond, rgb, rog_ally
May 10 15:31:08 bazzite hhd[8825]: MAIN INFO Could not enumerate platform profile choices. Disabling platform profile.
May 10 15:31:08 bazzite hhd[8825]: MAIN WARNING Platform profile map was provided but device does not have [truncated]
May 10 15:31:08 bazzite hhd[8825]: MAIN INFO Stopping plugin `ayaneo_controllers@AYANEO 3`.
May 10 15:31:08 bazzite hhd[8825]: MAIN INFO Stopping plugin `bootc`.
May 10 15:31:08 bazzite hhd[8825]: MAIN INFO Stopping plugin `debug`.
May 10 15:31:08 bazzite hhd[8825]: MAIN INFO Stopping plugin `overlay`.
May 10 15:31:08 bazzite hhd[8825]: MAIN INFO Stopping plugin `power`.
May 10 15:31:08 bazzite hhd[8825]: MAIN INFO Stopping plugin `powerbuttond@AYANEO 3`.
May 10 15:31:08 bazzite hhd[8825]: MAIN INFO Stopping plugin `controller_rgb`.
May 10 15:31:08 bazzite hhd[8825]: MAIN INFO Closing cached controllers.
May 10 15:31:08 bazzite systemd[1]: hhd@Kim.service: Deactivated successfully.
HHD exits immediately on Ayaneo 3 due to missing
platform_profileDevice
Summary
HHD starts, acquires the lock, detects the Ayaneo 3 correctly, loads all plugins, then immediately exits. The AYA button does nothing and no HHD UI/tray icon appears. The root cause is that
/sys/firmware/acpi/platform_profiledoes not exist on this device, which causes HHD to abort.Steps to Reproduce
systemctl enable --now hhd@$(whoami)systemctl status hhd@$(whoami)code=exited, status=0/SUCCESSWhat We Found
1. Stale lock file on first boot
On first run, HHD gets stuck at "Trying to acquire hhd lock..." indefinitely because a stale lock file exists at
/etc/hhd/lock. The process hangs atfcntl.flock(lock_fd, fcntl.LOCK_EX)in__main__.py:220and never times out or errors — it just blocks forever.Workaround:
sudo rm /etc/hhd/lockthen restart HHD.2. Missing platform_profile causes immediate exit
After clearing the lock, HHD starts properly, detects the Ayaneo 3, and loads all plugins including
ayaneo_controllers@AYANEO 3. However it then logs:Then immediately stops all plugins and exits cleanly (
status=0/SUCCESS).Root cause confirmed:
$ ls /sys/firmware/acpi/platform_profile # Returns: No such file or directoryThe
platform_profileACPI interface is completely absent on the Ayaneo 3 with the current Bazzite kernel. HHD appears to treat this as a fatal condition and exits rather than continuing without platform profile support.3. HHD API is partially functional
Interestingly, despite HHD exiting,
http://localhost:5335is accessible andhhdctl getreturns data including full Ayaneo 3 controller settings. So the API layer works but the main daemon is not running.Expected Behavior
HHD should either:
platform_profileon the Ayaneo 3Symptoms for the User
Logs