Simple binaries that aren't compiled/linked against other libraries can often be copied from e.g. Ubuntu and used on LE. So I would try copying hid2hci to /storage/bin/ and the 70-hid2hci.rules file to /storage/.config/udev.rules.d/ and then mod the rules file (with the changes in the patch) so it runs "/storage/bin/hi2hci" (explicit path) not "hid2hci" (which relies on the binary being in $PATH).
I copied hid2hci from my Mint laptop to /storage/bin:
mediacenter:~/bin # ls -l
total 16
-rwxr-xr-x 1 root root 14568 Nov 29 12:31 hid2hci
mediacenter:~/bin # ./hid2hci
error: --devpath= and --method= must be defined
Usage: hid2hci [options]
--mode= mode to switch to [hid|hci] (default hci)
--devpath= sys device path
--method= method to use to switch [csr|csr2|logitech-hid|dell]
--help
mediacenter:~/bin #
Display More
copied the 70-hid2hci.rules file to /storage/.config/udev.rules.d and adapted the content using the patch:
# do not edit this file, it will be overwritten on update
ACTION!="add|change", GOTO="hid2hci_end"
SUBSYSTEM!="usb*", GOTO="hid2hci_end"
# Variety of Dell Bluetooth devices - match on a mouse device that is
# self powered and where a HID report needs to be sent to switch modes
# Known supported devices: 413c:8154, 413c:8158, 413c:8162
ATTR{bInterfaceClass}=="03", ATTR{bInterfaceSubClass}=="01", ATTR{bInterfaceProtocol}=="02", \
ATTRS{bDeviceClass}=="00", ATTRS{idVendor}=="413c", ATTRS{bmAttributes}=="e0", \
RUN+="/storage/bin/hid2hci --method=dell --devpath=%p", ENV{HID2HCI_SWITCH}="1"
# Logitech devices
KERNEL=="hiddev*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c70[345abce]|c71[3bc]", \
RUN+="/storage/bin/hid2hci --method=logitech-hid --devpath=%p"
# Logitech, Inc. diNovo Edge Keyboard
KERNEL=="hidraw*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c714", \
RUN+="/storage/bin/hid2hci --method=logitech-hid --devpath=%p"
ENV{DEVTYPE}!="usb_device", GOTO="hid2hci_end"
# When a Dell device recovers from S3, the mouse child needs to be repoked
# Unfortunately the only event seen is the BT device disappearing, so the mouse
# device needs to be chased down on the USB bus.
ATTR{bDeviceClass}=="e0", ATTR{bDeviceSubClass}=="01", ATTR{bDeviceProtocol}=="01", ATTR{idVendor}=="413c", \
ENV{REMOVE_CMD}="/sbin/udevadm trigger --action=change --subsystem-match=usb --property-match=HID2HCI_SWITCH=1"
# CSR devices
ATTR{idVendor}=="0a12|0458|05ac", ATTR{idProduct}=="1000", RUN+="/storage/bin/hid2hci --method=csr --devpath=%p"
LABEL="hid2hci_end"
Display More
Deleted the keyboard, rebooted and repaired the keyboard. No luck. Still the same problem.
I can successfully pair it and LE says its connected but keystrokes are not arriving. When I disconnect and re connect it in LE, I get the BlueTooth error "br-connection-create-socket".
Probably because bluetoothd is not complied with --enable-hid2hci as mentioned by mglae ?
Thank you very much for the help so far.