Old:PCMCIA WiFi UPspeed (chipset Marvell) su Debian Sarge on Thinkpad T20: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
 
(30 versioni intermedie di 6 utenti non mostrate)
Riga 1: Riga 1:
Generare un Debian Live CD � molto semplice. Vi serve live-package (pacchetto disponibile in Debian unstable o in testing, in stable solo a partire da etch), e cdebootstrap da testing (etch) o pi� recente (per sarge, date un'occhiata in fondo per altre informazioni sul backport di cdebootstrap).
{{Old}}
== Introduzione ==
In questa guida tratteremo come configurare la scheda PCMCIA '''''U2Speed''''' su ''Debian '''Sarge''''' installata sul mitico Thinkpad T20.
== OS ==
<div align="left" style="width:100%;  border: none; padding: 0.4em;">
{| cellpadding=5 cellspacing=1 border=0
|-
|align=left width=100% style="background-color:#f3f3ff; border:1px solid"|
Il sistema operativo Debian Sarge si basa sul '''kernel 2.6.8'''. L'installazione è stata eseguita senza  particolari rilevanti quindi viene utilizzato il sistema di default linux26.
|}
</div>


===Installare live-package ===
== La rete ==
<div align="left" style="width:100%;  border: none; padding: 0.4em;">
{| cellpadding=5 cellspacing=1 border=0
|-
|align=left width=100% style="background-color:#f3f3ff; border:1px solid"|
AccessPoint Router USRobotics USR9110 rende possibile la navigazione WiFi ai terminali circostanti.<br>
''Nota'': si consiglia l'aggiornamento al firmware v5.0 del sopracitato Access Point [http://www.usr-emea.com/support/s-prod-template.asp?loc=itly&prod=9110 download].<br>
Il terminale di nostro interesse è il Thinkpad T20, (os Debian Sarge) con in dotatazione la '''PCMCIA'''
'''Wireless Adapter [http://www.upspeed.net UPspeed]''' sulla quale è installato il chipset  [http://www.marvell.com/ '''Marvell Tecnology'''].
|}
</div>


Installare live-package.
== Pacchetti specifici necessari ==
''ndiswrapper-utils''
''ndiswrapper-module-2.6.8-x''
''wireless-tools''
''pcmcia-cs''
''apmd


# apt-get install live-package
== SetUp ==
Eseguire
<pre>
# su -
</pre>
per portarci in modalità root.
Per prima cosa aggiorniamo Apt: osserviamo il file ''/etc/apt/source.list'' e digitiamo ''apt-get update''.
Attraverso l'uso di una Gui come Synaptic (oppure se preferibile attraverso la shell) scarichiamo i pacchetti:<br>
<ul><li>'''ndiswrapper-utils'''</li>
<li>'''ndiswrapper-modules-2.6.8-x''' (se necessario anche ndiswrapper-common)</li>
''N.B.'' Potrebbe essere necessario ricompilare ndiswrapper dai [http://ndiswrapper.sourceforge.net/ sorgenti]
<li>'''wireless-tools'''</li></ul>


===Usare make-live ===
A questo punto dopo aver installato il pacchetto '''apmd''':<br>
<ul><li>Aggiungere al file ''/etc/modules'' la riga ''apm''</li>
<li>Aggiungere nel file ''/boot/grub/menu.lst'' il parametro del kernel ''apm=on''</li></ul><br>


Eseguire make-live come root:
Assicuriamoci che anche il modulo '''pcmcia-cs''' sia installato (lsmod | grep pcmcia-cs).<br><br>


# make-live
Adesso è necessario procurarsi il driver in esame della Marvell Tecnology.<br>
Quindi possiamo utilizzare due strade:<br>
1) Utilizzare il driver del cd in dotazione (consiglio i driver per windows98)<br>
2) Scaricare il driver da [http://downloads.trendnet.com/TEW-421PC_B1/Driver/Utility_Driver_TEW-421PC_423PI_b1_2.00.zip questo link]<br>


Se avete un [[DLP:_Installare_un_Mirror_Debian_(piccolo_howto)|Mirror Debian]] locale impostate la variabile LIVE_MIRROR in <tt>/etc/make-live.conf</tt>.
'''N.B.''' Per questa fase rimando alla dettagliata guida che troviamo [[NdisWrapper| qui]]<br>


Nota: il comando indicato creer un'immagine di base, contenente solo un sistema Debian standard (senza X). Se volete uno dei desktop environment nel vostro livecd date un'occhiata nella pagina man di <tt>make-live</tt> per vedere i flavour preconfigurati offerti.


===Testare l'immagine ===
A questo punto avviamo ndiswrapper


Se avete qemu installato potete fare il boot dell'immagine per esempio con qualcosa di simile a:
<pre>
# ndiswrapper
Usage: ndiswrapper OPTION
Manage ndis drivers for ndiswrapper.
-i inffile        Install driver described by 'inffile'
-d devid driver  Use installed 'driver' for 'devid'
-e driver        Remove 'driver'
-l                List installed drivers
-m                Write configuration for modprobe
-hotplug          (Re)Generate hotplug information
</pre>


$ qemu -m 256 -cdrom debian-live/binary.iso -boot d
<pre>
# ndiswrapper -i /media/cdrom/drivers/nomedriver.inf
</pre>


il driver Ndis è stato installato, per verificare l'insieme dei drivers installati utilizziamo il comando ndiswrapper


Con live-package potete preparare i vostri livecd Debian personalizzati. Questo richiede qualche passo di configurazione e l'uso dello script <tt>make-live</tt>, attrezzato per automatizzare tutto il resto, anche la creazione dell'immagine iso pronta per essere masterizzata o testata in qemu. Controllate la pagina di manuale di <tt>make-live</tt> per vedere altri modi per personalizzare la vostra immagine iso. Potete scegliere tra differenti DE, installare solo X11, o farne del tutto a meno.
<pre>
# ndiswrapper -l
Installed ndis drivers:
nomedriver driver present
</pre>


==Tips ==
Adesso inseriamo la scheda PCMCIA UPspeed nella porta e osserviamo come reagisce il sistema.<br>
===Backport di cdebootstrap (solo per Sarge) ===
Digitiamo:
<pre>
# ndiswrapper -l
Installed ndis drivers:
nomedriver driver present, '''hardware present'''
</pre>
<pre>
# dmesg
</pre>
Poi
<pre>
# lspci
00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)
00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
00:02.0 CardBus bridge: Texas Instruments PCI1450 (rev 03)
00:02.1 CardBus bridge: Texas Instruments PCI1450 (rev 03)
00:03.0 Ethernet controller: 3Com Corporation 3c556B CardBus [Tornado] (rev 20)
00:03.1 Communication controller: 3Com Corporation Mini PCI 56k Winmodem (rev 20)
00:05.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator] (rev 01)
00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02)
00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:07.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)
00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
01:00.0 VGA compatible controller: S3 Inc. 86C270-294 Savage/IX-MV (rev 11)
02:00.0 Ethernet controller: Unknown device 1faa (rev 03)
</pre>


