No input events for FutureMax Dance Mat

Bug #1584475 reported by Xaratas
32
This bug affects 5 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Triaged
Medium
Unassigned

Bug Description

On my ubuntu booth of my FutureMax Dance Mats does not generate any input events. So they can not be used. The hardware is working, i verified this with a windows PC.
The missing events were checked with cat /dev/input/eventX, evtest, xev.

On ubuntu the device is set up (udevadm has it, dmesg has it, evtest sees it), module joydev is loaded but no input is recognized/ visible and /dev/input/eventX

Expected behavior: Plug and Play with the usb Dance Mat
Acutal behavior: No play possible as no input events appear and so the game can not use it.

ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: linux-image-4.4.0-22-generic 4.4.0-22.40
ProcVersionSignature: Ubuntu 4.4.0-22.40-generic 4.4.8
Uname: Linux 4.4.0-22-generic x86_64
NonfreeKernelModules: nvidia_uvm nvidia
ApportVersion: 2.20.1-0ubuntu2
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC1: xar 2249 F.... pulseaudio
 /dev/snd/controlC0: xar 2249 F.... pulseaudio
CurrentDesktop: MATE
Date: Sun May 22 15:29:57 2016
HibernationDevice: RESUME=UUID=d68a39e5-b419-4307-9af9-6eeda8990336
MachineType: Sony Corporation VPCZ12C5E
ProcFB: 0 inteldrmfb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.4.0-22-generic root=UUID=18e98aae-17c4-4d7d-80db-421236684825 ro quiet splash
RelatedPackageVersions:
 linux-restricted-modules-4.4.0-22-generic N/A
 linux-backports-modules-4.4.0-22-generic N/A
 linux-firmware 1.157
SourcePackage: linux
UpgradeStatus: Upgraded to xenial on 2016-05-17 (4 days ago)
dmi.bios.date: 07/30/2010
dmi.bios.vendor: INSYDE
dmi.bios.version: R3030C3
dmi.board.asset.tag: N/A
dmi.board.name: VAIO
dmi.board.vendor: Sony Corporation
dmi.board.version: N/A
dmi.chassis.asset.tag: N/A
dmi.chassis.type: 10
dmi.chassis.vendor: Sony Corporation
dmi.chassis.version: N/A
dmi.modalias: dmi:bvnINSYDE:bvrR3030C3:bd07/30/2010:svnSonyCorporation:pnVPCZ12C5E:pvrJ004B4UH:rvnSonyCorporation:rnVAIO:rvrN/A:cvnSonyCorporation:ct10:cvrN/A:
dmi.product.name: VPCZ12C5E
dmi.product.version: J004B4UH
dmi.sys.vendor: Sony Corporation

Revision history for this message
Xaratas (nomikon+ubuntu) wrote :
Revision history for this message
Brad Figg (brad-figg) wrote : Status changed to Confirmed

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
Revision history for this message
Xaratas (nomikon+ubuntu) wrote :

Tested now also with kernel linux-image-4.4.0-22-generic 4.4.0-23.41 and upstream kernel linux-4.4.11-040411-generic.

Results are the same, there are no events on /dev/input/eventX

On an older, now no longer existing ubuntu install the mats were working. I think it was a ubuntu trusty installation.

Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

Did this issue start happening after an update/upgrade? Was there a prior kernel version where you were not having this particular problem?

Would it be possible for you to test the latest upstream kernel? Refer to https://wiki.ubuntu.com/KernelMainlineBuilds . Please test the latest v4.6 kernel[0].

If this bug is fixed in the mainline kernel, please add the following tag 'kernel-fixed-upstream'.

If the mainline kernel does not fix this bug, please add the tag: 'kernel-bug-exists-upstream'.

Once testing of the upstream kernel is complete, please mark this bug as "Confirmed".

Thanks in advance.

[0] http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.6-yakkety

Changed in linux (Ubuntu):
importance: Undecided → Medium
status: Confirmed → Incomplete
Revision history for this message
Xaratas (nomikon+ubuntu) wrote :

I can not tell exactly when the issue started, as i did not use the mats for quite some time.
Tested with 4.6.0, bug exists.

uname -a
Linux Y4e 4.6.0-040600-generic #201605151930 SMP Sun May 15 23:32:59 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

relevant part of syslog

