045e:00b0 Microsoft keyboard and 045e:0745 nano transceiver recognised as joystick - interferes with some games

Bug #390959 reported by themusicalduck on 2009-06-23
154
This bug affects 32 people
Affects Status Importance Assigned to Milestone
Linux
Confirmed
Medium
Linux Mint
New
Undecided
Unassigned
NULL Project
Undecided
Unassigned
linux (Ubuntu)
Medium
Unassigned

Bug Description

Microsoft Digital Media Pro keyboard interferes with certain games. Ubuntu seems to see the keyboard as a joystick control. Package Joystick Calibrator 1.5.6 confirms by listing Microsoft Digital Media Pro Keyboard as a joystick device on /dev/input/js0

Behaviour includes taking over control of any joystick enabled games and continuously pushing control to the left or causing a menu selection to continuously move down or up. Affected games that I know of so far include Tux racer, Alex the Alligator, Track mania Nations forever (wine) and Final Fantasy 8 (wine).

A workaround is to run Joystick Calibrator, click on Calibrate and save settings. This seems to 'calibrate' the keyboard properly and stops it from interfering with games.

Ubuntu version is 9.04. Wine is version 1.1.24.

AndreK (andre-k) wrote :

Problem still exists in Ubuntu 9.10
Please fix.

AndreK (andre-k) wrote :

BTW: not all games can handle multiple joysticks , and any "real" joystick ends up as /dev/input/js1 because the keyboard is js0 - so it stops some programs from working properly...

themusicalduck (themusicalduck) wrote :

This problem still exists in Lucid Lynx. However, Joystick Calibrator doesn't exist in the repos any more, so you need to install package "joystick" and run

jscal -c /dev/input/js0

to fix it.

Fabio Marconi (fabiomarconi) wrote :

Thank you for taking the time to report this bug and helping to make Ubuntu better.
Is this bug reproducible with the latest Lucid packages ?
Tanks in advance.

Changed in ubuntu:
status: New → Incomplete
status: Incomplete → New
status: New → Incomplete
themusicalduck (themusicalduck) wrote :

Yeah, problem still exists on a fully updated 10.04 system. Just tested it on Alex the Alligator, and the cursor on the menu still moves down continuously.

/dev/input/js0 still exists too and I have no other joystick plugged in.

Fabio Marconi (fabiomarconi) wrote :

Thanks for the reply.
can you please run in a terminal

lsusb

copy the output, paste into a file and attach here

lspci

copy the output, paste into a file and attach here

we need also you attach these files:

/var/log/syslog
/var/log/dmesg
/var/log/kern.log

:)Fabio

themusicalduck (themusicalduck) wrote :

Attached the files.

themusicalduck (themusicalduck) wrote :
themusicalduck (themusicalduck) wrote :
Fabio Marconi (fabiomarconi) wrote :

Asrequested file are attached i mark as Confirmed.
:)Fabio

affects: ubuntu → linux (Ubuntu)
Changed in linux (Ubuntu):
status: Incomplete → Confirmed
Lee Jones (lag) wrote :

I'm happy to take a look at this for you.

Can you please attach the results of "lshw" and "lsmod" whilst the keyboard is plugged in please?

Changed in linux (Ubuntu):
assignee: nobody → Lee Jones (lag)
importance: Undecided → Medium
Lee Jones (lag) wrote :

And "/var/log/udev" as well please.

Attached the files.

For some reason the lshw file won't open in gedit, but it does work with cat, nano and leafpad so hopefully it is readable.

Thanks for taking time to look at the bug :)

Lee Jones (lag) wrote :

Here's your problem:

UDEV [1286579018.442576] add /devices/pci0000:00/0000:00:02.0/usb2/2-9/2-9:1.1/input/input5/js0 (input)
UDEV_LOG=3
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:02.0/usb2/2-9/2-9:1.1/input/input5/js0
SUBSYSTEM=input
DEVNAME=/dev/input/js0
SEQNUM=1647
ID_INPUT=1
ID_INPUT_KEY=1
ID_INPUT_KEYBOARD=1
ID_VENDOR=Microsoft
ID_VENDOR_ENC=Microsoft
ID_VENDOR_ID=045e
ID_MODEL=Microsoft®_Digital_Media_Pro_Keyboard
ID_MODEL_ENC=Microsoft®\x20Digital\x20Media\x20Pro\x20Keyboard
ID_MODEL_ID=00b0
ID_REVISION=0143
ID_SERIAL=Microsoft_Microsoft®_Digital_Media_Pro_Keyboard
ID_TYPE=hid
ID_BUS=usb
ID_USB_INTERFACES=:030101:030000:
ID_USB_INTERFACE_NUM=01
ID_USB_DRIVER=usbhid
ID_PATH=pci-0000:00:02.0-usb-0:9:1.1
MAJOR=13
MINOR=0
DEVLINKS=/dev/char/13:0 /dev/input/by-id/usb-Microsoft_Microsoft®_Digital_Media_Pro_Keyboard-kbd /dev/input/by-path/pci-0000:00:02.0-usb-0:9:1.1-kbd

