# I want my Logitech BT Dongle in HID Mode [solved]

## keyser_soze

Hi 

Bit of an odd request, it seems, after all the googling I have done on the issue, but... here goes.

I have a De Novo Edge BT Keyboard. It comes with a dongle which has one of those little magic red buttons to connect to the keyboard. I assume therefore, that by default this device should appear to the OS as a usb keyboard in HID mode. Most people seem to historically have been having trouble the other way round (ie wanting HCI mode but getting HID mode).

They keyboard works fine during BIOS and in windows, but when I boot to linux it stops working, unless i reset it and pair it.

I think the answer is that Linux is putting my dongle into HCI mode but I actually want it in HID mode. I want this because I dual boot to windows a lot, so I need it to work in BIOS (grub) and also I don't want to have to muck around with repairing (since I would need another keyboard handy to log in).

Here is my lsusb output

```

Bus 005 Device 004: ID 046d:c713 Logitech, Inc. 

Bus 005 Device 005: ID 046d:c714 Logitech, Inc. diNovo Edge Keyboard

Bus 005 Device 006: ID 046d:c709 Logitech, Inc. BT Mini-Receiver (HCI mode)

```

When I run hci2hid --mode=hid ... blah blah... it spits an error saying it can't do it.

Anyone have any ideas?

----------

## roarinelk

Ha! I knew I'm not the only one with this problem.

Easiest way is to delete /lib/udev/hid2hci  and replace it with a symlink to /bin/true.

This way it'll stay in HID mode, but you need to recreate the symlink after every udev update.

----------

## iss

Check out my post in other thread -- https://forums.gentoo.org/viewtopic-p-6983628.html#6983628

BTW the /lib/udev/rules.d/97-bluetooth-hid2hci.rules file belongs to net-wireless/bluez, so if you are not using bluetooth and don't want to edit this file after each bluez update I think you could just unmerge bluez.

----------

## keyser_soze

Thanks for your replies

So, it definitely was due to /lib/udev/hid2hci being executed, unfortunately I have other bluetooth devices so completely disabling this or moving hid2hci was not an option, but your posts gave me a solution.

After reading udev documents I realised that if you create a file in /etc/udev/rules.d/ with the same name as one in /lib/udev/rules.d it will take precedence.

So I copied /lib/udev/rules.d/97-bluetooth-hid2hci.rules to /etc/rules.d/97-bluetooth-hid2hci.rules and modified it as follows:

```

KERNEL=="hiddev*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c70[345abce]|c71[34bc]", \

  ATTR{serial}!="000761A4921B", RUN+="hid2hci --method=logitech-hid --devpath=%p"

```

the bit I added was

```

ATTR{serial}!="000761A4921B"

```

Which is the serial number of my particular device.

This means hid2hci will only be executed if the serial does not match the serial number of my particular BT dongle.

Working like a charm now  :Smile: , and I don't have to re-edit each time bluez is reinstalled etc, although, I guess if the contents of the original file is changed I would have to update it.[/quote]

----------

