wireless

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.

Stack ieee80211

Driver ipw3945

Firmware e demone

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=y

endif

Related posts

Tag:, , , ,
24 Risposte a “Installare IPW3945 abilitando il Mode Monitor”
  1. SLAYKristian scrive:

    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!

  2. jackyaway scrive:

    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

  3. SLAYKristian scrive:

    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!

  4. jackyaway scrive:

    Io ho il 2.6.23.16, come detto prima, e una scheda video ATI con i driver proprietari e sospensione/ibernazione funzionano perfettamente! ;)

  5. SLAYKristian scrive:

    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!

  6. jackyaway scrive:

    Confermo che compilando il 2.6.23.2 Funziona tutto!
    Wireless+ suspend-hibernate!!!

    Perfetto!

    Se riporto quanto fatto sulla specie di mio blog ti cito! Ti scoccia?

    Per niente :) fai pure ;)

  7. [...] aiuto mi è arrivato dal blog di Jackyaway, (tra l’altro visitate il link per l’OTTIMA guida), dove mi veniva consigliato di [...]

  8. tani scrive:

    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!!!

  9. jackyaway scrive:

    Ciao tani,
    hai cambiato #!/bin/sh in #!/bin/bash giusto?
    se si, prova a dare

    sudo ./unload

    e dopo

    sudo ./load debug=0

  10. tani scrive:

    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!

  11. jackyaway scrive:

    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.

  12. tani scrive:

    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!

  13. LacioDrom scrive:

    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??

  14. LacioDrom scrive:

    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??

  15. jackyaway scrive:

    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

  16. LacioDrom scrive:

    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)

  17. LacioDrom scrive:

    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?

  18. matteo scrive:

    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.

  19. jackyaway scrive:

    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.

  20. matteo scrive:

    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!

  21. jackyaway scrive:

    Non vorrei sbagliarmi…ma anche il “vecchio” stack dovrebbe essere incompatibile con i kernel 2.6.24 e superiori…
    ;)

  22. Nino scrive:

    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…

  23. jackyaway scrive:

    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.

  24. Nino scrive:

    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?

  25.  
Scrivi un Commento

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

I link nei commenti potrebbero essere liberi dal nofollow.