Leave it with me and I'll try to address it early next week. :)

Lee Jones (lag) wrote :

Here is a snip from Documentation/devices.txt

13 char Input core
    0 = /dev/input/js0 First joystick
    1 = /dev/input/js1 Second joystick
      ...
   32 = /dev/input/mouse0 First mouse
   33 = /dev/input/mouse1 Second mouse
      ...
   63 = /dev/input/mice Unified mouse
   64 = /dev/input/event0 First event queue
   65 = /dev/input/event1 Second event queue

For some reason the Microsoft Digital Media Pro Keyboard driver is requesting to be handled at a joystick. I don't know much about the area, but I will have a dig around in the code soon enough.

Lee Jones (lag) wrote :

Can you send me the output of this command please?

udevadm info --export-db

Attached the output.

Lee Jones (lag) wrote :

I've built you a kernel. It won't fix the errors, but it will give me some clues as to what's going on. The kernel can be found here:

http://people.canonical.com/~ljones/lp390959-keyboard-joystick-lucid/

Once the kernel has been loaded and you have rebooted, if you could issue the following command then unplug and re-plug your keyboard, it should provide me with even more information.

echo 1 | sudo tee -a /sys/module/hid/parameters/debug

Once complete can you upload /var/log/kern.log please?

Thanks.

Sorry for the delay getting back to you on this.

I've attached the log. For some reason the .deb file you provided for the headers wouldn't install, either the i386 or all version, so I couldn't get GDM to run as I couldn't recompile the drivers module for my graphics card. I did everything you asked from recovery mode though, so I hope it still provides the same thing.

I'm running Maverick now, so if it needs to be run on Lucid then I could do it again on a live CD session. In which case GDM would hopefully start properly.

Lee Jones (lag) on 2011-02-07
Changed in linux (Ubuntu):
assignee: Lee Jones (lag) → nobody

I am having the same issue with the Logitech Access Keyboard 600 on Xubuntu 11.10.

Leonardo Torok (leotorok) wrote :

I'm having the same problem in Ubuntu 11.10. The keyboard works perfectly, but is also recognized as a joystick. It generates problems with several games.

I actually found out that my problem was caused by btnx creating a fake joystick, and not by the keyboard itself. I've stopped using btnx and "solved" the problem accordingly.

Juliano Ravasi (jravasi) wrote :

I have the same problem with a Microsoft Wired Keyboard 600. It gets detected as a keyboard, mouse and joystick, and creates a /dev/input/js0, causing problems with several games.

Is there a way to blacklist the creation of the dev js0 file for this particular device?

Jero (jbuencuerpo) wrote :

I solve it following the instructions here http://ryort.wordpress.com/2011/12/04/udev-and-the-microsoft-digital-media-keyboard-3000-wha/

In my case was a microsoft mouse+keyboard 3000 v2.0, at a terminal type:

dsmesg

And search for something like this .

[ 19.205623] generic-usb 0003:045E:0745.0001: input,hidraw0: USB HID v1.11 Keyboard [Microsoft Microsoft® 2.4GHz Transceiver v6.0] on usb-0000:00:1a.0-2/input0

In /etc/udev/rules.d/ folder create an empty file named microsoft-digital-media-keyboard.rules

The add this lines, changing the idVendor and idProduct you see on dsmesg , in my case 045e and 0745

SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0745", RUN+="/lib/udev/keymap input/event%n /lib/udev/keymaps/microsoft-digital-media-keyboard-3000"
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0745", KERNEL=="js0", NAME="not-really-js%n"

at the folder /lib/udev/keymaps/ create another empty file, if you want to remap function keys in future you should edit this file at your purpose as is shown on the blog.

I hope it helps you,
Saludos!

Jero (jbuencuerpo) wrote :

Sorry I forgot to say you have to name the second empty file as microsoft-digital-media-keyboard-3000

