トップ 一覧 置換 検索 ヘルプ RSS ログイン

HID Proxyモードを使うの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!参考
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レシーバを抜き差しすると
 add /devices/.....(usb)
 ...
 UDEV  [3400.578971] add      /devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2:1.1 (usb)
 ...
的なログが見れる。
 /devices....
 /devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2:1.1
がdevpathなので、それをそのまま指定しても良い。
  sudo tools/hid2hci --method=csr2 --devpath=/devices/......
  sudo tools/hid2hci --method=csr2 --devpath=/devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2:1.1
 
 sudo bccmd psread -s 0
 sudo bccmd -d  psget -s 0 0x03cd 0x0002

HCIの場合は 0
 
UDEV  [3400.569321] add      /devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2:1.0/0003:0A12:100B.000A/input/input20/event5 (input)
UDEV  [3400.578971] add      /devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2:1.1 (usb)
UDEV  [3400.586881] add      /devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2:1.1/0003:0A12:100B.000B (hid)
UDE

!!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}}