Articoli

Ndiswrapper: ovvero sfruttare le schede pcmcia wifi con i driver di Windows

by AletrilogY on dic.16, 2007, under Linux, Strumenti

Dicembre 2007


Se dopo aver acquistato una periferica PCMCIA WiFi per il vostro portatile e Linux non l’ ha affatto riconosciuta ( come è successo a me… ^_^ ), prima di disperarsi, andate a questo -Link- , è una raccolta di moltissimi dispositivi ( PCI e PCMCIA ) in cui programmatori e smanettoni in genere, hanno tentato di sviluppare dei drivers ( in linux si chiamano moduli ) appropriati per il corretto funzionamento della periferica; In quel sito potrete fare ricerche approfondite per marca, modello, tipo di slot ed addirittura sigla del chip, troverete il livello di compatibilità accertata, nome del modulo utilizzato e dove scaricarlo; ma se dopo un’ attenta ricerca non risultasse compatibile, allora potete disperarvi per l’ acquisto, scherzavo, c’è ancora una soluzione, usare i driver forniti per Windows anche con Linux! ^_^

Grazie a ndiswrapper è possibile usare senza particolari problemi anche le periferiche PCMCIA wifi in cui il produttore se ne infischia di noi utenti Linuxiani.

Questo programma-modulo, carica i driver ( file .inf ) di Win e li emula come se fossero dei moduli nativi per Linux, vediamo come sfruttare questa ‘magia’.

NOTA: I comandi sotto riportati sono stati eseguiti su una distribuzione Debian 4.0-r1 con repository testing, è possibile quindi poter seguire questo howto anche con le sue derivate( ossia Ubuntu, Knoppix etc ), è comunque necessario che il computer possa connettersi ad internet. Per chi usa Debian tenete presente che sarà necessario utilizzare i diritti di amministrazione, per gli utenti Ubuntu ricordatevi di anteporre ’sudo’ prima di tutti gli altri comandi.

Aprite una console, e diventate root ( gli utenti Ubuntu useranno ’sudo’ come già detto, senza diventare root ) digitando:

$ su -

Aggiorniamo tutta la distribuzione, installiamo module-assistant utilissimo per compilare programmi dai sorgenti in maniera semplificata:

# aptitude update AGGIORNAMENTO ELENCO PACCHETTI

# aptitude dist-upgrade AGGIORNAMENTO TUTTO IL SISTEMA

# aptitude install module-assistant INSTALLAZIONE PACCHETTO MODULE-ASSISTANT

# aptitude install ndiswrapper-sources INSTALLAZIONE PACCHETTI SORGENTE NDISWRAPPER

# aptitude install wpasupplicant INSTALLAZIONE PACCHETTO NECESSARIO ALLA CRIPTATURA WPA

NOTA: Se durante l’ aggiornamento notate che si è installato anche un kernel più recente riavviate il pc con quel nuovo kernel prima di continuare.

Compiliamo e installiamo ndiswrapper:

# module-assistant prepare IL SISTEMA SCARICHERÀ DEI PACCHETTI

# module-assistant auto-install ndiswrapper IL SISTEMA SCARICHERÀ ALTRI PACCHETTI NECESSARI ED INSTALLERÀ IL TUTTO

Fatto questo è la volta dei driver Windows, nel dischetto fornito dal produttore cercate i drivers, non i files eseguibili( .exe ) ma proprio i drivers veri e propri ossia con estensione .INF, quelli per Windows XP vanno benissimo, copiate in una cartella dove volete della vostra i files, che dovrebbero essere 3, tutti con lo stesso identico nome ma con estensione diversa: .INF .cat .sys .

installiamo i driver:

# ndiswrapper -i /percorso_completo_dei_driver_win/driver_per_win_98.INF

NOTA: cercate i driver per windows 98 ho notato a mie spese che quelli per xp o più recenti potrebbero dare problemi al collegamento con la periferica.

verifichiamo che sia tutto ok:

# ndiswrapper -l

facciamo associare il dispositivo wlan0 ai driver appena installati:

