2021-10-12 18:45:00 +00:00
|
|
|
# Setting up Wi-Fi
|
|
|
|
|
2021-10-19 07:05:26 +00:00
|
|
|
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.
|
2021-10-12 18:45:00 +00:00
|
|
|
|
2022-01-03 15:12:09 +00:00
|
|
|
!!! warning
|
|
|
|
Please review [First Steps](first_steps.md) if you are setting up wifi for zerow/z2w.
|
|
|
|
|
2021-10-12 18:45:00 +00:00
|
|
|
!!! warning
|
|
|
|
There is nothing more reliable than wired Ethernet, so it's better to use it. But who are we to stop you... :)
|
|
|
|
|
2021-10-19 07:35:30 +00:00
|
|
|
!!! note "Moving Wi-Fi settings for OS older than 2021.10.19"
|
2021-10-19 07:05:26 +00:00
|
|
|
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
|
|
|
|
```
|
|
|
|
|
2021-10-12 18:45:00 +00:00
|
|
|
|
|
|
|
## Step by step
|
|
|
|
|
|
|
|
1. Make filesystem writable using `rw` command.
|
|
|
|
|
2021-10-19 05:00:53 +00:00
|
|
|
2. Create Wi-Fi settings file `/etc/systemd/network/wlan0.network` with following content:
|
2021-10-12 18:45:00 +00:00
|
|
|
|
2021-10-19 05:00:53 +00:00
|
|
|
```ini
|
|
|
|
[Match]
|
2021-10-19 05:13:29 +00:00
|
|
|
Name=wlan0
|
2021-10-12 18:45:00 +00:00
|
|
|
|
2021-10-19 05:00:53 +00:00
|
|
|
[Network]
|
|
|
|
DHCP=yes
|
|
|
|
DNSSEC=no
|
2021-10-12 18:45:00 +00:00
|
|
|
|
2021-10-19 05:00:53 +00:00
|
|
|
# Use same IP by forcing to use MAC address for clientID
|
|
|
|
[DHCP]
|
|
|
|
ClientIdentifier=mac
|
2021-10-12 18:45:00 +00:00
|
|
|
```
|
|
|
|
|
2021-10-19 05:00:53 +00:00
|
|
|
3. Set network ESSID and password:
|
2021-10-12 18:45:00 +00:00
|
|
|
|
|
|
|
```
|
2021-12-07 02:57:39 +00:00
|
|
|
# wpa_passphrase MyNetwork 'P@assw0rd' > /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
|
2021-10-12 18:45:00 +00:00
|
|
|
```
|
2021-12-07 02:57:39 +00:00
|
|
|
|
2021-10-19 05:00:53 +00:00
|
|
|
!!! note "Using Wi-Fi with hidden ESSID"
|
|
|
|
Add option `scan_ssid=1` to `/etc/wpa_supplicant/wpa_supplicant-wlan0.conf`
|
|
|
|
|
|
|
|
!!! note "Using 5GHz Wi-Fi in the USA"
|
|
|
|
Add option `country=US` to `/etc/wpa_supplicant/wpa_supplicant-wlan0.conf`
|
|
|
|
|
2021-12-07 02:58:36 +00:00
|
|
|
|
2021-10-19 05:00:53 +00:00
|
|
|
4. Enable WPA-supplicant service:
|
|
|
|
```
|
2021-10-19 05:13:29 +00:00
|
|
|
systemctl enable wpa_supplicant@wlan0.service
|
2021-10-19 05:00:53 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
5. Make filesystem read-only again using `ro` command
|
2021-10-12 18:45:00 +00:00
|
|
|
|
|
|
|
|
|
|
|
## 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).
|
|
|
|
|
2022-03-05 18:56:42 +00:00
|
|
|
??? example "Some examples"
|
2021-10-12 18:45:00 +00:00
|
|
|
```
|
|
|
|
# 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
|
|
|
|
|
2021-10-19 05:00:53 +00:00
|
|
|
* [Arch Linux Wiki for systemd-networkd](https://wiki.archlinux.org/title/systemd-networkd)
|