recognizes the joystick, but not the correct model. not working

Bug #448446 reported by Joaquin
22
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Dasher
Invalid
Undecided
Unassigned
Nominated for Trunk by Joaquin
Linux
Confirmed
Medium
joystick (Ubuntu)
Fix Released
Undecided
Unassigned
Nominated for Karmic by Joaquin

Bug Description

Binary package hint: joystick

recognizes the joystick, but not the correct model. not working. my joystick is a Techsolo TG-30 and Ubuntu recognizes it as a ACRUX USB DEVICE / JOYSTICK and I can not use

ProblemType: Bug
Architecture: i386
Date: Sun Oct 11 05:45:22 2009
DistroRelease: Ubuntu 9.10
NonfreeKernelModules: nvidia
Package: joystick 20051019-5ubuntu1
ProcEnviron:
 PATH=(custom, no user)
 LANG=es_ES.UTF-8
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 2.6.31-13.43-generic
SourcePackage: joystick
Uname: Linux 2.6.31-13-generic i686

Revision history for this message
Joaquin (jknvv13) wrote :
Revision history for this message
Stephen Kitt (steve-sk2) wrote :

Hi,

Could you show the output of the lsusb command? It's quite likely that your joystick, sold under one brand, actually identifies itself as something else; that shouldn't prevent it from working.

Does the joystick work? That is, have you tried it in a game or some other joystick-using software?

Thanks in advance,

Stephen

Revision history for this message
Joaquin (jknvv13) wrote : Re: [Bug 448446] Re: recognizes the joystick, but not the correct model. not working

Hello, I managed to work the joystick running the application while
connecting the joystick.
But it's hard.
I need a daemon that detected as "/dev/input/js0" run the command "jstest
--normal / dev/input/js0" this is how it works.
Thanks

Revision history for this message
Stephen Kitt (steve-sk2) wrote :

If I understand correctly, if you simply connect your joystick, it doesn't work in games etc.? But if you connect your joystick, run "jstest --normal /dev/input/js0" it starts working in other applications? Do the other applications work *while* you're running jstest, or do you quit jstest completely before running them?

I'd like to make absolutely sure because jstest doesn't set the joystick up at all, it simply reports the values given by the joystick, so if running it is somehow causing your joystick to work where it didn't before then something else is going on.

Could you provide the output of "sudo lsinput" (in the input-utils package) and "ls /dev/input/"?

Thanks in advance,

Stephen

Revision history for this message
Joaquin (jknvv13) wrote :

>
> lsinput

/dev/input/event0
   bustype : BUS_HOST
   vendor : 0x0
   product : 0x2
   version : 0
   name : "Power Button (FF)"
   phys : "LNXPWRBN/button/input0"
   bits ev : EV_SYN EV_KEY

/dev/input/event1
   bustype : BUS_HOST
   vendor : 0x0
   product : 0x1
   version : 0
   name : "Power Button (CM)"
   phys : "PNP0C0C/button/input0"
   bits ev : EV_SYN EV_KEY

/dev/input/event2
   bustype : BUS_ADB
   vendor : 0x1
   product : 0x1
   version : 256
   name : "Macintosh mouse button emulation"
   bits ev : EV_SYN EV_KEY EV_REL

/dev/input/event3
   bustype : BUS_I8042
   vendor : 0x1
   product : 0x1
   version : 43841
   name : "AT Translated Set 2 keyboard"
   phys : "isa0060/serio0/input0"
   bits ev : EV_SYN EV_KEY EV_MSC EV_LED EV_REP

/dev/input/event4
   bustype : BUS_ISA
   vendor : 0x1f
   product : 0x1
   version : 256
   name : "PC Speaker"
   phys : "isa0061/input0"
   bits ev : EV_SYN EV_SND

/dev/input/event5
   bustype : BUS_USB
   vendor : 0x1a34
   product : 0x802
   version : 256
   name : "ACRUX USB GAMEPAD 8116"
   phys : "usb-0000:00:04.0-1/input0"
   uniq : ""
   bits ev : EV_SYN EV_KEY EV_ABS EV_MSC

