kensington pocket mouse model #72237 USB 0d62:1000 not working under 8.10

Bug #325581 reported by Douglas Henke
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
xserver-xorg-input-evdev
Won't Fix
Medium
linux (Ubuntu)
Invalid
Medium
Unassigned
xserver-xorg-input-evdev (Ubuntu)
Fix Released
High
Unassigned

Bug Description

Binary package hint: xserver-xorg-input-evdev

Under Ubuntu 8.10, my Kensington pocket mouse, model #72237, does not move the cursor. (The buttons and wheel work, just not X or Y movement.) This is a wireless mouse with a USB dongle, USB ID 0d62:1000. The kernel recognizes the device, and udev creates the appropriate device files. I can stop gdm, cat the event file and see data when I move the mouse.

The same device works fine under Ubuntu 8.04 (tested on two computers) and WinXP (likewise). I have tried three machines with Ubuntu 8.10 (and radically different hardware), and it fails in the same way on all of them -- including one that dual-boots to 8.04 and then works fine. Also, other USB mice work fine on all the 8.10 hosts.

It looks like the X server mistakes it for a keyboard. From my /var/log/Xor.0.log:

(II) config/hal: Adding input device HID 0d62:1000
(**) HID 0d62:1000: always reports core events
(**) HID 0d62:1000: Device: "/dev/input/event2"
(II) HID 0d62:1000: Found x and y relative axes
(II) HID 0d62:1000: Found x and y absolute axes
(II) HID 0d62:1000: Found absolute touchpad
(II) HID 0d62:1000: Found 32 mouse buttons
(II) HID 0d62:1000: Found keys
(II) HID 0d62:1000: Configuring as mouse
(II) HID 0d62:1000: Configuring as keyboard
(II) XINPUT: Adding extended input device "HID 0d62:1000" (type: KEYBOARD)

Here is what "xinput list" says about it:

"HID 0d62:1000" id=5 [XExtensionKeyboard]
 Num_keys is 248
 Min_keycode is 8
 Max_keycode is 255
 Num_buttons is 32
 Num_axes is 2
 Mode is Relative
 Motion_buffer is 256
 Axis 0 :
  Min_value is -1
  Max_value is -1
  Resolution is 1
 Axis 1 :
  Min_value is -1
  Max_value is -1
  Resolution is 1

