| Summary: | Suspend forgets second joystick | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Wolfram Wagner <wolfram> |
| Component: | joystick | Assignee: | Than Ngo <than> |
| Status: | CLOSED WONTFIX | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 16 | CC: | than |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2013-02-13 23:25:56 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
I have continued my analysis and found that today, coldstart exchanges the sequence of the devices so the Saitek Quadrant is mapped as js0 and the joystick as js1... Today I could not reproduce the disappearing joystick. I wonder if I should be happy or if it is only a sporadic issue. My core problem is that my analoge joystick requires manual calibration and I have a script in place that saves and restore these settings at system start. This script relies on the js device numbers and fails if one is missing or if the joysticks are exchanged. Flightgear is using the names of the devices to map them to features. So there is no problem. I guess I will have to add my own udev rules to create a specific name for the analog joystick, right? I wonder if a normal end user can be asked to do this... There should be a better solution to this issue. For other users running into this problem:
I have created a udev rule file:
/etc/udev/rules.d/11-joystick-symlinks.rules
KERNEL=="js[0-9]*", ATTRS{idVendor}=="0583", ATTRS{idProduct}=="688f", SYMLINK+="input/js_js"
KERNEL=="js[0-9]*", ATTRS{idVendor}=="06a3", ATTRS{idProduct}=="0c2d", SYMLINK+="input/js_quadrant0"
This file creates an additional symlink with a unique name.
You will have do correct the idVendor and idProduct code to match your devices. Use lsusb to retrieve them...
The callibration is done in a init script, basically by the command:
/usr/bin/jscal -p /dev/input/js_js > /etc/joystick.cal
to save the calibration into a file. And the command:
source /etc/joystick.cal
to load it again.
In the file appears your current calibration like this:
jscal -s 6,1,0,98,98,5711218,10526559,1,0,91,91,6242495,8947575,1,0,68,68,8521500,9099229,1,0,70,70,8134160,8800894,1,0,0,0,536854528,536854528,1,0,0,0,536854528,536854528 /dev/input/js_js
You see, the new symlink is being used. So my troubles are gone, although, the system should do this for me.
Also, I wonder, if my system will forget the joysticks again. If my problem is gone, I come back and tell you.
Mixing them up is no trouble for me anymore.
In between I found out, that the system "forgets" only the axis like levers of my quadrant. I had flightgear running while I suspended my computer. After waking of, flightgear did continue as usual, but the link to the three engine control levers were gone. Even in js_demo there was no change of values anymore. Only the buttons did work still. Now I wonder, if this might to do with the running application. Maybe the kernel does not perform the automatic calibration in case the device is in use? Or something like that... Pausing flightgear for hours causes no problem. And I did several suspends without running flightgear successfully. I will try, if this happends everytime. The problem still persists. js_demo before suspend: works. Suspend, wake up js_demo: Btns Ax:0 Ax:1 Ax:2 0000 -1.0 -1.0 -1.0 The buttons are still recognized, but not the levers. Plugout and plugin the quadrant helps to heal it for the moment. This message is a reminder that Fedora 16 is nearing its end of life. Approximately 4 (four) weeks from now Fedora will stop maintaining and issuing updates for Fedora 16. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as WONTFIX if it remains open with a Fedora 'version' of '16'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version prior to Fedora 16's end of life. Bug Reporter: Thank you for reporting this issue and we are sorry that we may not be able to fix it before Fedora 16 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora, you are encouraged to click on "Clone This Bug" and open it against that version of Fedora. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete. The process we are following is described here: http://fedoraproject.org/wiki/BugZappers/HouseKeeping Fedora 16 changed to end-of-life (EOL) status on 2013-02-12. Fedora 16 is no longer maintained, which means that it will not receive any further security or bug fix updates. As a result we are closing this bug. If you can reproduce this bug against a currently maintained version of Fedora please feel free to reopen this bug against that version. Thank you for reporting this bug and we are sorry it could not be fixed. |
Description of problem: I am running a fully patched 3.2.2-1.fc16.x86_64 system. I have two joysticks, a traditional and a flight sim quadrant. One usb 1.0 and one usb 2.0 If I shutdown/restart the system completely, both joysticks are recognized and appear in /dev/input/ as js0 and js1. If I suspend the computer and wake it up, only the first joystick appears as js0, the second requires a re-plugin to appear. Another maybe-hint: At first I had both plugged in beside each other. In that case the sequence of the joysticks changed frequently (js0 <=> js1 ). Now I have one joystick (the quadrant/usb 2.0) plugged in behind the machine. Now the quadrant disappears... Please tell me which information you need to drill down to that issue! lsusb -v Joystick1: Bus 006 Device 002: ID 0583:688f Padix Co., Ltd (Rockfire) QF-688uv Windstorm Pro Joystick Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.00 bDeviceClass 3 Human Interface Device bDeviceSubClass 0 No Subclass bDeviceProtocol 0 None bMaxPacketSize0 8 idVendor 0x0583 Padix Co., Ltd (Rockfire) idProduct 0x688f QF-688uv Windstorm Pro Joystick bcdDevice 1.20 iManufacturer 1 Padix Co. Ltd. iProduct 2 USB, Vibration 3D Joystick iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 34 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 350mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 No Subclass bInterfaceProtocol 0 None iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.00 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 105 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0006 1x 6 bytes bInterval 10 Device Status: 0x0000 (Bus Powered) Joystick 2 Bus 004 Device 042: ID 06a3:0c2d Saitek PLC Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x06a3 Saitek PLC idProduct 0x0c2d bcdDevice 2.00 iManufacturer 1 Saitek iProduct 2 Saitek Pro Flight Quadrant iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 34 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 No Subclass bInterfaceProtocol 0 None iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.00 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 51 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0005 1x 5 bytes bInterval 10 Device Status: 0x0000 (Bus Powered) dmesg shows nothing about the quadrant after wakeup. re-plugin brings: usb 4-3: USB disconnect, device number 41 [] usb 4-3: new full-speed USB device number 42 using ohci_hcd [] usb 4-3: New USB device found, idVendor=06a3, idProduct=0c2d [] usb 4-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ usb 4-3: Product: Saitek Pro Flight Quadrant [] usb 4-3: Manufacturer: Saitek [] input: Saitek Saitek Pro Flight Quadrant as /devices/pci0000:00/0000:00:12.1/usb4/4-3/4-3:1.0/input/input65 [] generic-usb 0003:06A3:0C2D.0037: input,hidraw6: USB HID v1.00 Joystick [Saitek Saitek Pro Flight Quadrant] on usb-0000:00:12.1-3/input0 I help if I can...