Skip to content

Ayaneo 3: HHD exits immediately due to missing /sys/firmware/acpi/platform_profile, stale lock file hangs on first boot #318

Description

@kimnordin

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

  1. Install Bazzite on an Ayaneo 3
  2. Enable HHD: systemctl enable --now hhd@$(whoami)
  3. Check status: systemctl status hhd@$(whoami)
  4. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions