Bug 1220909 - No game controllers detected
Summary: No game controllers detected
Status: RESOLVED FIXED
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Kernel (show other bugs)
Version: Current
Hardware: x86-64 openSUSE Tumbleweed
: P5 - None : Major (vote)
Target Milestone: ---
Assignee: openSUSE Kernel Bugs
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-03-05 04:34 UTC by Ryan Stucki
Modified: 2024-03-11 14:27 UTC (History)
2 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
Output of lsusb -v (82.00 KB, text/plain)
2024-03-06 02:23 UTC, Ryan Stucki
Details
Output of dmesg (107.80 KB, text/plain)
2024-03-06 02:24 UTC, Ryan Stucki
Details
hwinfo output (2.64 MB, text/plain)
2024-03-06 02:27 UTC, Ryan Stucki
Details
dmesg for kernel 6.7.4 (105.13 KB, text/plain)
2024-03-07 05:27 UTC, Ryan Stucki
Details
hwinfo for kernel 6.7.4 (2.63 MB, text/plain)
2024-03-07 05:27 UTC, Ryan Stucki
Details
lsusb for kernel 6.7.4 (71.87 KB, text/plain)
2024-03-07 05:28 UTC, Ryan Stucki
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ryan Stucki 2024-03-05 04:34:29 UTC
Problem: Game controllers are no longer detected in latest build(s).

Steps to Reproduce:
Plug in a game controller

Expected Results:
Game controller is detected, and shows up as a device.

Actual Results:
Controllers show up in lsusb command results and are assigned a device ID, but are not recognized as a controller.
In KDE "System Settings" under "Game Controller", no device shows up, and it states that no entries are found in /dev/js[0-4] or /dev/input/js[0-4].
Have tried 3 different types of controller (Steam Controller, Xbox360, and 8bitdo  controller), all of which previously worked, but are not not being detected properly.

How often does this happen:
Always, for recent builds. Worked flawlessly previously, but unsure which build was the last one that worked...
Comment 1 Takashi Iwai 2024-03-05 08:04:00 UTC
It's essential to know the regression range.  Could you try the older TW kernels in OBS history repo and see whether the game controller works with them?
  http://download.opensuse.org/history/

If all those still show the problem, you can try my kernel archives, e.g. found in OBS home:tiwai:kernel:6.6, home:tiwai:kernel:6.5, etc repos
  http://download.opensuse.org/repositories/home:/tiwai:/kernel:/6.6/standard/
Note that the latter repos are unofficial builds, and you'd need to disable Secure Boot if it's enabled.

In anyway, please give the dmesg output from the latest TW kernel, as well as the output of hwinfo, and the output "lsusb -v" (run as root).
Comment 2 Ryan Stucki 2024-03-06 02:23:08 UTC
Created attachment 873235 [details]
Output of lsusb -v
Comment 3 Ryan Stucki 2024-03-06 02:24:19 UTC
Created attachment 873236 [details]
Output of dmesg
Comment 4 Ryan Stucki 2024-03-06 02:27:36 UTC
Created attachment 873237 [details]
hwinfo output
Comment 5 Ryan Stucki 2024-03-06 03:41:01 UTC
(In reply to Takashi Iwai from comment #1)
> It's essential to know the regression range.  Could you try the older TW
> kernels in OBS history repo and see whether the game controller works with
> them?
>   http://download.opensuse.org/history/
> 
> If all those still show the problem, you can try my kernel archives, e.g.
> found in OBS home:tiwai:kernel:6.6, home:tiwai:kernel:6.5, etc repos
>  
> http://download.opensuse.org/repositories/home:/tiwai:/kernel:/6.6/standard/
> Note that the latter repos are unofficial builds, and you'd need to disable
> Secure Boot if it's enabled.
> 
> In anyway, please give the dmesg output from the latest TW kernel, as well
> as the output of hwinfo, and the output "lsusb -v" (run as root).

Went back to a version in the history with kernel 6.7.4-1.1-x86_64, and the Steam controller started working again.  The Xbox controller did not...

I've uploaded the requested outputs from the latest version.  Thank you!
Comment 6 Takashi Iwai 2024-03-06 08:21:36 UTC
(In reply to Ryan Stucki from comment #5)
> (In reply to Takashi Iwai from comment #1)
> > It's essential to know the regression range.  Could you try the older TW
> > kernels in OBS history repo and see whether the game controller works with
> > them?
> >   http://download.opensuse.org/history/
> > 
> > If all those still show the problem, you can try my kernel archives, e.g.
> > found in OBS home:tiwai:kernel:6.6, home:tiwai:kernel:6.5, etc repos
> >  
> > http://download.opensuse.org/repositories/home:/tiwai:/kernel:/6.6/standard/
> > Note that the latter repos are unofficial builds, and you'd need to disable
> > Secure Boot if it's enabled.
> > 
> > In anyway, please give the dmesg output from the latest TW kernel, as well
> > as the output of hwinfo, and the output "lsusb -v" (run as root).
> 
> Went back to a version in the history with kernel 6.7.4-1.1-x86_64, and the
> Steam controller started working again.

Good to know!  Did you test 6.7.5 kernel?
We need to narrow down the regression range as much as possible, so it'd be helpful to know whether it worked or not.

I see error messages like below:

[ 4317.422159] hid-steam 0003:28DE:1142.0002: steam_send_report: error -110 (ae 15 01)

and this can be related with your problem, as it seems.

>  The Xbox controller did not...

Did Xbox controller work with the older kernels?  You can try 6.6.x kernel from my OBS repo mentioned above, for example.

(Also, when you try more different kernels, it's better to increase the number of installable kernels.  Edit /etc/zypp/zypp.conf, and add more entries to multiversion.kernels, e.g.
  multiversion.kernels = latest,latest-1,latest-2,latest-3,running
)

> I've uploaded the requested outputs from the latest version.  Thank you!

Could you upload the dmesg and hwinfo outputs from the working case, too?
Comment 7 Ryan Stucki 2024-03-07 05:27:09 UTC
Created attachment 873290 [details]
dmesg for kernel 6.7.4
Comment 8 Ryan Stucki 2024-03-07 05:27:35 UTC
Created attachment 873291 [details]
hwinfo for kernel 6.7.4
Comment 9 Ryan Stucki 2024-03-07 05:28:00 UTC
Created attachment 873292 [details]
lsusb for kernel 6.7.4
Comment 10 Ryan Stucki 2024-03-07 05:29:15 UTC
(In reply to Takashi Iwai from comment #6)
> (In reply to Ryan Stucki from comment #5)
> > (In reply to Takashi Iwai from comment #1)
> > > It's essential to know the regression range.  Could you try the older TW
> > > kernels in OBS history repo and see whether the game controller works with
> > > them?
> > >   http://download.opensuse.org/history/
> > > 
> > > If all those still show the problem, you can try my kernel archives, e.g.
> > > found in OBS home:tiwai:kernel:6.6, home:tiwai:kernel:6.5, etc repos
> > >  
> > > http://download.opensuse.org/repositories/home:/tiwai:/kernel:/6.6/standard/
> > > Note that the latter repos are unofficial builds, and you'd need to disable
> > > Secure Boot if it's enabled.
> > > 
> > > In anyway, please give the dmesg output from the latest TW kernel, as well
> > > as the output of hwinfo, and the output "lsusb -v" (run as root).
> > 
> > Went back to a version in the history with kernel 6.7.4-1.1-x86_64, and the
> > Steam controller started working again.
> 
> Good to know!  Did you test 6.7.5 kernel?
> We need to narrow down the regression range as much as possible, so it'd be
> helpful to know whether it worked or not.
> 
> I see error messages like below:
> 
> [ 4317.422159] hid-steam 0003:28DE:1142.0002: steam_send_report: error -110
> (ae 15 01)
> 
> and this can be related with your problem, as it seems.
> 
> >  The Xbox controller did not...
> 
> Did Xbox controller work with the older kernels?  You can try 6.6.x kernel
> from my OBS repo mentioned above, for example.
> 
> (Also, when you try more different kernels, it's better to increase the
> number of installable kernels.  Edit /etc/zypp/zypp.conf, and add more
> entries to multiversion.kernels, e.g.
>   multiversion.kernels = latest,latest-1,latest-2,latest-3,running
> )
> 
> > I've uploaded the requested outputs from the latest version.  Thank you!
> 
> Could you upload the dmesg and hwinfo outputs from the working case, too?

No, the Xbox controller did not work with the older kernels I tried. I haven't been able to try 6.6.x yet.

I've uploaded the requested outputs for the kernel that works with the Steam controller
Comment 11 Ryan Stucki 2024-03-10 21:16:44 UTC
More info:
Can't get the Xbox360 controller to work with ANY of the old kernels (but I did test it on other systems, hardware seems fine.)

The Steam Controller DID start working briefly on the latest build after rebooting. It is recognized/works as /dev/input/js0, but then suddenly "disconnects" after playing a game for a few minutes.

I kept dmesg -w open while turning it on until time of disconnection:
[ 3117.751031] hid-steam 0003:28DE:1142.0014: Steam Controller 'XXXXXXXXXX' connected
[ 3117.798059] input: Microsoft X-Box 360 pad 0 as /devices/virtual/input/input43
[ 3125.019944] hid-steam 0003:28DE:1142.0014: Steam Controller 'XXXXXXXXXX' disconnected

It isn't recognized again until a reboot, after which the above (recognition and then sudden disconnect) can be replicated.
Comment 12 Ryan Stucki 2024-03-10 23:04:05 UTC
I figured it out...

The Xbox driver module is "xpad" (from what I can tell)
The output of "lsmod | grep xpad" showed no results.

Running "modprobe xpad" fixed all issues.  Xbox controller now works, and Steam controller no longer disconnects.  (It seems the Steam controller is detected as an Xbox controller in Linux, so lack of Xbox driver was causing the issues.)

digging in further, there was a blacklist file in /etc/modprobe.d called "xone-blacklist.conf"  This file blacklisted the "xpad" driver.

I commented out the line blacklisting the "xpad" driver, and everything works well from boot now.

I have no idea how/when the blacklist file was created.  I'm guessing a recent update switched to the "xone" driver instead of xpad, but xone doesn't seem to be working...  ("lsmod | grep xone" shows no results as well..., and "modprobe xone" spits back an error.)

WORKAROUND: "modprobe xpad"
Comment 13 Takashi Iwai 2024-03-11 08:19:52 UTC
OK, then basically we've done.

The only remaining question is how the blacklist is created.
What shows "rpm -qf /etc/modprobe.d/xone-blacklist.conf" ?
If it doesn't belong to any package, it means it was created manually, hence no way to fix from the distro side.
Comment 14 Takashi Iwai 2024-03-11 11:52:12 UTC
Oh, I forgot that the original problem about the Steam controller is still not fixed.

Could you test 6.7.5 kernel in OBS TW history repo?

Also, check with the kernel in OBS Kernel:stable repo -- which now contains 6.8.0 kernel, too.  We already moved from 6.7.x to 6.8.x, so the further debugging will be done on 6.8.x, if any.
Comment 15 Ryan Stucki 2024-03-11 14:14:51 UTC
(In reply to Takashi Iwai from comment #14)
> Oh, I forgot that the original problem about the Steam controller is still
> not fixed.
> 
> Could you test 6.7.5 kernel in OBS TW history repo?
> 
> Also, check with the kernel in OBS Kernel:stable repo -- which now contains
> 6.8.0 kernel, too.  We already moved from 6.7.x to 6.8.x, so the further
> debugging will be done on 6.8.x, if any.

It is fixed.  Fixing the Xbox driver fixed the Steam controller as well.  (I believe the Steam controller uses the Xbox driver).

From previous question:
Output of "rpm -qf /etc/modprobe.d/xone-blacklist.conf" is:

file /etc/modprobe.d/xone-blacklist.conf is not owned by any package
Comment 16 Takashi Iwai 2024-03-11 14:27:26 UTC
OK, then let's close :)