Arch linux wifi działa ręcznie, jak to zrobić automatycznie?


22

Uruchamianie Arch Linux z jądrem 3.6.11-12-ARCH + na moim Raspberry Pi.

Mam klucz USB Wi-Fi Linksys (WUSB54GC v3), który działa i działa po wykonaniu następujących poleceń:

$> 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

Jak sprawić, by Wi-Fi na tym urządzeniu działało za każdym razem po uruchomieniu? W końcu chcę wdrożyć go w lokalizacji bez połączenia przewodowego (stąd Wi-Fi), ale oczywiście nie mogę tego zrobić, jeśli muszę ręcznie uruchamiać / podłączać Wi-Fi za każdym razem.


Bezprzewodowe najlepiej zarządzać za pomocą demona, takiego jak network-managerlub wicd.
jordanm

1
Czy próbowałeś tej instrukcji, aby automatycznie łączyć się z sieciami bezprzewodowymi: wiki.archlinux.org/index.php/Netcfg
Raza

3
netcfg jest amortyzowany na korzyść netctl (choć nie jestem pewien, czy zmiana ta została jeszcze odzwierciedlona w ARM w stosunku do Archa), ale tak, jest to sposób obsługi konfiguracji sieci.
fukawi2

Odpowiedzi:


18

Powinieneś użyć netctl. Jest to Arch Linux wbudowany w system zarządzania siecią. Jeśli nie jest jeszcze zainstalowany (tak powinno być), uruchom, pacman -Syu netctla następnie spójrz /etc/netctl. Istnieją przykładowe pliki konfiguracyjne w /etc/netctl/examples.

Aby szybko rozpocząć pracę:

  1. Zanotuj nazwę urządzenia dla karty sieci bezprzewodowej. Zastąp wszystkie wystąpienia wlan0w moich przykładach nazwą, która pasuje do twojej konfiguracji.
  2. Upewnij się, że zainstalowałeś wymagane pakiety.

    pacman -Syu wpa_supplicant dhcpcd

    1. wpa_supplicant jest wymagany dla punktów dostępu chronionych WPA, a dhcpcd jest wymagany do uzyskania adresu IP z dowolnej sieci za pomocą serwera DHCP, zgodnie z listą na wiki Arch Linux.
  3. Skopiuj odpowiedni przykład:

    cp /etc/netctl/example/wireless-wpa /etc/netctl/somedescriptivename

  4. Edytuj swoją nową konfigurację w /etc/netctl/somedescriptivenamecelu dopasowania do konfiguracji.
  5. Włącz usługę netctl-auto dla karty sieci bezprzewodowej. Ponownie zamień wlan0 na nazwę urządzenia dla swojej konfiguracji.

    systemctl enable netctl-auto@wlan0.service

Kilka rzeczy do zapamiętania:

  • netctl automatycznie połączy się z dowolnym profilem, który masz w / etc / netctl, kiedy przejdziesz do zasięgu punktu dostępu
  • Ta konfiguracja będzie działać tylko z profilami używającymi Security=wpa-configsectioniSecurity=wpa .
  • Wyłącz wszystkie wcześniej włączone profile Wi-Fi za pomocą netctl disable profilenamenetctl uruchomi je dwa razy podczas rozruchu, gdy netctl-auto jest włączony.

Aby uzyskać więcej informacji, zapoznaj się z wpisem wiki Netctl .


który netctl-auto listnie zwraca żadnych profili, podczas gdy 4 są skonfigurowane i praca z ręcznym netctl jest oczekiwana czy nietypowa? Jak mogę użyć, netctl-auto switch-to Xjeśli pozornie nie ma prawidłowych wartości X? Uważam, że wpis wiki netctl-auto arch zaskakująco nie jest pomocny, może wiesz, gdzie znaleźć lepszy dokument?
Nikana Reklawyks

Nikana, nie używam netctl-autodużo, ale tylko kilka wskazówek: 1. netctl-autodotyczy tylko połączeń bezprzewodowych. Jeśli chcesz użyć go do Ethernetu, użyj netctl-ifplugd. 2. Upewnij się, że nie używasz wpa-configjako metody zabezpieczeń, a zamiast wpa-configsectionlub wpa. Profile nie będą się pojawiać podczas używaniawpa-config
Jacob Wiltse

