arnaught
arnaught
UBUniversal Blue
Created by arnaught on 12/23/2024 in #🛟bazzite-help
Can't wake with 8BitDo Controller
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

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/enable_wakeup.sh

[Install]
WantedBy=multi-user.target
[Unit]
Description=Enables wakeup for all usb devices

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/enable_wakeup.sh

[Install]
WantedBy=multi-user.target
The service runs this script. Save it as /usr/local/sbin/enable_wakeup.sh
#!/bin/sh
# Enables wakeup for all usb devices

for device in /sys/bus/usb/devices/usb*; do
echo enabled > "$device"/power/wakeup
done
#!/bin/sh
# Enables wakeup for all usb devices

for device in /sys/bus/usb/devices/usb*; do
echo enabled > "$device"/power/wakeup
done
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.
11 replies
UBUniversal Blue
Created by arnaught on 12/23/2024 in #🛟bazzite-help
Can't wake with 8BitDo Controller
Yes, mine is also waking up when the controller turns off.
11 replies
UBUniversal Blue
Created by arnaught on 12/23/2024 in #🛟bazzite-help
Can't wake with 8BitDo Controller
Yeah, that's probably the smart way to do it, but I haven't set that up yet
11 replies
UBUniversal Blue
Created by arnaught on 12/23/2024 in #🛟bazzite-help
Can't wake with 8BitDo Controller
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.
11 replies
UBUniversal Blue
Created by arnaught on 12/23/2024 in #🛟bazzite-help
Can't wake with 8BitDo Controller
Made some progress. I managed to get it to wake with this udev rule:
ACTION=="add|change", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="2dc8", ATTRS{idProduct}=="3106", RUN+="/bin/sh -c 'echo enabled > /sys/bus/usb/devices/usb1/power/wakeup'"
ACTION=="add|change", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="2dc8", ATTRS{idProduct}=="3106", RUN+="/bin/sh -c 'echo enabled > /sys/bus/usb/devices/usb1/power/wakeup'"
(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?
11 replies