May 24 19:19:13 Y4e kernel: [ 41.299383] usb 2-1.5: new full-speed USB device number 3 using ehci-pci
May 24 19:19:13 Y4e kernel: [ 41.395978] usb 2-1.5: New USB device found, idVendor=22ba, idProduct=0109
May 24 19:19:13 Y4e kernel: [ 41.395985] usb 2-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
May 24 19:19:13 Y4e kernel: [ 41.395989] usb 2-1.5: Product: Generic USB Hub
May 24 19:19:13 Y4e kernel: [ 41.395992] usb 2-1.5: Manufacturer: Rui Da
May 24 19:19:13 Y4e kernel: [ 41.396404] hub 2-1.5:1.0: USB hub found
May 24 19:19:13 Y4e kernel: [ 41.396699] hub 2-1.5:1.0: 3 ports detected
May 24 19:19:13 Y4e kernel: [ 41.667357] usb 2-1.5.1: new full-speed USB device number 4 using ehci-pci
May 24 19:19:13 Y4e kernel: [ 41.762883] usb 2-1.5.1: New USB device found, idVendor=054c, idProduct=0268
May 24 19:19:13 Y4e kernel: [ 41.762889] usb 2-1.5.1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
May 24 19:19:13 Y4e kernel: [ 41.762895] usb 2-1.5.1: Product: FutureMax Dance Mat
May 24 19:19:13 Y4e mtp-probe: checking bus 2, device 4: "/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5.1"
May 24 19:19:13 Y4e mtp-probe: bus: 2, device: 4 was not an MTP device
May 24 19:19:14 Y4e kernel: [ 42.429085] hidraw: raw HID events driver (C) Jiri Kosina
May 24 19:19:14 Y4e kernel: [ 42.434781] usbcore: registered new interface driver usbhid
May 24 19:19:14 Y4e kernel: [ 42.434785] usbhid: USB HID core driver
May 24 19:19:14 Y4e kernel: [ 42.443356] input: FutureMax Dance Mat as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5.1/2-1.5.1:1.0/0003:054C:0268.0001/input/input16
May 24 19:19:14 Y4e kernel: [ 42.443855] sony 0003:054C:0268.0001: input,hiddev0,hidraw0: USB HID v1.11 Joystick [FutureMax Dance Mat] on usb-0000:00:1d.0-1.5.1/input0

tags: added: kernel-bug-exists-upstream
Changed in linux (Ubuntu):
status: Incomplete → Confirmed
Revision history for this message
Xaratas (nomikon+ubuntu) wrote :
Download full text (3.2 KiB)

Ok, tested a bit further. upstream kernel 3.15 generates the input events, but the event devices is only accessible for root.
But thats not a problem as there is also a js0 device which is picked up by stempania and works fine.

uname -a
Linux Y4e 3.15.0-031500-generic #201406131105 SMP Fri Jun 13 15:06:46 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

ls -l /dev/input/event15
crw-rw---- 1 root input 13, 79 Mai 24 20:12 /dev/input/event15
ls -al /dev/input/js0
crw-rw-r-- 1 root input 13, 0 Mai 24 20:46 /dev/input/js0

sudo evtest output:
Event: time 1464115604.587967, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90007
Event: time 1464115604.587967, type 1 (EV_KEY), code 294 (BTN_BASE), value 0
Event: time 1464115604.587967, -------------- SYN_REPORT ------------
Event: time 1464115611.017624, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90001
Event: time 1464115611.017624, type 1 (EV_KEY), code 288 (BTN_TRIGGER), value 1
Event: time 1464115611.017624, -------------- SYN_REPORT ------------
Event: time 1464115611.104563, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90001
Event: time 1464115611.104563, type 1 (EV_KEY), code 288 (BTN_TRIGGER), value 0
Event: time 1464115611.104563, -------------- SYN_REPORT ------------
Event: time 1464115615.113371, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90003
Event: time 1464115615.113371, type 1 (EV_KEY), code 290 (BTN_THUMB2), value 1
Event: time 1464115615.113371, -------------- SYN_REPORT ------------
Event: time 1464115615.295383, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90003
Event: time 1464115615.295383, type 1 (EV_KEY), code 290 (BTN_THUMB2), value 0

