[Pkg-bluetooth-maintainers] Bug#626975: bluez: getting a "Logitech, Inc. diNovo Edge Keyboard" working

Cristian Ionescu-Idbohrn cristian.ionescu-idbohrn at axis.com
Mon May 16 20:13:42 UTC 2011


Package: bluez
Version: 4.91-1
Severity: important

This is a USB bluetooth dongle and a keyboard with a builtin mouse pad.

After plugging the dongle in an USB port, lsusb reports:

Bus 001 Device 004: ID 046d:0b04 Logitech, Inc.
Bus 001 Device 005: ID 046d:c713 Logitech, Inc.
Bus 001 Device 006: ID 046d:c714 Logitech, Inc. diNovo Edge Keyboard

The dongle chip Manufacturer: Broadcom Corporation.

The udev rule /lib/udev/rules.d/62-bluez-hid2hci.rules (package bluez)
does not run:

ACTION=="add", ENV{ID_VENDOR}=="046d", ENV{ID_MODEL}=="c714" \
RUN+="/usr/sbin/hid2hci --method logitech -v $env{ID_VENDOR} -p $env{ID_MODEL} --mode hci"

as expected.  Instead, I note the 'joydev' kernel module being loaded,
and:

	# hcitool dev
	Devices:

reports nothing.

Please note, there's a /lib/udev/rules.d/70-hid2hci.rules (package
udev), with a:

KERNEL=="hidraw*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c70[4abc]|c71[34bc]", \
  RUN+="hid2hci --method=logitech-hid --devpath=%p"

which seems terribly wrong (at least for the 'c71[34]').  Also,
'--method=logitech-hid' is not a documented method.  What's documented is:

	-m, --method=        Method to use to switch [csr, logitech, dell]

If I run manually:

	# hid2hci --method logitech -v 046d -p c714 --mode hci
	Attempting to switch device 046d:c714 to HCI mode was successful

This seems to do what I expect, reports success and, to my surprise, exits
with status code 2 :(  I know for a fact SUCCESS == 0.

I get:

	# hcitool dev
	Devices:
		hci0    00:1F:20:aa:bb:cc

and see kernel module 'btusb' loaded, and:

	# lsusb
	Bus 001 Device 004: ID 046d:0b04 Logitech, Inc.
	Bus 001 Device 005: ID 046d:c713 Logitech, Inc.
	Bus 001 Device 006: ID 046d:c714 Logitech, Inc. diNovo Edge Keyboard
	Bus 001 Device 007: ID 046d:c709 Logitech, Inc. BT Mini-Receiver (HCI mode)

Also:

	# hcitool scan
	Scanning ...
        	 00:1F:20:dd:ee:ff       Logitech diNovo Edge

Next step is pairing, but none of the straight forward methods I tried
work out of the box :(  Tried this:

	# bluez-simple-agent hci0 00:1F:20:dd:ee:ff

but that is successful _only_ if one manages to get everything going at
the first attempt.  If not, using a bluez-simple-agent _undocumented_ and
_odd_ feature (information found here:

	http://blog.projectnibble.org/2010/08/08/how-ubuntus-broken-bluetooth-support-came-to-be/comment-page-1/#comment-1492

) may get one succeed every time:

	# bluez-simple-agent hci0 00:1F:20:dd:ee:ff repair >/dev/null || bluez-simple-agent hci0 00:1F:20:dd:ee:ff

Next thing is to connect (see above link):

	# dbus-send --system --print-reply --dest=org.bluez org/bluez/NNNNN/hci0/dev_00_1F_20_dd_ee_ff org.bluez.Input.Connect

That's the simplified version.
There are a few more dbus-send commands in between.

Of course I collected a lot of data from my weekend long attempts to
get this working, which I'm willing to share.  I also put the whole
thing in an inefficient shell script.  I can share that too.

IMO, the _major_ problem is to get the udev-rules to work out of the box.
Obviously there is at least one bug in there.

Next must come the pairing oddities and finally the connection (maybe
trust too).


-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing')
Architecture: i386 (i686)

Kernel: Linux 2.6.38-2-686 (SMP w/2 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/bash

Versions of packages bluez depends on:
ii  dbus                         1.4.8-3     simple interprocess messaging syst
ii  libbluetooth3                4.91-1      Library to use the BlueZ Linux Blu
ii  libc6                        2.13-4      Embedded GNU C Library: Shared lib
ii  libcap-ng0                   0.6.5-1+b1  An alternate POSIX capabilities li
ii  libdbus-1-3                  1.4.8-3     simple interprocess messaging syst
ii  libglib2.0-0                 2.28.6-1    The GLib library of C routines
ii  libusb-0.1-4                 2:0.1.12-17 userspace USB programming library
ii  lsb-base                     3.2-27      Linux Standard Base 3.2 init scrip
ii  makedev                      2.3.1-89    creates device files in /dev
ii  module-init-tools            3.12-1      tools for managing Linux kernel mo
ii  python-dbus                  0.83.1-1+b1 simple interprocess messaging syst
ii  python-gobject               2.28.4-1    Python bindings for the GObject li
ii  udev                         167-3       /dev/ and hotplug management daemo

bluez recommends no packages.

bluez suggests no packages.

-- no debconf information


Cheers,

-- 
Cristian





More information about the Pkg-bluetooth-maintainers mailing list