SDB:WiFi

Questo articolo è un abbozzo per creare un portale wifi/wlan.

Schede wireless basate su chipset Atheros

Vai all'articolo su Ndiswrapper, ma solo se la tua scheda wireless non è effettivamente supportata dal tuo kernel Linux, oppure se il supporto offerto dal kernel non è completo (vedi quando conviene usare NDISwrapper). La base di supporto alle schede wireless da parte del kernel Linux diventa sempre più ampia ad ogni versione, per cui ci sono buone probabilità che la tua scheda basata su chip Atheros sia supportata e pronta fin da subito per essere utilizzata. In caso contrario il problema potrebbe risolversi con l'aggiunta dei necessari modulo e firmware del kernel, o con una nuova versione del kernel Linux. Per controllare usa, nel caso di scheda PCI, il comando da terminale lspci, come qui di seguito:

$ /sbin/lspci -vnn

e da questo risali al codice identificativo del produttore della tua scheda (vendor ID, stringa esadecimale XXXX) e al codice identificativo del modello di quest'ultimo (product ID, stringa esadecimale YYYY) che si presenteranno nella forma XXXX:YYYY; esempio: la stringa 168c:002b, da

$ /sbin/lspci -vnn | grep Atheros
02:00.0 Network controller [0280]: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) [168c:002b] (rev 01)

Per dispositivi da interfaccia USB potrai ottenere la medesima stringa <ID-produttore>:<ID:prodotto> col comando da terminale lsusb.