Mettete questo nel vostro <tt>/etc/apt/sources.list</tt>:
A questo punto dobbiamo fare in modo di caricare in memoria il modulo ndiswrapper in modo che lo stesso possa finalmente gestire la nostra scheda Wireless:


deb http://www.backports.org/debian sarge-backports main
<pre>
# modprobe ndiswrapper
</pre>
Se la scheda Wireless viene finalmente inizializzata allora è pronta per lavorare, per verificare lo stato dell'interfaccia Wireless utilizziamo l'utility iwconfig (Wireless Tools for Linux - [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html])


Effettuate un update degli indici dei pacchetti...
<pre>
# iwconfig
lo        no wireless extensions.
eth0      no wireless extensions.
sit0      no wireless extensions.
wlan0    IEEE 802.11g  ESSID:off/any
          Mode:Managed  Frequency:2.462 GHz  Access Point: 00:00:00:00:00:00
          Bit Rate:54 Mb/s  Tx-Power:16 dBm
          RTS thr:2347 B  Fragment thr:2346 B
          Encryption key:off
          Power Management:off
          Link Quality:100/100  Signal level:-10 dBm  Noise level:-256 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0  Missed beacon:0
</pre>


# apt-get update
{{ Warningbox | '''N.B.''' Se i nostri output dei comandi ''iwconfig'' e ''dmesg'' non sono regolari ma differenti da quelli sopra (esempio iwconfig non riconosce la rete wlan0, oppure un errore del tipo **DANGER** relativo al kernel in output a dmesg) allora forse avete incontrato il problema che ha spinto uomolosco a scrivere questa guida. Passiamo quindi direttamente [[#Solution| qui]].<br> }}


...e installate cdebootstrap da backports.org:


# apt-get install -t sarge-backports cdebootstrap
Bene se ci troviamo a questo punto possiamo dire che il più è fatto.<br>
Per consentire alla nostra macchina di caricare il modulo ndiswrapper con il boot del sistema operativo dobbiamo modificare il file ''/etc/modules'' utilizzando sempre l'utility ndiswrapper


Nota: se aggiungete semplicemente backports.org nel <tt>sources.list</tt> non sar� aggiornato alcun pacchetto. Dovete specificare manualmente <tt>sarge-backports</tt> per dire ad apt da dove prendere il pacchetto.
<pre>
# ndiswrapper -m
Adding "alias wlan0 ndiswrapper" to /etc/modules
</pre>


=== usare live-package con Sarge ===
'''N.B.''' E' necessario editare manualmente il file ''/etc/modules'' aggiungendo la riga ''ndiswrapper''.<br>


live-package di testing/unstable pu� essere installato su sarge (senza dover aggiornare altri pacchetti, come libc6):
Per utilizzare una connessione di rete Wireless che dobbiamo procedere con la configurazione della scheda di rete Wireless affinchè la stessa sia in grado di colloquiare con l'access point (AP).
Ora ricorriamo nuovamente all'utilizzo dell'utility iwconfig


* installare cdebootstrap da backports.org (vedere il tip sopra)
<pre>
# iwconfig -h
Usage: iwconfig interface [essid {NN|on|off}]
                          [nwid {NN|on|off}]
                          [mode {managed|ad-hoc|...}
                          [freq N.NNNN[k|M|G]]
                          [channel N]
                          [ap {N|off|auto}]
                          [sens N]
                          [nick N]
                          [rate {N|auto|fixed}]
                          [rts {N|auto|fixed|off}]
                          [frag {N|auto|fixed|off}]
                          [enc {NNNN-NNNN|off}]
                          [power {period N|timeout N}]
                          [txpower N {mW|dBm}]
                          [commit]
</pre>


# apt-get install -t sarge-backports cdebootstrap
in alto possiamo visualizzare alcune delle opzioni che utilizzeremo per configurare al meglio la nostra scheda di rete Wireless, in particolare utilizzeremo le seguenti impostazioni


* installare le dipendenze di live-package da sarge
<pre>
# iwconfig wlan0 rate auto
# iwconfig wlan0 mode managed
# iwconfig wlan0 channel 11
# iwconfig wlan0 key s:WEP_KEY enc open
# iwconfig wlan0 essid nome_nodo
</pre>


# apt-get install genext2fs mkisofs squashfs-tools
a questo punto dovremmo attivare l'interfaccia di rete wlan0 per collegarci con l'AP (access point)


* installare live-package da testing o unstable
<pre>
# ifconfig wlan0 up
</pre>


# apt-get install -t unstable live-package
ora non ci resta che farci assegnare un indirizzo IP dall'AP utilizzando il nostro client dhcp.<br>
Buona navigazione tra i fili!!!
<pre>
# dhclient wlan0
</pre>


Naturalmente per fare tutto ci� avete bisogno di un repository testing o unstable in <tt>/etc/apt/sources.list</tt>.
== Solution ==
Se ci troviamo qui significa che qualcosa non va nonostante siamo abbiamo eseguito tutto come da porcedura.
Ci sono vari motivi per cui l'installazione del driver non è andata a buon fine..
* il driver .inf errato
* un errore nostro nei passaggi
* ecc.. ecc..
 
Se decidessimo di cercare nuovi driver sarebbe buona cosa muoverci conoscendo il pciId della scheda, cosa
ottenibile facilmente digitando prima
lspci
e poi
lspci -n
{{Box | Esempio |Se l'output di lspci è questo <br>
00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)<br>
00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)<br>
00:02.0 CardBus bridge: Texas Instruments PCI1450 (rev 03)<br>
00:02.1 CardBus bridge: Texas Instruments PCI1450 (rev 03)<br>
00:03.0 Ethernet controller: 3Com Corporation 3c556B CardBus [Tornado] (rev 20)<br>
00:03.1 Communication controller: 3Com Corporation Mini PCI 56k Winmodem (rev 20)<br>
00:05.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator] (rev 01)<br>
00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02)<br>
00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)<br>
00:07.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)<br>
00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)<br>
01:00.0 VGA compatible controller: S3 Inc. 86C270-294 Savage/IX-MV (rev 11)<br>
02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88w8335 [Libertas] 802.11b/g Wireless (rev 03)<br>
e quello di lspci -n è <br>
00:00.0 Class 0600: 8086:7190 (rev 03)<br>
00:01.0 Class 0604: 8086:7191 (rev 03)<br>
00:02.0 Class 0607: 104c:ac1b (rev 03)<br>
00:02.1 Class 0607: 104c:ac1b (rev 03)<br>
00:03.0 Class 0200: 10b7:6056 (rev 20)<br>
00:03.1 Class 0780: 10b7:1007 (rev 20)<br>
00:05.0 Class 0401: 1013:6003 (rev 01)<br>
00:07.0 Class 0680: 8086:7110 (rev 02)<br>
00:07.1 Class 0101: 8086:7111 (rev 01)<br>
00:07.2 Class 0c03: 8086:7112 (rev 01)<br>
00:07.3 Class 0680: 8086:7113 (rev 03)<br>
01:00.0 Class 0300: 5333:8c12 (rev 11)<br>
02:00.0 Class 0200: 11ab:1faa (rev 03)<br>
 
