UMTS-Stick ZTE MF100 (O2 Prepaid-Surfstick) und FB 7170
Der ZTE-Stick lässt sich auf ähnliche Weise in Betrieb nehmen, wie es bereits auführlich für den E160 von Huawei beschrieben wurde.
Ich habe den Freetz-Trunk (4910) zusammen mit der ppp-cgi Erweiterung verwendet. Die Pin-Abfrage für Sim-Karte muss deaktiviert werden. Das geht z. B. mit dem 'Mobile Partner Manager' der beim O2 Prepaid-Surfstick dabei ist.
Wie in diesem Thread bereits beschrieben wurde, scheint der option-Treiber Probleme mit der Erkennung des ZTE-Sticks zu haben. Ich habe deshalb die Vendor / Product-ID in option.c nachgetragen, das sich im Kernel-Source unter freetz-trunk/source/kernel/ref-ohio-8mb_26-04.80/linux/drivers/usb/serial befindet. Es kommen zwei defines und eine Erweiterung des structs usb_device_id option_ids hinzu. (Etwa ab Zeile 80).
option.c
Code:
[...]
#define ANYDATA_VENDOR_ID 0x16d5
/* Neue IDs */
#define ZTE_VENDOR_ID 0x19d2
#define ZTE_PRODUCT_MF626 0x0031
[...]
static struct usb_device_id option_ids[] = {
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_OLD) },
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUSION) },
{ USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF626) },
[...]
Da ich mich mit dem Freetz-Build-System nicht auskenne habe ich das behelfsmässig gelöst, indem ich den Build-Prozess nach dem Auspacken der Kernel-Sourcen im richtigen Moment abgebrochen habe. (Ctrl-C). options.c wurde dann manuell editiert und make wieder gestartet. Das lässt sich sicherlich als Patch automatisieren
Der ZTE-Stick hat zwei Product IDs, die 0x2000 als CDROM-Emulation (Auto-Run) bzw. die 0x0031 als Modem. Wird der Stick in seiner Standardkonfiguration an die Fritz-Box angesteckt meldet er sich als CDROM was diverse Probleme nach sich zieht. (Wurde im Thread bereits beschrieben.) Es ist hilfreich wenn man
lsusb zum Testen auf der Box hat.
Der ZTE-Stick lässt sich mithilfe zweier AT Kommandos so umkonfigurieren, dass Autorun disabled ist und das Modem dauerhaft aktiviert ist.
Code:
AT+ZOPRT=5 - makes the device to stay in online mode
AT+ZCDRUN=8 - disables auto-run
Hier das Ergebnis:
Code:
AT+ZOPRT=5
OK
AT+ZCDRUN=8
Close autorun state result(0:FAIL 1:SUCCESS):1
Das kann unter Windows mit dem Hyperterminal oder auch putty erfolgen. Der Stick lauscht auf COM5, die Baudrate ist egal.
Rückgängig machen lässt sich das Ganze mit
Siehe auch:
http://www.zte.com.au/downloads/USB_Modem_Config_Procedure.pdf
Das 'CDROM' mit der Windows/MAC-Software ist danach auch unter Windows nicht mehr sichtbar. Deshalb im Vorfeld ein Backup anlegen.
Damit beim Booten der Box der usbserial und der option Treiber korrekt geladen werden trägt man in Freetz unter
Einstellungen->Freetz: modules folgendes ein:
Code:
usbserial vendor=0x19d2 product=0x0031
option
Wird der ZTE-Stick nun an die 7170 gesteckt sollte logread -f folgendes ergeben:
Code:
May 19 19:02:00 fritz user.info kernel: usb 1-1: new full speed USB device using ahci and address 3
May 19 19:02:00 fritz user.info kernel: usbserial_generic 1-1:1.0: Option 3G data card converter detected
May 19 19:02:00 fritz user.info kernel: usb 1-1: Option 3G data card converter now attached to ttyUSB0
May 19 19:02:00 fritz user.info kernel: usbserial_generic 1-1:1.1: Option 3G data card converter detected
May 19 19:02:01 fritz user.info kernel: usb 1-1: Option 3G data card converter now attached to ttyUSB1
May 19 19:02:01 fritz user.info kernel: usbserial_generic 1-1:1.2: Option 3G data card converter detected
May 19 19:02:01 fritz user.info kernel: usb 1-1: Option 3G data card converter now attached to ttyUSB2
May 19 19:02:01 fritz user.info kernel: usbserial_generic 1-1:1.3: Option 3G data card converter detected
May 19 19:02:01 fritz user.info kernel: usb 1-1: Option 3G data card converter now attached to ttyUSB3
May 19 19:02:04 fritz user.notice kernel: SCSI subsystem initialized
May 19 19:02:04 fritz user.info kernel: Initializing USB Mass Storage driver...
May 19 19:02:04 fritz user.info kernel: usbcore: registered new driver usb-storage
May 19 19:02:04 fritz user.info kernel: USB Mass Storage support registered.
Das Modem lauscht auf /dev/ttyUSB3 und sollte sich wie im Thread vorne beschrieben mit AT-Befehlen ansprechen lassen.
lsusb ergibt:
Code:
BUS=001
DEV=003
VID=19d2
PID=0031
CLS=00
SCL=00
SPEED='full'
VER='2.0'
ISOC=0
INUM=4
ICLS1=255
ISCL1=255
ICLS2=255
ISCL2=255
ICLS3=08
ISCL3=06
ICLS4=255
ISCL4=255
/dev/ttyUSB3 wird in Einstellungen->PEERS: options eingetragen. Nach dem Start des pppd sollte sich unter Status->ppp-cgi sich nun in etwa dies finden:
Code:
OK
ATE1
OK
AT+CGDCONT=1,"IP","pinternet.interkom.de"
OK
ATD*99#
CONNECTchat: May 19 19:09:46 CONNECT 3600000
Serial connection established.
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB3
Could not determine remote IP address: defaulting to 10.64.64.64
not replacing existing default route through dsl
local IP address 10.70.223.190
remote IP address 10.64.64.64
primary DNS address 193.189.244.225
secondary DNS address 193.189.244.206
Der ZTE-Stick verwendet /dev/ttyUSB1 als Befehls-TTY, was man in Pakete->PPP eintragen kann.
Es werden dann die verfügbaren Netze sowie die Signalstärke im ppp-cgi Status angezeigt; Informationen zur Geschwindigkeit bzw. Datenmenge sind nicht verfügbar, was vermutlich daran liegt, dass sich die entsprechenden AT-Befehle von denen der Huawei Sticks unterscheiden.
Informationen über die AT-Befehle von ZTE-Sticks finden sich z. B. hier:
http://3g-modem.wetpaint.com/page/ZTE+AT-commands
Außerdem nützlich: Die Informationen zur Konfiguration des dnsmasq (Namensauflösung):
http://trac.freetz.org/wiki/packages/ppp-cgi
Ich habe zum Vergleich einen Blick in die Sourcen des aktuellen option-Treibers geworfen, der bei Ubuntu 10.04 verwendet wird.
Dieser (Version 0.7) unterstützt eine große Anzahl von UMTS-Modems, u. a. auch das MF100. Der option-Treiber des 2.6.13 Kernels liegt in Version 0.4 vor. Nun stellt sich die Frage, ob sich modernere Versionen des option Treibers mit dem 2.6.13 Kernel verwenden lassen, ohne dass ein Backport erforderlich ist. Vorteil: möglicherweise bessere Stabilität und mehr unterstützte Modem-Typen.
Ich habe den Stick hier seit einigen Tagen in Betrieb. Es läuft bisher recht stabil. Etwas hakelig ist im Moment noch der dnsmasq beim Wechsel von UMTS auf DSL. (PPPD-Stop, DSLD-Start). Umgekehrt läuft es glatt.
Zum Schluss noch ein Ausschnitt aus meiner rc.custom (iptables Konfiguration)
Code:
modprobe ip_tables
modprobe iptable_filter
modprobe ipt_MASQUERADE
modprobe ipt_state
modprobe ip_conntrack_ftp
iptables -F
iptables -A INPUT -m state --state ESTABLISHED,RELATED -i ppp0 -j ACCEPT
iptables -A INPUT -i ppp0 -j DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -i ppp0 -j ACCEPT
iptables -A FORWARD -i ppp0 -j DROP
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
So. Das ist alles etwas lang geworden. Ich mache jetzt erst einmal Feierabend.
Mit besten Grüßen,
Kalle.