Skip to main content
Version: 1.2.0

Other Common Problems

Using a Raspberry Pi with on-board WiFi for connectivity#

Extra configuration is required if you want to connect your Raspberry Pi to your network using the on-board WiFi chip instead of an ethernet cable. The standard wpa_supplicant configuration interferes with the WiFi adapters you use for nzyme and you have to tell it to ignore those.

Open /etc/dhcpcd.conf and add an entry like this for every WiFi adapter you use with nzyme in monitor mode:

interface wlx9cefd5fbc13d   nohook wpa_supplicant

SIOCSIFFLAGS: Operation not possible due to RF-kill#

If you see this or a similar error message when trying to bring up / enable a wireless interface:

SIOCSIFFLAGS: Operation not possible due to RF-kill

This means that you have rfkill running on your machine. It's a little userspace program that constantly checks if wireless interfaces (like WiFi or Bluetooth) should be disabled after a physical button is pressed. Many laptops come with physical buttons that enable/disable wireless interfaces and rfkill translates the button state into wireless adapter settings.

If you run nzyme, you should not run rfkill at all and your Linux distribution manual should be able to help you with turning it off. If you just want to get it to work right now, you can kill it like this:

$ sudo rfkill unblock wifi; sudo rfkill unblock all 

After this, you should be able to bring up the wireless interface.

STDERR: sudo: a terminal is required to read the password#

On systems that require a password to execute sudo, the channel hopping will not work because nzyme cannot supply the required password.

One workaround is to disable password authentication for the iwconfig command in your sudoers file by adding the following line to it (remember to use visudo):

ALL ALL=NOPASSWD: /sbin/iwconfig

Trap initialization: That device is not up#

When running traps, nzyme might fail to initialize a trap if the configured WiFi adapter is not enabled by the operating system.

17:47:21.960 [probe-loop-1] ERROR - Could not initialize probe [trap-sender-wlx00c0ca97120e-PROBE_REQUEST_1-0]. Retrying Could not build PCAP handle.    at ~[classes/:?]    at$loop$0( ~[classes/:?]    at java.util.concurrent.Executors$ [?:?]    at [?:?]    at java.util.concurrent.ThreadPoolExecutor.runWorker( [?:?]    at java.util.concurrent.ThreadPoolExecutor$ [?:?]    at [?:?]Caused by: org.pcap4j.core.PcapNativeException: That device is not up    at org.pcap4j.core.PcapHandle.<init>( ~[pcap4j-core-1.8.2.jar:?]    at org.pcap4j.core.PcapHandle.<init>( ~[pcap4j-core-1.8.2.jar:?]    at org.pcap4j.core.PcapHandle$ ~[pcap4j-core-1.8.2.jar:?]    at ~[classes/:?]    ... 6 more

This means, that the WiFi adapter wlx00c0ca97120e is plugged in, recognized as a network adapter and registered, but not active. You can bring it up manually with either the old ipconfig or the newer ip command:

$ sudo ip link set wlx00c0ca97120e up... or ...$ sudo ifconfig wlx00c0ca97120e up

After this, nzyme should be able to initialize the trap.

If the device was not up, it means that your operating system is not automatically initializing your WiFi adapters. To avoid having to manually bringing the adapters up, you should configure a netplan to activate the devices.

On Ubuntu, you can simply create a new file called /etc/netplan/01-standard.yaml:

network:  version: 2  renderer: networkd  ethernets:    wlx00c0ca97120e: {}    wlx00c0ca971215: {}

This configuration will automatically bring up the WiFi adapters wlx00c0ca97120e and wlx00c0ca971215. Restart the system to ensure that the configuration takes effect.

These instructions might differ for other operating systems, especially if your operating system is not using netplan yet. Remember that many operating systems won't require this configuration at all because they enable all network adapters they find by default.

A probe says it's inactive#

Nzyme might display a warning symbol next to a probe, together with a message like this:

NOT ACTIVE! Check nzyme logs.

This means that while the PCAP handle on the WiFi interface appears to be working, nzyme has not recently recorded any frames using it, indicating a possible problem somewhere else in the stack. The default idle time is 60 seconds.

Under some circumstances, it can be normal to not record any frame for 60 seconds on a single WiFi interface. For example, you might be hopping very lightly used channels or simply be in an environment without much WiFi traffic. In that case, you can increase the idle time using the max_idle_time_seconds configuration variable in the 802_11_monitors section:

802_11_monitors: [  {    ... other variables removed for readability ...
    # Time this monitor can remain without recording any frames until it is marked as failing. Under certain conditions,    # it can be normal to not record any frames for an extended period of time. If you receive warnings and alerts for    # failed probes when there were simply no frames to record, increase this value. Default: 60    max_idle_time_seconds: 60  }]