# ndiswrapper -m

ora carichiamo nel kernel il nuovo modulo:

# modprobe ndiswrsapper

Se tutto è andato liscio i led della periferica ( almeno nella mia ) pcmcia si accenderanno e comunque, dopo il comando, il sistema dovrebbe confermare con delle scritte l’ avvenuto riconoscimento dell’hardware ( era inserito nello slot vero ? ^_^ ).

NOTA: all’eventuale riavvio del sistema potrebbe essere necessario ripetere l’ultimo comando per ricaricare il modulo ndiswrapper, se volete automatizzare il caricamento modificate il file /etc/modules e aggiungete in una riga vuota il nome del modulo che volete caricare ad ogni avvio, nel nostro caso ndiswrapper.

Ora arriva la parte un pochino più difficile, nel senso che dovreste avere un pò di dimestichezza con i router, si possono

amministrare tramite una comoda interfaccia WEB e se volete ( ma è quasi d’ obbligo ) potrete attivare la connessione wireless in modalità sicura( criptata ).

Io ho un router wifi Belkin ed il suo indirizzo IP di default è 192.168.2.1, mi sono collegato al router momentaneamente con un cavo di rete, ho avviato firefox e nella barra degli indirizzi web ho digitato l’IP del mio router, navigando nei menù ho impostato un SSID ( il nome della rete wireless ) personale, ho impostato la crifratura WEP+PSK, impostato una password ( o passphrase ) molto difficile e riavviato il router per rendere effettive le modifiche, il tutto sempre tramite interfaccia web e firefox.

Ora con il vostro editor preferito ( io uso quello integrato di midnight commander ) dovreste modificare il file /etc/network/interface aggiungendo delle istruzioni:

la maggior parte dei casi il router ha abilitato l’ assegnamento automatico dell’ IP ( DHCP ), in questo caso alla fine del file inseriamo:

#Wireless

auto wlan0

iface wlan0 inet dhcp

wpa-driver wext

wpa-ssid NOME_SCELTO_PER_SSID

wpa-psk PASSWORD_MOLTO_DIFFICILE

NOTA: in wpa-driver va messo ‘wext’ al posto di ‘ndiswrapper’ come dettagliatamente menzionato in /usr/share/doc/ndiswrapper-source/NEWS.Debian.gz

se invece il router è impostato per gli indirizzi IP statici:

#Wireless

auto wlan0

iface wlan0 inet static

address 192.168.2.4

netmask 255.255.255.0

network 192.168.2.0

broadcast 192.168.2.255

gateway 192.168.2.1

dns-nameservers 192.168.2.1

wpa-driver wext

wpa-ssid NOME_SCELTO_PER_SSID

wpa-psk PASSWORD_MOLTO_DIFFICILE

NOTA: ovviamente gli indirizzi IP sono solo ipotetici, voi li dovreste sostituire con quelli della sottorete del vostro router, dovreste impostare anche il server DNS in /etc/resolv.conf con lo stesso indirizzo del router, ed il router stesso deve avere il DNS giusto del vostro provider. che caos…. ^_^

Fatto questo stacchiamo il collegamento via cavo al router e digitiamo sempre come root:

# ifup wlan0 ABILITAZIONE DELL’INTERFACCIA WIFI WLAN0

Il computer tenterà il collegamento alla rete, se usate il DHCP il pc attenderà l’ assegnazione dell’ indirizzo IP, il collegamento poi dovrebbe essere automatico ad ogni accensione del pc.

Se tutto fila liscio bè…. complimenti e buona navigazione in giro per casa.

Dimenticavo, se per un aggiornamento notate che è incluso un nuovo kernel dovrete semplicemente installare anche i relativi nuovi headers ( pacchetto linux-headers-VERSIONE_DEL_NUOVO_KERNEL ), e ripetere l’ installazione dal comando: module-assistant auto-install ndiswrapper col nuovo kernel e verificare che i driver di Windows siano ok con : ndiswrapper -l.

CIAOOO!! ^_^

By AletrilogY


commenti:

Lascia un commento