Configurazione penna internet TIM HUAWEI E166 su Ubuntu

Cosa ho utilizzato:
  • S.O. Ubuntu 8.04
  • Notebook Acer Travelmate 2200
  • Chiavetta E169 Huawei
  • Contratto TIM "Alice Mobile Data Kit 25 top" (100 ore mese di navigazione)

Qualche giorno fa ho sottoscritto l'abbonamento Telecom Alice Mobile, quello compreso di "penna internet" HSDPA (High-Speed Downlink Packet Access (HSDPA).  Vi racconto adesso  come funziona l'aggeggino sotto linux.

L'abbonamento  che ho scelto è quello con 100 ore mensili, dal costo di 25 eu mese, chiavetta inclusa. In alternativa si può prendere la chiavetta ed il notebook. Sono disponibili asus eeepc 701 (30 eu mese), eeepc 900 (40 eu mese), ed altri con prezzi simili con un max di 70 eu mese. Un altro tipo di contratto prevede l'acquisto di carte ricaricabili da 25 ore ed altre pezzature, non ricordo bene dato che non mi interessavano.

Pc e chiavetta sono subito tuoi alla sottoscrizione del contratto. Le chiavette disponibili sono la Huawei e196 e la onda MT503hs. Tutte sono dichiarate funzionanti sia sotto windows che sotto linux. In particolare per la Onda viene dichiarata la compatibilità con debian e fedora mentre per la Huawei con fedora, debian, red hat, ubuntu.

La mia scelta è caduta sulla Huawei, sia per la disponibilità nella confezione del cd driver linux sia per notizie migliori reperite in rete.

Avendo il dual boot ho provato prima con linux (ubuntu) ma la chiavetta viene vista solo come una normale penna usb (all'interno sono memorizzati i driver windows), poi con windows XP che riconosce la chiavetta ed autoinstalla all'incirca un migliaio di dispositivi. Installato il programma di gestione dalla chiavetta stessa ho provato la connessione.

Mi sono connesso subito, senza problemi (zona 4 torri). Il test di velocità di mclink riporta 900 kb in download e 384 in upload. Tutto sommato poteva andare peggio.

Fin qui sotto windows. Ovviamente dato lo scopo finale dell'acquisto, mi sono preso un pomeriggio di tempo per far funzionare il tutto sotto linux (ubuntu 8.04).

A casa (sul confine umbria - toscana) ho provato la connessione sotto windows ma qui evidentemente il segnale è scarso, mi connetto solo in modalità EDGE e la velocità varia da soli 18 a 61 kb (secondo i test intel e mclink). Rimboccate le maniche ho cominciato a lavorare per l'installazione su ubuntu.

Per placare subito la curiosità vi dico: sotto linux funziona, ma non grazie alla documentazione fornita: inesistente. Anzi, no. Un manualetto di installazione per windows, del classico tipo "inserire e cliccare" nella confezione c'e'. Davvero di utilità inestimabile. Inoltre sul cd dei driver per linux c'e' un file "readme" che vi riporto per intero:

*******
.Installation
   a. To install the Linux Driver tool only:
      call ./install in the installation directory.
      And the can copy the rules file to /etc/udev/rules/
                  copy HWActivator application to /sbin/
                  register the auto run settengs into the current system.
      To make the settings applied, you must restart the system.
   b. To integrated the Linux Driver tool into the third dashboard
application:
      call "install norestart" in the installation tool of the third
dashboard application.
      This call scheme will disable the restarting function in the tool
installation.
      And after the third dashboard application installed, its
installation tool must restart the current system.

  2. To inquire about the version of the Linux Driver tool,
     call HWActivator --version.

  3. The current version is 3.2 

Riporto tutta la procedura seguita per l'installazione sul notebook.

1) installare driver per la chiavetta Huawei E169 presenti sul cd della confezione Io ho copiato dal cd tutta la cartella sul disco ma non è necessario. lanciare lo script fornito: cd "Linux Driver V100R001B302" ./install

Lo script ha funzionato regolarmente copiando i file al posto giusto e configurando il sistema per attivare la chiavetta all'avvio del sistema.

2) configurare /etc/wvdial.conf

[Dialer Defaults]
Modem = /dev/ttyUSB0  (verificare che sia il device giusto)
ISDN = off
Modem Type = Analog Modem
Baud = 460800
Init = ATX3
Init2 = AT&F Q0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = at+cgdcont=1,"IP","ibox.tim.it"
Phone = *99#
Dial Attempts = 5
Dial Command = ATM1L3DT
Ask Password = off
Username = ''
Password = ''
Stupid Mode = on
Auto Reconnect = off
Check Def Route = off

3) aprire connessione
wvdial

se funziona vengono assegnati ip e DNS

paolo@tatooine:~$ wvdial
--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATX3
ATX3
OK
--> Sending: AT&F Q0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
AT&F Q0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: at+cgdcont=1,"IP","ibox.tim.it"
at+cgdcont=1,"IP","ibox.tim.it"
OK
--> Modem initialized.
--> Sending: ATM1L3DT*99#
--> Waiting for carrier.
ATM1L3DT*99#
CONNECT 7200000
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Thu Jul  3 14:43:01 2008
--> Warning: Could not modify /etc/ppp/pap-secrets: Permission denied
--> --> PAP (Password Authentication Protocol) may be flaky.
--> Warning: Could not modify /etc/ppp/chap-secrets: Permission denied
--> --> CHAP (Challenge Handshake) may be flaky.
--> Pid of pppd: 7537
--> Using interface ppp0
--> pppd: �/��p�[06][08]`�[06][08]
--> pppd: �/��p�[06][08]`�[06][08]
--> pppd: �/��p�[06][08]`�[06][08]
--> pppd: �/��p�[06][08]`�[06][08]
--> pppd: �/��p�[06][08]`�[06][08]
--> pppd: �/��p�[06][08]`�[06][08]
--> local  IP address 217.202.5.202
--> pppd: �/��p�[06][08]`�[06][08]
--> remote IP address 10.64.64.64
--> pppd: �/��p�[06][08]`�[06][08]
--> primary   DNS address 213.230.155.94
--> pppd: �/��p�[06][08]`�[06][08]
--> secondary DNS address 213.230.130.222
--> pppd: �/��p�[06][08]`�[06][08]

Non chiudere la shell altrimenti si chiude anche la connessione.
Per chiudere la connessione è sufficiente CTRL-C.

Configuriamo un po di automatismi.

Su /etc/ppp/ creare il file ip-up.local Questo viene eseguito automaticamente ogni volta che viene stabilita una connessione ppp e ci serve per automatizzare la configurazione della route di default che altrimenti non viene settata, o meglio viene settata a 0.0.0.0. Il file deve essere eseguibile, e ci serve per eseguire il log delle connessioni.

#!/bin/sh
/bin/date
echo "Connessione stabilita"
/sbin/route del default gw 0.0.0.0
/sbin/route add default gw 10.64.64.64

chmod 755 /etc/ppp/ip-up.local

Creiamo il file /etc/ppp/ip-down.local con i comandi da eseguire alla chiusura della connessione ppp. Il file deve essere eseguibile, scrive sul log la chiusura della connessione.

#!/bin/sh
/bin/date
echo "Chiusura PPP"

chmod 755 /etc/ppp/ip-down.local


Creiamo adesso il log delle connessioni su /var/log/ dove finiranno tutti i log creati da /etc/ppp/ip-up.local  e /etc/ppp/ip-down.local

touch /var/log/ppp-ip-updown.log
chmod 666 /var/log/ip-updown.log

Esaminando questo file si potrà verificare se è stata stabilita e se la route è corretta.

Ultima cosa: lo script startppp.sh per l'apertura della connessione.

creare un file con i seguenti comandi:
#!/bin/sh
nohup wvdial &

renderlo eseguibile

chmod 777 startppp.sh

Con il comando nohup si reindirizza l'output su un file chiamato nohup.out, la & fa eseguire il processo in background.
#!/bin/sh
/bin/date
echo "Chiusura PPP"

Non ci resta che provare il tutto:

./startppp.sh


Questo è il contenuto di nohup.out all'avvio della connessione

