参考
https://lowreal.net/2016/09/08/1
https://gist.github.com/mamemomonga/b63d8dedf36604218aa823999bb42506
環境
使ったデバイス
PLANEX Bluetooth USBアダプター Ver.4.0+EDR/LE(省エネ設計)対応 BT-Micro4
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)
[カテゴリ: OS > Linux]
[通知用URL]
Tweet
最終更新時間:2020年04月19日 22時48分20秒