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/
- Installare quello che serve per compilare il programma:
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.
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