Installare una scheda wireless su Linux
In questa pagina spiegherò come installare e configurare una scheda
wireless in un sistema Linux. Darò per scontate le conoscenze di base
che riguardano la preparazione e configurazione di una rete senza fili, le
terminologie utilizzate e i parametri in gioco. Come piattaforma di partenza
vi richiedo una macchina con installata la Mandrake 9.2, correttamente
configurata ed aggiornata. In particolare è importante che siano stati
installati i seguenti pacchetti:
- cvs
- wireless-tools
- dhcp-client
- ethereal
oltre ad un kernel aggiornato almeno alla 2.4.25 comprensivo di sorgenti e a
tutti i pacchetti di sviluppo. Ovviamente potranno essere utilizzate anche
altre distribuzioni Linux, ma forse in alcuni punti occorrerà agire in
maniera differente per configurare il sistema.
Vediamo quindi come configurare una scheda wireless per collegarsi al nostro
Access Point: di seguito vi illustro la procedura che ho utilizzato per varie
schede di rete in mio possesso, non direttamente gestite dal kernel o dal
pacchetto pcmcia-cs.
D-Link DWL-G650
Questa scheda si installa abbastanza facilmente e funziona a
meraviglia: il pacchetto che gestisce il chipset Atheros in essa
contenuto si chiama madwifie per installarlo è sufficiente scaricare i sorgenti via cvs e compilarli.
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/madwifi co madwifi
cd madwifi
make
make install
A questo punto basta inserire la scheda per verificare come il modulo del
driver venga caricato automaticamente e come venga creato un nuovo dispositivo
di rete, sebbene non ancora configurato:
[~]# lsmod
Module Size Used by Tainted: P
ath_pci 33428 0 (unused)
wlan 54438 1 [ath_pci]
ath_hal 125200 1 [ath_pci]
[~]# ifconfig -a ath0
ath0 Link encap:Ethernet HWaddr 00:80:C8:12:87:DE
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:199
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:9 Memory:c2987000-c2997000
[~]# iwconfig ath0
ath0 IEEE 802.11 ESSID:""
Mode:Managed Frequency:2.412GHz Access Point: 00:00:00:00:00:00
Bit Rate:0kb/s Tx-Power:off Sensitivity=0/0
Retry:off RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0/0 Signal level:-95 dBm Noise level:-95 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Il fatto che sia stato riconosciuto l'indirizzo MAC della scheda e che siano
stati trovati un interrupt ed un'area di memoria validi (ultima riga dell'output
di ifconfig) significa che la scheda è stata installata
correttamente dal sistema.
Il comando iwconfig ci permette di leggere e modificare le impostazioni
dell'estensione wireless dell'interfaccia di rete: non mi dilungo
sul significato dei singoli parametri, che potete trovare in un qualsiasi testo
che tratti la configurazione di reti senza fili, ma vi mostro come ho rapidamente
impostato la scheda per collegarsi al mio Access Point:
[~]# iwconfig ath0 essid "UNIVISION" nick `hostname` channel 6 mode managed
key XXXX-XXXX-XX
[~]# iwconfig ath0
ath0 IEEE 802.11 ESSID:"UNIVISION" Nickname:"nadja"
Mode:Managed Frequency:2.412GHz Access Point: 00:00:00:00:00:00
Bit Rate:0kb/s Tx-Power:off Sensitivity=0/0
Retry:off RTS thr:off Fragment thr:off
Encryption key:XXXX-XXXX-XX Security mode:open
Power Management:off
Link Quality:0/0 Signal level:-95 dBm Noise level:-95 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
I parametri ora sono stati impostati correttamente; il nick solitamente
viene utilizzato dal server DHCP per riconoscere la macchina in associazione
all'indirizzo MAC. L'interfaccia però non è ancora attiva: basta
notare infatti l'indirizzo dell'Access Point che è impostato a
00:00:00:00:00:00. Procediamo quindi assegnando un IP all'interfaccia e
richiedendo la sua attivazione:
[~]# ifconfig ath0 192.168.4.30 up
[~]# ifconfig ath0
ath0 Link encap:Ethernet HWaddr 00:80:C8:12:87:DE
inet addr:192.168.4.30 Bcast:192.168.4.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:722 errors:0 dropped:0 overruns:0 frame:0
TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:199
RX bytes:65725 (64.1 Kb) TX bytes:817 (817.0 b)
Interrupt:9 Memory:c2987000-c2997000
[~]# iwconfig ath0
ath0 IEEE 802.11 ESSID:"UNIVISION" Nickname:"nadja"
Mode:Managed Frequency:2.437GHz Access Point: 00:80:C8:14:4C:85
Bit Rate:36Mb/s Tx-Power:off Sensitivity=0/0
Retry:off RTS thr:off Fragment thr:off
Encryption key:XXXX-XXXX-XX Security mode:open
Power Management:off
Link Quality:42/0 Signal level:-53 dBm Noise level:-95 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
L'indirizzo MAC dell'Access Point è stato rilevato, il bitrate è
stato impostato automaticamente a 36Mb/s come pure gli indicatori di livello e
qualità di segnale: a questo punto la scheda è collegata in rete
e pienamente funzionante. Possiamo automatizzare la fase di configurazione
dell'interfaccia, che altrimenti dovremmo effettuare manualmente ad ogni
reinserimento della scheda, creandoci il file ifcfg-ath0 nella directory
/etc/sysconfig/network-scripts/. Vi mostro come ho preparato il mio, voi
dovete ovviamente personalizzarlo in base ai parametri della vostra rete.
DEVICE=ath0
BOOTPROTO=static
IPADDR=192.168.4.30
NETMASK=255.255.255.0
NETWORK=192.168.4.0
BROADCAST=192.168.4.255
MTU 576
ONBOOT=no
MODE=managed
CHANNEL=6
ESSID="UNIVISION"
KEY=XXXX-XXXX-XX
D-Link DWL-650+
Sebbene molto simile alla precedente, leggermente più complessa è
l'installazione di questa scheda, basata sul chipset ACX100 della Texas
Instruments: occorre scaricare il pacchetto dei driver dal CVS, scompattarlo,
compilarlo ed installarlo usando i seguenti comandi:
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/acx100 login
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/acx100 co acx100
cd acx100
./Configure
make
make install
A questo punto è necessario scaricare il pacchetto con i firmware e
copiarli in una directory a piacere; io utilizzo la directory
/usr/local/share/firmware/. Una volta fatto questo andiamo a
modificare il file /etc/modules.conf aggiungendo le seguenti righe:
options acx100_pci debug=0 firmware_dir=/usr/local/share/firmware/
options acx100_usb debug=0 firmware_dir=/usr/local/share/firmware/
e inseriamo la scheda all'interno dello slot: se non abbiamo fatto errori il
modulo dovrebbe essere caricato automaticamente. Andiamo ora a crearci il file
ifcfg-wlan0 nella directory /etc/sysconfig/network-scripts/ in
maniera analoga a quanto fatto precedentemente per fare in modo che la scheda
venga automaticamente configurata e attivata una volta inserita nello slot
PCMCIA:
DEVICE=wlan0
BOOTPROTO=static
IPADDR=192.168.4.30
NETMASK=255.255.255.0
NETWORK=192.168.4.0
BROADCAST=192.168.4.255
MTU 576
ONBOOT=no
MODE=managed
CHANNEL=6
ESSID="UNIVISION"
KEY=XXXX-XXXX-XX
Sitecom WL-012
Questa scheda USB della Sitecom monta un chipset Prism2, abbastanza diffuso
tra le schede wireless. Una volta scaricato il pacchetto dei driver dobbiamo
scompattarlo, eseguire la configurazione, indicando i tipi di driver che
vogliamo compilare (per USB, PCI, PCMCIA...) e il percorso del kernel,
dopodichè possiamo procedere con la compilazione e l'installazione:
make config
make all
make install
La configurazione di questi driver non rispetta lo standard, ma occorrerà
andare a modificare i file nella directory /etc/wlan, in particolare i
file wlan.conf e wlan.conf.
RIFERIMENTI