https://bugs.winehq.org/show_bug.cgi?id=44279
Bug ID: 44279 Summary: Wine can't enumerate HID device that is based on Bluetooth (a Wiimote) Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: epigramx@yahoo.com Distribution: ---
On Windows, if I run hclient.exe (source here: https://github.com/Microsoft/Windows-driver-samples/tree/master/hid/hclient) I can normally see my paired and connected device, as shown in this image: https://i.imgur.com/Up60k7s.png It's one of the Wii Remote Plus devices. However, if I do pair and connect the device on Debian and if it correctly appears in /sys/bus/hid/devices and all the tests here work: https://wiki.archlinux.org/index.php/XWiimote , running hclient.exe with wine on linux does not find that hid device which might explain why it's not detected by a console application that relies on enumerating HID devices on windows.
I suspect it's a limitation of wine in finding HID devices if they originate from Bluetooth but I can't be sure.
I might return with more details later on (when I reboot to Linux) but let me know if you need specific further details.
Wiimotes are very common so if a dev could try one and see if he can enumerate it in hclient (source above) that'd be great.
https://bugs.winehq.org/show_bug.cgi?id=44279
--- Comment #1 from epigramx@yahoo.com --- Created attachment 60108 --> https://bugs.winehq.org/attachment.cgi?id=60108 hclient.exe
A compiled hclient.exe is attached (source is in the first post)
https://bugs.winehq.org/show_bug.cgi?id=44279
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4@web.de
https://bugs.winehq.org/show_bug.cgi?id=44279
--- Comment #2 from epigramx@yahoo.com --- Very relevant video from Aric Stewart: https://youtu.be/VcW_et0GC5Q?t=38m22s
https://bugs.winehq.org/show_bug.cgi?id=44279
--- Comment #3 from epigramx@yahoo.com --- In the video he claims that Linux should not see it as a hidraw, but I do clearly see it exposed that way here. /dev had 0 to 5 and when it's paired a hidraw6 appears.
https://bugs.winehq.org/show_bug.cgi?id=44279
--- Comment #4 from epigramx@yahoo.com --- running hid-example (source here: https://raw.githubusercontent.com/atomic-penguin/linux/master/samples/hidraw...) for that /dev/hidrawX, I can clearly see the correct info for it:
root@debian:~# ./a.out Report Descriptor Size: 218 Report Descriptor: 5 1 9 5 a1 1 85 10 15 0 26 ff 0 75 8 95 1 6 0 ff 9 1 91 0 85 11 95 1 9 1 91 0 85 12 95 2 9 1 91 0 85 13 95 1 9 1 91 0 85 14 95 1 9 1 91 0 85 15 95 1 9 1 91 0 85 16 95 15 9 1 91 0 85 17 95 6 9 1 91 0 85 18 95 15 9 1 91 0 85 19 95 1 9 1 91 0 85 1a 95 1 9 1 91 0 85 20 95 6 9 1 81 0 85 21 95 15 9 1 81 0 85 22 95 4 9 1 81 0 85 30 95 2 9 1 81 0 85 31 95 5 9 1 81 0 85 32 95 a 9 1 81 0 85 33 95 11 9 1 81 0 85 34 95 15 9 1 81 0 85 35 95 15 9 1 81 0 85 36 95 15 9 1 81 0 85 37 95 15 9 1 81 0 85 3d 95 15 9 1 81 0 85 3e 95 15 9 1 81 0 85 3f 95 15 9 1 81 0 c0 0
Raw Name: Nintendo RVL-CNT-01-TR Raw Phys: 00:1a:7d:da:71:13 Raw Info: bustype: 5 (Bluetooth) vendor: 0x057e product: 0x0330 HIDIOCSFEATURE: Input/output error HIDIOCGFEATURE: Input/output error write() wrote 0 bytes read() read 5 bytes: 22 0 0 9 2
https://bugs.winehq.org/show_bug.cgi?id=44279
--- Comment #5 from epigramx@yahoo.com --- It might be of interest that only that hidraw reports "HIDIOCSFEATURE: Input/output error", the rest report "HIDIOCGFEATURE: Broken pipe".
https://bugs.winehq.org/show_bug.cgi?id=44279
--- Comment #6 from epigramx@yahoo.com --- A relatively important update: I figured the PID and VID returned by wine is erroneously of the adapter's instead of the device's (as it should be as it is listed on windows on the same tool). However, the same pid/vid (of the adapter's) can be found in /sys per these instructions: http://www.signal11.us/oss/udev/ but as I said before querying /dev/hidrawX does return the correct device id (code for that querying is included in another post here). My guess at the moment is that there is either a bug with udevlib or/and /sys or there is a better way to use udevlib for bluetooth devices.
https://bugs.winehq.org/show_bug.cgi?id=44279
--- Comment #7 from epigramx@yahoo.com --- Here is stable software that uses hid_wiimote which might shed some light on what wine does wrongly https://github.com/dvdhrm/xwiimote/blob/master/lib/core.c
https://bugs.winehq.org/show_bug.cgi?id=44279
--- Comment #8 from epigramx@yahoo.com --- this software appears to do perfect usage of the specific device in question in a raw way https://github.com/signal11/hidapi it does find the wiimote (as long as hid_wiimote kernel module is used after a wiimote is paired) and it does properly sends and received commands.
https://bugs.winehq.org/show_bug.cgi?id=44279
epigramx@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED
--- Comment #9 from epigramx@yahoo.com --- Fixed with https://source.winehq.org/git/wine.git/commitdiff/164517fe575564daa44f74cc3b...
https://bugs.winehq.org/show_bug.cgi?id=44279
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |winebus.sys Fixed by SHA1| |164517fe575564daa44f74cc3bc | |4a6bbdd7d3f3d CC| |joseph.kucia@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=44279
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #10 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 3.3.
https://bugs.winehq.org/show_bug.cgi?id=44279
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|winebus.sys |hid