upstream kernel 3.17.0 generates some events, but these are spoty and unreliable. The dancemat is not working in Stepmania.

uname -a
Linux Y4e 3.17.0-031700-generic #201410060605 SMP Mon Oct 6 10:07:09 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

evtest output: if one event appears, then there are huge repetitions of these 0 values which, from the name dose not make much sense for a dance pad, which has no orientation or analog positon x and y.
Event: time 1464115318.219259, -------------- SYN_REPORT ------------
Event: time 1464115318.220260, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 0
Event: time 1464115318.220260, type 3 (EV_ABS), code 49 (ABS_MT_TOUCH_MINOR), value 0
Event: time 1464115318.220260, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 0
Event: time 1464115318.220260, type 3 (EV_ABS), code 51 (ABS_MT_WIDTH_MINOR), value 0
Event: time 1464115318.220260, type 3 (EV_ABS), code 52 (ABS_MT_ORIENTATION), value 0
Event: time 1464115318.220260, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 0
Event: time 1464115318.220260, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 0
Event: time 1464115318.220260, type 3 (EV_ABS), code 55 (ABS_MT_TOOL_TYPE), value 0
Event: time 1464115318.220260, type 3 (EV_ABS), code 56 (ABS_MT_BLOB_ID), value 0
Event: time 1464115318.220260, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time 1464115318.220260, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 0
Event: time 1464115318.220260, type 3 (EV_ABS), code 59 (ABS_MT_DISTANCE), value 0
Event: time 1464115318.220260, type 3 (EV_ABS), code ...

Read more...

Revision history for this message
Smeuuh (smeuuh) wrote :

I have the exact same bug. Using Linux Mint 17.3 (based on Ubuntu 14.04.1), with kernel 3.19.0-32-generic

uname -a :
Linux epsilon 3.19.0-32-generic #37~14.04.1-Ubuntu SMP Thu Oct 22 09:41:40 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

It used to work fine on Linux Mint 17.1 (kernel 3.13).

Revision history for this message
penalvch (penalvch) wrote :

Xaratas, the next step is to fully commit bisect from kernel 3.15 to 4.4 in order to identify the last good kernel commit, followed immediately by the first bad one. This will allow for a more expedited analysis of the root cause of your issue. Could you please do this following https://wiki.ubuntu.com/Kernel/KernelBisection ?

Please note, finding adjacent kernel versions is not fully commit bisecting.

After the offending commit (not kernel version) has been identified, then please mark this report Status Confirmed.

Thank you for your understanding.

Helpful bug reporting tips:
https://wiki.ubuntu.com/ReportingBugs

tags: added: kernel-bug-exists-upstream-4.6 regression-release
tags: added: bios-outdated-r3031c3
Changed in linux (Ubuntu):
status: Confirmed → Incomplete
Revision history for this message
Xaratas (nomikon+ubuntu) wrote :

I tried to bisect the upstream kernel (it looks like Ubuntu skipped 3.17 entirely), but it is not easy to find some point between the Tags v3.16 and v3.17-rc1 which can be compiled without errors. Currently i can only say the bug is somewhere in these 11529 Commits.

Revision history for this message
Mikko Perttunen (cyndis+ubuntu) wrote :

I have posted a kernel patch to fix this issue at https://patchwork.kernel.org/patch/9233767/.

Revision history for this message
Xaratas (nomikon+ubuntu) wrote :

Thanks Mikko Perttunen,
i applied the patch against tag v4.5 on the mainline-crack repo, including the Patches from Frank Praznik. And it works, evtest reports useable events (at least for the first device) and Stepmania can pick up and work with booth of my mats.

I attach the Patches from Frank Praznik for reference, as I can not find them online in an kernel repository yet.

Revision history for this message
Xaratas (nomikon+ubuntu) wrote :
Changed in linux (Ubuntu):
status: Incomplete → Confirmed
tags: added: patch
penalvch (penalvch)
tags: added: cherry-pick
Changed in linux (Ubuntu):
status: Confirmed → Triaged
Revision history for this message
Xaratas (nomikon+ubuntu) wrote :
Revision history for this message
Davidian1024 (david-brinovec) wrote :

I think this bug is affecting me as well. I am also aware of two other bug reports that sound related. Bug #1556444 and bug #1328065.