..allora il pciId relativo a 02:00.0 è 11ab:1faa
  }}
 
 
Per spiegare il problema che uomolosco ha incontrato e poi risolto, digitiamo
<pre>
# lspci -vv
00:02.0 CardBus bridge: Texas Instruments PCI1450 (rev 03)
        Subsystem: IBM Thinkpad T20
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Latency: 168, Cache Line Size 20
        Interrupt: pin A routed to IRQ 11
        Region 0: Memory at 50000000 (32-bit, non-prefetchable) [size=4K]
        Bus: primary=00, secondary=02, subordinate=05, sec-latency=176
        Memory window 0: 20000000-21fff000 (prefetchable)
        Memory window 1: 22000000-23fff000
        I/O window 0: 00001400-000014ff
        I/O window 1: 00001800-000018ff
        BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset- 16bInt- PostWrite+
        16-bit legacy interface ports at 0001
 
00:02.1 CardBus bridge: Texas Instruments PCI1450 (rev 03)
        Subsystem: IBM Thinkpad T20
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Latency: 168, Cache Line Size 20
        Interrupt: pin B routed to IRQ 11
        Region 0: Memory at 50100000 (32-bit, non-prefetchable) [size=4K]
        Bus: primary=00, secondary=06, subordinate=09, sec-latency=176
        Memory window 0: 24000000-25fff000 (prefetchable)
        Memory window 1: 26000000-27fff000
        I/O window 0: 00002400-000024ff
        I/O window 1: 00002800-000028ff
        BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset+ 16bInt+ PostWrite+
        16-bit legacy interface ports at 0001
 
