NordicSemiconductor / nRF-Sniffer-for-802.15.4

nRF-based 802.15.4 sniffer (firmware and software)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Using Wireshark on Mac errors with nRF52840_sniffer.py script

IanAber opened this issue · comments

Using Wireshark 2.9.0 on Mohave I am able to start a capture but I see these errors thrown from the Python script...

usage: nrf802154_sniffer.py [-h] [--extcap-interfaces]
[--extcap-interface EXTCAP_INTERFACE]
[--extcap-dlts] [--extcap-config]
[--extcap-reload-option EXTCAP_RELOAD_OPTION]
[--capture] [--fifo FIFO]
[--extcap-capture-filter EXTCAP_CAPTURE_FILTER]
[--extcap-control-in EXTCAP_CONTROL_IN]
[--extcap-control-out EXTCAP_CONTROL_OUT]
[--channel CHANNEL] [--dev DEV]
nrf802154_sniffer.py: error: unrecognized arguments: --extcap-version
10:51:27.892 Capture Warn sync_pipe_wait_for_child: waitpid returned EINTR. retrying.

The last 'warning' repeats several times. I am filtering using zbee-zcl and only see broadcast packets even though there is obviously stuff going on within the same channel as i have specified.

As soon as I try to stop capturing Wireshark crashes.

Any ideas anyone? I am new to Wireshark and Zigbee trying to get my head around it all.

Hi,
It appears that Wireshark 2.9 sends its version as an additional command line parameter to let the extcap utility adapt its behaviour to different Wireshark versions, which is a bit unfortunate in this case.
I'll let you know once a fix is up.

Now that I think of it the unrecognized argument is pretty harmless in this case.
Unfortunately I have no idea why Wireshark crashes after capture on Mac and I have no way to verify it myself. If you run Wireshark from the terminal do you see any error logs when trying to stop the capture? I think this problem should be reported to Wireshark developers.

About the ZigBee broadcasts, do you have correct decryption keys set up? The sniffer does no data processing of sniffed packets so I suspect that it is a matter of changing the correct preferences in Wireshark. I am not familiar with ZigBee, so I can't help here either. Sorry.

If you are in the repository root, you can install the module using the command:

python -m easy_install .

You might need root privileges for that.
Then the nrf802154_sniffer module can be imported into other python scripts. It exposes the Nrf802154Sniffer class. All you need to do is to call extcap_capture and give it the file name, serial port and channel as arguments. This should start dumping data to given file. To stop the capture call stop_sig_handler().

The crash on stop capture is Wireshark bug 14631.

Version 3.0.3 gets past the Wireshark crash issue.