Skimming over the code in the patches I don't think those will work for me. The code specifically looks for this identifier string "FutureMax Dance Mat". My device reports itself with this string "RedOctane USB Pad". So I think the code won't treat my device any differently than the way it's being treated now.

kernel: [ 408.450782] usb 4-2.1: Product: RedOctane USB Pad
kernel: [ 408.460877] input: RedOctane USB Pad as /devices/pci0000:00/0000:00:1a.1/usb4/4-2/4-2.1/4-2.1:1.0/0003:054C:0268.0007/input/input19
kernel: [ 408.520387] sony 0003:054C:0268.0007: input,hiddev0,hidraw3: USB HID v1.11 Joystick [RedOctane USB Pad] on usb-0000:00:1a.1-2.1/input0

Here's my complete and utter beginner attempt at a modified version of the patch for the 4.8 kernel:

####################################################

diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c
index 310436a..29a1aa9 100644
--- a/drivers/hid/hid-sony.c
+++ b/drivers/hid/hid-sony.c
@@ -51,6 +51,7 @@
 #define NAVIGATION_CONTROLLER_USB BIT(9)
 #define NAVIGATION_CONTROLLER_BT BIT(10)
 #define SINO_LITE_CONTROLLER BIT(11)
+#define FUTUREMAX_DANCE_MAT BIT(12)
+#define REDOCTANE_USB_PAD BIT(13)

 #define SIXAXIS_CONTROLLER (SIXAXIS_CONTROLLER_USB | SIXAXIS_CONTROLLER_BT)
 #define MOTION_CONTROLLER (MOTION_CONTROLLER_USB | MOTION_CONTROLLER_BT)