02:00.0 Ethernet controller: Marvell Technology Group Ltd. (rev3)
        Subsystem: Unknown device 1faa (rev 03)
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Latency: 64
        Interrupt: pin A routed to IRQ 11
        Region 0: Memory at 22000000 (32-bit, non-prefetchable) [disabled] [size=64K]
        Region 1: Memory at 22010000 (32-bit, non-prefetchable) [disabled] [size=64K]
        Capabilities: [40] Power Management version 2
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-
 
</pre>
 
Salta agli occhi il flag '''disabled'''.
Per risolvere è necessario agire sul file ''/etc/pcmcia/config.opts e aggiungere le seguenti righe:
<pre>
# vi /etc/pcmcia/config.opts
.....
include port 0x1400-0x14ff
include port 0x1800-0x18ff
include memory 0x20000000-0x21fff000
include memory 0x22000000-0x23fff000
 
include port 0x2800-0x28ff
include port 0x2c00-0x2cff
include memory 0x24000000-0x25fff000
include memory 0x26000000-0x27fff000
....
</pre>
 
Un' ultimo passo..
<pre>
# vi /etc/init.d/pcmcia
..
CORE_OPTS="probe_io=0"
..
</pre>
 
In questo modo scomprirà il flag '''disabled''' e la scheda wireless verrà abilitata e sarà in grado di farvi navigare sui fili.
Torniamo quindi dove eravamo rimasti nel precedente paragrafo!

