====== Connect to a wireless network with wpa_supplicant ======
If your usual GUI program to connect to wifi networks, e.g. [[:admin:linux:gui:wicd]] or [[:admin:linux:networkmanager|NetworkManager]] is not available, you can connect to a wireless network by manually scanning and editing wpa_supplicant's config files.
//see also: [[https://wiki.archlinux.org/index.php/WPA_supplicant|Arch Wiki on wpa_supplicant]]//
===== one-liner to connect with known SSID and passphrase =====
Run this on a root shell. ''sudo'' will not suffice:
wpa_supplicant -B -i INTERFACE -c <(wpa_passphrase MYSSID PASSPHRASE)
Find wireless interfaces with ''iw list''.
===== systemd-networkd =====
[Match]
Name=INTERFACE
[Network]
DHCP=yes
ctrl_interface=/var/run/wpa_supplicant
eapol_version=1
ap_scan=1
fast_reauth=1
network={
ssid="MYSSID"
psk="MYSUPERSECUREPASSWORD"
priority=1
}
start that shit up:
systemctl enable systemd-networkd
systemctl enable wpa_supplicant@INTERFACE
systemctl start systemd-networkd
systemctl start wpa_supplicant@INTERFACE
===== Troubleshooting =====
==== I connected to the WLAN, but still can't access the network ====
Do you have an IP address? Check this with ''ip a''. If not, you have to obtain an IP via ''dhcpcd INTERFACE'' or set it manually with ''ip a add ADDRESS dev INTERFACE''.
Could be that your ''/etc/resolv.conf'' doesn't list any DNS servers. Either add this:
nameserver 127.0.0.1
(replace ''127.0.0.1'' with the IP address of your router/DNS server)
or use ''systemd-resolved'':
mv /etc/resolv.conf /etc/resolv.conf.before-the-systemd-nation-attacked
systemctl enable --now systemd-resolved
systemd-resolved populates the ''/etc/resolv.conf'' with known DNS servers automagically, but you can still add them manually:
…
DNS=1.2.3.4
FallbackDNS=5.6.7.8
…