Skip to content

Setting up Wi-Fi

The following describes how to setup a Wi-Fi connection on the default pikvm builds based on Arch Linux. The process might vary for other Linux distros. We recommend to do this while having a display and keyboard connected directly to the Raspberry Pi as you will loose network connectivity once you connect to a Wi-Fi. Alternatively you can connect to the PiKVM via SSH. The built-in Web Terminal (available through the browser) should also work.


Please review First Steps if you are setting up wifi for zerow/z2w. Please follow this step if you are wanting to activate wifi for the first time on your PiKVM using other boards than the Zero series.


There is nothing more reliable than wired Ethernet, so it's better to use it. But who are we to stop you... :)

Moving Wi-Fi settings for OS older than 2021.10.19

Starting from 2021.10.19, the old way to configure Wi-Fi using netctl is deprecated. Instead, it is proposed to use a more native path with systemd-networkd, which is already used to configure Ethernet. Follow the guide and then delete the old netctl profile:

# rw
# systemctl disable netctl-auto@wlan0.service
# rm /etc/netctl/wlan0-*
# ro

Step by step - Advances users ONLY section

  1. Make filesystem writable using rw command.

  2. Create Wi-Fi settings file /etc/systemd/network/ with following content:

    # Use same IP by forcing to use MAC address for clientID
  3. Set network ESSID and password:

    # wpa_passphrase MyNetwork 'P@assw0rd' > /etc/wpa_supplicant/wpa_supplicant-wlan0.conf

    Using Wi-Fi with hidden ESSID

    Add option scan_ssid=1 to /etc/wpa_supplicant/wpa_supplicant-wlan0.conf

    Using 5GHz Wi-Fi in the USA

    Add option country=US to /etc/wpa_supplicant/wpa_supplicant-wlan0.conf

  4. Enable WPA-supplicant service:

    systemctl enable wpa_supplicant@wlan0.service

  5. Make filesystem read-only again using ro command

Useful console commands

  • iwconfig - Manipulate the basic wireless parameters.
  • iwlist - Allow's you to initiate scanning and list frequencies, bit-rates, encryption keys, etc.
  • iwspy - Displays per node link quality.
  • iwpriv - Allow's you to manipulate the Wireless Extensions specific to a driver (private).
Some examples

# iw dev wlan0 scan | egrep "signal:|SSID:" | sed -e "s/\tsignal: //" -e "s/\tSSID: //" | awk '{ORS = (NR % 2 == 0)? "\n" : " "; print}' | sort
# iwlist wlan0 scan | egrep "Cell|ESSID|Signal|Rates"
# iwlist wlan0 scan
# iw wlan0 info

Additional resources