Versione attuale delle 15:09, 7 dic 2019

Emblem-important.png Attenzione. Questa guida è obsoleta. Viene mantenuta sul Wiki solo per motivi di natura storica e didattica.


Introduzione

In questa guida tratteremo come configurare la scheda PCMCIA U2Speed su Debian Sarge installata sul mitico Thinkpad T20.

OS

Il sistema operativo Debian Sarge si basa sul kernel 2.6.8. L'installazione è stata eseguita senza particolari rilevanti quindi viene utilizzato il sistema di default linux26.

La rete

AccessPoint Router USRobotics USR9110 rende possibile la navigazione WiFi ai terminali circostanti.
Nota: si consiglia l'aggiornamento al firmware v5.0 del sopracitato Access Point download.
Il terminale di nostro interesse è il Thinkpad T20, (os Debian Sarge) con in dotatazione la PCMCIA Wireless Adapter UPspeed sulla quale è installato il chipset Marvell Tecnology.

Pacchetti specifici necessari

ndiswrapper-utils
ndiswrapper-module-2.6.8-x
wireless-tools
pcmcia-cs
apmd

SetUp

Eseguire

# su -

per portarci in modalità root. Per prima cosa aggiorniamo Apt: osserviamo il file /etc/apt/source.list e digitiamo apt-get update. Attraverso l'uso di una Gui come Synaptic (oppure se preferibile attraverso la shell) scarichiamo i pacchetti:

  • ndiswrapper-utils
  • ndiswrapper-modules-2.6.8-x (se necessario anche ndiswrapper-common)
  • N.B. Potrebbe essere necessario ricompilare ndiswrapper dai sorgenti
  • wireless-tools

A questo punto dopo aver installato il pacchetto apmd:

  • Aggiungere al file /etc/modules la riga apm
  • Aggiungere nel file /boot/grub/menu.lst il parametro del kernel apm=on


Assicuriamoci che anche il modulo pcmcia-cs sia installato (lsmod | grep pcmcia-cs).

Adesso è necessario procurarsi il driver in esame della Marvell Tecnology.
Quindi possiamo utilizzare due strade:
1) Utilizzare il driver del cd in dotazione (consiglio i driver per windows98)
2) Scaricare il driver da questo link

N.B. Per questa fase rimando alla dettagliata guida che troviamo qui


A questo punto avviamo ndiswrapper

# ndiswrapper
Usage: ndiswrapper OPTION
Manage ndis drivers for ndiswrapper.
-i inffile        Install driver described by 'inffile'
-d devid driver   Use installed 'driver' for 'devid'
-e driver         Remove 'driver'
-l                List installed drivers
-m                Write configuration for modprobe
-hotplug          (Re)Generate hotplug information
# ndiswrapper -i /media/cdrom/drivers/nomedriver.inf

il driver Ndis è stato installato, per verificare l'insieme dei drivers installati utilizziamo il comando ndiswrapper

# ndiswrapper -l
Installed ndis drivers:
nomedriver driver present

Adesso inseriamo la scheda PCMCIA UPspeed nella porta e osserviamo come reagisce il sistema.
Digitiamo:

# ndiswrapper -l
Installed ndis drivers:
nomedriver driver present, '''hardware present'''
# dmesg

Poi

# lspci
00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)
00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
00:02.0 CardBus bridge: Texas Instruments PCI1450 (rev 03)
00:02.1 CardBus bridge: Texas Instruments PCI1450 (rev 03)
00:03.0 Ethernet controller: 3Com Corporation 3c556B CardBus [Tornado] (rev 20)
00:03.1 Communication controller: 3Com Corporation Mini PCI 56k Winmodem (rev 20)
00:05.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator] (rev 01)
00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02)
00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:07.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)
00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
01:00.0 VGA compatible controller: S3 Inc. 86C270-294 Savage/IX-MV (rev 11)
02:00.0 Ethernet controller: Unknown device 1faa (rev 03)