/dev/input/event6
   bustype : BUS_I8042
   vendor : 0x2
   product : 0x5
   version : 0
   name : "ImPS/2 Generic Wheel Mouse"
   phys : "isa0060/serio1/input0"
   bits ev : EV_SYN EV_KEY EV_REL

>
> ls /dev/input/
>

joakin@joakin-desktop:~$ ls /dev/input
by-id event0 event2 event4 event6 mice mouse1
by-path event1 event3 event5 js0 mouse0 uinput
joakin@joakin-desktop:~$

Thanks

Revision history for this message
Joaquin (jknvv13) wrote :

Sorry for the Bad English, but I'm spanish and I only have got 15 years old.

If I conect the joystick when I run jstest --normal /dev/input/js0 (on a
terminal) it works on any game that supports joystick.
I need a daemon for pay attention to /dev/input/js0 when it appears, the
dameon lauches "jstest --normal /dev/input/js0"
The joystick have a light on a button, when the joystick works, it is turned
on, but when the joystick doesn't works the light is turned off.
I don't understand correctly the how's the joystick drivers (only the
drivers), but the command "jstest --normal /dev/input/js0" runned when
connects the joystick actives it.
I have this shortcut to launch "jstest --normal /dev/input/js0" on my
desktop and to connect my joystick i'm pressing several times ENTER on the
shorcut (because jstest not run without a joystick) meanwhile I'm connecting
the joystick.

