Handheld Daemon 2.6.3 broken on GPD Win 4 (8840U)
I recently updated Bazzite (Stable), and found that HHD no longer works. Controller now reports a 360 controller, no gyro available, and triple clicking the R4 button does not bring up its menu. Is there a way to downgrade back to the previous known working version? I was on 2.5.3 before it broke.
I tried running sudo systemctl enable --now hhd@$(whoami) and restarting to no avail.
60 Replies
journalctl | fpaste
Uploading...
https://paste.centos.org/view/bb936651
did you turn on the debug option?
need to tweak the command i send
journalctl -b 0 | fpaste
too bigSure thing, re-running.
your device has not been tested before
also, clicking multiple times does not work on GPD, holding does
but if you press multiple times its like holding
Interesting. I'll try holding. Gyro and controller emulation definitely does not work. I found that going to HHD.dev does work, seems like the service is sorta functioning.
@Kyle Gospo hold the ISOs for a min
no it closed on your device
Holding doesn't work either, just tested.
for f in /sys/class/dmi/id/*; do echo "$f:"; sudo cat $f; done
its ok its not supported yet, so lets add support for it real quick
yes one of your problems is you enabled debug mode
rm -r ~/.config/hhd
I don't believe I endabled a debug mode, I'll run those commands now.
then
sudo pkill hhd --signal=SIGKILL
need the output of this/sys/class/dmi/id/bios_date:
03/12/2024
/sys/class/dmi/id/bios_release:
0.56
/sys/class/dmi/id/bios_vendor:
American Megatrends International, LLC.
/sys/class/dmi/id/bios_version:
0.56
/sys/class/dmi/id/board_asset_tag:
Default string
/sys/class/dmi/id/board_name:
G1618-04
/sys/class/dmi/id/board_serial:
Default string
/sys/class/dmi/id/board_vendor:
GPD
/sys/class/dmi/id/board_version:
Ver. 1.0
/sys/class/dmi/id/chassis_asset_tag:
Default string
/sys/class/dmi/id/chassis_serial:
Default string
/sys/class/dmi/id/chassis_type:
10
/sys/class/dmi/id/chassis_vendor:
SU
/sys/class/dmi/id/chassis_version:
Default string
/sys/class/dmi/id/ec_firmware_release:
0.21
/sys/class/dmi/id/modalias:
dmi:bvnAmericanMegatrendsInternational,LLC.:bvr0.56:bd03/12/2024:br0.56:efr0.21:svnGPD:pnG1618-04:pvrVer.1.0:rvnGPD:rnG1618-04:rvrVer.1.0:cvnSU:ct10:cvrDefaultstring:skuDefaultSKU:
/sys/class/dmi/id/power:
cat: /sys/class/dmi/id/power: Is a directory
/sys/class/dmi/id/product_family:
Game machining Series 27
/sys/class/dmi/id/product_name:
G1618-04
/sys/class/dmi/id/product_serial:
Default string
/sys/class/dmi/id/product_sku:
Default SKU
/sys/class/dmi/id/product_uuid:
7da0a200-dcb3-11ee-b182-e30100372932
/sys/class/dmi/id/product_version:
Ver.1.0
/sys/class/dmi/id/subsystem:
cat: /sys/class/dmi/id/subsystem: Is a directory
/sys/class/dmi/id/sys_vendor:
GPD
/sys/class/dmi/id/uevent:
MODALIAS=dmi:bvnAmericanMegatrendsInternational,LLC.:bvr0.56:bd03/12/2024:br0.56:efr0.21:svnGPD:pnG1618-04:pvrVer.1.0:rvnGPD:rnG1618-04:rvrVer.1.0:cvnSU:ct10:cvrDefaultstring:skuDefaultSKU:
i hate the fact gpd did not update their board name for this
Seems like they just dropped in an 8840U, updated some microcode, and called it a day lol
your problem is 90% that you did some wirdness
sudo systemctl stop hhd@ and then hit tab
i think there are multiple services there
+ the debug mode
Done
did you have a root service?
hhd@root?
Nope, it was my username
indeed
@Kyle Gospo bazzite setup runs as the root user
if you disable that plus delete the configs of your user to start fresh you should be good
How do I delete the config?
rm -r ~/.config/hhd
then rebootOh yeah, sorry. Rebooting now.
you disabled hhd@root?
@antheas
I stopped hhd@[username]
no your user is fine
Solution
hhd@root needs to be disabled and stopped
if this is an old install it may explain @root running
no its latest
but we're definitely not enabling as root unless the account is root
bazzite-user-setup is run as the user
and passes "$USER" to the script
that script needs to check if its running as root
and not run as root
if it's running as root the user has majorly fucked up
like made a root account
or run it themselves
well multiple users have majorly fucked up
just make it exit if it runs as 0 imo
hmm
ok, I'll add a sanity check
Alright, I stopped and disabled hhd@root, cleared hhd's config, then rebooted. Seems like things are working now. Testing gyro now...
gyro might stop working after suspend
if it does please say so
Testing that now.
Yup, gyro stops working after resume
We have a workaround for that @Aru
i need to figure out how to fix it though
I use evdevhook2 to get gyro to work with [nintendont], btw.
Do I just have to reboot to make it work again?
you dont need anything to use it with nintendont
if you dont need steam input
the dualsense controller will work
you can rmmod and modprobe the bmi260 modules
GitHub
gpd-win-tricks/win4-gyro-suspend-fix at main · aarron-lee/gpd-win-t...
Info on running linux on GPD Win devices. Contribute to aarron-lee/gpd-win-tricks development by creating an account on GitHub.
Only tested on the 6800u and 7840u win 4
Done
I'm assuming it'll work on the 8840u win 4, but no one has tried
Shoot, I'll try it lol
Might require a reboot for it to start working
That worked! Looks like 8840U is pretty much the same as 7840U. Seems to make sense, the 8840U is almost identical to the 7840U.
I'll mark this as solved. Weird how that happened, not sure what was up with that.
Ill try to fix it soon by disabling the hrtimer before suspend
You guys are awesome, by the way. Thanks so much for your help ❤️
You're the reason gaming on Linux is great.
so basically the same bug is on all GPD Win 4 models. 🤔
at least it's easy to fix
glad to hear it worked, updated the readme with the 8840u for the gyro fix as well
Turns out win mini too
All bmi260 models
I'll have to think about how to hold inhibitor locks now
oh, the win mini too? interesting
i'll add that to the repo then
Yeah toast mentioned on the nix pull request
Would have been nice to have known beforehand
Have to add dbus to hhd
can you test for me if gyro works if you disable it before sleep on hhd?
sorry, meant to followup earlier. nope, disabling gyro in hhd before suspend, and re-enabling it on resume, didn't work
Saves a bit of work for me
yeah, i don't think it's an hhd issue