A questo punto dobbiamo fare in modo di caricare in memoria il modulo ndiswrapper in modo che lo stesso possa finalmente gestire la nostra scheda Wireless:

# modprobe ndiswrapper

Se la scheda Wireless viene finalmente inizializzata allora è pronta per lavorare, per verificare lo stato dell'interfaccia Wireless utilizziamo l'utility iwconfig (Wireless Tools for Linux - [1])

# iwconfig
lo        no wireless extensions.
eth0      no wireless extensions.
sit0      no wireless extensions.
wlan0     IEEE 802.11g  ESSID:off/any
          Mode:Managed  Frequency:2.462 GHz  Access Point: 00:00:00:00:00:00
          Bit Rate:54 Mb/s   Tx-Power:16 dBm
          RTS thr:2347 B   Fragment thr:2346 B
          Encryption key:off
          Power Management:off
          Link Quality:100/100  Signal level:-10 dBm  Noise level:-256 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
Warning.png ATTENZIONE
N.B. Se i nostri output dei comandi iwconfig e dmesg non sono regolari ma differenti da quelli sopra (esempio iwconfig non riconosce la rete wlan0, oppure un errore del tipo **DANGER** relativo al kernel in output a dmesg) allora forse avete incontrato il problema che ha spinto uomolosco a scrivere questa guida. Passiamo quindi direttamente qui.



Bene se ci troviamo a questo punto possiamo dire che il più è fatto.
Per consentire alla nostra macchina di caricare il modulo ndiswrapper con il boot del sistema operativo dobbiamo modificare il file /etc/modules utilizzando sempre l'utility ndiswrapper

# ndiswrapper -m
Adding "alias wlan0 ndiswrapper" to /etc/modules

N.B. E' necessario editare manualmente il file /etc/modules aggiungendo la riga ndiswrapper.

Per utilizzare una connessione di rete Wireless che dobbiamo procedere con la configurazione della scheda di rete Wireless affinchè la stessa sia in grado di colloquiare con l'access point (AP). Ora ricorriamo nuovamente all'utilizzo dell'utility iwconfig

# iwconfig -h
Usage: iwconfig interface [essid {NN|on|off}]
                          [nwid {NN|on|off}]
                          [mode {managed|ad-hoc|...}
                          [freq N.NNNN[k|M|G]]
                          [channel N]
                          [ap {N|off|auto}]
                          [sens N]
                          [nick N]
                          [rate {N|auto|fixed}]
                          [rts {N|auto|fixed|off}]
                          [frag {N|auto|fixed|off}]
                          [enc {NNNN-NNNN|off}]
                          [power {period N|timeout N}]
                          [txpower N {mW|dBm}]
                          [commit]

in alto possiamo visualizzare alcune delle opzioni che utilizzeremo per configurare al meglio la nostra scheda di rete Wireless, in particolare utilizzeremo le seguenti impostazioni

# iwconfig wlan0 rate auto
# iwconfig wlan0 mode managed
# iwconfig wlan0 channel 11
# iwconfig wlan0 key s:WEP_KEY enc open
# iwconfig wlan0 essid nome_nodo

a questo punto dovremmo attivare l'interfaccia di rete wlan0 per collegarci con l'AP (access point)

# ifconfig wlan0 up

ora non ci resta che farci assegnare un indirizzo IP dall'AP utilizzando il nostro client dhcp.
Buona navigazione tra i fili!!!

# dhclient wlan0

Solution

Se ci troviamo qui significa che qualcosa non va nonostante siamo abbiamo eseguito tutto come da porcedura. Ci sono vari motivi per cui l'installazione del driver non è andata a buon fine..

  • il driver .inf errato
  • un errore nostro nei passaggi
  • ecc.. ecc..

Se decidessimo di cercare nuovi driver sarebbe buona cosa muoverci conoscendo il pciId della scheda, cosa ottenibile facilmente digitando prima

lspci

e poi

lspci -n
Info.png Esempio
Se l'output di lspci è questo

00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)
00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
00:02.0 CardBus bridge: Texas Instruments PCI1450 (rev 03)
00:02.1 CardBus bridge: Texas Instruments PCI1450 (rev 03)
00:03.0 Ethernet controller: 3Com Corporation 3c556B CardBus [Tornado] (rev 20)
00:03.1 Communication controller: 3Com Corporation Mini PCI 56k Winmodem (rev 20)
00:05.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator] (rev 01)
00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02)
00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:07.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)
00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
01:00.0 VGA compatible controller: S3 Inc. 86C270-294 Savage/IX-MV (rev 11)
02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88w8335 [Libertas] 802.11b/g Wireless (rev 03)
e quello di lspci -n è
00:00.0 Class 0600: 8086:7190 (rev 03)
00:01.0 Class 0604: 8086:7191 (rev 03)
00:02.0 Class 0607: 104c:ac1b (rev 03)
00:02.1 Class 0607: 104c:ac1b (rev 03)
00:03.0 Class 0200: 10b7:6056 (rev 20)
00:03.1 Class 0780: 10b7:1007 (rev 20)
00:05.0 Class 0401: 1013:6003 (rev 01)
00:07.0 Class 0680: 8086:7110 (rev 02)
00:07.1 Class 0101: 8086:7111 (rev 01)
00:07.2 Class 0c03: 8086:7112 (rev 01)
00:07.3 Class 0680: 8086:7113 (rev 03)
01:00.0 Class 0300: 5333:8c12 (rev 11)
02:00.0 Class 0200: 11ab:1faa (rev 03)