I tested my joystick with:
- Neverball & Neverputt
- Frets On Fire
-Mupen64 Plus (Nintendo 64 emulator)
-Some SDL Games (I don't remember the names)
-Egoboo
-qjoypad (an UI to the joy2key command[it works on all apps, like moovida
media center, vlc, the gnome desktop, firefox...])
-Caster Demo
A lot of games/apps

And it works perfectly, but It's hard to connect and at the same time
pressing ENTER to run "jstest --normal /dev/input/js0"

I need a daemon, simply as "joyd, joystickd, (gnome)-joystick-daemon"

Please If doesn't a hard work, make it.

PostData: I send 2 videos, the first it's recorded with a mobile, but it's
very clearly and the second with gtk-recordmydesktop and gedit to see
instructions (you need 7zip to uncompress)

A lot of Thanks

Joaquín Vacas Verísimo

Revision history for this message
Joaquin (jknvv13) wrote :

Hello, I need the patch for this problem?
But, I don't receive emails from November
of Stephen Kitt

Revision history for this message
Stephen Kitt (steve-sk2) wrote :

Hi,

Sorry for the delay. I hadn't forgotten your problem though; it occurred to me that it may be related to USB auto-suspend. Could you try the following?

Connect your joystick, but don't run jstest or anything else. Type
        lsusb
and determine the bus and device number for your joystick (drop the zeroes, so for instance "Bus 001 Device 003" is bus 1 device 3). Next type
        cat /sys/bus/usb/devices/{bus}-{device}/power/autosuspend
and
        cat /sys/bus/usb/devices/{bus}-{device}/power/level
replacing {bus} and {device} as appropriate (so with bus 1 device 3 as above it becomes .../usb/devices/1-3/power/...).

Thanks,

Stephen

Revision history for this message
Joaquin (jknvv13) wrote :

When I run "cat /sys/bus/usb/devices/2-5:1.0/power/autosuspend"
cat syas that this doesn't exists

and the same when I run "cat /sys/bus/usb/devices/2-5:1.0/power/level"

I send a screenshot ofgnome-device-manager that shows an important
information!!!

I don't see this before this morning

Thanks a lot!

Revision history for this message
Stephen Kitt (steve-sk2) wrote :

Nice find, the insufficient power would explain why the joystick disappears! The output of
        sudo lsusb -vv
should help determine what's going on...

Revision history for this message
Joaquin (jknvv13) wrote :
  • lsusb.txt Edit (19.7 KiB, text/plain; charset=US-ASCII; name="lsusb.txt")

The output of lsusb -vv is too long, I send a text file on the e-mail

Revision history for this message
Stephen Kitt (steve-sk2) wrote :

OK, it should be possible to override the protection (the gamepad claims to require 350mA, which your USB port should be able to supply unless you're using an unpowered hub). When you connect your gamepad, after a couple of seconds run
        dmesg | tail -n 25
This should show a message such as
        usb 2-5: rejected 1 configuration due to insufficient available bus power
Take the last such message and run
        echo -n 1 | tee /sys/bus/usb/devices/2-5/bConfigurationValue
to force the device to be configured anyway... (Match the 2-5 in the command with the value in the dmesg message.)

Let me know if that helps, it would be possible to fix the problem permanently with a udev rule.

Revision history for this message
Joaquin (jknvv13) wrote :

dmesg | tail -n 25 = dmesg_tail.txt
the output doesn't is " rejected 1 configuration due to insufficient
available bus power"
when I run echo -n 1 | tee /sys/bus/usb/devices/2-8/bConigurationValue
the gamepad continues turned off, I tryed to disconnect and connect it again
but happens the same!

I need to create, for example a daemon that run "jstest --normal
/dev/input/js0" on a tty terminal (hide) when a gamepad connected

I don't understand why when I run "jstest --norm..." the gamepad works, I
think is the joystick driver, because in windows the gamepads integrates on
the system, to the control panel

Revision history for this message
Joaquin (jknvv13) wrote :

Ah! When I run "echo -n 1 | tee /sys/bus/usb/devices/2-8/bConigurationValue"
the gamepad's led turns on and at the moment it turns off!

Revision history for this message
Stephen Kitt (steve-sk2) wrote :

I've adapted jstest to simply loop while reading the joystick, which is what jstest --normal does. I'm attaching the source here; simply build it using
        gcc -O2 jskeepalive.c -o jskeepalive
then run it as follows:
        ./jskeepalive /dev/input/js0

If that fixes your joystick, I'll add it to the package along with an explanation. If you'd like me to provide udev rules, let me know!

Revision history for this message
Stephen Kitt (steve-sk2) wrote :

To add udev rules, could you post the output of
        /sbin/udevadm info -a -p $(/sbin/udevadm info -q path -n /dev/input/js0)
(with the joystick connected)?

Thanks!

Revision history for this message
Joaquin (jknvv13) wrote :

No, this program don't fixes the problem, I need to conect the joystick when
I run "./jskeepalive /dev/input/js0" (the same as jstest)

I tested the program Specto, with 100 ms of update, to the file js0, it
works, but it uses a lot of RAM

Revision history for this message
Joaquin (jknvv13) wrote :

2010/1/23 Joaquin Vacas <email address hidden>

> When I run "./jskeepalive /dev/input/js0" and I connect the joystick it
> works, but I need to connect the gamepad at the same time that I run the
> command
>

Revision history for this message
Joaquin (jknvv13) wrote :

this program does the same as jstest , but without output!

Revision history for this message
Joaquin (jknvv13) wrote :

It works without terminal!
Thanks, but my problem continues :(

Revision history for this message
Joaquin (jknvv13) wrote :
  • udevadm.txt Edit (3.6 KiB, text/plain; charset=US-ASCII; name="udevadm.txt")

Sorry, the output of udevadm it's attached!

How can I use the vibrator's option on the gamepad??

Revision history for this message
Stephen Kitt (steve-sk2) wrote :

Regarding comment #19, that was exactly the idea. To fully fix the problem, we need a way to start the program as soon as the joystick is plugged in; the following line, added to your /etc/udev/rules.d/010_local.rules files (if you don't have such a file, simply create it), should start the daemon as soon as the joystick is detected:
        KERNEL=="js*", ATTR{name}=="ACRUX USB GAMEPAD 8116", RUN+="/usr/local/sbin/jskeepalive /dev/input/%b"
When the joystick is disconnected the program will terminate.

Regarding the vibrator, I imagine you'll need to find a game which uses force-feedback, or use one of the force-feedback programs available in the source for the joystick package (or in the Debian package). I don't have such a joystick so I'm afraid I can't help much with that!

Revision history for this message
Joaquin (jknvv13) wrote :

It doesn't works!
I do a bad step??
I send my 010_local.rules

Revision history for this message
Joaquin (jknvv13) wrote :

2010/1/23 Joaquin Vacas <email address hidden>

> It doesn't works!
> I do a bad step??
> I send my 010_local.rules

Can you help me to make another daemon??

Revision history for this message
Stephen Kitt (steve-sk2) wrote :

Sorry, my mistake, the udev rule should say
        KERNEL=="js*", ATTRS{name}=="ACRUX USB GAMEPAD 8116", RUN+="/usr/local/sbin/jskeepalive /dev/input/%b"
("ATTRS" rather than "ATTR"). Could you try again with that line?

I'm working on a proper daemon, but I'm doing it in my spare time so it might take a day or two.

Revision history for this message
Joaquin (jknvv13) wrote :

It works!
But I only need to change the "%b" to "js0"
I send my udev rule
When you finish the daemon, Can you say to me?
And How Can I make a deb package with the rules and the jskeepalive
program??

A lot of Thanks!!!

Revision history for this message
Joaquin (jknvv13) wrote :

I Can't get working the force-feedback option (all ff* program says that my
joystick doesn't support force-feedback, but i've tested on a computer of a
friend, in windows, It works)

Thanks!

Revision history for this message
Stephen Kitt (steve-sk2) wrote :

I'll include the daemon and the udev configuration file in the next version of the Debian package, which should make it to Ubuntu shortly thereafter.

Concerning the force-feedback, I had a look at the kernel drivers and there doesn't seem to be a standard way of handling it, so you'd need specific support for your joypad. Maybe one of the other drivers could be adapted, I don't know...

Revision history for this message
Joaquin (jknvv13) wrote :

OK, You're the BEST!!!

A lot of Thanks!!!

Joaquín Vacas Verísimo

Revision history for this message
Joaquin (jknvv13) wrote :

Stephen, if I (example) buy another joystick, but my configuration is "js0"
I need to add another with "js1"??
I have a friend that He has the same problem as I

Thanks

Revision history for this message
Stephen Kitt (steve-sk2) wrote :

To add another joystick, try replacing the rule you're currently using with the following:
        KERNEL=="js*", ATTRS{name}=="ACRUX USB GAMEPAD 8116", RUN+="/usr/local/sbin/jskeepalive %E{DEVNAME}"
When the rule is matched, "%E{DEVNAME}" will be replaced with whatever device has just been created (/dev/input/js0, /dev/input/js1...).

Revision history for this message
Joaquin (jknvv13) wrote :

OK, It works!

Thanks!

Revision history for this message
Joaquin (jknvv13) wrote :

Hello,

I installed reciently, the new Ubuntu Lucid Lynx, but in the joystick
packages, the jskeepalive and the configuration doesn't appear!!!

What happen??

Revision history for this message
Stephen Kitt (steve-sk2) wrote :

Sorry, I haven't uploaded a new version of the package yet, so Lucid Lynx still has the old version; I'm working on implementing a feature in response to another bug (in Debian), it should be ready soon.

In the meantime you can still use the previous fix!

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package joystick - 20051019-11

---------------
joystick (20051019-11) unstable; urgency=low

  * evtest: flush standard output, thanks Florian Fainelli! Closes:
    #581740.

joystick (20051019-10) unstable; urgency=low

  [ Stephen Kitt]
  * Switch to 3.0 (quilt) format.
  * Fix SDL-related warnings.
  * Remove fix for broken initscript in -7 (which never made it to
    stable).
  * Prevent Acrux gamepads from disappearing after the inital device setup
    (LP: #448446).
  * Handle calibration using udev rather than an initscript. Closes:
    #540680.
  * Standards-Version 3.8.4, no change required.

  [ Dmitrijs Ledkovs ]
  * Simplified debian/rules; fixes FTBS with parallel make. Closes:
    #566274.
 -- Ubuntu Archive Auto-Sync <email address hidden> Mon, 31 May 2010 10:30:46 +0100

Changed in joystick (Ubuntu):
status: New → Fix Released
Stephen Kitt (steve-sk2)
Changed in dasher:
status: New → Fix Released
status: Fix Released → New
Stephen Kitt (steve-sk2)
Changed in dasher:
status: New → Invalid
Revision history for this message
Sergei Kolzun (x0r) wrote :

I have done support of force feedback for ACRUX controllers, but i need help in submitting kernel patches. And of course my english is ver bad.

Revision history for this message
Stephen Kitt (steve-sk2) wrote :

Hi Sergei,

If you send me the patches (with an appropriate Signed-Off-By line - see http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=999b874f4aa39b7abf45662ff0900f943ddb2d02 for an example), I'll see if I can get them in. Don't worry about your English, it's infinitely better than my mastery of your native language!

Regards,

Stephen

Revision history for this message
Stephen Kitt (steve-sk2) wrote :

I forgot to mention, you'll find my email address on my Launchpad profile.

Revision history for this message
Sergei Kolzun (x0r) wrote :

Thanks Stephen, I sent an email for you.

Revision history for this message
Dmitry Torokhov (dtor) wrote :

Stephen,

Would you kindly remove the jskeepalive from your distribution and instead raise a proper bugreport on bugzilla.kernel.org so that automatic PM is disabled or fixed for that device? Please CC Jiri Kosina and Oliver Neikum on the report.

Thanks.

Revision history for this message
Stephen Kitt (steve-sk2) wrote : Re: [Bug 448446] Re: recognizes the joystick, but not the correct model. not working

On Mon, Jul 19, 2010 at 11:23:23PM -0000, Dmitry Torokhov wrote:
> Would you kindly remove the jskeepalive from your distribution and
> instead raise a proper bugreport on bugzilla.kernel.org so that
> automatic PM is disabled or fixed for that device? Please CC Jiri Kosina
> and Oliver Neikum on the report.

No problem, I should have done it a while ago - it's
https://bugzilla.kernel.org/show_bug.cgi?id=16421

Jiri isn't recognised by the kernel bugzilla, so I'm CCing him here,
as well as Sergei Kolzun.

Regards,

Stephen

Revision history for this message
Stephen Kitt (steve-sk2) wrote :

Joaquín,

Would it be possible for you to run a little test for me?

I would like to know if the following steps still allow your gamepad to work:
1. Disconnect the gamepad
2. Disable the udev rule shipped in the joystick package (add a # at the start of the last line in /lib/udev/rules.d/60-joystick.rules)
3. Add the following rule to your /etc/udev/rules.d/010_local.rules file:
KERNEL=="js*", ATTRS{name}=="ACRUX USB GAMEPAD 8116", RUN+="/bin/sh -c 'test -e /sys/$env{DEVPATH}/power/level && echo on > /sys/$env{DEVPATH}/power/level'"
4. Reconnect your gamepad

This would allow the jskeepalive hack to be dropped.

To restore the previous behaviour, simply remove the # you added in step 2 and remove the line you added in step 3.

Thanks in advance,

Stephen

Revision history for this message
Stephen Kitt (steve-sk2) wrote :

Note that the rule in step 3 above should be on a single line...

Revision history for this message
Dmitry Torokhov (dtor) wrote :

If anyone who still has the device and is willing to try kernel patches would try this one and let me know if it works for them it would be great. I am pretty sure it should apply to vanilla 2.6.36.

Thanks!

Revision history for this message
Sergei Kolzun (x0r) wrote :
Changed in linux:
status: Unknown → Confirmed
Changed in linux:
importance: Unknown → Medium
Revision history for this message
dm (jan-rauberg) wrote :

I'm using linux-image-2.6.38.10 from natty and I tried also 2.6.39 - the problem still remains. With 10.10 I didn't have had this issue. Please fix it, it floods my console with these annoying message and makes the use of it impossible despite the use of this joystick.

...
[ 1464.128289] acrux 0003:1A34:0802.0003: can't reset device, 0000:00:1d.0-1.8/input0, status -32
[ 1464.144243] acrux 0003:1A34:0802.0003: can't reset device, 0000:00:1d.0-1.8/input0, status -32
[ 1464.160178] acrux 0003:1A34:0802.0003: can't reset device, 0000:00:1d.0-1.8/input0, status -32
[ 1464.176153] acrux 0003:1A34:0802.0003: can't reset device, 0000:00:1d.0-1.8/input0, status -32
[ 1464.192107] acrux 0003:1A34:0802.0003: can't reset device, 0000:00:1d.0-1.8/input0, status -32
[ 1464.208060] acrux 0003:1A34:0802.0003: can't reset device, 0000:00:1d.0-1.8/input0, status -32
...

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.