@@ -1125,7 +1126,7 @@ static u8 *sony_report_fixup(struct hid_device *hdev, u8 *rdesc,
 {
  struct sony_sc *sc = hid_get_drvdata(hdev);

- if (sc->quirks & SINO_LITE_CONTROLLER)
+ if (sc->quirks & (SINO_LITE_CONTROLLER | FUTUREMAX_DANCE_MAT | REDOCTANE_USB_PAD))
   return rdesc;

  /*
@@ -2289,6 +2290,9 @@ static int sony_probe(struct hid_device *hdev, const struct hid_device_id *id)
  struct sony_sc *sc;
  unsigned int connect_mask = HID_CONNECT_DEFAULT;

+ if (!strcmp(hdev->name, "FutureMax Dance Mat"))
+ quirks |= FUTUREMAX_DANCE_MAT;
+
+ if (!strcmp(hdev->name, "RedOctane USB Pad"))
+ quirks |= REDOCTANE_USB_PAD;
+
  sc = devm_kzalloc(&hdev->dev, sizeof(*sc), GFP_KERNEL);
  if (sc == NULL) {
   hid_err(hdev, "can't alloc sony descriptor\n");

####################################################

So, I'm going to attempt to produce an actual patch from this and see if it fixes my problem. Just wanted to drop this note here first and see if anyone comments. I've never done this sort of thing to the kernel code before so there's no telling how long this is going to take me.

Revision history for this message
Xaratas (nomikon+ubuntu) wrote :

Looks like it should work, i will write Mikko Perttunen a pointer.

Revision history for this message
Mikko Perttunen (cyndis+ubuntu) wrote :

Davidian, if you have questions about the patch submission process, please feel free to send me mail. My impression is that your patch looks good but for upstream submission it needs to be rebased on top of the latest kernel version.

Cheers,
Mikko.

Revision history for this message
Davidian1024 (david-brinovec) wrote :

Hi,

I'm sorry it's been so long since I commented here. Without going into the gory details, my life got to be utterly crazy and I simply had no time to spend on things like this.

Things are more settled now, so I think I might be able to go through with this. I was confused on how to get started with the patch submission process. I honestly don't know where to start. Any here able to get me going on that?

Thanks,
Dave

Revision history for this message
penalvch (penalvch) wrote :

Davidian1024, one may confirm if the patch works or not following the instructions from https://wiki.ubuntu.com/Kernel/KernelBisection#Testing_a_newly_released_patch_from_upstream .

Revision history for this message
Smeuuh (smeuuh) wrote :

I updated from linux mint 18 to 19, and I have a problem with this, a different one this time: my dance pad gets detected as a bogus accelerometer, and programs cannot use it. dmesg output is:

[Mon Jul 23 14:52:59 2018] usb 1-4: new full-speed USB device number 6 using xhci_hcd
[Mon Jul 23 14:52:59 2018] usb 1-4: New USB device found, idVendor=22ba, idProduct=0109
[Mon Jul 23 14:52:59 2018] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[Mon Jul 23 14:52:59 2018] usb 1-4: Product: Generic USB Hub
[Mon Jul 23 14:52:59 2018] usb 1-4: Manufacturer: Rui Da
[Mon Jul 23 14:52:59 2018] hub 1-4:1.0: USB hub found
[Mon Jul 23 14:52:59 2018] hub 1-4:1.0: 3 ports detected
[Mon Jul 23 14:52:59 2018] usb 1-4.1: new full-speed USB device number 7 using xhci_hcd
[Mon Jul 23 14:52:59 2018] usb 1-4.1: New USB device found, idVendor=054c, idProduct=0268
[Mon Jul 23 14:52:59 2018] usb 1-4.1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[Mon Jul 23 14:52:59 2018] usb 1-4.1: Product: FutureMax Dance Mat
[Mon Jul 23 14:52:59 2018] input: FutureMax Dance Mat Motion Sensors as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.1/1-4.1:1.0/0003:054C:0268.0002/input/input26
[Mon Jul 23 14:52:59 2018] input: FutureMax Dance Mat as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.1/1-4.1:1.0/0003:054C:0268.0002/input/input25
[Mon Jul 23 14:52:59 2018] sony 0003:054C:0268.0002: input,hiddev1,hidraw1: USB HID v81.11 Joystick [FutureMax Dance Mat] on usb-0000:00:14.0-4.1/input0

/dev/input/js0 reports periodic input, and gets detected by stepmania as an axis change. The actual input does not do anything. As root, I have in /dev/input/by-path/ the following:
pci-0000:00:14.0-usb-0:4.1:1.0-event pci-0000:00:14.0-usb-0:4.1:1.0-event-joystick pci-0000:00:14.0-usb-0:7:1.0-event

Of these, when I cat /dev/input/by-path/pci-0000\:00\:14.0-usb-0\:4.1\:1.0-event-joystick it does register input, although I have no idea how to make stepmania use that. The others are silent.

This is on Linux beta 4.15.0-29-generic #31-Ubuntu SMP Tue Jul 17 15:39:52 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
I cannot test other kernels because then my keyboard is non-functional for some reason.

Revision history for this message
Watpi (watpi) wrote :

Smeuuh, I can confirm the exact same thing happened to me. There's the "bogus accelerometer" event device (called USB Dance Mat Motion Sensors on my pad), and then there's another which isn't recognized by Stepmania (you can see "not a joystick; ignoring" on its output if you run it from terminal). On my Mayflash TX4500-v2 the product string is USB Dance Mat. The IDs are indeed 054c:0268 on my dance pad as well. Oddly, it didn't seem to need the quirk as the two devices were there and received events even before patching the kernel.

What I did end up doing was mapping the joystick device (the one that registers input when looking with evtest or similar tool) as an Xbox controller via Xboxdrv. You have to do that manually, though, since just enabling the service doesn't detect the mapping correctly. I used this guide here: https://github.com/RetroPie/RetroPie-Setup/wiki/Universal-Controller-Calibration-&-Mapping-Using-xboxdrv . After that the fake Xbox controller got detected by Stepmania and worked flawlessly after mapping it in Options (I didn't need axisfix, your situation may vary). Hope this workaround helps you a bit.

I have a hunch the quirk does not work at this point, and the dance pads still get detected as a borked PS3 controller (with accelerometer).

Revision history for this message
Elias Kunnas (elias-kunnas-w) wrote :

I also have FutureMax Dance Mat. I think the main problem is with Stepmania, however.

I've been using the following patch for Stepmania. It works most of the time.
    https://github.com/stepmania/stepmania/pull/1745

Sometimes (after resuming from suspend and such) there are some intermittent failures to recognize the dance mat though.
I haven't quite managed to track the cause of those down. But the patch definitely works.

The reason that "vanilla" Stepmania doesn't work on Linux is because it expects analog inputs.

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

Other bug subscribers

Remote bug watches

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