themusicalduck, thank you for reporting this bug and helping make Ubuntu better. Please execute the following command, as it will automatically gather debugging information, in a terminal:
apport-collect 390959

tags: added: hw-specific
Changed in linux (Ubuntu):
status: Confirmed → Incomplete

Hi Christopher,

I don't have Ubuntu installed anymore but I did have a daily image of 12.04 from a few weeks ago installed on my pendrive. I booted it up and ran your command off there, logged into launchapad and did the authorisation bit, but then got this message:

You are not the reporter or subscriber of this problem report, or the report is a duplicate or already closed.

Please create a new report using "apport-bug".

themusicalduck, please report a new bug report via the Terminal:
ubuntu-bug linux

Then subscribe me to it and we can take it from there.

pullasuti (pullasuti) wrote :

I have a Microsoft Wireless Keyboard 3000, and the same nonsense is going on. Running the latest version of 12.04.

pullasuti, please execute the following via the Terminal and feel free to subscribe me to it:
ubuntu-bug linux

Thanks!

Christopher -

Very sorry, your request completely slipped my mind until I got the notification from pullasuti's comment.

I've made a new report here - https://bugs.launchpad.net/ubuntu/+source/linux/+bug/987622

If pullasuti makes a report too then they might both be useful at least. Or you can just continue working with him since he probably has a permanent and more up to date installation and won't be relying on using a live-usb.

pullasuti (pullasuti) wrote :

I posted a report too, if not for anything else, at least for some extra info.

It can be found here : https://bugs.launchpad.net/ubuntu/+source/linux/+bug/987877

And yup, I'm running an installation that is in daily use, so if there is something to check I'll do what I can.

Launchpad Janitor (janitor) wrote :

[Expired for linux (Ubuntu) because there has been no activity for 60 days.]

Changed in linux (Ubuntu):
status: Incomplete → Expired
Juliano Ravasi (jravasi) wrote :

Still a problem in Precise and kernel 3.2.0-25.

Changed in linux (Ubuntu):
status: Expired → New
tags: added: apport-collected quantal

AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.24.
ApportVersion: 2.0.1-0ubuntu8
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: juliano 4956 F.... pulseaudio
CRDA: Error: command ['iw', 'reg', 'get'] failed with exit code 1: nl80211 not found.
Card0.Amixer.info:
 Card hw:0 'Intel'/'HDA Intel at 0xf0000000 irq 22'
   Mixer name : 'Realtek ALC889'
   Components : 'HDA:10ec0889,80860022,00100004'
   Controls : 42
   Simple ctrls : 24
DistroRelease: Ubuntu 12.10
EcryptfsInUse: Yes
HibernationDevice: RESUME=UUID=4f433bf6-748e-432d-b93f-de4d0e693b91
InstallationMedia: Kubuntu 10.10 "Maverick Meerkat" - Release amd64 (20101008)
IwConfig:
 lo no wireless extensions.

 eth0 no wireless extensions.
NonfreeKernelModules: nvidia
Package: linux (not installed)
ProcFB:

ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.2.0-25-generic root=/dev/mapper/Nagisa1-Root ro rootdelay=5
ProcVersionSignature: Ubuntu 3.2.0-25.40-generic 3.2.18
RelatedPackageVersions:
 linux-restricted-modules-3.2.0-25-generic N/A
 linux-backports-modules-3.2.0-25-generic N/A
 linux-firmware 1.79
RfKill:

SourcePackage: linux
Tags: quantal quantal
Uname: Linux 3.2.0-25-generic x86_64
UpgradeStatus: Upgraded to quantal on 2012-06-24 (0 days ago)
UserAsoundrc:
 #pcm.!default plug:hw:0
 #ctl.!default hw:0
UserGroups: adm admin cdrom dialout libvirtd lpadmin plugdev sambashare vboxusers
dmi.bios.date: 08/30/2010
dmi.bios.vendor: Intel Corp.
dmi.bios.version: SOX5810J.86A.5456.2010.0830.0013
dmi.board.asset.tag: Base Board Asset Tag
dmi.board.name: DX58SO
dmi.board.vendor: Intel Corporation
dmi.board.version: AAE29331-703
dmi.chassis.type: 2
dmi.modalias: dmi:bvnIntelCorp.:bvrSOX5810J.86A.5456.2010.0830.0013:bd08/30/2010:svn:pn:pvr:rvnIntelCorporation:rnDX58SO:rvrAAE29331-703:cvn:ct2:cvr:

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