$paolo@tatooine:~/Scrivania$ cat nohup.out
--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATX3
ATX3
OK
--> Sending: AT&F Q0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
AT&F Q0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: at+cgdcont=1,"IP","ibox.tim.it"
at+cgdcont=1,"IP","ibox.tim.it"
OK
--> Modem initialized.
--> Sending: ATM1L3DT*99#
--> Waiting for carrier.
ATM1L3DT*99#
CONNECT 7200000
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Wed Jul  9 12:45:15 2008
--> Warning: Could not modify /etc/ppp/pap-secrets: Permission denied
--> --> PAP (Password Authentication Protocol) may be flaky.
--> Warning: Could not modify /etc/ppp/chap-secrets: Permission denied
--> --> CHAP (Challenge Handshake) may be flaky.
--> Pid of pppd: 19518
--> Using interface ppp0
--> pppd: �?��[18]�[06][08]��[06][08][01]
--> pppd: �?��[18]�[06][08]��[06][08][01]
--> pppd: �?��[18]�[06][08]��[06][08][01]
--> pppd: �?��[18]�[06][08]��[06][08][01]
--> pppd: �?��[18]�[06][08]��[06][08][01]
--> pppd: �?��[18]�[06][08]��[06][08][01]
--> local  IP address 217.202.98.119
--> pppd: �?��[18]�[06][08]��[06][08][01]
--> remote IP address 10.64.64.64
--> pppd: �?��[18]�[06][08]��[06][08][01]
--> primary   DNS address 213.230.128.222
--> pppd: �?��[18]�[06][08]��[06][08][01]
--> secondary DNS address 213.230.129.94
--> pppd: �?��[18]�[06][08]��[06][08][01]nohup  &

Questo il contenuto di nohup.out alla chiusura della connessione

Caught signal 15:  Attempting to exit gracefully...
--> Terminating on signal 15
--> pppd: �?��[18]�[06][08]��[06][08][01]
--> Connect time 6.9 minutes.
--> pppd: �?��[18]�[06][08]��[06][08][01]
--> pppd: �?��[18]�[06][08]��[06][08][01]
--> pppd: �?��[18]�[06][08]��[06][08][01]
--> Disconnecting at Wed Jul  9 12:52:11 2008



Questo è /var/log/ppp-ipupdown.log dopo la connessione:

$cat ppp-ipupdown.log
/etc/ppp/ip-up ppp0 /dev/ttyUSB0 460800 217.202.50.248 10.64.64.64

Wed Jul  9 12:58:15 CEST 2008
Connessione stabilita
Kernel IP routing tablenohup  &
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.64.64.64     0.0.0.0         255.255.255.255 UH        0 0          0 ppp0
0.0.0.0         10.64.64.64     0.0.0.0         UG        0 0          0 ppp0





Per chiudere la connessione si dovrà killare il relativo processo con il comando:

pkill wvdial

pkill chiude un processo basandosi sul nome e non sul pid.
Il file di log dopo la chiusur della connessione è il seguente.

root@tatooine:/var/log# cat ppp-ipupdown.log
/etc/ppp/ip-up ppp0 /dev/ttyUSB0 460800 217.202.50.248 10.64.64.64

Wed Jul  9 12:58:15 CEST 2008
Connessione stabilita
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.64.64.64     0.0.0.0         255.255.255.255 UH        0 0          0 ppp0
0.0.0.0         10.64.64.64     0.0.0.0         UG        0 0          0 ppp0
/etc/ppp/ip-down ppp0 /dev/ttyUSB0 460800 217.202.50.248 10.64.64.64

Wed Jul  9 13:34:57 CEST 2008
Chiusura PPP


In conclusione: il sistema funziona bene sia sotto windows che sotto linux ma tutto dipende dalla bontà della copertura del segnale.
Ho navigato e scaricato fino ad una velocità massima di 2000 kbit/s con upload fino a 384 kb/s. Ho notato che la velocità può calare od aumentare a seconda della forza del segnale o del nunero di utilizzatori della rete, fino a giungere alle velocità minima di 48 kb/s.
Un led sulla chiavetta diventa blu se si lavora in HDPSA o verde se la connessione è EDGE. Spesso si avvia in blu e poco dopo diventa verde.


Cosa abbiamo utilizzato:
- il pacchetto wvdial. E' un pacchetto per automatizzare le connessioni ppp senza gtroppo problemi, semplice e funzionale.
- il comando pkill. Per chiudere un processo in base al nome se non si conosce l'ID. Comodo per gli script.
- il comando touch. Per creare file vuoti.
- il comando nohup .. &. Per fare eseguire il processo in background e falreo proseguire anche chiudendo la shell.
- i file di configurazione di pppd. Per specificare i comandi da eseguire all'avvio ed alla chiusura della connessione