If you’re using an Xbox Wireless Adapter on Bazzite (Linux), you’ve likely faced this annoying problem: after boot or suspend, the adapter won’t work properly unless you physically replug it. For me, this was frustrating, especially since I run an HTPC in my living room where I want my Xbox controller ready to go for couch co-op sessions — without fiddling around under shelves or behind my PC.
Also, I rely on the dongle because it lets me plug headphones directly into the Xbox controller, something Bluetooth can’t do.
The actual fix: Enable ErP Ready (S4+S5) in BIOS
After lots of trial and error (more on that later), the ultimate fix was surprisingly simple: enabling ErP Ready (S4+S5) in my BIOS.
Here’s what I did:
On my ASUS B650I-E motherboard, I found the option under:
Advanced → APM Configuration → ErP Ready → Enable (S4+S5)
Once enabled, my Xbox Wireless Adapter started working perfectly:
- The dongle powers up cleanly on every boot and after suspend,
- My Xbox controller connects automatically without needing to replug the dongle or run custom reset scripts,
- Even better, I can still wake the HTPC with the Xbox Series controller — surprisingly, this still works even though ErP cuts USB power afterward, requiring me to just power the controller on again after wake.
One small quirk:
After waking the system via controller, the controller automatically turns itself off, but I just need to power the controller back on once, and everything works flawlessly after that.
Why this fix works (as far as I understand)
As far as I understand it, the issue seems to be related to how USB power delivery and device resets work differently between Linux and Windows.
On Linux, many motherboards continue supplying standby power to USB ports during reboots or when waking up from suspend. The Xbox Wireless Adapter seems to stay in a weird “half-awake” state — reconnecting to the controller via RF, but failing to fully reset its input layer, so no actual inputs get passed to the system.
By enabling ErP Ready (S4+S5) in the BIOS, the motherboard cuts USB power completely during shutdown and suspend. This forces the Xbox dongle to fully power cycle, reboot its firmware properly, and show up in Linux as if it was freshly plugged in — solving the issue.
On Windows, the official Xbox Accessories drivers from Microsoft handle this automatically. The Windows driver performs a clean reset or firmware reinitialization for the dongle after suspend or reboot, without needing a hardware-level power cycle. That’s likely why this issue mostly affects Linux users, where xone or other drivers don’t fully replicate Microsoft’s proprietary reset logic.
Again, I’m not a deep USB expert, but based on my testing, this seems to be the reason why the ErP Ready BIOS fix works so well on Linux.
The rabbit hole of failed experiments
Before stumbling on the ErP fix, I actually went deep into Linux-land trying to solve this with various hacks.
Here’s what I tried (and mostly failed at):
- Wrote a custom reset script that unbinds and rebinds the dongle via
/sys/bus/usb/drivers/usb/unbind
andusbreset
- Created systemd services to run the script on boot and after suspend
- Tried full USB controller resets via PCI unbind/bind
- Experimented with udevadm triggers and USB power cycling
- Even looked into “brutal” tricks like forcing Linux to “remove” the dongle from the device tree and re-add it
The result?
- These helped somewhat at boot,
- But never fully solved the suspend/resume issue,
- The controller would reconnect but never pass input events after waking up — until the ErP Ready fix.
My takeaway
I’m not a Linux pro. This was my first time really messing with systemd services and USB resets from the terminal. It was a learning experience, and I genuinely didn’t expect such a simple BIOS setting to solve it all.
Curious if it works for you?
If you’re running Bazzite (Linux) (or another SteamOS-like system), could you try enabling ErP Ready (S4+S5) in your BIOS and let me know? I’m really curious if this fix works for others too.
Leave a Reply