[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: wlan und Drahtnetzwerk automatisch konfigurieren



Hi,

On Dec 06, Moritz Karbach wrote:
> 
> ich weiß, dass das geht, brauche nur die richtigen Stichworte: Ich möchte, 
> dass mein Laptop das drahtgebundene Netzwerk nimmt (eth0, dhcp), wenn ein 
> Kabel eingesteckt ist, ansonsten das Wlan (eth1, wpa_supplicant). Das roaming 
> mit wpa_supplicant geht schon. Ach ja, das sollte er schon beim Booten 
> richtig machen :-)

ifplugd wurde ja schon genannt. Um eth0 zu verwenden, sobald ein Kabel
eingesteckt wird, habe ich /etc/ifplugd/action.d/ifupdown angepasst.
Das ganze war allerdings ein wenig in Eile zusammen geschustert und
geht bestimmt besser. Bisher funktioniert es bei aber ganz gut. 
Wenn du zusätzlich noch unterschiedliche Konfigurationen haben
möchtest, je nach dem in welchem Netzwerk du dich befindest, dann
empfehle ich guessnet.

Gruß,
Andreas


$ cat /etc/ifplugd/action.d/ifplugdown
#!/bin/sh
# bring interface up
# don't bring ath0 up if eth0 is up
# stop wpa_supplicant if eth0 is up
# start wpa_supplicant if eth0 goes down

ETHDEV="eth0"
WLANDEV="ath0"

# skip wifi interfaces if there's already an ethernet device up
for dev in ${WLANDEV[*]}; do
    if [ $dev == "$1" -a "$2" == "up" ]; then
        for eth in ${ETHDEV[*]}; do
            ifplugstatus -q $eth
            if [ $? -eq 2 ]; then
                echo "$eth already up - not bringing up wifi interface $dev"
                exit 0;
            fi
        done
    fi
done    

# stop wpa_supplicant if we're about to bring an ethernet device up
if [ "$2" == "up" ]; then
    for dev in ${ETHDEV[*]}; do
        if [ $dev == "$1" ]; then
            if pgrep wpa_supplicant; then
                /etc/init.d/wpasupplicant stop
            fi
        fi
    done
fi    

# start wpa_supplicant if the last ethernet device goes down
if [ "$2" == "down" ]; then
    status=0
    for dev in ${ETHDEV[*]}; do
        ifplugstatus -q $dev
        if [ $? -eq 2 ]; then
            status=1
        fi
    done        
    if [ $status -eq 0 ]; then
        if ! pgrep wpa_supplicant; then
            /etc/init.d/wpasupplicant start
        fi
    fi
fi    
        
# finally do what ifplugd is supposed to do
case "$2" in
up)
	/sbin/ifup -v $1
	;;
down)
	/sbin/ifdown -v $1
	;;
esac



Reply to: