wpa_supplicant dhcpcd systemd debian

The leanest cleanest way to connect to wpa/2 networks is wpa_supplicant. Optional wpa_gui provides a GUI and System Tray icon, if need be. All other applications are bloat, building additional layers and too complexity. Goodbye Gnome/NetworkManager!

Since moving to systemd chasing the gnome dragons, the debian ecosystem has broken down. Many debian ways of doing things have since become invalid, and systemd ways of doing things need to be understood. This understanding is still not quite clear in any knowledge base, particularly with debian.

In systemd, the cleanest way seems to be the dhcpcd hook automatically invoking wpa_supplicant.

A recent update to Debian Stretch broke wireless connectivity. Researching the issue led to dhcpcd hooks. Apparently, dhcpcd5 continues to provide the wpa_supplicant hook, but removed it as default. The fix was to add back the wpa_supplicant hook to dhcpcd hooks.

The default dhcpcd hooks are located at /lib/dhcpcd/dhcpcd-hooks/
Additional dhcpcd hooks are located at /usr/share/dhcpcd/hooks/

So we
# ln -s /usr/share/dhcpcd/hooks/10-wpa_supplicant /lib/dhcpcd/dhcpcd-hooks/

Reboot debian, and verify wireless connectivity.

Interestingly, arch doesn't need this workaround.


  1. Shouldn't it be:
    ln -s /usr/share/dhcpcd/hooks/10-wpa_supplicant /lib/dhcpcd/dhcpcd-hooks/10-wpa_supplicant

    Instead of:
    ln -s /usr/share/dhcpcd/hooks/10-wpa_supplicant /usr/share/dhcpcd/hooks/10-wpa_supplicant

    However still thanks for pointing me in the right direction, got debian running more similar like raspbian now.


most viewed