Repository 32bit  Forum
Repository 64bit  Wiki

Intel Corporation PRO/Wireless 3945ABG Network Connection: differenze tra le versioni

Da Slacky.eu.
(Cambiato nick)
 
(7 revisioni intermedie di un utente non mostrate)
Riga 1: Riga 1:
<!--Per www.slacky.eu -->
<!--Per www.slacky.eu -->
[[Category:Networking]]
[[Category:Networking]]
  +
=ATTENZIONE=
  +
'''Questo wiki è ormai deprecato''' in favore dell'uso del modulo del kernel iwl3945, come spiegato anche nel sito ufficiale:
  +
http://ipw3945.sourceforge.net. Se state usando un kernel >= 2.6.24, è molto probabile che la compilazione del modulo,
  +
così come è scritto in questo wiki, fallisca. Per questi tipi di kernel basta usare il modulo iwl3945 già presente
  +
nei sorgenti del kernel, previa l'installazione del firmware che potete trovare nel pacchetto:
  +
n/iwlwifi-3945-ucode..tgz
  +
a partire dalla Slackware 12.1.
  +
=Introduzione=
=Introduzione=
Questo mini howto spiega come attivare la scheda wireless: Intel PRO/Wirless 3945ABG Network Connection. Spiega come inserire i sorgenti del driver in quelli del kernel e come
+
Questo mini howto spiega come attivare la scheda wireless: Intel PRO/Wirless 3945ABG Network Connection. Spiega come inserire i sorgenti
attivare il driver ed il regulatory daemon.
+
del driver in quelli del kernel '''2.6.x''' e come attivare il driver ed il regulatory daemon.
Una descrizione su come attivare la scheda wireless senza inserire il codice nei sorgenti del kernel la si pu&ograve; trovare [[Dell_Inspiron_6400#Wireless_ipw3945d|qui]].
+
Una descrizione su come attivare la scheda wireless senza inserire il codice nei sorgenti del kernel la si pu&ograve; trovare
Questo mini howto NON spiega come usare programmi come iwconfig o ifconfig per usare l'interfaccia wireless.<br\>
+
[[Dell_Inspiron_6400#Wireless_ipw3945d|qui]]. Questo mini howto NON spiega come usare programmi come iwconfig o ifconfig per usare
Tutti i comandi che iniziano con un '#' devono essere eseguiti con i diritti dell'utente root, mentre quello che iniziano con '$' possono essere
+
l'interfaccia wireless.<br\>
eseguiti anche da un utente senza tali diritti.
+
Tutti i comandi che iniziano con un '#' devono essere eseguiti con i diritti dell'utente root, mentre quello che iniziano con '$' possono
  +
essere eseguiti anche da un utente senza tali diritti.
  +
=Come ottenere tutto il software necessario=
=Come ottenere tutto il software necessario=
Il driver, il firmware e il regulatory daemon per la scheda si possono trovare all'indirizzo http://ipw3945.sourceforge.net.<br\>
Il driver, il firmware e il regulatory daemon per la scheda si possono trovare all'indirizzo http://ipw3945.sourceforge.net.<br\>
Riga 14: Riga 22:
*binary user space regulatory daemon (ipw3945d-1.7.22.tgz)
*binary user space regulatory daemon (ipw3945d-1.7.22.tgz)
che potete drovare nella sezione requirements, e il
che potete drovare nella sezione requirements, e il
*driver (ipw3945-1.2.1.tgz)
+
*driver (ipw3945-1.2.2.tgz)
che trovate nella sezione download.<br\>
che trovate nella sezione download.<br\>
=Inserire i sorgenti del driver in quelli del kernel=
=Inserire i sorgenti del driver in quelli del kernel=
==Farlo manualmente==
==Farlo manualmente==
Per inserire manualmente i sorgenti del driver in quelli del kernel posizionatevi nella directory che contiene il file ''ipw3945-1.2.1.tgz'' e lanciate:
+
Per inserire manualmente i sorgenti del driver in quelli del kernel posizionatevi nella directory che contiene il file
$ tar -zxf ipw3945-1.2.1.tgz
+
''ipw3945-1.2.2.tgz'' e lanciate:
$ cd ipw3945-1.2.1/
+
$ tar -zxf ipw3945-1.2.2.tgz
  +
$ cd ipw3945-1.2.2/
# make add_radiotap
# make add_radiotap
# make patch_kernel
# make patch_kernel
i comandi vi mostreranno ci&ograve; che stanno per fare e vi chiederanno conferma.
i comandi vi mostreranno ci&ograve; che stanno per fare e vi chiederanno conferma.
'''NOTA:''' Per inserire il codice all'interno dei sorgenti di un kernel diverso da quello attuale si pu&ograve; anteporre ai comandi il percorso
+
'''NOTA:''' Per inserire il codice all'interno dei sorgenti di un kernel diverso da quello attuale si pu&ograve; anteporre ai
dei sorgenti del kernel tramite la variabile KSRC. Quindi ad esempio ''# KSRC=/path_miei_sorgenti_kernel/ make add_radiotap'' far&agrave; si
+
comandi il percorso dei sorgenti del kernel tramite la variabile KSRC. Quindi ad esempio
che vengano modificati i sorgenti del kernel contenuti nella directory ''/path_miei_sorgenti_kernel/''.
+
''# KSRC=/path_miei_sorgenti_kernel/ make add_radiotap'' far&agrave; si che vengano modificati i sorgenti del kernel contenuti
  +
nella directory ''/path_miei_sorgenti_kernel/''.
  +
  +
''NOTA:'' Con versioni precedenti dei driver il comando 'make patch_kernel' potrebbe non funzionare. Se vi trovate in
  +
queste condizioni e per qualche motivo non avete modo di usare i driver >= 1.2.2, contattatemi pure.
  +
==Farlo automanticamente==
==Farlo automanticamente==
Tutti i passi che sono stati descritti nella sezione precedente gli ho inseriti nel piccolo script [http://www.cli.di.unipi.it/~tomasi/ipw3945/ipw3945.in-tree ipw3945.in-tree]
+
Tutti i passi che sono stati descritti nella sezione precedente gli ho inseriti nel piccolo script
.
+
[http://www.cli.di.unipi.it/~tomasi/ipw3945/ipw3945.in-tree ipw3945.in-tree] .
Mettete nella stessa directory lo script e il pacchetto del driver (il file ipw3945-1.2.1.tgz) e lanciate lo script con:
+
Mettete nella stessa directory lo script e il pacchetto del driver (il file ipw3945-1.2.2.tgz) e lanciate lo script con:
# sh ipw3945.in-tree
# sh ipw3945.in-tree
Anche in questo caso, se si vuole installare il driver nei sorgenti di un kernel diverso da quello attuale bisgna lanciare lo script con:
Anche in questo caso, se si vuole installare il driver nei sorgenti di un kernel diverso da quello attuale bisgna lanciare lo script con:
# sh ipw3945.in-tree KSRC=/path_miei_sorgenti_kernel/
# sh ipw3945.in-tree KSRC=/path_miei_sorgenti_kernel/
==Nota==
+
Il comando ''make patch_kernel'' non funziona più con l'attuale kernel 2.6.22-rc3, questo perch&egrave; i sorgenti sono cambiati e il modulo non dipende più dalla voce
 
CONFIG_NET_RADIO, ma dalla voce WLAN_80211. Lo script [http://www.cli.di.unipi.it/~tomasi/ipw3945/ipw3945.in-tree ipw3945.in-tree] patcha automaticamente il file Kconfig del
 
driver per ovviare a questo problema.
 
Per farlo manualmente si veda cosa f&agrave; lo script.
 
=Configurare e installare il modulo=
=Configurare e installare il modulo=
Una volta eseguito i comandi ''make add_radiotap'' e ''make patch_kernel'' i sorgenti del driver saranno copiati all'interno dei sorgenti del kernel e quindi per compilarli
+
Una volta eseguito i comandi ''make add_radiotap'' e ''make patch_kernel'' i sorgenti del driver saranno copiati all'interno dei sorgenti
basta andare nella directory dei sorgenti del kernel (generalmente /usr/src/linux) e lanciare:
+
del kernel e quindi per compilarli basta andare nella directory dei sorgenti del kernel (generalmente /usr/src/linux) e lanciare:
# make menuconfig
# make menuconfig
o qualsiasi altro comando usato per configurare il kernel (consigliato anche make oldconfig o semplicemente make).
o qualsiasi altro comando usato per configurare il kernel (consigliato anche make oldconfig o semplicemente make).
Riga 63: Riga 71:
tutte le altre sono una sottosezione della prima.
tutte le altre sono una sottosezione della prima.
Si noti che le mentre la stringa di configurazione rimane la stessa, la sezione del kernel pu&ograve; variare. Quindi, ad esempio mentre ''CONFIG_IPW3945''
+
Si noti che le mentre la stringa di configurazione rimane la stessa, la sezione del kernel pu&ograve; variare.
resta la stessa, la sezione ''Wireless LAN drivers (non-hamradio) & Wireless Extensions'' pu&ograve; cambiare infatti ad esempio nel kernel 2.6.22-rc3 si
+
Quindi, ad esempio mentre ''CONFIG_IPW3945'' resta la stessa, la sezione
chiama ''Wireless LAN''. Per questo motivo, se le sezioni sopra indicate non esistono nella vostra versione del kernel potete eseguire una ricerca
+
''Wireless LAN drivers (non-hamradio) & Wireless Extensions'' pu&ograve; cambiare, infatti ad esempio nel kernel 2.6.22-rc3
della stringa di configurazione ''CONFIG_IPW3945'', in make menuconfig ad esempio c'&egrave; il comando di ricerca '/'.
+
si chiama ''Wireless LAN''. Per questo motivo, se le sezioni sopra indicate non esistono nella vostra versione del
  +
kernel potete eseguire una ricerca della stringa di configurazione ''CONFIG_IPW3945'', in make menuconfig ad esempio
  +
c'&egrave; il comando di ricerca '/'.
In teoria basterebbe abilitare come modulo solo la prima voce, questo basta per rendere attiva la nostra scheda wireless. Non di meno per&ograve; per poter sfuttare tutte le
+
In teoria basterebbe abilitare come modulo solo la prima voce, questo basta per rendere attiva la nostra scheda wireless. Non di meno
capacit&agrave; che spiegher&ograve; dopo andrebbero abilitate almeno anche le voci ''CONFIG_IPW3945_MONITOR'' e ''CONFIG_IPW3945_PROMISCUOUS''.
+
per&ograve; per poter sfuttare tutte le capacit&agrave; che spiegher&ograve; dopo andrebbero abilitate almeno anche le voci
  +
''CONFIG_IPW3945_MONITOR'' e ''CONFIG_IPW3945_PROMISCUOUS''.
Una volta configurato il nostro kernel basta lanciare:
Una volta configurato il nostro kernel basta lanciare:
# make modules modules_install
# make modules modules_install
per installare il modulo del kernel per la nostra scheda wireless. Il modulo si chiama '''ipw3945.ko''' e lo si pu&ograve; trovare nella directory<br\>
+
per installare il modulo del kernel per la nostra scheda wireless. Il modulo si chiama '''ipw3945.ko''' e lo si pu&ograve; trovare nella
  +
directory<br\>
''/lib/modules/`uname -r`/kernel/drivers/net/wireless/''.
''/lib/modules/`uname -r`/kernel/drivers/net/wireless/''.
Riga 79: Riga 87:
# depmod
# depmod
ricrea le dimpendenze tra i moduli.
ricrea le dimpendenze tra i moduli.
  +
=Attivare la scheda=
=Attivare la scheda=
Ora che avete creato e installato il modulo del kernel non vi resta che attivare la scheda, e per fare questo avete bisogno del firmware e del demone.
+
Ora che avete creato e installato il modulo del kernel non vi resta che attivare la scheda, e per fare questo avete bisogno del firmware e
  +
del demone.
  +
==Farlo manualmente==
==Farlo manualmente==
  +
===Firmware===
===Firmware===
Il file ''ipw3945-ucode-1.14.2.tgz'' contiene il firmware del driver. Quando il modulo del kernel viene caricato con:
Il file ''ipw3945-ucode-1.14.2.tgz'' contiene il firmware del driver. Quando il modulo del kernel viene caricato con:
# modprobe ipw3945
# modprobe ipw3945
il modulo avvisa a livello utente che ha bisogno del firmware, in genere invia un messaggio al programma indicato nel file ''/proc/sys/kernel/hotplug'' il quale si incarica di
+
il modulo avvisa a livello utente che ha bisogno del firmware, in genere invia un messaggio al programma indicato nel file
inserire il firmware, situato nella directory ''/lib/firmware'', all'interno della memoria della scheda wireless.
+
''/proc/sys/kernel/hotplug'' il quale si incarica di inserire il firmware, situato nella directory ''/lib/firmware'', all'interno della
  +
memoria della scheda wireless.
Per installare il firmware fate quanto segue:
Per installare il firmware fate quanto segue:
Riga 94: Riga 104:
===Demone===
===Demone===
Il file ''ipw3945d-1.7.22.tgz'' contiene invece il regulatory daemon per la scheda wireless, un applicazione a livello utente che si incarica di configurare e controllare
+
Il file ''ipw3945d-1.7.22.tgz'' contiene invece il regulatory daemon per la scheda wireless, un applicazione a livello utente che si
l'hardware. La scheda non funzioner&agrave; se il demone non &egrave; attivo quindi installatelo facendo quanto segue:
+
incarica di configurare e controllare l'hardware. La scheda non funzioner&agrave; se il demone non &egrave; attivo quindi installatelo
  +
facendo quanto segue:
$ tar -zxf ipw3945d-1.7.22.tgz
$ tar -zxf ipw3945d-1.7.22.tgz
$ cd ipw3945d-1.7.22
$ cd ipw3945d-1.7.22
# cp x86/ipw3945d /sbin
# cp x86/ipw3945d /sbin
per distribuzioni a 64 bit (come slamd64, bluewhite64, etc..) il file da copiare si trova nella directory x86_64.
per distribuzioni a 64 bit (come slamd64, bluewhite64, etc..) il file da copiare si trova nella directory x86_64.
  +
===Attivate la scheda===
===Attivate la scheda===
Ora che avete installato firmware e demone potete attivare la scheda con:
Ora che avete installato firmware e demone potete attivare la scheda con:
# modprobe ipw3945
# modprobe ipw3945
# ipw3945d
# ipw3945d
  +
==Farlo automaticamente==
==Farlo automaticamente==
Anche in questo caso, tutti i passi precedenti li ho inseriti nello slackbuild [http://www.cli.di.unipi.it/~tomasi/ipw3945/ipw3945d-SlackBuild.tgz ipw3945d-SlackBuild.tgz] .
+
Anche in questo caso, tutti i passi precedenti li ho inseriti nello slackbuild
Per lanciarlo fate in modo che la directory corrente contenga i file ''ipw3945-ucode-1.14.2.tgz'', ''ipw3945d-1.7.22.tgz'' e ''ipw3945d-SlackBuild.tgz'' ed eseguite:
+
[http://www.cli.di.unipi.it/~tomasi/ipw3945/ipw3945d-SlackBuild.tgz ipw3945d-SlackBuild.tgz] .
  +
Per lanciarlo fate in modo che la directory corrente contenga i file ''ipw3945-ucode-1.14.2.tgz'', ''ipw3945d-1.7.22.tgz'' e
  +
''ipw3945d-SlackBuild.tgz'' ed eseguite:
$ tar -zxf ipw3945d-SlackBuild.tgz
$ tar -zxf ipw3945d-SlackBuild.tgz
$ cp ipw3945-ucode-1.14.2.tgz ipw3945d-1.7.22.tgz ipw3945d-SlackBuild
$ cp ipw3945-ucode-1.14.2.tgz ipw3945d-1.7.22.tgz ipw3945d-SlackBuild
Riga 117: Riga 129:
che automaticamente caricher&agrave; il modulo ipw3945 e lancer&agrave; ipw3945d mentre per disattivare la scheda basta lanciare:
che automaticamente caricher&agrave; il modulo ipw3945 e lancer&agrave; ipw3945d mentre per disattivare la scheda basta lanciare:
# sh ipw3945d_down
# sh ipw3945d_down
il quale ferma il demone ipwd3945d e scarica dalla memoria il modulo ipw3945 inutilizzati da cui dipendeva (ad esempio ieee80211).
+
il quale ferma il demone ipwd3945d e scarica dalla memoria il modulo ipw3945 e altri ormai inutilizzati da cui dipendeva
  +
(ad esempio ieee80211).
=Un opzione interessante=
=Un opzione interessante=
Tra le varie opzioni del module ipw3945.ko, che si possono vedere con:
Tra le varie opzioni del module ipw3945.ko, che si possono vedere con:
$ modinfo ipw3945
$ modinfo ipw3945
c'&egrave; anche l'opzione '''rtap_iface'''. Normalmente quando la scheda &egrave; attiva il demone crea l'interfaccia, con estensione wireless, eth0. Abilitando questa
+
c'&egrave; anche l'opzione '''rtap_iface'''. Normalmente quando la scheda &egrave; attiva il demone crea l'interfaccia, con estensione
opzione viene creata anche un altra interfaccia, la rtap0, attivata in modalit&agrave; promiscua, utile per laciare programmi come ethereal mentre si naviga tramite la eth0.
+
wireless, eth0. Abilitando questa opzione viene creata anche un altra interfaccia, la rtap0, attivata in modalit&agrave; promiscua, utile
  +
per lanciare programmi come ethereal mentre si naviga tramite la eth0.
Per attivare questa interfaccia al momento in cui si carica il modulo, lanciate:
Per attivare questa interfaccia al momento in cui si carica il modulo, lanciate:
Riga 132: Riga 144:
# echo 1 > /sys/bus/pci/drivers/ipw3945/*/rtap_iface
# echo 1 > /sys/bus/pci/drivers/ipw3945/*/rtap_iface
=Conclusione=
=Conclusione=
Come spiegato prima quando attivate la scheda il demone crea l'interfaccia eth0. Per poter utilizzare questa interfaccia, che di default non &egrave; ''up'' basta fare:
+
Come spiegato prima quando attivate la scheda il demone crea l'interfaccia eth0. Per poter utilizzare questa interfaccia, che di default
# ifconfig et0 up
+
non &egrave; ''up'' basta fare:
  +
# ifconfig eth0 up
e poi usare iwconfig per impostarla in modo da connettersi ad un access point.
e poi usare iwconfig per impostarla in modo da connettersi ad un access point.
==Script==
==Script==
I miei script linkati in questo documento funzionano solo con le versioni dei file indicati, non &egrave; difficile far si che funzionino anche per versioni successive, in
+
I miei script linkati in questo documento funzionano solo con le versioni dei file indicati, non &egrave; difficile far si che funzionino
generale comunque cercher&ograve; di tenerli aggiornati sempre all'ultima versione inserita nel sito uffiaciale http://ipw3945.sourceforge.net/. Per qualsiasi errore o
+
anche per versioni successive, in generale comunque cercher&ograve; di tenerli aggiornati sempre all'ultima versione inserita nel sito
miglioria potete contattarmi, in genere sono felice quando qualcuno mi scrive.
+
uffiaciale http://ipw3945.sourceforge.net/. Per qualsiasi errore o miglioria potete contattarmi, in genere sono felice quando qualcuno mi
Qui trovate gli script [http://www.cli.di.unipi.it/~tomasi/ipw3945/ipw3945d_up ipw3945d_up] e [http://www.cli.di.unipi.it/~tomasi/ipw3945/ipw3945d_down ipw3945d_down]
+
scrive.
  +
Qui trovate gli script [http://www.cli.di.unipi.it/~tomasi/ipw3945/ipw3945d_up ipw3945d_up] e
  +
[http://www.cli.di.unipi.it/~tomasi/ipw3945/ipw3945d_down ipw3945d_down]
per chi vuole usarli senza necessariamente usare lo [[#Farlo_automaticamente|SlackBuild]] .
per chi vuole usarli senza necessariamente usare lo [[#Farlo_automaticamente|SlackBuild]] .
Autore:
+
Autore (Ultimo Aggiornamento):
[[Utente:Spina|Spina]] 03:22, 4 Giu 2007 (CEST)
+
[[Utente:targzeta|targzeta]] 14:24, 18 Mag 2008 (CEST)

Versione attuale delle 23:50, 2 ott 2012

Indice

[modifica] ATTENZIONE

Questo wiki è ormai deprecato in favore dell'uso del modulo del kernel iwl3945, come spiegato anche nel sito ufficiale: http://ipw3945.sourceforge.net. Se state usando un kernel >= 2.6.24, è molto probabile che la compilazione del modulo, così come è scritto in questo wiki, fallisca. Per questi tipi di kernel basta usare il modulo iwl3945 già presente nei sorgenti del kernel, previa l'installazione del firmware che potete trovare nel pacchetto:

n/iwlwifi-3945-ucode..tgz

a partire dalla Slackware 12.1.

[modifica] Introduzione

Questo mini howto spiega come attivare la scheda wireless: Intel PRO/Wirless 3945ABG Network Connection. Spiega come inserire i sorgenti del driver in quelli del kernel 2.6.x e come attivare il driver ed il regulatory daemon. Una descrizione su come attivare la scheda wireless senza inserire il codice nei sorgenti del kernel la si può trovare qui. Questo mini howto NON spiega come usare programmi come iwconfig o ifconfig per usare l'interfaccia wireless.
Tutti i comandi che iniziano con un '#' devono essere eseguiti con i diritti dell'utente root, mentre quello che iniziano con '$' possono essere eseguiti anche da un utente senza tali diritti.

[modifica] Come ottenere tutto il software necessario

Il driver, il firmware e il regulatory daemon per la scheda si possono trovare all'indirizzo http://ipw3945.sourceforge.net.
In particolare per il nostro scopo sono necessari (tra parentesi i nomi dei file così come sono al momento in cui scrivo):

  • binary microcode image (ipw3945-ucode-1.14.2.tgz)
  • binary user space regulatory daemon (ipw3945d-1.7.22.tgz)

che potete drovare nella sezione requirements, e il

  • driver (ipw3945-1.2.2.tgz)

che trovate nella sezione download.

[modifica] Inserire i sorgenti del driver in quelli del kernel

[modifica] Farlo manualmente

Per inserire manualmente i sorgenti del driver in quelli del kernel posizionatevi nella directory che contiene il file ipw3945-1.2.2.tgz e lanciate:

$ tar -zxf ipw3945-1.2.2.tgz
$ cd ipw3945-1.2.2/
# make add_radiotap
# make patch_kernel

i comandi vi mostreranno ciò che stanno per fare e vi chiederanno conferma.

NOTA: Per inserire il codice all'interno dei sorgenti di un kernel diverso da quello attuale si può anteporre ai 
comandi il percorso dei sorgenti del kernel tramite la variabile KSRC. Quindi ad esempio 
# KSRC=/path_miei_sorgenti_kernel/ make add_radiotap farà si che vengano modificati i sorgenti del kernel contenuti 
nella directory /path_miei_sorgenti_kernel/.
NOTA: Con versioni precedenti dei driver il comando 'make patch_kernel' potrebbe non funzionare. Se vi trovate in 
queste condizioni e per qualche motivo non avete modo di usare i driver >= 1.2.2, contattatemi pure.

[modifica] Farlo automanticamente

Tutti i passi che sono stati descritti nella sezione precedente gli ho inseriti nel piccolo script ipw3945.in-tree . Mettete nella stessa directory lo script e il pacchetto del driver (il file ipw3945-1.2.2.tgz) e lanciate lo script con:

# sh ipw3945.in-tree

Anche in questo caso, se si vuole installare il driver nei sorgenti di un kernel diverso da quello attuale bisgna lanciare lo script con:

# sh ipw3945.in-tree KSRC=/path_miei_sorgenti_kernel/

[modifica] Configurare e installare il modulo

Una volta eseguito i comandi make add_radiotap e make patch_kernel i sorgenti del driver saranno copiati all'interno dei sorgenti del kernel e quindi per compilarli basta andare nella directory dei sorgenti del kernel (generalmente /usr/src/linux) e lanciare:

# make menuconfig

o qualsiasi altro comando usato per configurare il kernel (consigliato anche make oldconfig o semplicemente make).

Il comando make add_radiotap aggiunge la voce CONFIG_IEEE80211_RADIOTAP nel kernel, che va abilitata alla sezione :

Networking  -> 
 Networking support ->
  Generic IEEE 802.11 Networking Stack ->
    Enable RAIODTAP headers for capibilities that can support it

Il comando make patch_kernel invece aggiunge nel kernel, le voci:

  • CONFIG_IPW3945
  • CONFIG_IPW3945_DEBUG
  • CONFIG_IPW3945_MONITOR
  • CONFIG_IPW3945_PROMISCUOUS

La prima la si può trovare alla sezione:

Device Drivers ->
 Network device support ->
  Network device support ->
   Wireless LAN (non-hamradio) ->
    Wireless LAN drivers (non-hamradio) & Wireless Extensions ->
     Intel PRO/Wireless 3945ABG Network Connection

tutte le altre sono una sottosezione della prima.

Si noti che le mentre la stringa di configurazione rimane la stessa, la sezione del kernel può variare. 
Quindi, ad esempio mentre CONFIG_IPW3945 resta la stessa, la sezione 
Wireless LAN drivers (non-hamradio) & Wireless Extensions può cambiare, infatti ad esempio nel kernel 2.6.22-rc3 
si chiama Wireless LAN. Per questo motivo, se le sezioni sopra indicate non esistono nella vostra versione del 
kernel potete eseguire una ricerca della stringa di configurazione CONFIG_IPW3945, in make menuconfig ad esempio 
c'è il comando di ricerca '/'.

In teoria basterebbe abilitare come modulo solo la prima voce, questo basta per rendere attiva la nostra scheda wireless. Non di meno però per poter sfuttare tutte le capacità che spiegherò dopo andrebbero abilitate almeno anche le voci CONFIG_IPW3945_MONITOR e CONFIG_IPW3945_PROMISCUOUS.

Una volta configurato il nostro kernel basta lanciare:

# make modules modules_install

per installare il modulo del kernel per la nostra scheda wireless. Il modulo si chiama ipw3945.ko e lo si può trovare nella directory
/lib/modules/`uname -r`/kernel/drivers/net/wireless/.

Un bel:

# depmod

ricrea le dimpendenze tra i moduli.

[modifica] Attivare la scheda

Ora che avete creato e installato il modulo del kernel non vi resta che attivare la scheda, e per fare questo avete bisogno del firmware e del demone.

[modifica] Farlo manualmente

[modifica] Firmware

Il file ipw3945-ucode-1.14.2.tgz contiene il firmware del driver. Quando il modulo del kernel viene caricato con:

# modprobe ipw3945

il modulo avvisa a livello utente che ha bisogno del firmware, in genere invia un messaggio al programma indicato nel file /proc/sys/kernel/hotplug il quale si incarica di inserire il firmware, situato nella directory /lib/firmware, all'interno della memoria della scheda wireless.

Per installare il firmware fate quanto segue:

$ tar -zxf ipw3945-ucode-1.14.2.tgz
$ cd ipw3945-ucode-1.14.2
# cp ipw3945.ucode /lib/firmware

[modifica] Demone

Il file ipw3945d-1.7.22.tgz contiene invece il regulatory daemon per la scheda wireless, un applicazione a livello utente che si incarica di configurare e controllare l'hardware. La scheda non funzionerà se il demone non è attivo quindi installatelo facendo quanto segue:

$ tar -zxf ipw3945d-1.7.22.tgz
$ cd ipw3945d-1.7.22
# cp x86/ipw3945d /sbin

per distribuzioni a 64 bit (come slamd64, bluewhite64, etc..) il file da copiare si trova nella directory x86_64.

[modifica] Attivate la scheda

Ora che avete installato firmware e demone potete attivare la scheda con:

# modprobe ipw3945
# ipw3945d

[modifica] Farlo automaticamente

Anche in questo caso, tutti i passi precedenti li ho inseriti nello slackbuild ipw3945d-SlackBuild.tgz . Per lanciarlo fate in modo che la directory corrente contenga i file ipw3945-ucode-1.14.2.tgz, ipw3945d-1.7.22.tgz e ipw3945d-SlackBuild.tgz ed eseguite:

$ tar -zxf ipw3945d-SlackBuild.tgz
$ cp ipw3945-ucode-1.14.2.tgz ipw3945d-1.7.22.tgz ipw3945d-SlackBuild
$ cd ipw3945d-SlackBuild/
# sh ipw3945d.SlackBuild

questo produrrà un pacchetto per la slackware chiamato ipw3945d-1.7.22-`arch`-1.tgz. Una volta installato il pacchetto con:

# installpkg ipw3945d-1.7.22-`arch`-1.tgz

per attivare la scheda vi basta lanciare lo script (inserito dallo SlackBuild):

# sh ipw3945d_up

che automaticamente caricherà il modulo ipw3945 e lancerà ipw3945d mentre per disattivare la scheda basta lanciare:

# sh ipw3945d_down

il quale ferma il demone ipwd3945d e scarica dalla memoria il modulo ipw3945 e altri ormai inutilizzati da cui dipendeva (ad esempio ieee80211).

[modifica] Un opzione interessante

Tra le varie opzioni del module ipw3945.ko, che si possono vedere con:

$ modinfo ipw3945

c'è anche l'opzione rtap_iface. Normalmente quando la scheda è attiva il demone crea l'interfaccia, con estensione wireless, eth0. Abilitando questa opzione viene creata anche un altra interfaccia, la rtap0, attivata in modalità promiscua, utile per lanciare programmi come ethereal mentre si naviga tramite la eth0.

Per attivare questa interfaccia al momento in cui si carica il modulo, lanciate:

# modprobe ipw3945 rtap_iface=1

o, se si usa lo script ipw3945d_up:

# sh ipw3945d_up rtap_iface=1

Si può attivare l'interfaccia anche quando la scheda è già attiva, tramite:

# echo 1 > /sys/bus/pci/drivers/ipw3945/*/rtap_iface

[modifica] Conclusione

Come spiegato prima quando attivate la scheda il demone crea l'interfaccia eth0. Per poter utilizzare questa interfaccia, che di default non è up basta fare:

# ifconfig eth0 up

e poi usare iwconfig per impostarla in modo da connettersi ad un access point.

[modifica] Script

I miei script linkati in questo documento funzionano solo con le versioni dei file indicati, non è difficile far si che funzionino anche per versioni successive, in generale comunque cercherò di tenerli aggiornati sempre all'ultima versione inserita nel sito uffiaciale http://ipw3945.sourceforge.net/. Per qualsiasi errore o miglioria potete contattarmi, in genere sono felice quando qualcuno mi scrive. Qui trovate gli script ipw3945d_up e ipw3945d_down per chi vuole usarli senza necessariamente usare lo SlackBuild .

Autore (Ultimo Aggiornamento): targzeta 14:24, 18 Mag 2008 (CEST)

Strumenti personali
Namespace

Varianti