Can't wake with 8BitDo Controller
I'm unable to wake the computer with an 8BitDo Ultimate C 2.4GHz controller. I tried adding a udev rule for the controller, but I still can't use the controller to wake the computer.
The udev rule I tried is:
Solution:Jump to solution
Here's the systemd service to get this working, even if the device is on at startup: Save this as
/etc/systemd/system/usb_wake.service
```
[Unit]
Description=Enables wakeup for all usb devices...8 Replies
Made some progress. I managed to get it to wake with this udev rule:
(https://askubuntu.com/a/874701)
However, now I'm having another problem. My udev rule doesn't seem to take effect by default. If I launch into game mode and put the computer to sleep, then the controller won't wake the system. However, if I go into desktop mode and run
sudo udevadm trigger
, then it will work, even after I switch back to game mode. Is there something I need to do to apply the rules on startup?Ask Ubuntu
Wake up from suspend using USB device
I was looking for hours, maybe more, for a solution and i just found it. I want to share it with everyone. This way it will be easier googling this problem to find the solution faster. So, just lik...
Wait, it does apply at startup, but not if my controller is on when the computer starts. So I can just powercycle my controller at least once after startup and it'll work.
have you considered a oneshot systemd service that triggers the udev rule at startup to avcount for devices already on at boot?
Yeah, that's probably the smart way to do it, but I haven't set that up yet
I've been trying to get this to work for a while and I've finally managed to get it to wake with the controller using that snippet @arnaught . Thanks!
There is one thing that is bugging me. The device will wake up when I turn on the controller, but the same happens when I turn off the controller. So let's say I want to pause gaming for a bit, I open Steam menu and select Power -> Sleep. At this point the Bazzite device goes into sleep but the controller is still on. If I hold the "8BitDo" button on the controller to turn it off then the Bazzite device will turn on again. Same happens if I let the controller auto turn off after the given time, or if I dock it (I have the Ultimate one w/ charging dock). Seems like a power-on or power-off of the controller triggers a wake.
Is the same happening on your end? Do you know if there's a way to prevent the Bazzite device waking up when the controller is turning off?
Yes, mine is also waking up when the controller turns off.
Solution
Here's the systemd service to get this working, even if the device is on at startup: Save this as
/etc/systemd/system/usb_wake.service
The service runs this script. Save it as /usr/local/sbin/enable_wakeup.sh
Enable the service with sudo systemctl enable --now usb_wake
.
This will enable wakeup on all USB root hubs (e.g. /sys/bus/usb/devices/usb1
). The udev rule solution is supposed to enable wakeup for a specific device/port (e.g. /sys/bus/usb/devices/1-1
), but this isn't supported by (?) the 8bitdo controller. There is no need for a udev rule; this should only need to run once on startup.
This will enable wakeup for all usb controllers/devices, not just the 8BitDo controller.
The reason that turning off the controller causes the computer to wake up is because the disconnected dongle of the 8BitDo Ultimate C shows up as a device. It appears as 8BitDo IDLE
in lsusb
, and has a product id of 3016
(opposed to the controller, which has a product id of 3106
). When you turn off the controller, the controller disconnects and 8BitDo IDLE
connects instead, causing the computer to wake up. Unsure if there's a way to prevent this.@arnaught Thanks! I did something similar. And you're right, the device does not expose a
power/wakeup
attribute so it doesn't support it out of the box. I was able to get it working if I enabled the wakeup for the whole usbc dock. But that came with other issues liek device turning on when plugged in the dock, turning on when controller is turned off and sometimes randomly waking up (one of the attached devices in the usbc dock might have sent a signal).
Today I managed to get the Bluetooth devices to wake up my Rog Ally X. It's very similar to how you enabled it for the 2.4 dongle. See my comment on this post: https://www.reddit.com/r/Bazzite/comments/1hnpzo1/comment/m48xld8/
I had to switch my 8BitDo in the Bluetooth mode (D-Input only) but so far games have worked the same. I can consistenly wake up my device via bluetooth (like undocking the controller or pressing the power on button). Once I put the device to sleep the controller immediately turns off so it doesn't trigger a "wake" again. A big bonus is that I've been able to wake up the device with other bluetooth controllers like JoyCons or mouse/keyboards. You can give it a try if your 8BitDo supports Bluetooth.