Brad Figg (brad-figg) on 2012-06-24
Changed in linux (Ubuntu):
status: New → Confirmed
tags: added: lucid
Changed in linux:
importance: Unknown → Medium
status: Unknown → Confirmed

Juliano Ravasi, please do not apport-collect to another reporter's report. If you are having a problem in Ubuntu, please file a new report by executing the following via the Terminal and feel free to subscribe me to it:
ubuntu-bug linux

Thanks!

summary: - Microsoft digital media pro keyboard recognised as joystick - interferes
- with some games
+ 045e:00b0 Microsoft digital media pro keyboard recognised as joystick -
+ interferes with some games
tags: removed: apport-collected quantal
tags: added: jaunty
removed: lucid
Changed in linux (Ubuntu):
status: Confirmed → Incomplete
tags: added: lucid
tags: added: needs-upstream-testing
affects: linux → null
Changed in null:
importance: Medium → Undecided
status: Confirmed → New
status: New → Invalid
Ingo Ruhnke (grumbel) wrote :

Could somebody who has the problem provide the output of:

$ jstest /dev/input/js0

and

$ evtest /dev/input/eventX (replace X with number of the device)

The kernel decides what is a joystick or not by looking at what buttons the evdev device provides, so there is likely some conflict in the button names.

Here you go.

I recently installed 12.04 onto a spare netbook, so I can now be a bit more helpful with this bug since I have a proper install on the go again.

I just realised evtest might be incomplete. Does it need to be run for a very long time?

I could leave it on overnight later on if necessary.

Ingo Ruhnke (grumbel) wrote :

The output is fine the way it is, everything after "Testing ... (interrupt to exit)" are just input events that aren't needed.

You could however check if you have another device under /dev/input/eventX for the keyboard, some keyboards get split into two event devices (one for the regular keys, another for the multimedia stuff).

Here's the second evtest. The one I first attached was event5, this one is event6.

Timo Jyrinki (timo-jyrinki) wrote :

Also affected similarly 045e:0745 (Nano Transceiver).

Copying from my comment in the later bug #581862 which I'll set as duplicate of this one:

--

Changing back to Confirmed, still happens. For example in Psychonauts from Ubuntu store this bug causes the character to run in one direction all the time.

Creating a file /lib/udev/rules.d/52-ms-keyboard.rules and adding the following there does workaround the problem:

SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0745", KERNEL=="js[0-9]*", MODE="0000"

