Wie stelle ich die Priorität des WiFi-Netzwerks ein?

13

Ich verstehe, dass ich durch Hinzufügen von mehrere WiFis einrichten kann /etc/wpa_supplicant/wpa_supplicant.conf(wie in Einrichten von WiFi über die Befehlszeile beschrieben ).

Nehmen wir an, ich habe zwei WiFis registriert: wifi_Aundwifi_B

Wenn ich den Router vom Computer trenne wifi_Aund meine Himbeere über die Befehlszeile neu starte , wird automatisch eine Verbindung zu hergestellt wifi_B. Wenn ich den Router vom Computer trenne wifi_Bund meine Himbeere über die Befehlszeile neu starte , wird automatisch eine Verbindung zu hergestellt wifi_A. So weit, ist es gut.

Angenommen, beide Router sind verfügbar. Wie kann ich Prioritäten setzen? ZB möchte ich, dass meine Himbeere wifi_Bbeim Neustart eine Verbindung herstellt?

Meine zweite Frage lautet: Angenommen, ich befinde mich im Befehlszeilenmodus und bin derzeit mit verbunden wifi_B. Wie kann ich wifi_Astattdessen eine Verbindung herstellen?

user2926577
quelle
Wenn Sie Ihre Konfigurationsdateien nicht auflisten, erhalten Sie (bestenfalls) nur eine Menge Spekulationen.
Milliways

Antworten:

9

ZB möchte ich, dass meine Himbeere wifi_Bbeim Neustart eine Verbindung herstellt?

Fügen Sie priority=2dem wifi_BBlock und priority=1dem wifi_ABlock in der /etc/wpa_supplicant/wpa_supplicant.confDatei hinzu.

Angenommen, ich befinde mich im Befehlszeilenmodus und bin derzeit mit verbunden wifi_B. Wie kann ich wifi_Astattdessen eine Verbindung herstellen?

Sie können für jede SSID eine eigene Konfigurationsdatei erstellen und diese explizit angeben:

wpa_supplicant -B -Dwext -iwlan0 -c</path/to/config_for_wifi_A>
sudo dhclient wlan0
techraf
quelle
Mit Ihrem Ansatz kann ich nur einmal von einem WiFi-Netzwerk zum anderen wechseln, nicht zurück (oder zum Beispiel zu einem anderen WiFi_C). Nachdem wpa_supplicantich den Befehl zum Ausführen des ersten Schalters verwendet habe, erhalte ich bei erneuter Verwendung eine Nachricht ctrl-iface exists and seems to be in use - cannot override it\ n Delete '/var/run/wpa_supplicant/wlan0' manually if it is not used anymoreetc ... Und nachdem sudo dhclient wlan0ich benachrichtigt wurde RTMETLINK answers: File exists. Ist das was zu erwarten?
Calocedrus
Sie müssen zuerst die Verbindung mit wpa_cli terminatewpa_supplicant
beenden
18

Angenommen, beide Router sind verfügbar. Wie kann ich Prioritäten setzen?

Sie können Prioritäten für das Netzwerk wie folgt festlegen:

network={
    ssid="wifi_A"
    psk="passwordOfA"
    priority=1
}
network={
   ssid="wifi_B"
   psk="passwordOfB"
   priority=2
}

Die Standardpriorität aller Netzwerke ist 0, stellen Sie eine höhere Priorität ein, um Prioritäten gemäß Ihren Anforderungen zu setzen.

Angenommen, ich befinde mich im Befehlszeilenmodus und bin derzeit mit wifi_B verbunden. Wie kann ich mich stattdessen mit wifi_A verbinden?

Verwenden Sie dazu den Befehl:

wpa_cli select_network 0

So wechseln Sie von wifi_Azu wifi_Bverwenden:

wpa_cli select_network 1
Dishant
quelle
2
Um zu überprüfen, welche Nummer verwendet werden soll wpa_cli select_network #, führen Sie wpa_cli list_networkszuerst aus.
Z-WolF
Bei einem Pi 3+ auf Stretch funktioniert das bei mir nicht. Führen Sie wpa_cli list_networks aus, und rufen Sie die Netzwerknummern ab. Wpa_cli select_network 2. Das System hat mit OK geantwortet, aber iwconfig zeigt an, dass es noch mit dem ursprünglichen Netzwerk verbunden ist.
Lonstar
7
Hinweis zur Verdeutlichung: Der priorityWert wird als höherer Wert verwendet, was eine höhere Priorität bedeutet. dh Netzwerke werden nicht in numerischer Reihenfolge / Zählreihenfolge (Null zuerst) ausgewählt.
Nicolas