Arch Linux WiFi funktioniert manuell, wie macht man es automatisch?

21

Ausführen von Arch Linux mit Kernel 3.6.11-12-ARCH + auf meinem Raspberry Pi.

Ich habe einen Linksys Wifi-USB-Dongle (WUSB54GC v3), der ausgeführt wird und funktioniert, nachdem ich die folgenden Befehle ausgeführt habe:

$> sudo ifconfig wlan0 up
$> sudo iwlist scan
$> sudo iwconfig wlan0 mode managed essid myssid key "mykey" retry 7
   # Only had to do this next one the first time
$> sudo wpa_passphrase myssid "mypassword" > /etc/wpa_supplicant/wpa_supplicant.conf 
$> sudo wpa_supplicant -B -Dwext -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
$> sudo dhcpcd wlan0

Wie kann ich erreichen, dass WLAN auf diesem Gerät jedes Mal nach dem Booten funktioniert? Irgendwann möchte ich es an einem Ort ohne Kabelverbindung bereitstellen (daher das WLAN), aber das kann ich natürlich nicht, wenn ich das WLAN jedes Mal manuell starten / verbinden muss.

Matt
quelle
WLAN lässt sich am besten über einen Daemon wie network-manageroder verwalten wicd.
Jordanien
1
Haben Sie diese Anweisung ausprobiert, um automatisch eine Verbindung zu drahtlosen Netzwerken herzustellen
Raza
3
netcfg wird zugunsten von netctl abgeschrieben (ich bin mir nicht sicher, ob sich diese Änderung in der ARM-Version von Arch niederschlägt), aber ja, so können Sie mit Ihrer Netzwerkkonfiguration umgehen.
Fukawi2

Antworten:

17

Sie sollten netctl verwenden. Es ist das in Arch Linux integrierte Netzwerkverwaltungssystem. Wenn es noch nicht installiert ist (sollte es aber sein), führen Sie es aus pacman -Syu netctlund schauen Sie es sich an /etc/netctl. Es gibt Beispielkonfigurationsdateien in /etc/netctl/examples. Um ein Beispiel zu verwenden, kopieren Sie /etc/netctles einfach nach und bearbeiten Sie es entsprechend Ihrer Einrichtung. Führen Sie also für Ihren Fall den cp /etc/netctl/example/wireless-wpa /etc/netctl/somedescriptivenameBefehl " Ausführen" aus und /etc/netctl/somedescriptivenamepassen Sie ihn an Ihre Einrichtung an.
Um die automatische Konfiguration Ihrer drahtlosen Netzwerke mit systemd zu aktivieren, stellen Sie sicher, dass das wpa_actiondPaket installiert ist, und aktivieren Sie den Dienst:systemctl enable [email protected]

Weitere Informationen finden Sie im Netctl-Wiki .

Jacob Wiltse
quelle
das netctl-auto listgibt keine profile zurück, wogegen 4 konfiguriert sind und mit manueller netctl arbeiten wird das erwartet oder anormal? Wie kann ich verwenden, netctl-auto switch-to Xwenn scheinbar keine gültigen X-Werte vorhanden sind? Ich finde den Wiki-Eintrag netctl-auto arch überraschend wenig hilfreich. Vielleicht wissen Sie, wo Sie ein besseres Dokument finden können?
Nikana Reklawyks
Nikana, ich benutze nicht netctl-autoviel, aber nur ein paar Tipps: 1. netctl-autoist nur für drahtlose Verbindungen. Wenn Sie es für Ethernet verwenden möchten, verwenden Sie netctl-ifplugd. 2. Stellen Sie sicher, dass Sie nicht wpa-configals Sicherheitsmethode und anstelle von wpa-configsectionoder verwenden wpa. Profile werden bei der Verwendung nicht wpa-config
angezeigt
Vielen Dank. Unglücklicherweise für zukünftige Zuschauer funktioniert mein Setup jetzt, nicht, dass ich mich erinnern kann, etwas Besonderes getan zu haben. netctl-auto listgibt eine Reihe von Profilen zurück, wie es sollte. Ich denke, vielleicht war eines meiner Profile wegen dieser Nichtanforderung nicht mit netctl-auto kompatibel wpa-config, wodurch verhindert wurde, dass alle von ihnen angezeigt wurden.
Nikana Reklawyks
Wie in meiner Antwort erwähnt, müssen Sie die mit netctl erstellten Profile entfernen, bevor Sie netctl-auto aktivieren. Fügen Sie sie anschließend nach dem Start von netctl-auto erneut hinzu.
Johny, warum
Sie würden wlan0 nicht wie hier gezeigt verwenden. Sie müssen Ihre korrekte WiFi-ID verwenden.
Johny, warum
5

