Need to switch HCI/HID mode of Bluetooth Dongle

  • Hi,

    I have a bluetooth remote that I want to use with my CSR8510 A10 based dongle. Unfortunately the remote uses HID mode, but the dongle starts up in HCI mode.

    I'm having issues using using HID2HCI to switch it back to HID mode, as I'm trying to figure out exactly what I need to enter into the --devpath option. All of the methods I've seen for discovering the proper /sys path on other linuxes seem to be lacking on LibreELEC. So does anyone know how exactly I can go about this?

  • the easiest thing to do would be to amend the /usr/lib/udev/rules.d/97-hid2hci.rules file

    copy it to where it is writeable

    Code
    cp /usr/lib/udev/rules.d/97-hid2hci.rules /storage/.config/udev.rules.d/


    then edit it there

    Code
    nano /storage/.config/udev.rules.d/97-hid2hci.rules

    You can add your devices vendor and product ids to make it run specifically for your device.

    Code
    udevadm info -q all -a /dev/hiddev*
    udevadm info -q all -a /dev/hidraw*


    look for

    Code
    ATTRS{idProduct}=="21e8"
        ATTRS{idVendor}=="0a5c"

    if there is no /dev/hid* path then hid2hci cannot be used.

  • Unfortunately, nothing seems to be changing. The CSR 4.0/CSR8510 A10 dongle seems to be the one most often recommended for this h/w (Odroid C2), and I've tested this remote on both Android and Ubuntu on the same machine and they work just fine. LibreELEC seems to be balking at it. I'm running the October version of LE 7

    The funny thing is, support for the switching of this dongle popped up about 3 years ago when many people were having the exact opposite issue (the dongle booting in HID when they want HCI), and so the "csr2" method to fix that and was created and disseminated amongst the various linuxes. Obviously, LE has csr2, so it *should* support the dongle, right? So, I'm not sure what I can do here.

    Code
    KodiLivingRoom:~ # lsusbBus 001 Device 006: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)...

    ...and in /storage/.config/udev.rules.d/97-hid2hci.rules :

    Code
    ...
    ATTR{idVendor}=="0a12", ATTR{idProduct}=="0001", RUN+="hid2hci --mode=hid --method=csr2 --devpath=%p"
    ...

    But it's not changing. Anyone else having this issue? Or is this likely an LE-on-Odroid-C2 thing?


  • if you run the command manually does it work? You will have to find the devpath, it should be /dev/hidraw0 or /dev/hiddev0

    Code
    /usr/lib/udev/hid2hci --mode=hid --method=csr2 --devpath=/dev/hid<something>

    And therein is a problem. No /dev/hid* folder.

  • I was thinking about trying an 8 alpha, but is there more than one distro of LE 7.1 for Odroid C2?
    [hr]
    Welp, tried the community 8 alpha, and it too suffers the same problem.

    Edited once, last by zang74 (November 4, 2016 at 11:44 PM).

  • So, I have now switched dongles to a BRCM20702A0 chip model, and am still having the same problem. This remote will not connect with LibreElec, but will connect with my iPhone, iPad, AppleTV and even Android and Ubuntu without a problem. Is it because it's a chinese remote? Is it an issue with Bluetooth LE on LibreElec? I don't know what is going on!