Huawei E220 unter Linux
Huawei E220 unter Linux Drucken E-Mail
Geschrieben von: Administrator   
Donnerstag, 02. August 2007 09:28

Huawei E220

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 Modem sichtbar machen

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

 

Aktualisiert ( Montag, 27. August 2007 16:12 )