Description of problem: Joystick controller no longer functions with the latest RHEL4 Kernel Version-Release number of selected component (if applicable): kernel-2.6.9-34.EL onwards How reproducible: Plug joystick (CH Products Combatstick 568 USB) into USB port. System detects and loads the joystick module (Joydev). But the stick doesn't respond at all. Steps to Reproduce: 1.Using KDE, goto Control Center, then Peripherals, then Joystick. 2.Also tried, removing and reactivating the joydev module. And no change. 3. Actual results: The Joystick Name and Joystick device is listed. BUT, when you move the stick, or press any button, nothing responds. Expected results: When in Control Center (KDE), the X should move around when the joystick is moved, and the button numbers should show, when a button is pressed. Hence when running a game such as Unreal Tournament 2004, the joystick doesn't respond what so ever. Additional info: This all worked fine in the kernel-2.6.9-22*.EL kernels, back to the original one. The device worked fine with them all..
ok, i'm not really sure what change broke this...i'd like to do a binary search through the kernels between 22* 34* to figure it out, are you willing to try a number of kernels, so we can figure out what patch broke this? If so, what kernel do you need exactly, so i can make them avalible? it looks like you are using the UP i686 kernel. is that correct?
I have no problems in trying another kernel.. The kernel I use most is the i686_SMP one, as my system is a Dual Athlon MP2800+ system.. All I can say is that the joystick no longer responded after the 2.6.9-34.EL kernel update. The joystick is seen, but will not respond.. going back to 2.6.9-22.0.2.EL fixes it again..
ok, i've placed all the interim kernel builds between 22.0.2 and 34 at: http://people.redhat.com/~jbaron/bz193089/. I want to figure out between which two kernel builds this broke. So please start with 22.22. If that works then try say 26. Otherwise try 22.11. In that way you sshould be able to find kernel n such that n works and n+1 fails. make sense? Then, i think it will be easy to figure out which patch (since there aren't that many per build). thanks.
This may sounds like a lot of work but it should only require about 6 tries.
Ok, I'm downloading a couple of them now, and will let you know the stats of them shortly..
Ok, I've downloaded the following kernels:- kernel-smp-2.6.9-22.22.EL kernel-smp-2.6.9-22.26.EL kernel-smp-2.6.9-22.27.EL And the joystick controller fails with them all.. (ALL the modules for the joystick install fine without errors), and running "jstest /dev/js0" there's no joystick responses what so ever.. Rebooting into the "kernel-smp-2.6.9-22.0.2.EL" it works fine again.. OK, downloading 22.20 and see how that one goes.. (And going backwards)
Well, I went back to version 22.16 and it doesn't work.. I'll need to go back futher.. Here we go again...
OK, the conclusion of these kernels are that none in that list work. I've gone right back to 22.1 and that one doesn't work either... So the problem must go back even further... In all instances, I've checked that the driver (joydev) has loaded. And ran the "jstest /dev/js0" and check the joystick.. No response.. SO, it's back to 22.0.2 again for me..
ok, So the problem was introduced in 22.1. There are 3 changes in that kernel: * Mon Sep 26 2005 Jason Baron <jbaron> [2.6.9-22.1] -remove: fix for NX text/large-page interaction (Ingo Molnar) [163238] -update hangcheck-timer to 0.9.0 and add for ia64, ppc64 and s390 [167731] -fix usb memory sticks (Pete Zaitcev) [167032] The most likely culprit is the third one, imo. I'm attaching that patch here. Reversing, that patch from any kernels > 22.1, hopefully solves this...i can give you such a test kernel, or you can try reversing the patch as: "patch -p1 -R < foo.patch"
Created attachment 130247 [details] suspect patch patch to try reverting.
Now I see that I should've pressed usbmon into service in RHEL-4, because it's difficult to guess how exactly the joystick breaks with debugging tools available to us. Maybe it does not like when strings are collected before some critical initialization is done by HID level.
No, scratch the comment #11. The new get_string is located in the same place where old show_string was. It also checks for nonzero index. I'd like to see the /proc/bus/usb/devices and dmesg from a working kernel, and same for non-working kernel.
Created attachment 130333 [details] /proc/bus/usb/devices list for the Working 22.0.2 kernel
Created attachment 130334 [details] dmesg output for 22.0.2 working kernel I'll post the /proc/bus/usb/devices and dmesg outputs from the 22.1 kernel when I next boot into it. Sorry for adding these seperately, I have no idea how to attach them both at the same time..
Jason, I'm taking this. Obviously a regression...
dmesg looks perfect. May I get the one just like it for the failing case, please?
Created attachment 130440 [details] dmesg output for failing kernel 22.1 This is the dmesg output for the failing 22.1 kernel. I will also add the /proc/bus/usb/devices output as well..
Created attachment 130441 [details] /proc/bus/usb/devices output This is the requested output of /proc/bus/usb/devices when booted into the 22.1 kernel.
Created attachment 130442 [details] Blacklist patch This goes on top of 2.6.9-36.EL.
Here's the deal. The story is extremely fishy. Everything about the device works correctly, but it just does not send any reports (presumably). There's no way to theoretize further without some extensive debugging. So, I have no clue what exactly is wrong. Taking off the bisecting results, I can offer a blacklist patch, which is probably the safest thing to do in the context of RHEL 4.
So what your saying is, that it has nothing to do with the usb memory stick fix?? As I find it odd that no other usb device is effected, only the joystick device. (From what I can tell) .. Since I don't have the 2.6.9-36.EL kernel either, the patch is of no use to me.. I'm going to stick with the 2.6.9-22.0.2 kernel for now, as it works.. And wait until this problem is resolved before I upgrade the kernel again..
Dear Wolfgang, your message indicates that you know how to rebuild kernels ("since I don't have XXX, the patch is of no use"). So why don't you try to apply the patch first? It is perfectly localized and should work well with anything past 2.6.9-22.1.EL. I'm eagerly awaiting the results.
lol, I've never patched or rebuilt a 2.6.x kernel before. I have done it with the 2.4.x kernels over 2 years ago. But there are quite a few changes since I did it last. (With the exception of patching, as I've never done that yet..).. So I don't have any idea how or where to start.. Learning to keep the system running is a big enough learning curve, let alone rebuilding the kernel.. If you can point me in the right direction, I might give it a try.. When I have a chance..
Don't worry about it, I'll cut a branch and run a build.
Looks like I've got you stumped on this one.. Had no responses for a while. The 2.6.9-22.0.2.ELsmp release is still working fine so far. Any more regarding the 2.6.9-43 kernel? I'm seriously concidering going over to FC series. Where I beleive it's all working fine..
Correction: Looks like I've got you stumped on this one.. Had no responses for a while. The 2.6.9-22.0.2.ELsmp release is still working fine so far. Any more regarding the 2.6.9-34 kernel? I'm seriously concidering going over to FC series. Where I beleive it's all working fine..
I was cleaning up old builds and found that apparently I have actually built a test for this bug, but did not announce it: http://people.redhat.com/zaitcev/ftp/193089/ This looks like a forgotten bug. Not good.
Removing the test to save space, closing the old bug.