Controlla poi qui il supporto per il tuo dispositivo wireless, (fai clic se uno dei link in quella pagina a seconda del tipo di dispositivo che usi, es.: per scheda wireless PCI. Inoltre qui ci sono alcune informazioni sullo stato dei driver wireless open source. In alternativa puoi controllare lo stato del supporto in questa pagina, semplicemente selezionando costruttore della scheda wireless, interfaccia e chipset.

Se in base a queste o altre informazioni dovesse risultare che esistono driver open source per la tua scheda wireless, ma la versione di openSUSE che stai usando non la supporta, procedi allora in uno dei due modi seguenti:

  • Aggiungi il modulo del kernel e il firmware, se necessario, appropriati per la tua scheda wireless dal repository driver:wireless di openSUSE Build Service
  • In alternativa, ma solo se sai ciò che stai facendo, aggiorna i pacchetti kernel-* e kernel-firmware all'ultima versione stabile del kernel Linux dal repository Kernel:stable di openSUSE Build Service.

Se dopo tutto questo la tua scheda wireless non dovesse funzionare come dovrebbe, potrai considerare di usare Ndiswrapper.


Network manager

openSUSE potrebbe andare incontro a problemi occasionali con le connessioni wireless. Nella maggior parte dei casi, la distribuzione funzionerà bene con reti cablate o reti senza fili (wireless) protette da WEP/WPA. Tuttavia, per reti wireless pubbliche, in particolare quelle che sono installate in sale bar e aeroporti, Network Manager potrebbe improvvisamente ignorare ogni tentativo di connettersi ad una rete o rifiutarsi di ottenere un indirizzo IP.
Aggiungi connessione di rete

Tra i segni indicativi del problema si annovera il messaggio Non disponibile dopo aver fatto clic su "Connetti..." (o sul nome della connessione) dopo circa un minuto durante il quale NetworkManager avrà cercato di registrare un indirizzo IP. L'applet KNetwork Manager potrebbe rilevare tutte le reti wireless pubbliche senza alcun problema, ma continuare a mostrare la finestra di dialogo Aggiungi connessione di rete – Modulo di controllo di KDE.

La finestra per l'aggiunta di una nuova connessione di rete continuerà e restare aperta i l'icona per Network Manager indicherà rete Non disponibile.

Per aggiungere una rete (wlan) manualmente, segui i passi qui sotto (istruzioni aggiornate per plasmoid-networkmanagement versione 0.9.2.65git):

  1. Fai doppio clic sull'icona di Network Manager nel Vassoio di sistema.
  2. Fai clic su Manage Connections ("Gestisci le connessioni")
  3. Seleziona la scheda Senza fili e fai clic su Aggiungi....
  4. Se Aggiungi... è un menu a cascata seleziona Senza fili (dipende dalle versioni di KNetwork Manager).
  5. Nella finestra Aggiungi connessione di rete, passa alla scheda Senza fili e fai clic su Scansiona.
  6. Sarà ora visualizzata la finestra Reti disponibili. Massimizza la finestra, se necessario, fai clic sul menu con le opzioni di Vista: e passa alla vista Dettagli.
  7. Seleziona la rete senza fili a cui stai cercando di connetterti.
  8. Fai clic su Ok.
  9. Nel campo SSID dovrebbe ora comparire il nome esatto della rete scelta. Fai clic sulla scheda Sicurezza senza fili e digita le chiavi wireless richieste per accedere alla rete.
  10. Fai clic su Ok.
  11. Avvia un browser, dovrebbe ora aprirsi la pagina di accesso/login (se ce n'è una) per le reti senza fili pubbliche.

Se usi l'applet di GNOME per NetworkManager i passaggi sono simili: clic destro sull'icona nel Vassoio di Sistema, scegli Modifica connessioni, seleziona scheda Senza fili, clic su Aggiungi, seleziona scheda Senza fili, imposta "Modo:" Infrastruttura e inserisci i parametri di connessione. In alternativa, clic sinistro sull'icona nel Vassoio di Sistema > Crea nuova rete senza fili.

Dopo aver creato una nuova connessione di rete senza fili openSUSE ancora non riesce a connettersi. È ora di creare un altro account utente nuovo (e non ancora usato, che costituisce un importante utente di riserva, anche per sistemi Linux mono-utenti, nel caso un account utente dovesse un giorno risultare corrotto). Esci dalla sessioni e poi accedi di nuovo usando l'account utente appena creato. Crea una nuova connessione senza fili come descritto sopra. Network Manager non dovrebbe più essere ingolfato da alcuna delle precedenti impostazioni e neppure bloccato su qualche rete (per utenti avanzati, usare il metodo tradizionale con ifup da Terminale potrebbe essere un'altra via da tentare). Ora openSUSE dovrebbe connettersi con successo.

wpa_gui

wpa_cli è incluso nel pacchetto wpa-supplicant e offre un'interfaccia a riga di comando per wpa_supplicant, per un'interfaccia grafica installa il pacchetto wpa_supplicant-gui. Per attivare l'interfaccia di comando è necessario aver configurato wpa_supplicant. Nel file di configurazione di wpa_supplicant dovranno essere state impostate almeno le opzioni relative a ctrl_interface e ctrl_interface_group.

Esempio:

# wpa_supplicant -iwlan0 -c/var/run/wpa_supplicant-gui.conf -Dwext -B
# less /var/run//wpa_supplicant-gui.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=users
update_config=1

L'opzione update_config=1 consente all'utente di salvare le reti configurate quando usa wpa_gui. Per il debug è utile avviare wpa_supplicant con l'opzione "-dddt" e reindirizzare i messaggi da registrare "-f /var/log/wpa-supplicant.log".

Nota:

wpa_gui viene mantenuto aggiornato contemporaneamente a wpa_supplicant. Se ci sono problemi a configurare il wifi tramite sysconfig o Networkmanager, è una buona idea provare wpa_gui (o wpa_cli) e aiutare a isolare il problema.


Impostare connessione Ad-hoc

Impostare connessione Ad-hoc con Network Manager

Questo schema è pensato per connessioni wifi tra computer senza un un punto d'accesso (AP, access point). Dovrai eseguire gli stessi passaggi su entrambi i computer, ma scegliendo indirizzi IP diversi.

Sia che tu usi l'applet di NetworkManager per GNOME (nm-applet) o per KDE (plasmoid-networkmanagement) segui quanto detto sopra per arrivare fino alla seconda scheda Senza fili sopra nominata, in dettaglio:

KDE

  1. Fai doppio clic sull'icona di Network Manager nel Vassoio di sistema.
  2. Fai clic su Manage Connections ("Modifica connessioni")
  3. Seleziona la scheda Senza fili e fai clic su Aggiungi....
  4. Se Aggiungi... è un menu a cascata seleziona Senza fili (dipende dalle versioni di KNetwork Manager).
  5. Nella finestra Aggiungi connessione di rete, passa alla scheda Senza fili

vai ora al sotto-paragrafo in comune

GNOME

  1. Clic destro sull'icona di NetworkManager nel Vassoio di sistema
  2. Seleziona Modifica connessioni.
  3. Seleziona la scheda Senza fili
  4. Fai click su Aggiungi
  5. Seleziona la scheda Senza fili nella finestra "Modifica di..."

vai ora al sotto-paragrafo in comune

Comune

  1. Assegna un nome opportuno alla connessione ad-hoc nel campo Nome della connessione:
  2. Assegna un SSID nell'apposito campo, uguale per tutte le macchine (es.: Connessione_senza_fili_ad_hoc)
  3. Modifica le impostazioni nella scheda Sicurezza senza fili, se desideri (o necessiti di) una sicurezza diversa da Nessuna anche per connessioni ad-hoc (es.: "Frase di accesso WEP a 128 bit", o meglio WPA2)
  4. Nella scheda Senza fili imposta il "Modo:" (GNOME) o la "Modalità:" (KDE) su Ad-hoc
  5. Seleziona la scheda Impostazioni IPv4 (GNOME) o Indirizzo IPv4 (KDE) e seleziona il "Metodo:" Manuale nel menu a cascata
  6. Fai clic sul pulsante Aggiungi (solo per GNOME, con KDE i campi sono sotto "Metodo:") e inserisci indirizzo IP locale, Maschera di sotto-rete e Gateway, per esempio, rispettivamente: 192.168.0.1, 255.255.255.0 e 192.168.0.1.
  7. Lascia vuoti i due campi Server DNS e Search Domains (Domini di ricerca)
  8. Fai clic su Salva, oppure OK (KDE)

Puoi ora iniziare la connessione:

Con GNOME

  1. Fai clic sinistro sull'icona di NetworkManager e seleziona Connetti a rete senza fili nascosta...
  2. Seleziona il nome della rete ad-hoc dall'elenco a cascata delle connessioni e fai clic su Connetti.

Con KDE

  1. Fai doppio clic sull'icona di Network Manager nel Vassoio di sistema.
  2. Nel pannello verticale Interfaces (Interfacce) seleziona la WLAN e nel pannello Connections (Connessioni) fai clic sul nome della rete senza fili ad-hoc.

Impostare connessione Ad-hoc senza Network Manager

Questo procedura descrive come impostare una connessione Ad-Hoc senza NM. Per cifrare la connessione si dovrebbe usare wpa_suplicant: la configurazione descritta qui di seguito non utilizza alcuna sicurezza.

  • In YaST disabilita NetworkManager (NM)
  • come utente root disattiva l'interfaccia wireless
# ip link set wlan0 down
  • imposta il codice identificativo di dominio (domain ID) e la modalità ad-hoc
# iwconfig wlan0 essid test-adhoc mode Ad-Hoc
  • riattiva l'interfaccia
# ip link set wlan0 up
  • imposta manualmente l'indirizzo IP
# ip addr add 192.168.102.1/24 dev wlan0

Ripeti la procedura per tutte le interfacce che dovranno comunicare tra loro. Seleziona un indirizzo IP univoco per ciascuna interfaccia.

Impostare connessione Ad-hoc con Yast

  • YaST -> Dispositivi di rete -> Impostazioni di rete
  • seleziona "Metodo tradizionale con ifup" nella scheda "Opzioni globali"
  • seleziona poi la scheda wireless nella scheda "Panoramica", poi fai clic su "Modifica"
  • nella scheda "Indirizzo" del menu "Configurazione della scheda di rete" seleziona "Indirizzo IP assegnato staticamente" e riempi il campo con "Indirizzo IP" e della "Maschera di sotto-rete", fai clic su "Avanti"
  • seleziona nel menu a cascata di "Modalità operativa" la voce Ad-hoc e imposta come "Nome della rete (ESSID)" l'identificativo numerico del dominio (domain ID)
  • seleziona la "Modalità di autenticazione" (lasciando l'impostazione "WEP-Aperto", non si avrà nessuna autenticazione, come nella sezione sopra). Fai clic su Avanti, infine su OK per terminare.

Ripeti per tutte le interfacce.


Come connettersi ad una rete WiFi senza NetworkManager

Se per qualche ragione NetworkManager (NM) non funzionasse potresti provare a impostare la connessione WiFi dalla riga di comando.

  • In YaST -> Dispositivi di rete -> Impostazioni di rete spunta la casella "Metodo tradizionale con ifup"
  • come utente root identifica la tua interfaccia WiFi e attivala
# ip link set wlan0 up
  • ottieni un elenco dei punti di accesso (AP, accesspoint) disponibili
# iwlist scan
  • imposta come identificativo di dominio (domain ID) il tuo accesspoint (TuoAP)
# iwconfig wlan0 essid TuoAP
  • verifica che l'indicatore di set di servizi (ESSID) sia impostato
# iwconfig wlan0
  • Modifica poi il file /etc/wpa_supplicant/wpa_supplicant.conf in accordo con i parametri necessari per il TuoAP.
  • chiudi tutte le istanze di wpa-supplicant in esecuzione e avviane una nuova
# wpa_supplicant -dddt -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D wext -f /var/log/wpa_supplicant.log
  • Se la scheda è ora aggregata al TuoAP puoi avviare dhclient, ovvero
# dhclient wlan0
  • Nel caso in cui il TuoAP non fornisca alcun dhcp, assegna l'indirizzo IP manualmente:
# ip addr add <indirizzo> dev wlan0

Dovresti a questo punto essere connesso. In caso contrario apri una segnalazione bug e allega al messaggio l'output della procedura sopra descritta.


Problemi con l'interfaccia rfkill

L'interfaccia rfkill mantiene informate le applicazioni in spazio utente sullo stato dell'adattatore wireless. Il metodo più pratico per scoprire se l'interfaccia rfkill viene fornita dal driver del dispositivo wlan è di installare il piccolo programma di utilità rfkill. Come root digita il comando "rfkill list all" e ti verranno mostrate tutte le interfacce rfkill disponibili. Questo programma di utilità ti consente inoltre di avere il controllo dell'interfaccia rfkill.

Se le interfacce di rfkill sono disponibili, "rfkill list all" produrrà un risultato simile a questo:

 # rfkill list all
 0: sony-wifi: Wireless LAN
       Soft blocked: no
       Hard blocked: no
 1: sony-bluetooth: Bluetooth
       Soft blocked: no
       Hard blocked: no
 3: phy0: Wireless LAN
       Soft blocked: no
       Hard blocked: no
 5: hci0: Bluetooth
       Soft blocked: no
       Hard blocked: no

NetworkManager (NM) si affida alle notifiche provenienti dall'interfaccia rfkill per sapere se la scheda wlan sia stata precedentemente accesa o spenta. Se rfkill non è fornita dal driver e l'adattatore wlan è disattivato, a NM non viene notificato che l'interfaccia wlan non è disponibile e cerca di riconnettersi come se la connessione si fosse interrotta. Ovviamente il tentativo di riconnettersi non avrà successo e NM continuerà a richiedere la password per l'AP cifrato.

NM dopo 5 minuti scarta dall'elenco gli AP non disponibili, ma in questo caso NM non riceve nessuno risultato dalla scansione, dato che la scheda wlan è spenta ed NM non aggiorna l'elenco degli AP. Solo dopo circa 30 minuti nell'elenco non verrà più riportato nessun AP, probabilmente per via del raggiunto time-out. Ecco perché puoi ancora vedere l'elenco degli AP salvati temporaneamente da NM come se l'adattatore wlan stesse ancora effettuando la scansione delle reti.

In condizioni operative normali, se si disattiva l'adattatore wlan, NM riceverà la relativa segnalazione dall'interfaccia rfkill e la casella relativa a "Abilita rete senza fili" risulterà non selezionata, nel menu di nm-applet. NM in questo caso è al corrente che l'interfaccia wlan non è disponibile.

Scansione da nodo wireless di AP con SSID nascosto

Ci sono due modalità di scansione dei punti di accesso (AP) disponibili: attiva e passiva.

  • Scansione attiva. Il dispositivo client (STA - stazione wireless) invia in broadcast un messaggio di "probe request" generico e gli AP rispondono con il messaggio di "probe response". STA raccoglie i messaggi di probe response e crea l'elenco degli AP. Gli AP nascosti non rispondono al messaggio di "probe request" generico, bensì questi ultimo rispondono alla specifica richiesta di "probe request", inoltrata quando è stato impostato il suo BSSID. (Nota: Il Basic Service Set Identifier (BSSID) identifica in modo univoco ciascun Basic Service Set (BSS). In un Basic Service Set infrastruttura (modalità infrastruttura), il BSSID è l'indirizzo MAC del punto di accesso wireless. In un Basic Service Set indipendente (ad-hoc), il BSSID è un indirizzo MAC gestito in locale, generato a partire da un numero casuale a 46 bit.)
  • Scansione passiva. Il nodo client (STA) intercetta i pacchetti "beacon" che vengono trasmessi dagli AP ad intervalli di 100ms. Il pacchetto beacon include le informazioni, tra cui alche l'identificativo SSID, necessarie allo STA per potersi connettere all'AP. STA è in grado di accumulare i pacchetti beacon via via ricevuti e creare l'elenco degli AP. Gli AP nascosti invece non inviano i pacchetti beacon.

Conseguenze della scansione attiva e passiva su connessioni wifi 802.11n

Quando vengono trasferiti file di grandi dimensioni attraverso una rete wlan, mentre si sta usando il driver iwlagn, si può notare una velocità di connessione iniziale di ~2MBit/s, che poi si assesta a ~16MBit/s quando le condizioni sono buone. Se durante il trasferimento viene richiesto al driver di effettuare una scansione attiva degli AP, il trasferimento viene temporaneamente interrotto e al termine della scansione la velocità di connessione deve di nuovo adattarsi al tipo di connessione WiFi. La scansione attiva è quindi ancora possibile, ma a causa delle sue conseguenze sulla qualità del trasferimento è da preferirsi la scansione passiva. Dato che gli AP nascosti non possono essere rilevati da una scansione passiva, ne consegue che con trasmissioni wireless secondo lo standard 802.11n gli AP nascosti non dovrebbero essere usati troppo di frequente.

Driver

iwlagn

per configurare il driver iwlagn si hanno a disposizione le seguenti opzioni:

  • antenna: seleziona l'antenna da usare (1=Principale, 2=Ausiliaria, default: 0 [entrambe]) (int)
  • swcrypto: se usare la cifratura software (default 0 [hardware]) (int)
  • disable_hw_scan: disabilita la scansione hardware (default 0) (int)
  • queues_num: il numero di code hardware. (int)
  • 11n_disable: disabilita funzionalità standard 11n (int)
  • amsdu_size_8K: abilita ampiezza frame A-MSDU a 8K (int)
  • fw_restart4965: riavvia il firmware in caso di errori (int)
  • debug: maschera di output di debug (uint)

Per usare il driver iwlagn esclusivamente con AP che supportano 802.11n è necessario impostare l'opzione 11n_disable=0 ed è raccomandata l'opzione disable_hw_scan=1.


Ndiswrapper


Qualità delle schede wireless

Mentre con le schede Ethernet cablate si riscontrano pochi problemi di qualità (la maggior parte delle schede che indicano 100Mb danno 100Mb effettivi), nel mondo del wireless le cose sono abbastanza diverse... perciò questa pagina: en:Wireless cards quality.


Collegamenti esterni

In inglese: