Das Huawei wird aktuell auch als Vodafone Zuhause Easybox verkauft. Es funktioniert auch mit Linux, dazu sind
aber ein paar Vorarbeiten notwendig. Die folgende Anleitung wurde unter Debian Etch und Sid getestet.
Die vorgestellte Lösung funktioniert natürlich auch mit Ubuntu.
Das C-Programm von bobovsky sorgt erstmal dafür, dass das E220 seinen Modemport
zugänglichmacht. Ein apt-get install libusb-dev sorgt für die nötigen libs, so dass
der Compiler ohne Errors der Warnings durchlaufen sollte.
Download huaweiAktBbo.tar.bz2
So wird es compiliert
Das Archiv erzeugt ein neues Verzeichnis. Dort einfach make aufrufen, danach sollte
eine neue Datei huaweiAktBbo im gleichen Verzeichnis liegen.
Dieses File wird nun nach /usr/sbin kopiert.
Aufgerufen wird das nun mit huaweiAktBbo
und ein
modprobe usbserial vendor=0x12d1 product=0x1003
macht den seriellen Port nutzbar. Mit einem lsusb sollte man sich überzeugen, dass Vendor/Product-ID auch passen.
udevd
Wer das E220 automatisch initialisiert haben will, kann dazu udev bemühen.
Bei Debian Etch wird udev automatisch installiert. Im Verzeichnis /etc/udev/rules.d
ist ein neues File 75_e220.rules anzulegen.
Download 75_e220.rules
Das sorgt nun dafür, dass
1. Das E220 seine serielle Modemschnittstelle preisgibt
2. Linux den passenden Treiber lädt
Bevor nun der pppd auf /dev/ttyUSB0 losgelassen wird, sollte noch geprüft werden,
ob die Schnittstelle bereits da ist.
PPP Konfiguration
Das E220 verhält sich jetzt wie ein ganz normales Modem. Es muss jedoch eine geeignete
Initialisierung stattfinden. Diese erfolgt mit dem bekannten AT Befehlssatz.
Der ppp muss evtl. erst einmal installiert werden. Ein apt-get install ppp erledigt alles nötige.
/etc/ppp/peers/ppp
Die ppp Dialer Konfiguration legt die Besonderheiten des Protokolls für die spezifische
Verbindung fest. Im Beispiel wird die Verbindung nach 5 Minuten nichts tun automatisch getrennt.
# usbserial device, some options:
/dev/ttyUSB0
921600
idle 300
lock
crtscts
modem
noauth
# dns, routing
usepeerdns
replacedefaultroute
defaultroute
noipdefault
# avoid compression:
noccp
nobsdcomp
novj
# usually doesnt matter for GPRS/UMTS connections:
user "D2"
password "D2"
# connect script
connect "/usr/sbin/ppp-chat.sh"
# t-mobile specific?
ipcp-restart 8
ipcp-max-configure 50
ipcp-accept-local
ipcp-accept-remote
USER/PASS sind eigentlich egal, es muss aber was eingetragen sein. Der Speedparameter
scheint ebenfalls egal zu sein, das E220 läuft offenbar immer mit der maximal möglichen
Geschwindigkeit. Die idle Time kann bei einer Flatrate oder Volumentarif auch weggelassen
werden, die Option persist kann stattdessen gesetzt werden. Bei einem Zeittarif kann
das allerdings zu einem Gebühren-GAU führen.
/usr/sbin/ppp-chat.sh
Dieses Skript versucht zunächst eine Verbindung unter Verwendung einer PIN.
Falls das nicht funktioniert, wird die Verbindung ohne PIN versucht.
#!/bin/sh
# call the preparation chat script (with pin and if this fails without pin)
/usr/sbin/chat -V -f /etc/chatscripts/ppp-prep || \
/usr/sbin/chat -V -f /etc/chatscripts/ppp-prep-nopin
# wait to switch between GPRS/UMTS
#sleep 20
# the final chat script:
/usr/sbin/chat -V -f /etc/chatscripts/ppp
Nicht vergessen, mit chmod 755 /usr/sbin/ppp-chat.sh die Rechte passend zu setzen.
Den Befehl sleep 20 kann man sich auch schenken, einfach mal probieren.
Wenn das E220 dann immer noch zuverlässig die Verbindung aufbaut, dann kann
man sich diese 20s sparen.
/etc/chatscripts/ppp-prep
AT Kommandos für Verbindungsaufbau mit PIN.
ABORT BUSY
ABORT ERROR
ABORT 'NO CARRIER'
REPORT CONNECT
TIMEOUT 10
"" "ATZ"
OK "AT+CGDCONT=1,\042IP\042,\042web.vodafone.de\042"
# replace XXXX with your PIN:
OK "AT+CPIN=XXXX"
OK "ATE1V1&D2&C1S0=0+IFC=2,2"
OK "AT+IPR=115200"
OK "ATE1"
#SAY "\nWarte 20 Sekunden um zwischen UMTS/GPRS umzuschalten ...\n"
/etc/chatscripts/ppp-prep-nopin
Hier die AT Kommandos ohne Angabe einer PIN. Wird die PIN 3 mal falsch angegeben,
wird die Karte meist gesperrt, daher alles dreifach kontrollieren...
ABORT BUSY
ABORT ERROR
ABORT 'NO CARRIER'
REPORT CONNECT
TIMEOUT 10
"" "ATZ"
OK "AT+CGDCONT=1,\042IP\042,\042web.vodafone.de\042"
OK "ATE1V1&D2&C1S0=0+IFC=2,2"
OK "AT+IPR=115200"
OK "ATE1"
#SAY "\nWarte 20 Sekunden um zwischen UMTS/GPRS umzuschalten ...\n"
Statt web.vodafone.de muss natürlich etwas anderes eingetragen werden, wenn man bei einem anderen Netzprovider als Vodafone ist.
/etc/chatscripts/ppp
Dieses Chatskript legt die Meldungen und Reaktionen des pppd fest.
Die Nummer *99***1# kann bei anderen Mobilfunk Providern anders sein.
ABORT BUSY
ABORT 'NO CARRIER'
ABORT ERROR
REPORT CONNECT
TIMEOUT 10
SAY "Verbinde mit Server\n"
TIMEOUT 60
"" "ATD*99***1#"
CONNECT \c
Finale
Mit pppd call ppp nodetach kann man nun sehen, was das Modem macht.
Hat alles geklappt, müsste der Output in etwa so aussehen:
ATZ
OK
AT+CPIN=****
+CME ERROR: operation not allowed
ATZ
OK
AT+CGDCONT=1,"IP","web.vodafone.de"
OK
ATE1V1&D2&C1S0=0+IFC=2,2
OK
AT+IPR=115200
OK
Verbinde mit Server
ATE1
OK
ATD*99***1#
CONNECTchat: Jul 26 18:35:58 CONNECT
Serial connection established.
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB0
CHAP authentication succeeded
CHAP authentication succeeded
Could not determine remote IP address: defaulting to 10.64.64.64
Cannot determine ethernet address for proxy ARP
local IP address 90.186.59.78
remote IP address 10.64.64.64
primary DNS address 139.7.30.125
secondary DNS address 139.7.30.126
In diesem Fall besteht eine Verbindung in das Internet. Wenn es hier keine Fehler gibt,
dann kann die Verbindung in Zukunft mit pppd call ppp aufgebaut werden.
Automatisierung
Ein kleines Skript start-umts könnte wie folgt aussehen:
#/bin/sh
huaweiAktBbo
modprobe usbserial vendor=0x12d1 product=0x1003
pppd call ppp
huaweiAktBbo und setserial... entfallen, wenn das udev Skript (siehe oben) verwendet wird.
Mit killall pppd kann man die Verbindung beenden.
Quellen
Richard Frankenberger hat mir eine sehr schöne Vorlage für die Konfiguration (Ubuntu) gegeben.
Vodafone Easybox
Moobicent UMTS Flatrate
Huawei E220