Ein einfacher Weg, der das Rätselraten über das Erstellen von Profilen einschränkt netctl(entnommen aus der netctlSeite im Arch-Wiki):

Schritt 1. Richten Sie das drahtlose Internet manuell wpa_supplicantwie im OP beschrieben ein. Wenn Ihr System nicht installiert ist, tun Sie dies $ pacman -S wpa_supplicant.

Schritt 2. Sie benötigen also auch ein dialogPaket $ pacman -S dialog. Dann können Sie entweder Ihr System neu starten oder die Verbindung zu Ihrem drahtlosen Netzwerk trennen.

Schritt 3. Führen Sie das Programm aus $ wifi-menu -ound gehen Sie dann die einfachen Windows / Mac-Einstellungen durch. Sie können den voreingestellten Wert der Netzwerk-ID Ihres Systems über überprüfen $ sudo netctl list. Der Wert hätte das Format wlan098-SSID. (wobei SSID = der Name Ihres WLAN)

Schritt 4. Führen Sie zum Schluss $ netctl enable wlan098-SSIDdas System aus und starten Sie es neu$ reboot

Trotzdem kann es gelegentlich vorkommen, dass Sie eine Fehlermeldung mit einer der folgenden temporarily unable to resolve nameEigenschaften erhalten. Versuchen Sie jedoch, erneut zu pingen, und es sollte funktionieren.

xdavidliu
quelle
Ohne netctl-auto stellen Sie die Verbindung nicht automatisch wieder her, da Hotspots in Reichweite sind. Siehe meine Antwort für die Einrichtung.
Johny, warum
3

Ich glaube, dass alle anderen Antworten fehlerhaft sind, wie in meinen Kommentaren zu ihnen erläutert.

Diese Schritte stellen automatisch eine Verbindung zum stärksten Hotspot her. Getestet auf einer Standard-Arch-Installation mit systemd (funktioniert möglicherweise auf anderen Betriebssystemen):

Einmalige Einrichtung:

  • Stellen Sie sicher, dass Folgendes installiert ist: dialog, wpa_supplicant, dhcpcd, netctl, wifi-menu.

  • Füge auf xfce das xfce4-Wavelan-Plugin hinzu. Dies ist nur eine Anzeigelampe, die anzeigt, wann Sie verbunden sind. Es hat keinen anderen Zweck.

  • Stellen Sie sicher, dass alle anderen Netzwerkmanager und -dienste entfernt oder deaktiviert sind. https://wiki.archlinux.org/index.php/Netctl#Wireless

  • Entfernen Sie alle zuvor erstellten Netzwerkprofile. https://www.ostechnix.com/fix-job-netctl-service-failed-error-arch-linux/

  • Beziehen Sie Ihre WLAN-Geräte-ID basename $(ls -d /sys/class/net/w*)

  • Aktivieren Sie den netctl-auto-Dienst. Dies ist der Dienst, der automatisch eine Verbindung herstellt. systemctl enable [email protected]

Stellen Sie zum ersten Mal eine Verbindung zu einem Hotspot her:

  • Rennen wifi-menu. Benötigt root. pkexec wifi-menu -o oder sudo wifi-menu -o

Lassen Sie das Kontrollkästchen deaktiviert -o, um Netzwerkkennwörter während der Eingabe anzuzeigen.

  • Pfeil runter, wähle die gewünschte Verbindung, drücke Enter, akzeptiere den Verbindungsnamen, gib das Passwort ein.

Fügen Sie nach Bedarf weitere Hotspots hinzu. Danach verbindet sich netctl-auto automatisch wieder mit dem stärksten verfügbaren Hotspot.

Johny, warum?
quelle
Antwort verbessert
Johny, warum