NdisWrapper
NdisWrapper
Introduzione
Questa guida indica come utilizzare NdisWrapper, che permette di utilizzare i driver non nativi per le schede wireless sotto GNU/Linux. Per quando NdisWrapper utilizzi quindi driver spesso proprietari, e quindi contrari all'etica del software libero, è un programma che viene rilasciato sotto GPL.
Il progetto NdisWrapper fornisce un modulo per il Kernel di Linux che è in grado di caricare ed eseguire i drivers Ndis (Windows network driver API) sostituendo di fatto il mancato rilascio dei drivers nativi. NdisWrapper lavora bene con molte schede miniPCI (builtin), PCI, PCMCIA (solo Cardbus) nonchè le schede USB. Per verificare il livello di compatibilità con la vostra scheda Wireless consultate il progetto Wiki di NdisWrapper qui.
Il sito web di riferimento per il progetto NdisWrapper è questo. Proprio dal sito del progetto ho provveduto a scaricare la distribuzione in formato tarball che contiene i codici sorgenti.
Installazione
Compilazione
La procedura di compilazione e di installazione dei sorgenti è piuttosto semplice:
# tar zxvf ndiswrapper-1.4rc1.tar.gz # cd ndiswrapper-1.rc1 # make && make install
Configurazione
A questo punto avviamo ndiswrapper
# ndiswrapper Usage: ndiswrapper OPTION Manage ndis drivers for ndiswrapper. -i inffile Install driver described by 'inffile' -d devid driver Use installed 'driver' for 'devid' -e driver Remove 'driver' -l List installed drivers -m Write configuration for modprobe -hotplug (Re)Generate hotplug information
la procedura di installazione del driver Ndis è piuttosto banale, in genere lo stesso viene incluso nel supporto CDROM allegato alla scheda Wireless o al pc.
# ndiswrapper -i /media/cdrom/drivers/nomedriver.inf
il driver Ndis è stato installato, per verificare l'insieme dei drivers installati utilizziamo il comando ndiswrapper
# ndiswrapper -l Installed ndis drivers: nomedriver driver present, hardware present
Utilizzo
A questo punto dobbiamo fare in modo di caricare in memoria il modulo ndiswrapper in modo che lo stesso possa finalmente gestire la nostra scheda Wireless:
# modprobe ndiswrapper
la scheda Wireless viene finalmente inizializzata ed è pronta per lavorare, per verificare lo stato dell'interfaccia Wireless utilizziamo l'utility iwconfig (Wireless Tools for Linux - [1])
# iwconfig lo no wireless extensions. eth0 no wireless extensions. sit0 no wireless extensions. wlan0 IEEE 802.11g ESSID:off/any Mode:Managed Frequency:2.462 GHz Access Point: 00:00:00:00:00:00 Bit Rate:54 Mb/s Tx-Power:16 dBm RTS thr:2347 B Fragment thr:2346 B Encryption key:off Power Management:off Link Quality:100/100 Signal level:-10 dBm Noise level:-256 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
per consentire alla nostra macchina di caricare il modulo ndiswrapper con il boot del sistema operativo dobbiamo modificare il file /etc/modules utilizzando sempre l'utility ndiswrapper
# ndiswrapper -m Adding "alias wlan0 ndiswrapper" to /etc/modules
Per utilizzare una connessione di rete Wireless che dobbiamo procedere con la configurazione della scheda di rete Wireless affinchè la stessa sia in grado di colloquiare con l'access point (AP). Ora ricorriamo nuovamente all'utilizzo dell'utility iwconfig
# iwconfig -h Usage: iwconfig interface [essid {NN|on|off}] [nwid {NN|on|off}] [mode {managed|ad-hoc|...} [freq N.NNNN[k|M|G]] [channel N] [ap {N|off|auto}] [sens N] [nick N] [rate {N|auto|fixed}] [rts {N|auto|fixed|off}] [frag {N|auto|fixed|off}] [enc {NNNN-NNNN|off}] [power {period N|timeout N}] [txpower N {mW|dBm}] [commit]
in alto possiamo visualizzare alcune delle opzioni che utilizzeremo per configurare al meglio la nostra scheda di rete Wireless, in particolare utilizzeremo le seguenti impostazioni
# iwconfig wlan0 rate auto # iwconfig wlan0 mode managed # iwconfig wlan0 channel 11 # iwconfig wlan0 key s:WEP_KEY enc open # iwconfig wlan0 essid nome_nodo
a questo punto dovremmo attivare l'interfaccia di rete wlan0 per collegarci con l'AP (access point)
# ifconfig wlan0 up
ora non ci resta che farci assegnare un indirizzo IP dall'AP utilizzando il nostro client dhcp
# dhclient wlan0
Ringraziamenti
Un ringraziamento a Stefano Tagliaferri per aver scritto l'how -to su cui mi sono basato per la mia esperienza con ndiswrapper.