Funzionamento schede wireless in Linux
Su Internet si possono trovare molte guide alla configurazione delle schede wireless sotto Linux. Questa piccola guida che propongo si basa su alcuni tentativi riusciti da parte mia.
La guida si rivolge a tutti quei casi in cui l'interfaccia grafica presente in molte distro Linux non è stata in grado di settare la scheda a dovere. La premessa opportuna è che il riconoscimento automatico della scheda è abbastanza migliorata nelle distro Linux ma resta uno dei punti più delicati del riconoscimento hardware, soprattuto nei notebook e netbook che fanno grande uso delle reti wireless. Il programma chiave di tutta la faccenda e ndiswrapper che permette, a partire dai driver della scheda reperibili sul sito della casa produttrice oppure già presenti per windows di far riconoscere la scheda anche a Linux. I driver di Windows dovrebbero essere presenti nei CD/DVD allegati al computer. Se li cercate nell'hard disk sotto Windows, questo ha i driver in una directory /windows/inf che è nascosta quindi bisogna prima settare in opzioni cartella la visualizzazione di queste cartelle nascoste. Molte case costruttrici di notebook hanno comunque il download di questi driver per windows nei loro siti. Certo, bisogna darsi da fare un pochino per trovarli in giro, dopo aver ottenuto l'identificativo e gli estremi della nostra scheda di rete, come spiegato qui di seguito.
L'installazione di ndiswrapper dovrebbe essere già presente nella distro usata oppure facilmente reperibile nei repositories della distro che usate (Mandriva, Ubuntu, ecc.). I puristi gradiscono la compilazione direttamente dai sorgenti ma secondo me è da fare solo nel caso ci siano ancora problemi alla fine dell'installazione. Intanto bisogna cercare di riconoscere il tipo di scheda presente nel nostro computer. Alla bisogna ci pensa il comando lspci. Successivamente con lspci -n | grep <identificativo> si può trovare l'esatto nome del driver da scaricare dall'apposita lista dei driver che si trova sotto il sito ndiswrapper-sourceforge
Ad esempio, se l'identificativo fornito da lspci è 17fe:2220 si cercherà sul sito nell'apposita casella di search l'esatta corrispondenza di questa sigla e si dovrebbero trovare i driver. Una volta scompattato il file dei driver in una qualsiasi directory ci si entra dentro e si lancia il comando ndiswrapper -i <nomefile> dove il file è quello che presenta il suffisso .inf (nel caso dell'esempio neti2220.inf)
Un messaggio di tipo installing <nome file> avverte che il file è installato. Nella directory /etc/ndiswrapper/dovrebbe avere una subdirectory con un nome analogo al file .inf installato.
Adesso, con un modprobe ndiswrapper si carica il modulo. Se non vengono dati errori di caricamento, si può passare a testare il tutto con il comando da console iwconfig. Dovrebbe apparire un dispositivo (in genere wlan0) abilitato alla connessione wireless e dovrebbero apparire una sfilza di 00:00 al posto del macaddress dell'AP (Access Point) da voi usato.
A questo punto è bene lanciare il comando ifconfig wlan0 up per lanciare l'interfaccia di rete wlan0. Ora è bene lanciare anche un dhcpclient wlan0 per fare assegnare un indirizzo IP dall'AP. Quest'ultimo comando potrebbe essere non necessario.
E' anche possibile testare la rete wirelessi presente con iwlist wlan0 scan. Dovrebbe apparire l'identificativo della nostra rete. Tra l'altro vengono fornite indicazioni come l'essid (ovvero il nome dato alla rete) e se questa ha settato un sistema di security (off/on)
A questo punto è necessario fare una configurazione di massima della scheda con iwconfig. Dato che di default lavora in mode management che è il caso più comune di AP e router collegato (ovvero l'AP non funge da ponte) si devono dare solo, nell'ordine:
iwconfig wlan0 essid <nome nostra rete>. Il nome sarà stato ovviamente settato prima nell'AP. Di default le case costruttrici di AP lasciano il nome del modello dell'AP ma è bene cambiarlo con un essid alfanumerico (alcuni AP lo chiamano SSID ma è la stessa cosa dell'ESSID).
Poi si darà iwconfig wlan0 key <stringa esadecimale> dove la stringa esadecimale è la stessa settata sull'AP, qualora si sia scelta una sicurezza WPE. Se si è lasciata open la rete non ce ne sarà bisogno, anche se così la sicurezza ne risente. Si segnala che iwconfig non supporta il criterio di sicurezza WPA-PSK (WPA preshared key) con passphrase. Se l'AP è stato configurato con questo sistema e lo si vuole mantenere è necessario installare e configurare wpa_supplicant che è un software aggiuntivo a iwconfig in grado di comunicare con AP forniti di WPA-PSK.
Nel caso di protezione WPA-PSK, si deve o scaricare e installare il file wpa_supplicant o sincerarsi che la distro usata l'abbia già installato. Per fare questo basta dare un comando man wpa-supplicant. Se appaiono le istruzioni significa che il software già c'è nel nostro computer. Dopo, bisogna creare un file di configurazione nominato wpa_supplicant.conf nella directory /etc. Il contenuto minimo ma funzionale e':
network = {
ssid=”<nome rete wireless>”
psk=”<parola chiave d'accesso>”
key_mgmt=WPA-PSK
}
Naturalmente il ssid e la psk devono coincidere con quello settato nell'AP (access point)
Possono essere aggiunti anche i comandi
proto=WPA
pairwise=CCMP TKIP
Tuttavia se le cose funzionano con lo script di prima non aggiungere nulla.
Bisognera' poi assegnare un indirizzo IP al computer se il gateway e' un router (es. 192.168.1.3) e lo si fara' o con il comando dhcpclient wlan0 o con apposite utility di configurazione presenti nella distro scelta.
Eseguire infine il comando: wpa_supplicant -Dwext -iwlan0 -c /etc/wpa_supplicant.conf -dd
A questo punto il demone wpa dovrebbe partire e effettuare la connessione wireless protetta.
Ridando iwconfig senza niente adesso dovrebbe apparire nel messaggio oltre al nome della rete anche il macaddress dell'AP e cioè al posto della sfilza di 00:00 simboli alfanumerici.
Non resta che lanciare un browser e connettersi ad un sito WEB. Se il sito appare allora il gioco è fatto e il computer è nella nostra rete wireless.
Come già detto molte distro permettono la settatura via interfaccia grafica. Tuttavia si possono riscontrare alcuni problemi. Ad esempio su una OpenSUSE è stato necessario aggiungere la linea di comando iwconfig wlan0 essid <nome rete> al file /etc/init.d/boot.local per far partire in automatico il riconoscimento della rete domestica wifi.