I'd be happy to provide any additional data that would help, or make any suggested edits to my xorg.conf.
---
AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.21.
AplayDevices:
 **** List of PLAYBACK Hardware Devices ****
 card 0: Intel [HDA Intel], device 0: ALC268 Analog [ALC268 Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
Architecture: i386
ArecordDevices:
 **** List of CAPTURE Hardware Devices ****
 card 0: Intel [HDA Intel], device 0: ALC268 Analog [ALC268 Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: henke 1535 F.... pulseaudio
CRDA: Error: [Errno 2] No such file or directory
Card0.Amixer.info:
 Card hw:0 'Intel'/'HDA Intel at 0x58540000 irq 16'
   Mixer name : 'Realtek ALC268'
   Components : 'HDA:10ec0268,1025015b,00100101'
   Controls : 8
   Simple ctrls : 5
CheckboxSubmission: c003c793cae090991827803bc76423b6
CheckboxSystem: c69722ecac764861be52925fa50b4dcc
DistroRelease: Ubuntu 10.04
DkmsStatus: Error: [Errno 2] No such file or directory
HibernationDevice: RESUME=UUID=4c8ee15c-d4e4-45ba-a036-4cd81df6ccb0
MachineType: Acer AOA150
Package: xserver-xorg-input-evdev 1:2.3.2-5ubuntu1
PackageArchitecture: i386
ProcCmdLine: root=UUID=e87d53ec-2f11-42fe-a591-8a858aea7353 ro quiet splash
ProcEnviron:
 PATH=(custom, user)
 LANG=en_US.utf8
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 2.6.32-21.32-generic 2.6.32.11+drm33.2
Regression: Yes
Reproducible: Yes
RfKill:
 0: phy0: Wireless LAN
  Soft blocked: no
  Hard blocked: no
Tags: lucid regression-release needs-upstream-testing lucid lucid
Uname: Linux 2.6.32-21-generic i686
UserGroups: adm admin cdrom dialout lpadmin plugdev sambashare
WpaSupplicantLog:

dmi.bios.date: 10/06/2008
dmi.bios.vendor: Acer
dmi.bios.version: v0.3310
dmi.board.asset.tag: Base Board Asset Tag
dmi.board.vendor: Acer
dmi.board.version: Base Board Version
dmi.chassis.type: 1
dmi.chassis.vendor: Chassis Manufacturer
dmi.chassis.version: Chassis Version
dmi.modalias: dmi:bvnAcer:bvrv0.3310:bd10/06/2008:svnAcer:pnAOA150:pvr1:rvnAcer:rn:rvrBaseBoardVersion:cvnChassisManufacturer:ct1:cvrChassisVersion:
dmi.product.name: AOA150
dmi.product.version: 1
dmi.sys.vendor: Acer
system:
 distro: Ubuntu
 codename: lucid
 architecture: i686
 kernel: 2.6.32-21-generic

Revision history for this message
Douglas Henke (henke-insync) wrote :

Update: After doing some more digging, I grow increasingly suspicious that the root cause is not in evdev, but rather in HAL. It looks like HAL may be reporting the wrong thing and then evdev just acts on the bad information. (Please see the attached lshal output.)

I'm not sure about this analysis; comments from those with more experience would be appreciated. I've tried putting some things in /etc/hal/fdi/policy/ to make the device look less mouse-like, so far without success. (The attached output is from a fresh boot with no such modifications.)

Revision history for this message
Douglas Henke (henke-insync) wrote :

In my previous comment, please s/less mouse-like/more mouse-like/ .

I have managed to make the lshal output look convincingly mouse-like by creating a file /etc/hal/fdi/information/00kensington.fdi which removes 'input.keys' and 'button' from the 'info.capabilities' like, thus:

<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
  <device>
    <match key="info.product" string="HID 0d62:1000">
      <remove key="info.capabilities" type="strlist">input.keys</remove>
      <remove key="info.capabilities" type="strlist">button</remove>
    </match>
  </device>
</deviceinfo>

However, evdev still thinks it's a keyboard; the Xorg.0.log output remains as per the original report.

I'm still not able to decide with confidence if this is a problem in HAL, evdev or even the kernel HID driver (from which I assume HAL gets device capability info by way of sysfs). Apologies to the evdev team if I've reported this to the wrong place.

Revision history for this message
Douglas Henke (henke-insync) wrote :

The reason evdev is confused is that, apparently, ioctl(fd, EVIOCGBIT, EV_KEY, ...) is returning capabilities that don't match the actual device in question. (Come to think of it, EV_ABS coming back with something for a mouse is odd, too.)

I'm not sure if the right solution is to add something to the quirks list in the kernel usbhid stuff, and/or if a workaround in evdev would be useful.

Would something like the attached help? (Still trying to figure out how to build it myself so I can test...)

Revision history for this message
Douglas Henke (henke-insync) wrote :

Tested; doesn't seem to break anything, but doesn't fix my problem either. With the patch in place, the mouse is now being categorized as a mouse and not a keyboard:

(II) config/hal: Adding input device HID 0d62:1000
(**) HID 0d62:1000: always reports core events
(**) HID 0d62:1000: Device: "/dev/input/event10"
(II) HID 0d62:1000: Found 32 mouse buttons
(II) HID 0d62:1000: Found x and y relative axes
(II) HID 0d62:1000: Found x and y absolute axes
(II) HID 0d62:1000: Found absolute touchpad
(II) HID 0d62:1000: Found keys
(II) HID 0d62:1000: Configuring as mouse
(**) HID 0d62:1000: YAxisMapping: buttons 4 and 5
(**) HID 0d62:1000: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
(II) XINPUT: Adding extended input device "HID 0d62:1000" (type: MOUSE)
(**) Option "xkb_rules" "evdev"
(**) HID 0d62:1000: xkb_rules: "evdev"
(**) Option "xkb_model" "evdev"
(**) HID 0d62:1000: xkb_model: "evdev"
(**) Option "xkb_layout" "us"
(**) HID 0d62:1000: xkb_layout: "us"

It still doesn't make the cursor move, though. (And it is still getting keyboard-related options applied to it.)

Revision history for this message
Douglas Henke (henke-insync) wrote :
Revision history for this message
Douglas Henke (henke-insync) wrote :

Here are the comments that I meant to apply to the above patch; they somehow didn't "take":

Okay, got it. The attached patch makes my Kensington pocket mouse work again, and doesn't break any of the other input devices I have sitting around. (Caveat: I have no touchscreens.)

The basic ideas are:
   1) If a device says it has relative axes, then any claim that it also has absolute axes is a lie.

   2) A device can only be one of touchscreen, mouse or keyboard. If it looks like several, then
       take the first thing from that list it claims to be.

Bear in mind I haven't ever seen the usbhid, hald or evdev code before a couple days ago, so please apply vigorous quality control before pushing this into anything that'll be used by somebody's grandmother!

Revision history for this message
alex kalderimis (alexkalderimis) wrote :

Great to know there is a patch for this - the exact same thing happens with the Benq M310. (lists as keyboard, buttons and wheel but no movement, etc).

Bryce Harrington (bryce)
tags: added: intrepid
Revision history for this message
Bryce Harrington (bryce) wrote :

Thanks for posting this patch, I'm kicking myself for not seeing this earlier. I would like to see this vetted by upstream since it changes behavior for all devices not just this specific one, so it could introduce regressions; for that reason I am going to hold off on it for Karmic.

I think it might be ok to include for Lucid, however even more preferable would be to fix this in the kernel so it's not necessary to work around it at all. For that reason I've added a kernel task. If the kernel team doesn't solve it directly, I'll look into the workaround further hopefully before Lucid ships. If you don't hear from me within a few months on this, give me a ping.

Changed in xserver-xorg-input-evdev (Ubuntu):
status: New → Triaged
importance: Undecided → High
Revision history for this message
Douglas Henke (henke-insync) wrote :

Bryce @#8: Happy to help. I am in complete agreement with your ideas about 1) a fix at the kernel level being better than a workaround at the evdev level (though perhaps both would be a worthy idea, in a belt-and-suspenders kind of way; are there any real-life devices which have both absolute and relative axes?) and 2) getting more eyes on it before it goes out to Joe Average User.

I'll keep the notification message in my queue and ping you around January-ish unless I hear from you before.

Happy hacking!

Revision history for this message
Jim Spece (jim-15014) wrote :

Hey guys,

I'm having the same issue with the same mouse (or similar - same HID) on Ubuntu 9.04 x86. I'd like to apply the patch to evdev but I'm not sure how to do so - there's no evdev.c on this system. Build-essentials is not installed on this system. the evdev.h files in the kernel headers are blank.

Any directions you can point me toward? I've done a little patching, but it's been a while.

Thanks!

Changed in linux (Ubuntu):
importance: Undecided → Medium
status: New → Triaged
tags: added: xorg-needs-kernel-fix
Revision history for this message
Jeff Norden (jeff-math) wrote :

I've got this problem as well with a BenQ M310 mouse. It uses the same
0d62:1000 wireless receiver (see also bug 362855). Patching
/usr/lib/xorg/modules/input/evdev_drv.so fixes the problem for me, although
Henke's file no longer works for the current version. I'm attaching a similar
patch which is what I'm using now.

Is anyone currently working on a kernel fix? If not, I may give it a try if I
can find some time.

It is interesting to note that this mouse is also broken in macos. See
http://discussions.apple.com/thread.jspa?messageID=742869 At one time BenQ was
giving out receivers with updated firmware, but when I called them last summer
I was informed that they were no longer available.

tags: added: patch
Revision history for this message
Bryce Harrington (bryce) wrote :

[This is an automatic notification.]

Hi Douglas,

This bug was reported against an earlier version of Ubuntu, can you
test if it still occurs on Lucid?

Please note we also provide technical support for older versions of
Ubuntu, but not in the bug tracker. Instead, to raise the issue through
normal support channels, please see:

    http://www.ubuntu.com/support

If you are the original reporter and can still reproduce the issue on
Lucid, please run the following command to refresh the report:

  apport-collect 325581

If you are not the original reporter, please file a new bug report, so
we can work with you as the original reporter instead (you can reference
bug 325581 in your report if you think it may be related):

  ubuntu-bug xorg

If by chance you can no longer reproduce the issue on Lucid or if you
feel it is no longer relevant, please mark the bug report 'Fix Released'
or 'Invalid' as appropriate, at the following URL:

  https://bugs.launchpad.net/ubuntu/+bug/325581

Changed in xserver-xorg-input-evdev (Ubuntu):
status: Triaged → Incomplete
tags: added: needs-retested-on-lucid-by-june
Revision history for this message
Douglas Henke (henke-insync) wrote : AlsaDevices.txt

apport information

tags: added: apport-collected
description: updated
Revision history for this message
Douglas Henke (henke-insync) wrote : BootDmesg.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : Card0.Amixer.values.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : Card0.Codecs.codec.0.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : CurrentDmesg.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : Dependencies.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : GdmLog.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : GdmLog1.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : GdmLog2.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : IwConfig.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : Lspci.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : Lsusb.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : PciDisplay.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : PciMultimedia.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : ProcCpuinfo.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : ProcInterrupts.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : ProcModules.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : RelatedPackageVersions.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : UdevDb.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : UdevLog.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : WifiSyslog.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : XorgConf.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : XorgLog.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : XorgLogOld.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : Xrandr.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : glxinfo.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : monitors.xml.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : setxkbmap.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : xdpyinfo.txt

apport information

Revision history for this message
Douglas Henke (henke-insync) wrote : xkbcomp.txt

apport information

Bryce Harrington (bryce)
tags: added: lucid
Changed in xserver-xorg-input-evdev (Ubuntu):
status: Incomplete → Confirmed
Revision history for this message
tetzlav (tetzlav-web) wrote :

new Version of Jeff Nordens patch for v2.3.2

Revision history for this message
karlitos (karlitos) wrote :

After i plug the mouse under Ubuntu 10.10. the scroll whell works, the buttons works but the cursor doesen't move ! I have no Idea how should i apply the patch.

here is my lsusb :
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 0d62:1000 Darfon Electronics Corp.
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Revision history for this message
Roger Gantner (rtgantner) wrote :

BenQ M310 and Ubuntu 10.10
Mouse wheel and buttons work, mouse will not track. I assume still being identified as a keyboard?

Revision history for this message
Ânderson Rodrigues (aprrodrigues-brturbo) wrote :

I'm having the same problem with my benq m310 in ubuntu 10.04 i already applied the patch and still not run ... any solution??

Revision history for this message
Sebastien Bacher (seb128) wrote :

thank you for your work there, the bug is a bit confusing now though with several patches and workaround. Did anyone opened an upstream bug about the issue? If that's the case could you give the url there, if not could someone open one?
Which patches should be considered for sponsoring? The workarounds ones will probably not go to the distribution...

Changed in xserver-xorg-input-evdev (Ubuntu):
status: Confirmed → Incomplete
Revision history for this message
Sebastien Bacher (seb128) wrote :

Could someone check also if that's still an issue in 10.10 or in natty?

Revision history for this message
Sebastien Bacher (seb128) wrote :

unsubscribing the sponsors for now, please subscribe them back if that's still an issue and there is a patch to review

Changed in linux (Ubuntu):
assignee: nobody → Ânderson Rodrigues (aprrodrigues-brturbo)
assignee: Ânderson Rodrigues (aprrodrigues-brturbo) → nobody
Revision history for this message
Ânderson Rodrigues (aprrodrigues-brturbo) wrote :

The same problem appear in ubuntu 10.10 i can't use my Benq M310, in other distro this work fine... only ubuntu the problem appear :(

Bryce Harrington (bryce)
Changed in xserver-xorg-input-evdev (Ubuntu):
status: Incomplete → New
Bryce Harrington (bryce)
Changed in linux (Ubuntu):
status: Triaged → Invalid
Revision history for this message
Bryce Harrington (bryce) wrote :

I've forwarded the bug report and patch upstream for comment. People with this hardware, please subscribe to this upstream bug so you can keep tabs on it. Upstream may need you to test alternate patches or might have other questions which you can help answer. Once an acceptable patch is taken upstream, we can get it fixed in Ubuntu as well.

Changed in xserver-xorg-input-evdev (Ubuntu):
status: New → Triaged
Changed in evdev:
status: Unknown → Confirmed
Changed in evdev:
importance: Unknown → Medium
Changed in evdev:
status: Confirmed → Won't Fix
Revision history for this message
Bryce Harrington (bryce) wrote :

According to upstream, this device will need to be patched in an xorg.conf.d snippet like this:

Section "InputClass"
   Identifier "Benq m310"
   MatchProduct "HID 0d62:1000"
   Driver "evdev"
   Option "IgnoreAbsoluteAxes" "true"
EndSection

Bryce Harrington (bryce)
tags: removed: xorg-needs-kernel-fix
Revision history for this message
Timo Aaltonen (tjaalton) wrote :

I've added this quirk to git, so 11.10 will have the fix.

Changed in xserver-xorg-input-evdev (Ubuntu):
status: Triaged → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package xserver-xorg-input-evdev - 1:2.6.0-1ubuntu13

---------------
xserver-xorg-input-evdev (1:2.6.0-1ubuntu13) oneiric; urgency=low

  * 11-evdev-trackpoint.conf: Add a config snippet for enabling wheel
    emulation for trackpoint devices, should support a variety of models.
    Middlemouse emulation is turned on, to allow dragging for instance
    in Nautilus. Thanks to Jens Böning and others for collecting data and
    testing this! (LP: #554984)
  * 11-evdev-quirks.conf: Add a quirk for Kensington Pocket Mouse / Benq m310
    to ignore AbsoluteAxis. (LP: #325581)
 -- Timo Aaltonen <email address hidden> Wed, 29 Jun 2011 19:17:04 +0300

Changed in xserver-xorg-input-evdev (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.