(adapted from https://bbs.archlinux.org/viewtopic.php?id=142469)
--

summary: - 045e:00b0 Microsoft digital media pro keyboard recognised as joystick -
- interferes with some games
+ 045e:00b0 Microsoft keyboard and 045e:0745 nano transceiver recognised
+ as joystick - interferes with some games
Changed in linux (Ubuntu):
status: Incomplete → Confirmed
Changed in linux:
importance: Unknown → Medium
status: Unknown → Confirmed
Changed in linux (Ubuntu):
status: Confirmed → Triaged
tags: added: amd64 kernel-bug-exists-upstream-v3.4-rc4 oneiric precise
Arcturus691 (lblouin) wrote :

This bug causes supertuxcart to malfunction and when you perform the workaround(calibrating the keyboard) it actually causes supertuxcart to crash in kubuntu 12.10.

This bug is still present in 13.04

papukaija (papukaija) on 2013-06-14
tags: added: raring
Foul (foulweb) wrote :

Still present in Kubuntu 14.14 :\

Foul (foulweb) wrote :

14.04 sorry..

Sérgio Pace (svpace) wrote :

I am having the same issue with Microsoft Wireless Mobile Mouse 1000 (Product Id: 0745) and Microsoft Wireless Keyboard 800 (Product Id: 07b2) on Xubuntu 14.04. Each dongle creates 3 devices: a keyboard, a mouse and a generic HID device that is recognized as a joystick.

Same issue with other keyboard - Aula Adjudication

Kernel: 3.15.0-031500-generic
Ubuntu: 14.04 64bit

lsusb & lspci
http://pastebin.com/N7jSVH41

dmesg
http://pastebin.com/bR5AgnR4

kern:
https://friendpaste.com/2MCgzw3g18ATOWyLGBBBvy

Josef Schlehofer, thank you for your comment. So your hardware and problem may be tracked, could you please file a new report with Ubuntu by executing the following in a terminal while booted into the default Ubuntu kernel (not a mainline one) via:
ubuntu-bug linux

For more on this, please read the official Ubuntu documentation:
Ubuntu Bug Control and Ubuntu Bug Squad: https://wiki.ubuntu.com/Bugs/BestPractices#X.2BAC8-Reporting.Focus_on_One_Issue
Ubuntu Kernel Team: https://wiki.ubuntu.com/KernelTeam/KernelTeamBugPolicies#Filing_Kernel_Bug_reports
Ubuntu Community: https://help.ubuntu.com/community/ReportingBugs#Bug_reporting_etiquette

When opening up the new report, please feel free to subscribe me to it.

Thank you for your understanding.

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

Alexander (jufofu) wrote :

Same for Microsoft 2.4GHz Transceiver v9.0 from MS Sculpt Ergonomic Desktop 045e:07a5
$ udevadm info /dev/input/js0 http://pastebin.com/JKJuPWQq
$ udevadm info --attribute-walk /dev/input/js0 http://pastebin.com/0drxcrS5

Looks like a workaround is here: https://forum.manjaro.org/index.php?PHPSESSID=edmjqlp8356fi33uc12ag0hfj0&topic=15275.msg144519#msg144519

Alexander, thank you for your comment. Could you please file a new report with Ubuntu by executing the following in a terminal while booted into the default Ubuntu kernel (not a mainline one) via:
ubuntu-bug linux

For more on this, please read the official Ubuntu documentation:
Ubuntu Bug Control and Ubuntu Bug Squad: https://wiki.ubuntu.com/Bugs/BestPractices#X.2BAC8-Reporting.Focus_on_One_Issue
Ubuntu Kernel Team: https://wiki.ubuntu.com/KernelTeam/KernelTeamBugPolicies#Filing_Kernel_Bug_reports
Ubuntu Community: https://help.ubuntu.com/community/ReportingBugs#Bug_reporting_etiquette

When opening up the new report, please feel free to subscribe me to it.

As well, please do not announce in this report you created a new bug report.

Thank you for your understanding.

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

Martin Spacek (mspacek) wrote :

I seem to be having the same problem with a Microsoft Sculpt Mobile Mouse I just bought.

http://www.microsoft.com/hardware/en-ca/p/sculpt-mobile-mouse

This is in Xubuntu 14.04 amd64 on a Thinkpad W510. In the xfce "Mouse and Touchpad" settings I get two entries for "Microsoft Microsoft (R) Nano Transceiver v1.0".

Some more details:

$ udevadm info /dev/input/js0

https://gist.github.com/mspacek/c805f36a7129a30a0bcf

$ udevadm info --attribute-walk /dev/input/js0

https://gist.github.com/mspacek/96673b195fa0b16f9e20

$ uname -a
Linux Escher 3.13.0-35-generic #62-Ubuntu SMP Fri Aug 15 01:58:42 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

this bug is still present, affecting Microsoft brand wireless mice and keyboards. in 2015, six years after the first bug report.

come on guys.

idaho06 (cesar-idaho) wrote :

I have a Microsoft Wired Keyboard 600.
Used the command:
$ udevadm info -q path -a -n input/js0

to get the precise parameters for the udev rules file.

And this is my workaround:

<pre>
idaho@streetfighter2:~$ cat /etc/udev/rules.d/99-false-joystick-microsoft.rules
SUBSYSTEM=="input", ATTRS{name}=="Microsoft Wired Keyboard 600", ATTRS{phys}=="*/input1", RUN{program}+="/bin/rm %p", RUN{program}+="/bin/rm /dev/input/%k"
</pre>

This deletes every /dev entry for the second device of the keyboard (input1), including /dev/input/js0 and /dev/input/event3.

Denilson Sá (denilsonsa) wrote :

As a workaround, I tried collecting several Vendor/Product IDs that trigger this bug, and created a udev rule for disabling the joystick device for them. I'm sharing this udev rule file at: https://gist.github.com/denilsonsa/978f1d842cf5430f57f6

Paulo Villi (paulovilli) wrote :

Bug happens on fully updated Linux Mint 18 Cinnamon (based on Ubuntu 16.04) with linux kernel 4.4.0-31.

I see my Microsoft Wireless Keyboard 2000 as "Microsoft Microsoft® 2.4GHz Transceiver v7.0" with Axes:37 Buttons:75 as Device:/dev/input/js0 on jstest-gtk.

On Steam version of Doom & Destiny it really treats the transceiver as a joystick and registers a constant "directional up" from it, making the game unplayable.

On Steam version of The Banner Saga it works as keyboard but at the same time when I try using volume up and volume down it detects these as a gamepad input and starts the built-in gamepad setup in mid-game.

To post a comment you must log in.
This report contains Public information  Edit
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.