Dziękuję Ci. Niestety dla przyszłych widzów moja konfiguracja działa teraz, nie dlatego, że przypominam sobie robienie czegoś specjalnego. netctl-auto listzwraca kilka profili tak, jak powinno. Myślę, że jeden z moich profili nie był kompatybilny z netctl-auto z powodu tego braku wpa-configwymagań, który uniemożliwił pojawienie się wszystkich z nich.
Nikana Reklawyks,

Jak wspomniano w mojej odpowiedzi, musisz włączyć profile utworzone za pomocą netctl, zanim włączysz netctl-auto. Następnie, po uruchomieniu netctl-auto, dodaj je ponownie.
John, dlaczego

Nie użyłbyś wlan0 jak pokazano tutaj. Musisz użyć poprawnego identyfikatora WiFi.
John, dlaczego

5

Łatwiejszy sposób, który eliminuje część zgadywania na temat tworzenia profilów netctl(wzięty ze netctlstrony arch wiki):

Krok 1. Skonfiguruj bezprzewodowy internet ręcznie, używając wpa_supplicantzgodnie z opisem w OP. Jeśli nie masz zainstalowanego systemu, zrób to $ pacman -S wpa_supplicant.

Krok 2. Będziesz także potrzebował dialogpakietu, więc $ pacman -S dialog. Następnie możesz albo ponownie uruchomić system, albo rozłączyć się z siecią bezprzewodową.

Krok 3. Uruchom $ wifi-menu -o, a następnie przejdź do bardzo prostych ustawień Windows / Mac. Możesz sprawdzić wstępnie ustawioną wartość identyfikatora sieci twojego systemu poprzez $ sudo netctl list. Wartość byłaby w formaciewlan098-SSID . (gdzie SSID = nazwa Twojej sieci WLAN)

Krok 4. Na koniec uruchom $ netctl enable wlan098-SSIDi uruchom ponownie system$ reboot

Mimo to czasami może pojawić się komunikat o błędzie z czymś takim temporarily unable to resolve namelub czymś innym, ale po prostu spróbuj ponownie pingować i powinno działać.


Bez netctl-auto nie nawiążesz połączenia automatycznie, ponieważ punkty dostępu znajdą się w zasięgu. Zobacz moją odpowiedź dotyczącą konfiguracji.
John, dlaczego

3

Uważam, że wszystkie inne odpowiedzi są błędne, jak wyjaśniono w moich komentarzach na ich temat.

Te kroki automatycznie połączą się z najsilniejszym punktem dostępowym. Testowany na standardowej instalacji arch z systememd (może działać na innych systemach operacyjnych):

Konfiguracja jednorazowa:

  • Upewnij się, że zainstalowane są: dialog, wpa_supplicant, dhcpcd, netctl, wifi-menu.

  • na xfce dodaj wtyczkę xfce4-wavelan. To tylko lampka kontrolna, która pokazuje, kiedy jesteś podłączony. Nie ma innego celu.

  • Upewnij się, że wszystkie inne menedżery sieci i usługi są usunięte lub wyłączone. https://wiki.archlinux.org/index.php/Netctl#Wireless

  • usuń wcześniej utworzone profile sieciowe. https://www.ostechnix.com/fix-job-netctl-service-failed-error-arch-linux/

  • Uzyskaj identyfikator urządzenia WiFi basename $(ls -d /sys/class/net/w*)

  • włącz usługę netctl-auto. To usługa, która połączy się automatycznie. systemctl enable netctl-auto@YourWifiDeviceID.service

Połącz się z hotspotem po raz pierwszy:

  • Uruchom wifi-menu. Wymaga roota. pkexec wifi-menu -o lub sudo wifi-menu -o

Pozostaw pole, -oaby zobaczyć hasła sieciowe podczas pisania.

  • Strzałka w dół, wybierz żądane połączenie, naciśnij Enter, zaakceptuj nazwę połączenia, wprowadź hasło.

W razie potrzeby dodaj więcej punktów aktywnych. netctl-auto automatycznie połączy się ponownie z najsilniejszym dostępnym hotspotem.


Odpowiedź poprawiona
John, dlaczego
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.