..allora il pciId relativo a 02:00.0 è 11ab:1faa


Per spiegare il problema che uomolosco ha incontrato e poi risolto, digitiamo

 
# lspci -vv
00:02.0 CardBus bridge: Texas Instruments PCI1450 (rev 03)
        Subsystem: IBM Thinkpad T20
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Latency: 168, Cache Line Size 20
        Interrupt: pin A routed to IRQ 11
        Region 0: Memory at 50000000 (32-bit, non-prefetchable) [size=4K]
        Bus: primary=00, secondary=02, subordinate=05, sec-latency=176
        Memory window 0: 20000000-21fff000 (prefetchable)
        Memory window 1: 22000000-23fff000
        I/O window 0: 00001400-000014ff
        I/O window 1: 00001800-000018ff
        BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset- 16bInt- PostWrite+
        16-bit legacy interface ports at 0001

00:02.1 CardBus bridge: Texas Instruments PCI1450 (rev 03)
        Subsystem: IBM Thinkpad T20
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Latency: 168, Cache Line Size 20
        Interrupt: pin B routed to IRQ 11
        Region 0: Memory at 50100000 (32-bit, non-prefetchable) [size=4K]
        Bus: primary=00, secondary=06, subordinate=09, sec-latency=176
        Memory window 0: 24000000-25fff000 (prefetchable)
        Memory window 1: 26000000-27fff000
        I/O window 0: 00002400-000024ff
        I/O window 1: 00002800-000028ff
        BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset+ 16bInt+ PostWrite+
        16-bit legacy interface ports at 0001

02:00.0 Ethernet controller: Marvell Technology Group Ltd. (rev3)
        Subsystem: Unknown device 1faa (rev 03)
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Latency: 64
        Interrupt: pin A routed to IRQ 11
        Region 0: Memory at 22000000 (32-bit, non-prefetchable) [disabled] [size=64K]
        Region 1: Memory at 22010000 (32-bit, non-prefetchable) [disabled] [size=64K]
        Capabilities: [40] Power Management version 2
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

Salta agli occhi il flag disabled. Per risolvere è necessario agire sul file /etc/pcmcia/config.opts e aggiungere le seguenti righe:

# vi /etc/pcmcia/config.opts
.....
include port 0x1400-0x14ff
include port 0x1800-0x18ff
include memory 0x20000000-0x21fff000
include memory 0x22000000-0x23fff000

include port 0x2800-0x28ff
include port 0x2c00-0x2cff
include memory 0x24000000-0x25fff000
include memory 0x26000000-0x27fff000
....

Un' ultimo passo..

# vi /etc/init.d/pcmcia
..
CORE_OPTS="probe_io=0"
..

In questo modo scomprirà il flag disabled e la scheda wireless verrà abilitata e sarà in grado di farvi navigare sui fili. Torniamo quindi dove eravamo rimasti nel precedente paragrafo!