How can I configure wpa_supplicant so that my wlan interface is disabled when I plug in ethernet cable?

I second womble's assertion that wpa_supplicant is the wrong place to do this. You want to set something up in the /etc/network/ subtree, perhaps as womble suggests by increasing the metric of the wifi route, or perhaps by some other means involving a custom script in /etc/network/if-up.d/ that would take the wifi interface down if the ethernet interface came up.

Info on making scripts for /etc/network/if-up.d/ is on the interfaces man page, under the 'IFACE OPTIONS' section.


Are you sure that wpa_supplicant is what you want to be fiddling with to do this? It's really just for authenticating WPA connections, not doing link status detection and the rest of it.

Personally, I wouldn't even bother disabling the wifi, I'd just have an up action on the wifi interface that gave it's route a higher metric, so that if the wired interface was up it would be preferred. Something like this should do the trick (assuming that your LAN is 192.168.10.0/24):

iface home inet dhcp
    [usual WPA guff here]
    up route del -net 192.168.10.0 netmask 255.255.255.0
    up route add -net 192.168.10.0 netmask 255.255.255.0 metric 1

Doing the link-sense autodetection I have no idea about; I don't typically want my network interfaces doing stuff I don't know about, so I've never looked into it.