Comments (3)
As long as Steam or Retroarch are running, it's fine. catting its /dev/input entry works, too, but that's just too ugly for words. The problem doesn't occur with xboxdrv, either.
I found this issue here with this controller from the exact same symptoms, the constant disconnect/reconnect unless something was accessing it somehow.
(Switch mode is working in the interim)
from xpad.
Not sure if it helps.. but i wrote a script to avoid keeping steam open
https://github.com/b1337xyz/scripts/blob/main/python/8bitdo_attach.py
from xpad.
I'm also seeing the exact same issue on an Ayaneo Kun (a handheld device). The integrated controller identifies itself as a Xbox360 controller. The USB device of the controller quickly performs a reset, if one should not open the corresponding event device within a second or so. Looking at the kernel level opening the event device trigger periodic USB transfers to and from the device (to query button state, etc.). It seems like that these transfer make the watchdog in the controller firmware happy.
I have written my own set of workaround for this problem. You can find stuff here: https://github.com/tobiasjakobi/ayaneo_kun/tree/master/controller
Consists of an UDev rule that triggers a systemd unit when the device appears. The unit itself just launches a small application that opens the event device and then waits for a Unix signal (SIGTERM, issued by systemd when the unit stops).
This is clearly a workaround, and IMHO a fix in the kernel driver would be much more appropriate. However I don't know what implications it would have to talk to the USB device regardless if the evdev is open or not. At least from a powersaving perspective it's probably not a good idea.
In particular I don't really get this decision to implement this watchdog in the firmware in the first place. Why would you perform a USB reset when the watchdog hits? This just results in the device dropping from the bus, only to come back a little while later. And this way you never get any powersaving at all, since it's connect, probe, disconnect, connect, probe, ad infinitum.
The only way I would get the controller to sleep is to manually disable the bus port which it is connected to. Then you wait for some minutes (I'm not sure how many exactly), power up the bus port again and then device is quiet (it doesn't appear on the bus anymore). Pressing a button reactivates it again.
EDIT: Forgot to mention that I also saw a report about this issue on the LKML: https://lore.kernel.org/linux-input/[email protected]/T/
from xpad.
Related Issues (20)
- not a mtp device -- Using degraded feature set UDP instead of UDP+EDNS0 for DNS server xxx.xx.xxx.x
- xpad return error -19 in the 8bitDo controller HOT 9
- Upstream question HOT 1
- GameSir T4 Kaleid Support? HOT 1
- 8BitDo Pro 2 (wired) input not properly detected if plugged in at OS boot. HOT 1
- cannot detect multiple wired xbox 360 controllers
- Module not auto update after new kernel install? HOT 3
- Error! Bad return status for module build.... /tools/bpf/resolve_btfids/resolve_btfids: No such file or directory
- Fantech WGP13 isn't recognized as an xbox controller
- (support) Gameshark Green Ghost gamepad
- Problem with Fantech GP13 controller.
- Extra buttons support for Flydigi Vader 3 Pro
- PDP Wired Controller misidentified as an arcade stick
- Support Request: HyperX Clutch HOT 1
- Extra Button Support Black Shark Green Ghost Controller HOT 1
- GameSir T4 Cyclone support HOT 3
- 8Bitdo Ultimate Bluetooth Controller connected via 2.4 GHz dongle turns off almost instantly after connecting if it's not immediately actively used HOT 3
- Is there a way for xpad to achieve smarter device detection?
- [BUG] Unable to Open Notes in Different Workspaces
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from xpad.