Nordic nRF Sniffer v2をインストール後のWireshark起動の不具合


(2018年12月14日追記)

Nordic nRF Sniffer v2 の新しいバージョンがリリースされている。

https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Sniffer

新しいバージョンの Snifferプログラムとextcapのファイルを利用すれば、以下の問題は生じないようである。

新しいバージョンの Snifferプログラムについては「nRF52832 USB ドングルの BLE Sniffer 化」で少し触れている。


(以下は2018年7月10日時点の記述)

RedBearLab BLE Nano v1.5 をBLE Snifferとして試すに書いたようにNordic nRF Sniffer v2をインストールしたが、その後、Sniffer用ドングルを接続しないでWiresharkを起動しようとしてもインターフェースの一覧が出ないまま止まってしまうようになった。

Nordic nRF Sniffer v2のファイルを調べたところ、extcap\SnifferAPIにあるUART.pyのtimeoutの設定に問題があるようだ。

Pyserial 3.4 を利用しており、readのtimeoutとwriteのwrite_timeoutがあるが、UART.pyの該当部分ではread用のtimeout しか設定していない。

UART.pyのfind_snifferの次の部分を修正する。

            ser = serial.Serial(port, baudrate=460800, rtscts=True, timeout=0.3)

以下のように write_timeout=0.3 を加えたところ、何もつながない状態でもWiresharkが正常に起動するようになった。

            ser = serial.Serial(port, baudrate=460800, rtscts=True, timeout=0.3, write_timeout=0.3)

Wiresharkが起動しないのは、自分の環境で接続されていない「Bluetoothリンク経由の標準シリアル」ポートがあったためのようである。
write_timeoutを指定するように修正しないと上記のポートへの書き込みで待ち続けてしまっていた。