Differences between revisions 5 and 6
Revision 5 as of 2008-04-09 13:49:36
Size: 5270
Editor: Kurgan
Comment: Modificato basandomi su quello che si trova sull' EEEPC di TIM
Revision 6 as of 2009-04-12 17:33:25
Size: 5270
Editor: localhost
Comment: converted to 1.6 markup
No differences found!

Configurazione modem UMTS Huawei E220 con Ubuntu 7.10

Questa configurazione funziona circa. Capita di dover forzare un po` la mano lanciando a mano il programma huaweiAktBbo dopo aver inserito il modem, se all'inizializzazione da parte di udev non funziona come si deve.

Teoria: Il modem contiene due funzioni: una e` un mass storage (visto come un cdrom) che contiene il driver per widows. L'altra e` il modem gsm vero e proprio. Il problema e` che per commutare da una funzione all'altra occorre "dirlo" al modem. Il modem parte come mass storage, ovviamente, e non come modem. *ODIO* la roba troppo user-friendly. Specie quando e` fatta solo per windows.

Pratica: Occorre convincere il modem a comportarsi da modem e non da flash memory.

Per farlo, occorre:

  • Scaricare e compilare il programmino che commuta il funzionamento del modem:
    • Installare quello che serve per compilare il programma:
      apt-get install libusb-dev wget build-essential
    • Scaricare il programma: (c'e` una copia locale in attachment a questa pagina, se servisse)
      wget http://www.kanoistika.sk/bobovsky/archiv/umts/huaweiAktBbo.c
    • Compilare il programma e copiarlo in /usr/local/sbin
      cc huaweiAktBbo.c -lusb -o huaweiAktBbo
      cp huaweiAktBbo /usr/local/sbin/
  • Aggiungere una regola in udev che lanci il programma appena installato quando si collega il modem: Creare il file /etc/udev/rules.d/50-huawei-e220.rules e scriverci dentro:

    SUBSYSTEM=="block", \
    ACTION=="add", \
    SYSFS{idVendor}=="12d1", \
    SYSFS{idProduct}=="1003", \
    IMPORT{program}="huawei-mobile.sh", \
    OPTIONS="ignore_device"
  • Creare un file /lib/udev/huawei-mobile.sh

    /sbin/modprobe usbserial vendor=0x12d1 product=0x1003
    /bin/sleep 1s
    /usr/local/sbin/huaweiAktBbo | /usr/bin/logger

Ora succede questo: quando si collega il modem, udev lo vede come device di memoria di massa, ma la regola inserita sopra impedisce che venga caricato come tale, lanciando invece lo script huawei-mobile.sh. Questo script carica usbserial per il device in questione, attende un momento, e poi lancia il programma huaweiAktBbo il quale abilita il modem nello scatolo disattivando la periferica di memoria di massa. Questo giro basterebbe venisse fatto una volta sola, ma cosi` come e` adesso viene fatto due volte perche` la prima volta il modem viene di nuovo riconosciuto e quindi fa scattare di nuovo tutto il sistema. Questo non crea problemi se non un lieve rallentamento.

L'output di huaweiAktBbo si vede in syslog.

In teoria a questo punto quando si collega il modem, dopo un certo tempo (30 secondi?) dovremmo avere dentro a /dev/ due device ttyUSB0 e ttyUSB1. Se c'e` solo ttyUSB0 oppure non c'e` nessun device, vale la pena di provare a lanciare a mano il programma huaweiAktBbo e vedere se dopo funziona.

Configurazione del PPP

Per connettermi a Wind o a Tre uso questi files di configurazione:

File /etc/ppp/peers/wind:

# configurazione per modem USB HSDPA ADSM Huawei E220
# e per la rete di Wind (business)

# chat script per connettere
connect "/usr/sbin/chat -v -f /etc/chatscripts/wind"

# user
user wind
password wind

# debug
nodetach
debug

# Serial device to which the modem is connected.
/dev/ttyUSB0

# Speed of the serial line.
460800

#idle 7200
lock
crtscts
modem
noauth
replacedefaultroute
defaultroute
noipdefault
ipcp-accept-local
nobsdcomp
novj
persist
usepeerdns

File /etc/chatscripts/wind:

REPORT         CONNECT
ABORT           BUSY
ABORT           VOICE
ABORT           "NO CARRIER"
ABORT           "NO DIALTONE"
ABORT           "NO DIAL TONE"
""              ATZ
OK              'AT+cgdcont=1,"IP","internet.wind"'
OK              ATD*99#
CONNECT         ""

Ovviamente occorre modificare l' APN in modo corretto. Per Wind e` "internet.wind" o "internet.wind.biz" a seconda del contratto. Per tre l'apn dovrebbe essere "tre.it" ma siccome Tre cambia idea spesso, non so se sia buono.

Configurazione del firewall

Firewallare la connessione ppp non e` una cattiva idea, quindi dentro a /etc/ppp/ip-up.d ho creato il file 0firewall che contiene:

iptables -F
iptables -F -t nat

iptables -A INPUT -i ppp+ -p icmp -j ACCEPT

iptables -A INPUT -i ppp+ -m state --state NEW,INVALID -j DROP
iptables -A FORWARD -i ppp+ -m state --state NEW,INVALID -j DROP

Se dovete usare protocolli rognosi (ftp, per dire) forse e` il caso anche di inserire dei modprobe per caricare gli helper relativi.

Una interessante (ma secondo me non del tutto esatta) interpretazione dei problemi di riconoscimento del modem da parte del kernel, piu` un programmolo per vedere le statistiche di traffico del modem si trovano qui: http://oozie.fm.interia.pl/pro/huawei-e220/.

Altra documentazione sulla configurazione di Linux e su udev qui: http://wwwu.uni-klu.ac.at/agebhard/HuaweiE220/

Configurazione di un Asus WL-500G con un E220 sulla usb, per fare un router wireless che si connette a internet in HSDPA. In tedesco, pero`: http://www.umtslink.at/3g-forum/showpost.php?p=528907&postcount=8

HardWare/HuaweiE220 (last edited 2009-04-12 17:33:25 by localhost)