Skip to content

WpaSupplicant

If your wireless management tools (like NetworkManager or desktop applets) fail to communicate with wpa_supplicant, it is often a matter of missing D-Bus permissions or incorrect service options.

Follow this guide to allow users in the wheel group to interact with the wpa_supplicant daemon.


You need to explicitly allow the wheel group to send and receive signals via the fi.w1.wpa_supplicant1 interface.

Open /etc/dbus-1/system.d/wpa_supplicant.conf in your preferred text editor and ensure the <policy group="wheel"> blocks are included before the closing </busconfig> tag:

/etc/dbus-1/system.d/wpa_supplicant.conf
<!DOCTYPE busconfig PUBLIC
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"[http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd](http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd)">
<busconfig>
<policy user="root">
<allow own="fi.w1.wpa_supplicant1"/>
<allow send_destination="fi.w1.wpa_supplicant1"/>
<allow send_interface="fi.w1.wpa_supplicant1"/>
<allow receive_sender="fi.w1.wpa_supplicant1" receive_type="signal"/>
</policy>
<policy context="default">
<deny own="fi.w1.wpa_supplicant1"/>
<deny send_destination="fi.w1.wpa_supplicant1"/>
<deny receive_sender="fi.w1.wpa_supplicant1" receive_type="signal"/>
</policy>
<!-- Allow users in the wheel group to interact with wpa_supplicant -->
<policy group="wheel">
<allow send_destination="fi.w1.wpa_supplicant1"/>
<allow receive_sender="fi.w1.wpa_supplicant1" receive_type="signal"/>
</policy>
</busconfig>

For D-Bus control to function correctly, wpa_supplicant must be started with the -u flag enabled. Update your service configuration file to include the correct flags.

Modify or create the configuration file for the service:

/etc/sv/wpa_supplicant/conf
OPTS="-u -M -c /etc/wpa_supplicant/wpa_supplicant.conf"

After saving both files, restart the D-Bus daemon and the wpa_supplicant service to apply the new policies:

Terminal window
# Reload D-Bus configuration
sudo pkill -HUP dbus-daemon
# Restart the wpa_supplicant runit service if you got 2nd issue
sudo sv restart wpa_supplicant