Autom. Wechsel von LAN zu WLAN

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    ich habe mir einen WLAN Stick gekauft. Dieser funktioniert auch tadellos.
    Nun zu meiner Situation.
    Installiert ist Raspbmc.

    -Der Raspi steht meinem Hauptfernseher und ist mit LAN verbunden.
    Er hat eine feste IP.

    - Der Raspi soll ab und zu in einem anderen Zimmer benutzt werden. Hier ist kein LAN Anschluss. Daher der WLAN Adapter. Hier habe ich auch vorgesehen eine feste IP zu vergeben.

    Mein Vorhaben ist nun, den Pi am Hauptfernseher herunterzufahren und im anderen Zimmer hochzufahren. Praktisch, soll er das WLAN benutzen, wenn kein LAN Kabel mehr eingestöpselt ist.


    Wie kann ich jetzt die Konfiguration vornehmen. Wenn ich im Raspbmc einstelle, dass ich eine Wired Connection haben möche und ich dann das LAN Kabel abziehe, verbindet er sich nicht automatishch mit dem WLAN.
    Jedoch möchte ich auch nicht, dass am Hauptfernseher trotz vorhandener LAN Verbindung die WLAN Verbindung benutzt wird.

    Es müsste also irgendwie das Standardgerät gewählt werden. Falls dies nicht verfügbar ist, soll der Zweit-Netzwerkadapter benutzt werden.

    Ich habe mir sagen lassen, dass bei Raspbmc die Netzwerkkonfiguration "nur" über die GUI vorgenommen werden sollte. Kann man über Konsole evlt. bessere Einstellungen vornehmen?

    Wer kann mir hier helfen? Danke schoneinmal für eure Antworten ;)

    mfg
    Racer5495

    Einmal editiert, zuletzt von Racer5495 (11. Juni 2014 um 18:13)

  • Ein Script erstellen welches regelmäßig prüft ob für eth0 eine IP vergeben wurde, wenn nein wird wlan0 aktiviert. Fertig ;)

    //EDIT:

    Es ginge aber auch über /etc/network/if-down.d/ und /etc/network/if-up.d/ Scripts... Guck dazu mal > hier < bzw > hier < und ein Beitrag dadrunter steht auch noch eine andere Lösung (alles im selben Thread: eth0 ODER wlan0)..

  • Hallo,

    du hast mir seit gestern schon häufig geholfen.
    Da ich in Linux so gesehen noch Anfänger bin, bräuchte ich doch noch ziemlich große Hilfe, müsste bzw. an die Hand genommen werden ;)

    Wie gehe ich da nun vor. Von der Logik habe ich mir das auch schon so gedacht. Was heißt aktivieren??? WLAN ist doch immer aktiviert am Pi

  • Du meinst also die Konfiguration über die /etc/network/interfaces

    Da habe ich auch von gehört, dass es die Raspbmc Settings verwirren kann.

    Aber ich kann ein Skript benutzen ohne diese Problematik?

  • Racer: Laut dbv macht das ändern der /etc/network/interfaces unter RaspBMC Probleme, also bliebe dir dann noch der Weg über /etc/network/if-down.d/ , oder ein seperates Script was jede Minute (oder permanent im Hintergrund laufend) prüft ob es was zu tun gibt... Meiner Meinung nach solltest du erst mal ersteres versuchen und wenn das auf teufelkommraus nicht will, letzteres probiern ;)

  • Beides. Ich denke es ist mehr Aufwand die IP hin und her zu switchen.
    Ich hätte zwei freie IPs im Netzwerk für die eth0 und die wlan0 Schnittstelle.

    Das Skript sollte also schauen, hat eth0 eine IP?
    Wenn ja, dann wlan0 deaktivieren.
    Wenn nein, dann wlan0 aktivieren


    Liege ich da richtig oder reden wir aneinander vorbei?
    Ist die Logik so plausibel?

    • Offizieller Beitrag

    Ich meine

    Spoiler anzeigen


    das aus dem etho/wlan thread.

    Das Script über if-up.d/ if-down.d sollte auch unter raspbmc klappen. Notfalls, Script was die LAN-Adresse prüft per cronjob (das funzt auf jeden Fall)

  • Das sieht mir doch sehr kompliziert als als Skript Noob. Da blicke ich so gut wie gar nicht durch...

    Was ist hier Skript und was gehört wo hin`?

    So wie du es hier vorschlägst nimmst du eine einzige Adresse für beide Adapter, die dann hin und hergetauscht wird. Richtig?

    Einmal editiert, zuletzt von Racer5495 (11. Juni 2014 um 18:54)

  • Ich weis ja nicht, ob das jetzt hilfreich ist:

    Ich verwende das neuste Raspbmc und habe einen WLAN-Stick dranhängen und Raspbmc darauf eingestellt.

    Wenn ich Raspbmc einfach ohne Wlanstick und mit angeschlossenem LAN-Kabel hochfahre, verbindet es sich automatisch mit dem LAN, ohne das ich was in der Konfiguration ändern musste.

    LG. AltBen

    Ich bin root! Ich darf das! :D


    Diese Signatur könnte jetzt sinnvoll sein ... ist sie aber nicht! :denker:

    Einmal editiert, zuletzt von AltBen (11. Juni 2014 um 18:54)

  • Hallo AltBen,

    danke für deine Antwort. Hab es gerade mal ausgetestet, jeweils nur mit WLAN oder mit LAN zu starten. Es ist tatsächlich so, dass er nur den Adapter nimmt, der verfügbar ist.
    Optimal ist das nicht, da ich jedes Mal den WLAN Stick herausziehen müsste, wenn ich den Pi neu starte.

    Nochmal zurück zum Kontext.
    Was bedeutet diese Zeile hier?
    pre-up [ -z "$(ifconfig eth0 | grep -i 'inet ad')" ] && true

  • ...Ich fass das noch mal aus dem anderen Thread hier zusammen da es anscheint Verwirrungen gibt ;)

    Du möchtest ja wahlweise das eine ODER das andere nutzen.
    Also müsstest du dir dafür ein Script schreiben welches bei Verbinden des LAN Kabels die WLAN Verbindung kappt und die LAN-IP auf die vorherige IP der WLAN Verbindung stellt - denn sonst haben LAN und WLAN unterschiedliche IPs und du müsstest beim ansprechen immer eine andere ansprechen.

    Der elegante Weg wäre wie folgt:

    • /etc/network/interfaces bearbeiten und den Eintrag für eth0 sowie wlan0 anpassen:

    • Die beiden pre-up Scripts erstellen, mit folgendem Inhalt:

      • /etc/network/if-up.d/stop.wlan
      • /etc/network/if-up.d/start.wlan
    • Beide Scripts ausführbar machen:

      Code
      chmod +x /etc/network/if-up.d/start.wlan
      chmod +x /etc/network/if-up.d/stop.wlan
    • Dann am besten rebooten damit die veränderte Konfiguration übernommen wird:

      Code
      reboot

    Und dann zu Testzwecken mal das LAN Kabel raus ziehen, dann sollte der PI automatisch über die selbe IP über WLAN erreichbar sein (sofern WLAN korrekt und funktionstüchtig eingerichtet wurde)

    • Offizieller Beitrag

    Das ist doch aus dem Teil den du nicht nehmen sollst ;). Das war als Antwort an meigrafd gedacht.

    aber Generell kannst du den Befehl in leicht abgewandelter Form nehmen

    Code
    ifconfig eth0|grep -i 'inet ad'

    tipp das mal in die Konsole ein und vergleiche Ausgabe bei eingestecktem/gezogenem Netzwerkkabel


  • Was bedeutet diese Zeile hier?
    pre-up [ -z "$(ifconfig eth0 | grep -i 'inet ad')" ] && true

    Das ist einfaches bash.

    das in [ ] ist eine Bedingung die geprüft wird
    -z bedeutet "wenn leer".
    das in $( ) ist ein Befehl der ausgeführt wird und dessen Rückgabe eben in den " stünde.
    && bewirkt dass das nachfolgende nur ausgeführt wird wenn das vorherige erfolgreich war.

    Alles in Allem:

    Wenn nicht leer $(ifconfig eth0 | grep -i 'inet ad') dann führ Befehl true aus. Wenn die Bedingung nicht zutrifft wird true nicht ausgeführt.
    Was true macht kannst du in der Manual Page nachlesen: man true


    Hast du Beitrag#15 schon ausprobiert?

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!