Comment 83 for bug 123920

Revision history for this message
Dhanish Patel (dhanish) wrote :

Just experienced this issue again....this time on upgrade to Precise from 11.10. Coincidently, exprienced exact same issue with when trying out Debian Wheezy/testing.

Also, worked is around the issue by changing the /lib/udev/rules.d/97-bluetooth-hid2hci.rules from "hiddev*" to "hidraw*" for Logitech devices.

lsusb shows....

Bus 006 Device 002: ID 046d:0b02 Logitech, Inc. BT Mini-Receiver (HID proxy mode)
Bus 006 Device 004: ID 046d:c70e Logitech, Inc. MX1000 Bluetooth Laser Mouse
Bus 006 Device 005: ID 046d:c70a Logitech, Inc. MX5000 Cordless Desktop

dmesg | grep 046D shows...

[ 3.672924] generic-usb 0003:046D:C70E.0002: input,hidraw1: USB HID v1.11 Keyboard [Logitech Logitech BT Mini-Receiver] on usb-0000:00:1d.0-1.2/input0
[ 3.918857] generic-usb 0003:046D:C70A.0003: input,hiddev0,hidraw2: USB HID v1.11 Mouse [Logitech Logitech BT Mini-Receiver] on usb-0000:00:1d.0-1.3/input0

I don't quite understand all of this but it seems following patch could be the source of the regression:

https://git.kernel.org/?p=bluetooth/bluez.git;a=commitdiff;h=63c3e0561a616dd72f1b78fcd9fd5e88015f2b31

It's scary to see patch actually say "This fix is going to cause major regressions in distros..."

So what is the long term solution for us? Patch seems to indicate that its fixing wrong behavior:

[quote]
From 63c3e0561a616dd72f1b78fcd9fd5e88015f2b31 Mon Sep 17 00:00:00 2001
From: Peter Hurley <email address hidden>
Date: Fri, 3 Jun 2011 16:53:03 -0400
Subject: [PATCH] Fix udev rule for Logitech devices

The *real* history of this file is a nightmare. Now that it's
back in the bluez project, fix the problems that were added
while it was in udev.

1) Only hiddev* devices provide the ioctl interface hid2hci uses
to switch from HID->HCI for --method=logitech-hid. (inquiring
minds can look in the kernel git tree at drivers/hid/usbhid/hiddev.c)
2) hidraw* devices don't belong to subsystem=usb (they are
subsystem=hidraw). This means that the udev rule that matched based on
hidraw* would never have been run anyway because of the early-out
subsystem!=usb on line 4.

This fix is going to cause major regressions in distros because there
is currently no way provided by bluez to *NOT* run hid2hci.

Many, many users (and maintainers) mistakenly believe that because
the keyboard and mouse works when the vid/pid of their device is matched
by the hidraw* rule, that "bluetooth" must be working. Of course, what's
really happening is the keyboard and mouse are working as HID input
devices instead.
[/quote]