0
0

More than 1 year has passed since last update.

【Linux】Bluetooth HCIスヌープログの取り方

Posted at

はじめに

LinuxでBluetoothのHCIスヌープログを取得する方法をまとめました。

※Androidで取得する方法もあります → https://qiita.com/KentaHarada/items/42ed619e8f571d1de845

確認環境

  • Ubuntu 22.04.2 LTS
  • Thinkpad X260
  • WireShark v3.6.2

Bluetooth HCIスヌープログとは?

HCI(Host Controller Interface)はBluetoothのプロトコルの一種で
BluetoothプロトコルスタックとBluetoothのチップ間のプロトコルです。
エアーを飛んでいるパケットとは異なりますが、高価なアナライザーを用いずにBluetoothの低レイヤの解析を行うことができます。

スクリーンショット_2020-05-04_15_30_20.png

どんな時に使うの?

Bluetoothデバイスの接続不良などの問題解析に使うことがあります。

例えば・・・

  • LEのAdvertiseのデータが飛んでいない
  • 接続したけどすぐに切断されてしまう
    といったシチュエーションで使うことが多いです。

1. WireSharkをインストールする

取得したログを解析するために使うソフトウェアです。以下のコマンドでインストールします。

$ sudo apt install wireshark

Screenshot from 2023-06-28 13-08-49.png

2. Bluetoothをオンする

Ubuntuの設定画面からBluetoothをオンにします。
Screenshot from 2023-06-28 13-27-22.png

3. HCIスヌープログの取得

btmonコマンドでログの取得を開始します。指定したファイルの中にログが記録されます。

$ sudo btmon -i hci0 -w hcidump.log

image.png

4. ログを取りたいBluetoothの操作を行う

Linux端末とBluetooth機器を使って目的のログを取るための操作を行います。

5. 取得したログの確認

コマンド btmon -r でログを確認することができます。

$ btmon -r hcidump.log

Screenshot from 2023-06-28 13-17-15.png

6. Wiresharkでログを確認する

取得したログが時系列で表示されます。
ログの詳しい意味を知りたい時は Bluetooth Core Spec を参照してください。
image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0