Arch Linux wifi funziona manualmente, come renderlo automatico?


22

Esecuzione di Arch Linux con kernel 3.6.11-12-ARCH + sul mio Raspberry Pi.

Ho un dongle USB wifi Linksys (WUSB54GC v3) che è in esecuzione e funziona dopo aver eseguito i seguenti comandi:

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

Come faccio a far funzionare il wifi su questo dispositivo ogni volta dopo l'avvio? Alla fine voglio distribuirlo in una posizione senza una connessione cablata (quindi il wifi), ma ovviamente non posso farlo se devo avviare / connettere manualmente il wifi ogni volta.


Il wireless è gestito al meglio tramite un demone come network-managero wicd.
jordanm,

1
Hai provato queste istruzioni per connetterti automaticamente alle reti wireless: wiki.archlinux.org/index.php/Netcfg
Raza

3
netcfg è ammortizzato a favore di netctl (non sono sicuro se quel cambiamento si sia ancora riflesso nella risposta ARM di Arch), ma sì, questo è il modo di gestire la configurazione della rete.
fukawi2,

Risposte:


18

Dovresti usare netctl. È Arch Linux integrato nel sistema di gestione della rete. Se non è già installato (dovrebbe essere però), esegui pacman -Syu netctlquindi cerca /etc/netctl. Ci sono esempi di file di configurazione in /etc/netctl/examples.

Per iniziare subito:

  1. Prendere nota del nome del dispositivo per l'adattatore wireless. Sostituisci tutte le istanze di wlan0nei miei esempi con il nome che corrisponde alla tua configurazione.
  2. Assicurarsi di aver installato i pacchetti richiesti.

    pacman -Syu wpa_supplicant dhcpcd

    1. wpa_supplicant è richiesto per i punti di accesso protetti WPA e dhcpcd è richiesto per ottenere un IP da qualsiasi rete usando un server DHCP, come elencato nel wiki di Arch Linux.
  3. Copia un esempio appropriato:

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

  4. Modifica la tua nuova configurazione /etc/netctl/somedescriptivenameper adattarla alla tua configurazione.
  5. Abilitare il servizio netctl-auto per la scheda wireless. Ancora una volta, sostituisci wlan0 con il nome del dispositivo per la tua configurazione.

    systemctl enable netctl-auto@wlan0.service

Alcune cose da notare:

  • netctl si connetterà automaticamente a tutti i profili presenti in / etc / netctl quando ci si sposta nel raggio del punto di accesso
  • Questa configurazione funzionerà solo con i profili usando Security=wpa-configsectione Security=wpa.
  • Disabilita tutti i profili wifi precedentemente abilitati usando netctl disable profilenamealtrimenti netctl li avvierà due volte all'avvio una volta abilitato netctl-auto.

Per ulteriori informazioni, consultare la voce wiki di Netctl .


che netctl-auto listnon restituisce alcun profilo, mentre 4 sono configurati e il funzionamento con netctl manuale è previsto o anormale? Come posso usare netctl-auto switch-to Xse apparentemente non ci sono valori X validi? Trovo sorprendentemente inutile la voce wiki di netctl-auto arch, forse sai dove trovare un documento migliore?
Nikana Reklawyks,

Nikana, non uso netctl-automolto, ma solo alcuni suggerimenti: 1. netctl-autoè solo per le connessioni wireless. Se stai cercando di usarlo per Ethernet, usa netctl-ifplugd. 2. Assicurarsi di non utilizzare wpa-configcome metodo di sicurezza e invece di wpa-configsectiono wpa. I profili non verranno visualizzati quando si utilizzawpa-config
Jacob Wiltse,

Grazie. Sfortunatamente per i futuri spettatori, la mia configurazione funziona ora, non che ricordo di aver fatto qualcosa di speciale. netctl-auto listrestituisce un sacco di profili come dovrebbe. Penso che forse uno dei miei profili non fosse compatibile con netctl-auto a causa di questo no-wpa-config necessario, che ha impedito a tutti di comparire.
Nikana Reklawyks,

Come menzionato nella mia risposta, è necessario rimuovere i profili creati con netctl prima di abilitare netctl-auto. Quindi, dopo aver avviato netctl-auto, aggiungerli nuovamente.
johny perché l'

Non useresti wlan0 come mostrato qui. Devi usare il tuo ID WiFi corretto.
johny perché l'

5

Un modo più semplice che elimina alcune delle congetture su come creare profili netctl(presi dalla netctlpagina sul wiki dell'arco):

Passaggio 1. Configurare manualmente la connessione wireless a Internet, usando wpa_supplicantcome descritto nell'OP. Se il tuo sistema non lo ha installato, fallo $ pacman -S wpa_supplicant.

Passaggio 2. Sarà inoltre necessario un dialogpacchetto, quindi $ pacman -S dialog. Quindi, è possibile riavviare il sistema o disconnettersi dalla rete wireless.

Passaggio 3. Eseguire $ wifi-menu -o, quindi passare attraverso le impostazioni molto semplici di Windows / Mac. Puoi controllare il valore preimpostato dell'ID di rete del tuo sistema tramite $ sudo netctl list. Il valore sarebbe nel formato di wlan098-SSID. (dove SSID = il nome della tua WLAN)

Passaggio 4. Infine, eseguire $ netctl enable wlan098-SSIDe riavviare il sistema$ reboot

Tuttavia, a volte potresti ricevere un messaggio di errore con qualcosa del genere temporarily unable to resolve nameo qualcosa del genere, ma prova a ripetere il ping e dovrebbe funzionare.


Senza netctl-auto, non ti riconnetterai automaticamente poiché gli hotspot rientrano nel raggio di azione. Vedi la mia risposta per la configurazione.
johny perché l'

3

Credo che tutte le altre risposte siano imperfette, come spiegato nei miei commenti su di esse.

Questi passaggi si collegheranno automaticamente all'hotspot più potente. Testato su un'installazione di arco standard con systemd (può funzionare su altri sistemi operativi):

Installazione unica:

  • Assicurarsi che siano installati: dialog, wpa_supplicant, dhcpcd, netctl, wifi-menu.

  • su xfce, aggiungi il plugin xfce4-wavelan. Questa è solo una spia che mostra quando sei connesso. Non ha altro scopo.

  • Assicurarsi che tutti gli altri gestori e servizi di rete siano rimossi o disabilitati. https://wiki.archlinux.org/index.php/Netctl#Wireless

  • rimuovere eventuali profili di rete precedentemente creati. https://www.ostechnix.com/fix-job-netctl-service-failed-error-arch-linux/

  • Ottieni il tuo ID dispositivo WiFi basename $(ls -d /sys/class/net/w*)

  • abilita il servizio netctl-auto. Questo è il servizio che si connetterà automaticamente. systemctl enable netctl-auto@YourWifiDeviceID.service

Connettiti a un hotspot la prima volta:

  • Corri wifi-menu. Richiede root. pkexec wifi-menu -o o sudo wifi-menu -o

Lasciare -ovedere le password di rete durante la digitazione.

  • Freccia in giù, seleziona la connessione desiderata, premi invio, accetta il nome della connessione, inserisci la password.

Aggiungi più hotspot secondo necessità. da allora in poi netctl-auto si riconnetterà automaticamente all'hotspot più potente disponibile.


Risposta migliorata
johny perché l'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.