==== 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''
#!/bin/bash
/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:
#!/bin/bash
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.
==== LINKS ====
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