Permanent nach Wlan suchen und verbinden

  • Hallo Leute,


    Ich habe jetzt vieeel gegoogelt und vieeel getestet.


    Bekomme es nicht hin.


    Ich habe einen Pi mit aktuellem Raspian.


    Ich will 5 verschiedene Wlan Zugänge speichern, mit denen er sich verbinden soll.


    1 Zugang davon soll priorisiert sein.


    Ich habe das soweit hinbekommen, jedoch versucht der Pi nur beim Start zu verbinden, sollte beim Hochfahren keins der Wlans verfügbar sein, bleibt er unverbunden, auch wenn es kurz dannach verfügbar ist.



    Hintergrund ist, dass der AccessPoint mit dem der Pi sich verbinden soll, meist gleichzeitig mit dem Pi eingeschaltet wird, und der Pi schneller ist :)


    Ich habe schon an ein Delay oder so gedacht, wäre ein erster Ansatz, jedoch wird der AP auch manchmal zwischendurch abgeschaltet.



    Eigentlich bräuchte ich ein Script, dass regelmäßig prüft, ob Wlan verbunden ist, wenn nicht dann regelmäßig Verbindungsversuche startet.


    Oder gibt es eine elegantere Lösung ? ;)



    Danke schon mal!!!

  • Von dieser Seite:

    https://www.gieseke-buch.de/ra…omatisch-wiederherstellen

    Aber Vorsicht, danach ist keine LAN-Verbindung mehr möglich und ich weiss nicht, ob sich seitdem neuen Raspbian etwas geändert hat.


    Quote

    WLAN-Verbindung per ifupdown wieder herstellen

    Diese Lösung setzt voraus, dass die WLAN-Verbindung bereits erfolgreich mittels wpa_supplicant konfiguriert wurde und zumindest bei einem Neustart des Raspberry Pi (bzw. dessen Netzwerk-Schnittstelle) erfolgreich hergestellt wird. Dann sind nur die folgenden Schritte (ggf. mit root-Rechten) erforderlich:

    1. Wechseln Sie in das Verzeichnis /etc/ifplugd/action.d/ – cd /etc/ifplugd/action.d.
    2. Benennen Sie hier die Datei ifupdown in ifupdown.original um – mv ifupdown ifupdown.original. Dadurch wird eine Sicherheitskopie der ursprünglichen Datei erstellt, so dass man später ggf. ganz einfach zum Urzustand zurückkehren kann.
    3. Kopieren Sie dann die Datei /etc/wpa_supplicant/ifupdown.sh als ifupdown in das aktuelle Verzeichnis – cp /etc/wpa_supplicant/ifupdown.sh ./ifupdown. Dadurch wird die bisherige ifupdown durch eine neue Version ersetzt, welche das WLAN-Netzwerk nach einem Verbindungsverlust automatisch wieder reaktivieren kann.
    4. Nun muss der Raspberry Pi einmal neu gestartet werden: sudo reboot, um die Konfigurationsänderung zu aktivieren.

    Das war es auch schon. In Zukunft schaltet der Raspberry Pi den WLAN-Adapter nicht mehr ab, wenn er die Drahtlosverbindung verliert. Statt dessen wird in diesem Fall alle paar Sekunden versucht, den Kontakt zum WLAN wieder herzustellen. Ist der Router wieder erreichbar, wird die Verbindung deshalb in kürzester Zeit (erfahrungsgemäß ca. 30 – 60 Sekunden) wieder hergestellt. Ich hoffe, diese Anleitung hilft auch anderen, das leidige Wiederverbindungsproblem in den Griff zu bekommen.



  • Eigentlich bräuchte ich ein Script, dass regelmäßig prüft, ob Wlan verbunden ist, wenn nicht dann regelmäßig Verbindungsversuche startet.

    Ich habe das auf meinem PI3 so realisiert. Mit einem selbst kompilierten wpa_supplicant, einer service unit für den wpa_supplicant, einem cronjob und einem Script. Das eth0-Interface ist so konfiguriert, dass ich jederzeit und unabhängig von der WLAN-Verbindung, eine direkte LAN-Verbindung zu meinem PI3 herstellen kann.


    Z. B.:

    Code
    1. */2 * * * * root /usr/local/bin/check_for_wpa_supplicant > /dev/null 2>&1
    2. */3 * * * * root /usr/local/bin/check_for_wpa_cli > /dev/null 2>&1

    Mit dem wpa_cli und einem action-script logge ich evtl. Verbindungsabbruch bzw. Verbindungsherstellung des wpa_supplicant zum WLAN-Router. Z. B. ein Auszug aus dem Log:

    Code
    1. wpa_supplicant: connection lost, Wed 31 Oct 09:56:24 CET 2018
    2. wpa_supplicant: connection established, Wed 31 Oct 09:58:28 CET 2018
    3. My_WLAN_No_7
  • @fred0815: Danke, das hätte ich noch schreiben sollen, hatte ich auch gefunden, aber ich brauche permanent die LAN Verbindung.


    @rpi444:


    Danke! aber ich steig da nicht ganz durch...


    du hast eine wpa_supplicant selbst kompiliert?


    Gibt es keinen Befehl, der das selbe macht, wie bei einem Neustart passiert?

    Den könnte ich dann in einem Script immer ausführen, wenn keine Wlan Verbindung vorhanden ist.


    Oder denke ich falsch?

  • Gibt es keinen Befehl, der das selbe macht, wie bei einem Neustart passiert?

    Den könnte ich dann in einem Script immer ausführen, wenn keine Wlan Verbindung vorhanden ist.

    Ja (fast), das ist doch aus meinem Script ersichtlich. Die service-unit für den wpa_supplicant wird (re)startet.

    BTW: Vor dem ausführen, solltest Du im Script aber prüfen lassen ob ein AP/WLAN-Router auch erreichbar ist bzw. zur Verfügung steht.

  • Sorry, bin nicht so fit darin, fange gerade erst an :-)


    Also startet man mit dieser Zeile neu ? /bin/systemctl restart wpa_supplicant-nl80211@wlan0



    Ich brauche also keine " selbst kompilierte" wpa_supplicant ?


    das "-nl80211" in der Zeile verwirt mich... ;-)

  • Ja.


    Ich wollte einen wpa_supplicant ohne dbus-Abhängigkeit (und vollständig losgelöst von der aktuellen network-/wpa_supplicant-Infrastruktur des raspbian). Zusätzlich wollte ich einige Features, die mit dem aktuellen source-code des wpa_supplicant möglich sind. Du kannst ja mal probieren, denn evtl. kann dein Vorhaben auch mit dem wpa_supplicant aus dem aktuellen package realisiert werden. Man kann auch eine service-unit für den wpa_supplicant schreiben, die die dbus-Abhängigkeit des wpa_supplicant berücksichtigt bzw. nutzt.


    "nl80211" ist der Treiber: