Verticaldev

Quando termina un viaggio sei pronto per un nuovo cammino

  blog  guide  progetti     about me

sgl.js

sdlbasic

compvter

coderdojoPV

github

threejs editor

 vrobyPages

scratch

 


configurare ndiswrapper



Negli ultimi anni linux (specie la distribuzione Ubuntu) è diventato molto efficace nel configurare l’hardware.
In pratica quando installi quasi sempre tutto è  riconosciuto. Tuttavia se il pochissimo non riconosciuto fa parte delle nostre periferiche la cosa è di scarsa consolazione.
Può inoltre anche  capitare un cattivo riconoscimento dell’hardware. Questa è in assoluto la situazione peggiore poiché il sistema crede che tutto sia ben funzionante ma l’utente sperimenta problemi a volte anche seri.  A favore di linux va detto che questo è un problema comune a tutti quei sistemi operativi che non hanno un hardware certo su cui essere installati
In questi casi ci si ritrova ad avere a che fare con tutta la complessità dei sistemi, è necessario svolgere  operazioni piuttosto complesse e il bello e la poesia di linux naufragano in un mare di frustrazione e difficoltà. microsoft windows in parte risolve il problema delegando al produttore dell’hardware la scrittura del modulo di interfacciamento (il cosidetto driver) che provvederà a far dialogare il sistema con la periferica. Questo approccio è attuaible anche con linux ma molto spesso i produttori di hardware “dimenticano” di sviluppar il driver linux e cosi il nostro pezzo di hardware diventa inutilizzabile a meno che qualche esperto sviluppi un modulo adeguato che poi viene generalmente inserito direttamente nel sorgente del kernel linux.
Per le schede wireless le cosidette wi-fi è comunque possibile usare il driver windows usando un escamotage chiamato ndiswrapper.
Senza addentrarci troppo nel funzionamento questo modulo del kernel usa il driver windows e pilota la scheda wireless mettendo l’hardware in condizione di funzionare.

Un po’ di pratica:

Abbiamo un pc in cui la scheda wireless non funziona proprio o funziona in parte:

apriamo il terminale digitiamo sudo - s e la nostra password per avere una sessione di amministrazione
Eseguiamo lspci che stampa l’elenco delle schede pci installate.

lspci ci dira se e come viene vista la scheda  

se la scheda wireless è una penna usb in questo caso useremo lsusb che svolge il medesimo compito sulle periferiche usb.

Da questi comandi possiamo risalire al nome della scheda wifi che abbiamo in dotazione

Quindi verifichiameo che driver è in uso sul nostro pc con lsmod
lsmod è analogo a lspci e restituisce la lista dei moduli caricati


se non compare la nostra scheda wifi nella lista vuol dire che non è stata riconosciuta.
se invece compare una scheda differente dalla nostra allora è stata riconosciuta in modo errato

Più facilmente, se qualcuno non troppo esperto lancia il comando, non capirà un tubazzo... :(


in questo caso il modulo della scheda va rimosso ed eventualmente anche i moduli collegati

per scollegare un modulo dal kernel si usa

modprobe -r “nome del modulo”

(ok, modprobe dovrebbe rimuovere anche moduli “figli” )

mettiamo poi questi moduli nella lista dei moduli bannati che si trova ne file /etc/modules.d/blacklist.conf
per evitare che vengano  caricati al successivo avvio


quindi scarichiamo il driver di windows completo e scompattiamolo nella home

deve essere ranggiungibile sia il file .inf che il resto dei file che sono la parte fisica del driver...

spostiamo la console nella cartelle del driver appena creata con il classico cd  e digitiamo

ndiswrapper -i *.inf

rifacciamo le dipendenze dei moduli (ci vuole un po)

depmod

infine carichiamo il modulo ndiswrapper

modprobe ndiswrapper

a questo punto se tutto è andato bene

la scheda wifi parte ed è configurabile attraverso il network-manager

ora dobbiamo solo rendere definitive le modifiche lo facciamo editando /etc/modules.conf
e aggiungendo ndiswrapper in fondo alla lista

:)