!!!参考 https://lowreal.net/2016/09/08/1 https://gist.github.com/mamemomonga/b63d8dedf36604218aa823999bb42506 !!!環境 !!使ったデバイス [PLANEX Bluetooth USBアダプター Ver.4.0+EDR/LE(省エネ設計)対応 BT-Micro4 |https://www.amazon.co.jp/PLANEX-Bluetooth-USB%E3%82%A2%E3%83%80%E3%83%97%E3%82%BF%E3%83%BC-Ver-4-0-BT-Micro4/dp/B0071TE1G2?SubscriptionId=07YVNFP6TGK5A17PTZ82&tag=nuso-22&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B0071TE1G2] !!hid2hci !CentOS7 hid2hciをインストールしておく yum install hid2hci !debian系 $ sudo apt install libglib2.0-dev \ libdbus-1-dev libudev-dev libical-dev \ libreadline-dev libbluetooth-dev $ wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.48.tar.xz $ tar Jxf bluez-5.48.tar.xz $ cd bluez-5.48 $ ./configure $ make tools/hid2hci !!!状態確認 !!lsusb lsusb .... Bus 003 Device 004: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode) ... !!hciconfig hciconfig -a でデイバスの情報を確認。もし、UP RUNNING になっていない(DOWN)場合は hciconfig hcix up でデバイスを起動させておく。 !!モード確認 sudo bccmd -d xx:xx:xx:xx:xx:xx psget bootmode Initial device bootmode: 0x0000 (0) HCIの場合は 0 !!!HID Proxyを有効にする !!アドレスを確認する sudo bccmd -d xx:xx:xx:xx:xx:xx psread -s 0 | grep 'INITIAL_BOOTMODE' -A 1 // PSKEY_INITIAL_BOOTMODE &03cd = 0000 !!HID Proxyに切り替える sudo bccmd -d xx:xx:xx:xx:xx:xx psset -s 0 0x03cd 0x0002 0x03cd は上で確認したアドレスを指定する !!切替後の状態確認 一度抜き差ししてから、 lsusb ... Bus 003 Device 005: ID 0a12:100b Cambridge Silicon Radio, Ltd ... HCIの文字が消えている !!!HCIモードに戻す !!hid2hci sudo tools/hid2hci --method=csr2 \ --devpath=$( udevadm trigger --verbose --subsystem-match=usb \ --attr-match=idVendor=0a12 --attr-match=idProduct=100b \ | cut -d '/' -f 3- ) もし、devpathが取得できない場合は、 udevadm monitor で監視しながら、bluetoothレシーバを抜き差しすると ... UDEV [3400.578971] add /devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2:1.1 (usb) ... 的なログが見れる。 /devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2:1.1 がdevpathなので、それをそのまま指定しても良い。 sudo tools/hid2hci --method=csr2 --devpath=/devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2:1.1 !!bccmdでモード設定 sudo bccmd -d xx:xx:xx:xx:xx:xx psset -s 0 0x03cd 0x0000 sudo bccmd -d xx:xx:xx:xx:xx:xx psget bootmode Initial device bootmode: 0x0000 (0) {{category2 OS,Linux}}