Erstellen Sie zwei einfache "Skripte", der Name des Skripts ist nicht wichtig (ich verwende einfach wlan) und ich gehe davon aus, dass es nur eine verkabelte Netzwerkschnittstelle gibt und daher "eth0" genannt wird. Überprüfen Sie dies mit "ifconfig", wenn Sie dies tun bist nicht sicher
Beachten Sie, dass dieses WLAN nicht nur wlan0 deaktiviert ist. (Nur ein Problem, wenn Sie mehrere WLAN-Schnittstellen haben und nur bestimmte deaktivieren möchten.)
Diese Skripts können durch boolesche Logik leicht an eine Situation angepasst werden, in der Sie zwei oder mehr verkabelte Netzwerkschnittstellen haben.
Stellen Sie sicher, dass diese Skripts mit 'chmod + x' ausführbar sind.
/etc/network/ip-up.d/wlan
#!/bin/sh
# If eth0 goes up, disable wireless
if [ "$IFACE" = "eth0" ]; then
dbus-send --system --type=method_call --dest=org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.DBus.Properties.Set string:org.freedesktop.NetworkManager string:WirelessEnabled variant:boolean:false
fi
/etc/network/if-down.d/wlan
#!/bin/sh
# If eth0 goes down, enable wireless
if [ "$IFACE" = "eth0" ]; then
dbus-send --system --type=method_call --dest=org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.DBus.Properties.Set string:org.freedesktop.NetworkManager string:WirelessEnabled variant:boolean:true
fi
Dadurch wird Wireless im NetworkManager aktiviert / deaktiviert, der normalerweise als Systemanzeige im Gnome-Bedienfeld angezeigt wird.
Anstelle der dbus-send-Leitung können Sie auch 'ifconfig wlan0 down' oder 'ifconfig wlan0 up' verwenden. Dies sollte jedoch benutzerfreundlicher sein und die Ubuntu-Systemprogramme weniger beeinträchtigen.
Getestet mit Ubuntu Desktop 10.10 und sollte mit früheren Versionen oder anderen Distributionen mit NetworkManager und dbus funktionieren.