
Di default quando si procede all’installazione dei driver ipw3945 il mode monitor è disabilitato, quindi se in seguito volessimo installare programmi quali kismet o aircrack, non potremmo usarli poichè richiedono questa modalità di funzionamento.
In questa guida vedremo come installare i driver ipw3945 abilitando il mode monitor, ma può essere utilizzata anche nel caso di semplice installazione dei suddetti driver in un kernel vanilla, per esempio.
L’installazione è abbastanza semplice, bisogna scaricare ed installare lo stack ieee80211, i driver ipw3945, il firmware ed il demone per gli ipw3945.
Il primo passo consiste nell’installare le dipendenze
sudo apt-get install linux-headers-$(uname -r) build-essential make automake autoconf g++ gcc wireless-tools
e nell’aggiungere il nostro utente al gruppo src, in modo da avere i permessi di scrittura nella cartella /usr/src
sudo adduser vostro_nome_utente src
Adesso possiamo procedere all’installazione dello stack ieee80211:
Estraiamo l’archivio ieee80211-1.2.18.tgz nella nostra home (~)
tar xvfz ieee80211-1.2.18.tgz
rinominiamo la cartella estratta in ieee80211 e la copiamo in /usr/src
sudo cp -R ~/ieee80211 /usr/src
quindi ci spostiamo all’interno di /usr/src/ieee80211 e compiliamo
cd /usr/src/ieee80211
sudo make check_old
durante questa fase molto probabilmente ci verrà chiesto se vogliamo sovrascrivere una precedente installazione o il subsystem presente nel kernel, la risposta da dare è si (Y). Quindi continuiamo
sudo make
sudo make install
sudo depmod -ae
Terminata questa prima parte possiamo iniziare ad installare i driver ipw3945, scompattiamo l’archivio nella home
tar xzvf ipw3945-1.2.2.tgz
entriamo nella cartella appena estratta
cd ~/ipw3945-1.2.2
modifichiamo, aprendo con il nostro editor di testo preferito il file Makefile, scommentando (togliendo il # iniziale) le seguenti righe, per abilitare il supporto al mode monitor (in fondo all’articolo è riportata la parte iniziale del Makefile usato da me).
CONFIG_IPW3945_MONITOR=y
CONFIG_IEEE80211_RADIOTAP=y
CONFIG_IPW3945_PROMISCUOUS=y
quindi compiliamo
make SHELL=/bin/bash
Nel caso in cui il make restituisse un errore, seguiamo il consiglio datoci dal make stesso
cioè, compiliamo aggiungendo l’opzione IEEE80211_IGNORE_DUPLICATE=y
make SHELL=/bin/bash IEEE80211_IGNORE_DUPLICATE=y
sudo make install
sudo depmod -ae
Il terzo passo è l’installazione del firmware, scompattando l’archivio
tar xzvf ipw3945-ucode-1.14.2.tgz
e copiando il firmware in /lib/firmware
cd ipw3945-ucode-1.14.2
sudo cp ipw3945.ucode /lib/firmware
L’ultimo passo è l’installazione del demone regolatore, estraiamo l’archivio
tar zxvf ipw3945d-1.7.22.tgz
e se abbiamo un sistema a 32 bit
cd ~/ipw3945d-1.7.22/x86
sudo mv ipw3945d /sbin
se, invece, abbiamo un sistema a 64 bit
cd ~/ipw3945d-1.7.22/x86_64/
sudo mv ipw3945d /sbin
Finite queste operazioni rientriamo nella cartella dei driver ipw3945
cd ~/ipw3945-1.2.2
e modifichiamo il file load, sostituendo
#!/bin/sh
con
#!/bin/bash
quindi lanciamo
sudo ./load debug=0
Adesso dobbiamo fare in modo che il demone sia caricato ad ogni avvio del sistema in automatico. Per far ciò editiamo il file /etc/rc.local inserendo la voce ipw3945d prima di exit 0 e salviamo.
Makefile
#
# Makefile for the Linux Wireless network device drivers.
#
# Original makefile by Peter Johanson
#
# NOTE: This make file can serve as both an external Makefile (launched
# directly by the user), or as the sub-dir Makefile used by the kernel
# build system.# If CONFIG_IPW* isn’t set, we’ll assume the user has never configured
# their kernel to include this module and set up some defaults.
#
# NOTE: If you have previously added the IPW project to your kernel
# and configured it for inclusion, these settings will be
# overridden by your kernel configuration.
ifndef CONFIG_IPW3945
EXTERNAL_BUILD=y
CONFIG_IPW3945=m
CONFIG_IPW3945_DEBUG=y# NOTE: QoS support is currently broken in the build. DO NOT ENABLE.
# CONFIG_IPW3945_QOS=y# If you are not interested in using monitor mode, simply comment out:
#
# NOTE: If you have problems compiling due to IW_MODE_MONITOR not being
# defined then you need to update the wireless extension version
# installed in your kernel, or comment this line out.
CONFIG_IPW3945_MONITOR=y# If you are interested in using radiotap headers in monitor mode,
# simply uncomment:
#
# NOTE: To use RADIOTAP you must also enable MONITOR above.
CONFIG_IEEE80211_RADIOTAP=y# The above monitor mode provides standard monitor mode. The following
# will create a new interface (named raw%d) which will be sent all
# 802.11 frames received on the interface
#
# NOTE: To use PROMISCUOUS you must also enable MONITOR above.
CONFIG_IPW3945_PROMISCUOUS=y# The following, if enabled, will add a sysfs entry ‘rx’ that raw
# 802.11 radiotap formatted packets can be written to. Those packets
# will be passed to the driver as if they were received from over the
# air. This is useful in debugging features not supported by your AP.
# CONFIG_IPW3945_SIM_RX=yendif
Articoli (RSS)
Ciao!
Ho seguito la tua guida e su kernel generic tutto funziona a lla grande.
Ne approfitto per chiederti un’informazione sull’ipw.
Nonostante gli ipw non siano più in fase di sviluppo, se volessi ricompilare un kernel vanilla (nel mio caso il 2.6.24.3), al momento della configurazione del kernel, cosa devo flaggare o deflaggare per potere, una volta compilato ed installato il kernel, utilizzare ancora gli ipw e non gli iwl???
Tutte le guide che ci sono in rete danno per scontato questo passaggio, ma non si capisce cosa bisogna selezionare o deselezionare come modulo in pianta stabile o meno.
Grazie ancora! Ciao!
Ciao SLAYKristian,
Purtroppo credo che con i kernel 2.6.24.x non sia possibile usare gli ipw3945. All’uscita del 2.6.24 l’avevo installato ma l’ho tolto dopo due giorni perchè non c’era modo di mettere gli ipw3945, e gli iwl non mi piaceva come funzionavano: ricezione del segnale scadente, confusione con i nomi delle interfacce di rete…
Finchè gli iwl non arriveranno alla pari con gli ipw mi sa che mi terrò stretto il 2.6.23.16
Ah perfetto! Grazie per l’informazione e per l’ottima guida.
Chiedo un consiglio…
Uno dei motivi per cui volevo passare al 2.6.24.x era la profezia dell’hibernate e suspend funzionanti.
Se mi dici che sul 2.6.23.x funzionano, allora mi compilo uno stabile di quelli.
Grazie ancora!
Io ho il 2.6.23.16, come detto prima, e una scheda video ATI con i driver proprietari e sospensione/ibernazione funzionano perfettamente!
Ciao Jacky!
Confermo che compilando il 2.6.23.2 Funziona tutto!
Wireless+ suspend-hibernate!!!
Ottimo!
Se riporto quanto fatto sulla specie di mio blog ti cito! Ti scoccia?
Ciao!
Perfetto!
Per niente
fai pure
[...] aiuto mi è arrivato dal blog di Jackyaway, (tra l’altro visitate il link per l’OTTIMA guida), dove mi veniva consigliato di [...]
ciao…vorrei farti i complimenti per la guida! chiara e semplice!
ho un piccola problema però, alla fine qunado cambio il file load e do il comando sudo ./load debug=0
mi da un errore ke nn capisco!!
laptop:~/Scrivania/ipw3945-1.2.2$ sudo ./load debug=0
./unload: 2: Syntax error: “(” unexpected
ipw3945d – regulatory daemon
Copyright (C) 2005-2006 Intel Corporation. All rights reserved.
version: 1.7.22
2008-04-30 17:14:10: ERROR: Could not find Intel PRO/Wireless 3945ABG Network Connection
..done.
laptop:~/Scrivania/ipw3945-1.2.2$
nn so cosa fare!!!
Ciao tani,
hai cambiato #!/bin/sh in #!/bin/bash giusto?
se si, prova a dare
e dopo
ciao jack ma niente da fare mi esce questo:
laptop:~/Scrivania/ipw3945-1.2.2$ sudo ./unload
./unload: 2: Syntax error: “(” unexpected
vorrei dirti ke uso ubuntu 7.10 con virtual box
ma nn capisco perche alcuni dicono ke ubuntu riconosce da solo le schede ipw3945 a me sembra quasi ke nn ce neanche! sono alle prime armi!
cmq ce una altro problemino quando cerco di aggiungere iwp3945 davanti a exit 0 nel rc.local mi dice ke e impossibile perche non ho i permessi neccessari!
Si, è vero….Ubuntu riconosce in automatico le schede intel pro wireless 3945ABG, basta abilitare i driver dal restricted manager (Sistema->Amministrazione->driver con restrizioni). Infatti questa guida è rivolta soprattutto a chi compila un kernel vanilla da sè
Quando aggiungi ipw3945d al file rc.local, lo devi fare con i privilegi di root. In pratica devi aprire il file con “sudo gedit /etc/rc.local”, aggiungere ipw3945d, salvare e chiudere il file.
Ciao.
ho visto ke ce una tua guida per mettere il kernel vanilla ma nn ci ho capito molto!
cmq ci provo…grazie di tutto cmq! belle guide!
Ciao a tutti,
ho trovato questa guida SUPER.. soprattutto perchè vorrei usare kismet ma non riesco a utilizzare la monitor mode come vorrei.. infatti riesco a cambiarla in monitor mode lancio kismet, però dopo 2 secondi ritorna in Managed e quindi kismet si blocca.. Quindi volevo reinstallare tutto, però mi sono bloccato dove si è bloccato tani! mi dice ./unload: 2: Syntax error: “(” unexpected… sarà che c’è un errore di sintassi nel file unload? o devo mettere #!bin/bash anche nel unload oltre che nel load??
si mi rispondo da solo! bisogna modificare #!/bin/sh con #!/bin/bash anche nel file load! il problema è che ho sempre lo stesso problema! riesco a mettere la scheda in modalità monitor per qualche secondo (il Network manager segnala che la rete ha 0% di segnale) però dopo un pò si riconnette automaticamente alla rete!!
Come fare??
Anche se riscontrate l’errore durante il “load”, non dovrebbero esserci problemi, perchè inserendo la voce ipw3945d in rc.local, il modulo verrà caricato automaticamente all’avvio.
link
Il problema non è il mandare in esecuzione lo script.. il fatto è che non riesco a mandare in mode Monitor la scheda, se non per pochi secondi.. (poi si riconnette in automatico all’AP)
Ho letto da qualche parte (forse anche in questo blog) che si può passare da ipw3945 a iwl3945 (che ora supporta anche la mode monitor) volendo installare quei driver bisogna fare lo stesso procedimento che è esposto in questo post?
ovviamente scaricando firmware e demone iwl..
per quanto riguarda lo stack? è lo stesso?
Ciao,
ringrazio jackyawa per la guida chiara e precisa,
ma ho un problema, fin da subito, nell’istallazione del subsystem IEEE80211 (premetto non sono un esperto ma ho seguito perfettamente i passi).
Ecco l’errore:
matteo@matteo-laptop:/usr/src/ieee80211$ sudo make SHELL=/bin/bash
Checking in /lib/modules/2.6.24-16-generic for ieee80211 components…
make -C /lib/modules/2.6.24-16-generic/build M=/usr/src/ieee80211 modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.24-16-generic’
CC [M] /usr/src/ieee80211/ieee80211_module.o
/usr/src/ieee80211/ieee80211_module.c: In function ‘ieee80211_init’:
/usr/src/ieee80211/ieee80211_module.c:268: error: ‘proc_net’ undeclared (first use in this function)
/usr/src/ieee80211/ieee80211_module.c:268: error: (Each undeclared identifier is reported only once
/usr/src/ieee80211/ieee80211_module.c:268: error: for each function it appears in.)
/usr/src/ieee80211/ieee80211_module.c: In function ‘ieee80211_exit’:
/usr/src/ieee80211/ieee80211_module.c:297: error: ‘proc_net’ undeclared (first use in this function)
make[2]: *** [/usr/src/ieee80211/ieee80211_module.o] Error 1
make[1]: *** [_module_/usr/src/ieee80211] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.24-16-generic’
make: *** [modules] Error 2
A quanto pare su internet si dice sia un problema del kernel. Può essere??
Grazie.
Ciao Matteo,
Come hai potuto constatare tu, con la ricerca sul web, il problema è che i driver ipw3945 non sono più installabili sui kernel a partire dal 2.6.24. Questo perchè il progetto degli ipw3945 è stato abbandonato a favore degli iwlwifi, che stanno crescendo nello sviluppo e in affidabilità/prestazioni.
La pagina ufficiale del progetto è http://intellinuxwireless.org , inoltre, da un paio di settimane anche questi nuovi driver funzionano in monitor mode.
Ciao jackyawa,
si ho notato quello, ma io stavo provando ad installare solo lo stack IEEE80211, perchè l’installazione dei driver della scheda è il passaggio successivo.
E cmq la mia scheda wireless è una ipw2200bg.
Lo so, lo so, prima di fare casini (appena installato Ubuntu 8.04) funzionava.
Ma se c’è qualcosa che si può fare per incasinarsi, perché nn provarlo??
Grazie ancora!
Non vorrei sbagliarmi…ma anche il “vecchio” stack dovrebbe essere incompatibile con i kernel 2.6.24 e superiori…
Salve anch’io mi trovo nella stessa situazione di Matteo, stesso identico problema e con ipw2200bg. Non ho capito bene la storia del nuovo progetto.
Tu Matteo hai risolto in qualche modo?
Attualmente ho Debian Lenny con l’ultimo kernel 2.6.25-2-686
Non sono molto esperto però sto imparando in fretta
Vi prego di aiutarmi…
Ciao Nino,
purtroppo non posso esserti d’aiuto in quanto su questi driver non ci ho mai messo mani.
Puoi provare a dare uno sguardo qui.
Purtroppo sul sito http://ipw2200.sourceforge.net/ non viene riportata la soluzione che in parecchi abbiamo con il nuovo kernel. Infatti si legge in giro del problema di compilare il modulo ieee80211 con l’ultimo kernel 2.6.25-2-686.
Girando un pò ho trovato questo che sembra funzionare dall’ultimo commento di un utente, il tizio in questione ha modificato il codice di tre file sorgente contenuti nel pacchetto ieee80211-1.2.18
http://noorul.wordpress.com/2008/06/04/compile-issues-with-ieee80211-and-ipw2200-on-linux-kernel-2625/
che ne dite?