Ndiswrapper mini-howto
Da MelugWiki.
Questo howto vi aiuterà nell'installazione di ndiswrapper.
Indice |
Cosa è
Ndiswrapper nasce con lo scopo di fornire un supporto per il caricamento su Linux dei driver nativi per Windows di molte schede Wireless. Molti costruttori di schede WIFI non forniscono le specifiche di queste o non provvedono a rilasciare un driver per Linux, ndiswrapper nasce quindi con lo scopo di sfruttare i driver per Windows sul Pinguino.
Come funziona
Ndiswrapper è un modulo che implementa le systemcall del kernel Windows e fornisce il supporto NDIS (Network Driver Interface Specification) all'interno del kernel Linux. Un driver per Windows viene caricato e quindi linkato a ndiswrapper in modo tale da caricarlo nativamente nel kernel senza il bisogno di creare un emulazione binaria per il driver stesso.
Dove lo trovo
Ndiswrapper può essere scaricato gratuitamente su sourceforge, la pagina del progetto è la seguente Ndiswrapper Home Page.
Note preinstallazione
Molte distribuzioni forniscono già il supporto per ndiswrapper nei loro pacchetti di installazione del kernel, queste distribuzioni quindi non necessitano la compilazione del modulo e dei tools per il caricamento dei driver per windows. Per testare se la nostra distribuzione fornisce già il supporto per ndiswrapper possiamo eseguire i seguenti comandi:
# find /lib/modules/$(uname -r) -name ndiswrapper.ko /lib/modules/2.6.12-10-686/kernel/drivers/net/ndiswrapper/ndiswrapper.ko
questo comando ci cerca il modulo ndiswrapper all'interno della directory dei moduli del nostro kernel, nel mio caso ha trovato che il modulo è installato nella directory "/lib/modules/2.6.12-10-686/kernel/drivers/net/ndiswrapper". Per controllare se i tools per il caricamento sono installati eseguiamo come utente "root" il comando:
# ndiswrapper -l No drivers installed
Se dovessimo decidere di compilare il driver abbiamo bisogno di installare il pacchetto con i sorgenti del nostro kernel o semplicemente il pacchetto che contiene gli headers di questo, ndiswrapper cercherà gli herders del nostro kernel su "/lib/modules/$(uname -r)/build" (solitamente è un link simbolico alla nostra directory dei sorgenti del kernel su "/usr/src".
Compiliamolo
Per compilare ndiswrapper innanzitutto abbiamo bisogno di scaricare i suoi sorgenti, per farlo colleghiamoci al sito di ndiswrapper e scarichiamo l'ultima versione (nel momento in cui scrivo questa è la 1.8). Prima di tutto dobbiamo estrarre l'archivio, per fare ciò usiamo il comando:
# tar xvfz ndiswrapper-1.8.tar.gz
dove ndiswrapper-1.8.tar.gz è il pacchetto di ndiswrapper che abbiamo scaricato (nb. il pacchetto deve essere messo nella directory dove cerchiamo di estrarre l'archivio). Adesso spostiamoci all'interno della directory di ndiswrapper e compiliamo i sorgenti:
# cd ndiswrapper-1.8 # make
Adesso non ci resta che installare i binari per il caricamento del driver e il modulo stesso, per fare ciò eseguiamo il comando:
# make install
Configurazione
Una volta installato ndiswrapper andremo a configurarlo, per eseguire questa operazione abbiamo bisogno dei Drivers per Windows, i creatori di ndiswrapper consigliano di scaricare i drivers per windows dalla loro lista di drivers testati, questa può essere trovata qui: Tested Drivers List, in assenza si può provare ad utilizzare i Drivers del proprio CD. Una volta trovati i driver scompattiamoli in una directory, a questo punto nella directory dei nostri drivers avremo un file con estensione ".inf", questo contiene tutte le informazioni per l'installazione del nostro driver sotto Windows, per installarlo sotto ndiswrapper basta eseguire il seguente comando:
# ndiswrapper -i [file.inf] Installing [driver name]
dove file.inf è il file con le info di installazione del nostro driver. Adesso possiamo controllare se il driver è stato installato bene per far ciò:
# ndiswrapper -l Installed ndis drivers: [driver name] driver present, hardware present
quindi aggiungiamo un alias per ndiswrapper mediante il comando:
# ndiswrapper -m Adding "alias wlan0 ndiswrapper" to /etc/modprobe.d/ndiswrapper
e carichiamo il modulo in kernel space:
# modprobe ndiswrapper