home Sonstiges Linux OpenBSD Links

Vodafone UMTS mit der Novatel Merlin U630 Karte unter Linux nutzen

1. Vorwort
Ich wohne zwar mitten in Mainz in einer grösseren Wohnanlage, aber leider hat der Vermieter eine Firma mit der Betreuung der Telekommunikationseinrichtung betreut. Diese Firma bietet auch Internetzugänge an, aber leider sind diese absolut verkrüppelt. In dem Vertrag steht nicht einmal drin, wieviel Mindestbandbreite man garantiert bekommt (alle Mieter teilen sich eine Leitung nach außen). Öffentliche IP Adressen gibt es nicht. Das ICMP Protokol wurde mittlerweile auch deaktiviert, seit dem wir damit mal der Firma vor Augen geführt haben, das die Leitung ständig dicht ist (ein Ping von über einer Sekunde war keine Seltenheit). DNS Anfragen dauern ewig und sind auch öfters erfolglos. Nach über einem halben Jahr Testphase will diese Firma nun für diesen Murks Geld haben (34 Euro pro Monat!), das ist die Oberfrechheit. Beschwert man sich an der Hotline, wird man zum Teil von den Mitarbeitern dumm angemacht. Einen eigenen DSL Anschluss zum Beispiel von der Telekom darf man sich bestellen (das ist leider auch so vom Mietvertrag geregelt :( ). Das alles waren Gründe, sich nach einer Alternative umzuschauen. Mittlerweile gibt es mehrere Anbieter von Internet via UMTS, ich habe mich für Vodafone entschieden, da diese meiner Meinung nach zur Zeit das beste Angebot haben.

Nachtrag: Mittlerweile hat sich die Situation mit dem Internet von der Firma hier im Haus gebessert, es ist nun richtig nutzbar. Die Kommunikation mit der Firma hat sich auch deutlich gebessert. Nach längeren Testen bin ich mit Vodafone nicht so richtig glücklich geworden und habe es deshalb wieder gekündigt. Es wäre halt richtig interessant, wenn man sich wirklich auf die Zonenzuordnung verlassen könnte und diese Bildkomprimierung endlich abschaltbar wäre ohne irgendwelche Hacks.
Diese Anleitung bleibt aber trotzdem online.

Die Benutzung dieser Anleitung geschieht auf eigene Gefahr, ich
übernehme keine Haftung für irgendwelche Trafficrechnungen oder sonstiges!

2. Vertrag mit Vodafone abschliessen
Man kann in jedem Vodafone Shop einen UMTS Vertrag abschliessen. Ich habe mich für den Vodafone Business Data 3M in Verbindung mit der Option Vodafone-Zuhause Volume 5GB entschieden. Ich bin drei Monate fest an Vodafone gebunden, danach kann ich zu jeden Monatsende kündigen. Der ganze Spaß kostet 29,95 Euro im Monat. Man muß beim Vertragsabschluß explizit die 3M verlangen, sonst hat man einen Zweijahresvertrag abgeschlossen. Die Option Vodafone-Zuhause Volume 5GB bedeutet, das man jeden Monat 5 GB Traffic zur Verfügung hat. Solange man nicht jeden Mist runterlädt und sich nicht in Tauschbörsen aufhält, ist das kein Problem. Wer lieber nach Anzahl der Stunden bezahlen will, dafür gibt es auch Zeittarife. Diese habe ich mir aber nicht näher angeschaut, da sie uninteressant für mich sind. Das ganze ist an eine sogenannte Zuhause Zone gebunden. Sobald man außerhalb dieser Zone surfen will, kostet jedes MB richtig viel Geld (1,86 Euro).
Die UMTS Karte kann man entweder selbst besorgen oder man kauft sie direkt bei Vodafone im Shop (199 Euro). Auf jedenfall sollte man aufpassen, das die Telefonnummer des Vertrages irgendwo notiert ist. Bei mir stand diese nur auf der Rechnung der UMTS Karte. Die Nummer ist wichtig, wenn man sich zum Beispiel in Mein Vodafone anmelden will. Auch wenn man die Hotline anrufen will, braucht man die Telefonnummer. Die Hotline ist übrigens sehr freundlich und meistens auch hilfreich.

3. Inbetriebnahme der Karte unter Windows
Auch wenn dieses ein Linux Howto ist, es empfiehlt sich die Karte erst mal in einem Laptop mit Windows zu installieren. Man sollte sich strikt an die Anleitung halten. Diese sagt zum Beispiel, wann man die Karte das erste mal einstecken soll. Das typische ich steck einfach die Karte rein und installiere dann den Treiber geht in die Hose! Wenn man alles richtig gemacht hat, funktioniert es ohne Probleme. Das Installationsprogramm fragt auch irgendwann ab, ob man GPRS, UMTS oder beides nutzen will. Ich habe dies fest auf UMTS eingestellt, man kann die Einstellung aber jeder Zeit mit dem Vodafone Mobile Connect Programm ändern.

4. Probesurfen unter Windows - nein, noch nicht!
Man sollte sich nicht verleiten lassen, gleich auf den UMTS/GPRS Button zu klicken! Denn es dauert schon ein paar Stunden/Tage, bis Vodafone die Zuhause Zone eingerichtet hat. Wie kriegt man aber nun mit, wann dies erfolgt ist? In dem Vodafone Mobile Connect Programm ist auch ein SMS Client eingebaut, dieser geht auf Empfang, sobald man die PIN eingegeben hat. Ich hatte am Freitag den Vertrag abgeschlossen und am Montagmorgen kam die SMS mit folgenden Inhalt: Viel Spaß mit Vodafone Zuhause! Ihr Zuhause Bereich wurde eingerichtet.
Dann ging es erst mal ins Netz. Mit DSL kann UMTS leider nicht mithalten. Wer zocken will, muß erst mal auf die UMTS Erweiterung HSDPA warten.
Bei Vodafone wird auch genattet, sprich man hat keine öffentliche IP Adresse. Es wird ein Zwangsproxy eingesetzt, dieser komprimiert Bilder herunter, das spart Traffic. Man kann die Komprimierung auch in der Vodafone Mobile Connect Software abschalten. Alternativ kann man bei sich im Browser auch einen beliebigen öffentlichen Proxy eintragen, dann wird der Vodafone Proxy nicht mehr genutzt (so habe ich es zumindest in diversen Foren gelesen).

5. der erste Schock: eine SMS mit der Meldung, das ich nicht im Zuhause Bereich bin
Am nächsten Tag wollte ich wieder eine Runde surfen, da kam auf einmal eine SMS mit der Meldung: Aktuell befinden Sie such außerhalb Ihres Zuhause-Bereichs. Hier fallen höhere Kosten als innerhalb Ihres Zuhause-Bereichs an. Ich war aber definitiv in meiner Wohnung. Also die Hotline angerufen, der Mitarbeiter sagte mir, das er meine Zuhause Zone noch mal zurücksetzt und ich mich heute nicht mehr anmelden soll. Die neuen Informationen werden nachts im Vodafone UMTS Netz verteilt und am nächsten Tag auf die SIM Karte automatisch übertragen. Am nächsten Tag ging es dann auch erst mal wieder gut. Zwei Tage später kam wieder die SMS. Da hier direkt auf dem Haus auch Antennen stehen, kam mir so langsam der Verdacht, das da eventuell die Karte sich jedesmal woanders einbucht, weil sich die UMTS Zonen überlappen könnten. Also habe ich erneut die Hotline angerufen und mein Problem geschildert. Ich wurde dann weiterverbunden mit der Fachabteilung Zuhause Web. Es folgte ein längeres Gespräch wo die freundliche Dame mich zu orten versuchte. Es kam dann heraus, das meine Wohnung im Schnittpunkt von sieben (!) UMTS Zellen liegt. Die Dame versprach mir, eine passende Zone noch am selben Tag zusammen zu bauen, ich sollte mich aber heute nicht mehr anmelden. Am nächsten Tag ging dann wieder alles ohne Probleme. Aber trotzdem werde ich in Zukunft ab und zu mal die Karte in den Laptop stecken um zu prüfen, ob irgendwelche SMS kamen/kommen.
Da ich leider schon circa 4 MB versurft hatte (Update vom Virenscanner, die SMS kommt meistens erst, wenn man schon circa 30 Sekunden im UMTS angemeldet ist) gab mir die freundliche Dame einfach eine Gutschrift von 10 Euro. Das nenn ich mal Kundenservice! Leider ist es nicht möglich, das man außerhalb der Zuhause Zone einfach nicht surfen kann. Das wäre mir am liebsten, weil unter Linux kann ich die SMS nicht empfangen.

6. der zweite Schock: Anmeldung in Mein Vodafone ist nicht möglich
In diversen Foren habe ich gelesen, das man in Mein Vodafone jederzeit einsehen kann, wieviel Traffic man bereits verbraucht hat. Die Vodafone Mobile Connect Software hat zwar auch einen Zähler drin, aber wie soll die das mitkriegen, wenn die Karte im Linuxrechner steckt. Also ab auf die Vodafone Seite und dort neu registriert. Ein paar Minuten später kam schon die SMS mit dem Passwort an. Beim Anmelden erhielt ich dann aber die Meldung: Systemstörung (die Webseite teilte mir das mit im Vodafone Outfit, keine Windowsfehlermeldung). Einen Tag später immer noch das selbe Bild. Ich rufe also erneut bei der Hotline an, diese meinten, es läge an meinen PC. Ok, dieses mal kein Glück gehabt. Einige Anfragen an Google später hatte ich einen Eintrag in einem UMTS Forum gefunden. Dort berichteten mehrere Nutzer von dem Problem. Einer der Teilnehmer war anscheinend von Vodafone und klärte die Lage: wenn die Telefonnummer schon einmal vergeben war, erhält man diese nichtssagende Fehlermeldung.
Auf der Vodafone Webseite kann man Kontakt per Webformular aufnehmen. Dort habe ich das Problem geschildert und gleich mit einen Link auf den Forumseintrag gesetzt. Zwei Tage später kam eine Antwort, das man das Problem erkannt habe und man sich darum kümmert, ich soll dann automatisch eine SMS mit dem neuen Passwort erhalten, sobald das Problem beseitigt wurde. Nach vier Tagen (es lag wieder ein Wochenende dazwischen) kam wie versprochen die SMS. Einloggen in Mein Vodafone ist nun ohne Probleme möglich und unter Quick Check kann man sehen, wieviel von seinem Traffickongent man schon verbraucht hat. Leider wird anscheinend die Anzeige nicht in Echtzeit aktualisiert.

7. Installation eines PCI-PCMCIA-Adapters im Linuxrechner
Da bei mir mein Linuxserver die Schnittstelle zum Internet bilden soll, braucht dieser eine PCI Adapter Karte für PCMCIA Karten. Wer die UMTS Karte im Laptop unter Linux nutzen will, kann sich diesen Schritt also sparen ;). Passende Adapterkarten findet man bei Ebay etliche. Ich habe mich für eine Karte mit einem PCMCIA Steckplatz entschieden. Als Chipsatz kommt der RICOH R5C485 zum Einsatz. Nach dem installieren kann man mit Hilfe der PCI Utilities prüfen, ob die Karte gesehen wird:

root@pd6000:~ # lspci
00:00.0 Host bridge: VIA Technologies, Inc. VT8623 [Apollo CLE266]
00:01.0 PCI bridge: VIA Technologies, Inc. VT8633 [Apollo Pro266 AGP]
00:0f.0 Ethernet controller: VIA Technologies, Inc. VT6105 [Rhine-III] (rev 8b)
00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80)
00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80)
00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80)
00:10.3 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 82)
00:11.0 ISA bridge: VIA Technologies, Inc. VT8235 ISA Bridge
00:11.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 50)
00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 74)
00:14.0 CardBus bridge: Ricoh Co Ltd RL5c475 (rev 81)
01:00.0 VGA compatible controller: VIA Technologies, Inc. VT8623 [Apollo CLE266] integrated CastleRock graphics (rev 03)
8. Konfiguration des Kernels
Im Kernel müssen einige Einstellungen vorgenommen werden, damit die Karte genutzt werden kann. Ich verwende den Kernel 2.6.14.2. Als erstes wird PCMCIA aktiviert:
Bus options (PCI, PCMCIA, EISA, MCA, ISA)  --->
 PCCARD (PCMCIA/CardBus) support  --->
  <*> PCCard (PCMCIA/CardBus) support
  <*>   CardBus yenta-compatible bridge support
Die Novatel UMTS Karte gibt sich gegenüber dem System als serielle Schnittstelle aus. Bei mir muß ich zusätzlich noch die Anzahl der seriellen Schnittstellen höher setzen, da mein Mainboard schon vier Anschlüsse onboard hat. Interrupt Sharing kann ebenfalls nicht schaden:
Device Drivers  --->
 Character devices  --->
  Serial drivers  --->
   <*> 8250/16550 and compatible serial support
   <M>   8250/16550 PCMCIA device support          <--- WICHTIG - unbedingt als Modul!
   (8)   Maximum number of 8250/16550 serial ports
   [*]   Extended 8250/16550 serial driver options
   [*]     Support more than 4 legacy serial ports
   [*]     Support for sharing serial interrupts
In den Kernel muß natürlich auch der ganze PPP Kram rein und was man halt sonst noch so alles braucht. Den Kernel bauen, installieren und neu booten.

9. Installation der PCMCIA Tools
Da meine Distribution (LFS 6.0) nicht auf PCMCIA ausgelegt ist, muß ich einige Sachen installieren. Los geht es mit sysfsutils-1.3.0.tar.gz, zu finden unter http://linux-diag.sourceforge.net/. Die Installation geht nach dem bekannten Muster:

root@pd6000:/usr/src # tar xfz /von/wo/auch/immer/sysfsutils-1.3.0.tar.gz
root@pd6000:/usr/src # cd sysfsutils-1.3.0
root@pd6000:/usr/src/sysfsutils-1.3.0 # ./configure
root@pd6000:/usr/src/sysfsutils-1.3.0 # make
root@pd6000:/usr/src/sysfsutils-1.3.0 # make install
root@pd6000:/usr/src/sysfsutils-1.3.0 # ldconfig
Die Installation der PCMCIA Utils (zu finden unter http://kernel.org/pub/linux/utils/kernel/pcmcia/, ich verwende Version 010) läuft etwas anders ab:
root@pd6000:/usr/src/sysfsutils-1.3.0 # cd ..
root@pd6000:/usr/src # tar xfj /von/wo/auch/immer/pcmciautils-010.tar.bz2
root@pd6000:/usr/src # cd pcmciautils-010
Da LFS auf udev aufbaut, muß die Makefile angepaßt werden. Dazu öffnet man diese mit einen Editor seiner Wahl, geht zur Zeile 34 und ersetzt
UDEV = false
durch
UDEV = true
Weiter geht es mit:
root@pd6000:/usr/src/pcmciautils-010 # make
root@pd6000:/usr/src/pcmciautils-010 # make install
Es wird nun Zeit, die UMTS Karte einzustecken. Gestartet wird das PCMCIA Subsystem mit:
root@pd6000:/usr/src/pcmciautils-010 # /sbin/pcmcia-socket-startup
Im syslog oder beim dmesg sollte dann eine Meldung ähnlich dieser auftauchen:
cs: IO port probe 0x3d4-0x4ff: excluding 0x4cc-0x4d3
cs: IO port probe 0x3c0-0x3d2: clean.
cs: IO port probe 0x100-0x3af: excluding 0x170-0x177 0x370-0x37f
cs: IO port probe 0xc00-0xcff: clean.
cs: IO port probe 0x800-0x8ff: clean.
cs: IO port probe 0xa00-0xaff: clean.
cs: memory probe 0xa0000000-0xa0ffffff: clean.
ttyS4 at I/O 0x100 (irq = 11) is a 16550A
Interessant ist vor allen Dingen die letzte Zeile. Es wurde eine neue serielle Schnittstelle ttyS4 gefunden. Mit minicom oder einen anderen Terminalprogramm kann man nun testen, ob die Karte auch reagiert:
ATI
Manufacturer: Novatel Wireless Incorporated
Model: Merlin U630 (HW REV [0:55])
Revision: 12.0-12.0  [2005-02-09 17:22:37]
IMEI: XXXXXXXXXXXXXXX
+GCAP: +CGSM,+ES

OK
10. Installation setserial
Theoretisch könnte man jetzt schon los surfen. Allerdings hat man dann Probleme wie zum Beispiel das ein Ping ohne Probleme durchgeht, aber eine Webseiten abzurufen ist nicht möglich. Um dies zu verhindern, muß man mittels setserial zwei Einstellungen der seriellen Schnittstelle ändern. Unter http://setserial.sourceforge.net/ kann man es runterladen. Verwendet habe ich die Version 2.17:
root@pd6000:/usr/src/pcmciautils-010 # cd ..
root@pd6000:/usr/src # tar xfz /von/wo/auch/immer/setserial-2.17.tar.gz
root@pd6000:/usr/src # cd setserial-2.17
root@pd6000:/usr/src/setserial-2.17 # ./configure
root@pd6000:/usr/src/setserial-2.17 # make
root@pd6000:/usr/src/setserial-2.17 # make install
Die Schnittstelle (bei mir /dev/ttyS4) stellt man wie folgt ein:
root@pd6000:/usr/src/setserial-2.17 # setserial -a /dev/ttyS4 low_latency spd_warp
low_latency setzt die Empfangslatenz herunter, das bedeutet aber etwas mehr CPU Last
spd_warp kapier ich ehrlich gesagt auch nicht so wirklich, was die Manpage da meint, es hat aber damit zu tun, das die Schnittstelle später mit 460800 Baud betrieben wird

11. Script zur PIN Freischaltung
Bevor sich die Karte nutzen läßt, muß sie erst mit der PIN freigeschalten werden. Man kann die PIN Abfrage auch komplett deaktivieren, am einfachsten geht das mit der Vodafone Mobile Connect Software unter Windows. Man kann es aber auch mit AT Kommandos realisieren, allerdings habe ich das nie ausprobiert. Google hilft weiter ;). Das Script habe ich auf http://www.linuxforen.de/forums/showthread.php?t=157913 gefunden. Das Script lege ich als /bin/umtspin an:

#!/usr/bin/env perl
use strict; use warnings;
# hier die serielle Schnittstelle anpassen my $modem = "/dev/ttyS4"; #------------------------------------------------------------- # ob es eine gute Idee ist, seine PIN fest abzulegen, ist eine # andere Frage!!! # XXXX mit der eignen PIN anpassen #------------------------------------------------------------- my $pin = "XXXX";
$SIG{ALRM} = sub { die("timeout: no response from modem $modem\n"); };
open(MODEM, "+<", $modem) or die("can't open modem $modem"); alarm(10); print(MODEM "AT+CPIN=\"$pin\"\n\r"); while () { if (m/OK/) { close(MODEM); print("PIN akzeptiert\n"); exit(0); } if (m/ERROR/) { close(MODEM); print("PIN nicht akzeptiert\n"); exit(1); } }
Das Script darf nur root lesen und ausführen:
root@pd6000:/bin # chmod 500 /bin/umtspin
12. Konfiguration von wvdial
Für die Einwahl nutze ich wvdial. Aber leider kommt man auch hier nicht darum, eine spezielle ppp options Datei zu erstellen. Diese liegt normalerweise unter /etc/ppp/options. Im Normalfall ist schon eine vorhanden, diese vorher sichern! Inhalt der neuen /etc/ppp/options:
# damit holt sich der pppd selbst eine pseudo-tty
notty
# es wird eine Lockdatei erstellt
lock
# das schaltet die Hardware Flußkontrolle ein
crtscts
# wenn es irgendwie Probleme mit dem pppd gibt, sollte man die debug option auf Stufe 9 reinnehmen
#debug 9
# benutzt die Modem Steuerleitungen
modem
# es wird die Defaultroute gesetzt
defaultroute
# wir lassen uns eine IP Adresse zuweisen
noipdefault
# IPX wollen wir nicht
noipx
# die Gegenstelle braucht sich nicht authentifizieren
noauth
# wir akzeptieren die IP Adressen, die man uns vorgibt
ipcp-accept-remote
ipcp-accept-local
# die TCP/IP Header Komprimierung wollen wir nicht (braucht man anscheinend für Vodafone)
novj
Die Datei /etc/wvdial.conf sieht so aus:
[Dialer Defaults]
# 60 Sekunden sollten reichen, um online zu kommen
Timeout = 60
# das ist die Telefonnummer (kein Scherz)
Phone = *99***1#
# sobald die Anwahl erfolgt ist, soll wvdial den pppd starten
Stupid Mode = yes
# als Username und Passwort kann man setzen was man will, Vodafone tut die Nutzung anhand der SIM Karte verrechnen
Username = troll
Password = katze
# neuen pppd starten
New PPPD = yes
# da hängt das Modem dran
Modem = /dev/ttyS4
# mit dieser Geschwindigkeit wird mit dem Modem gesprochen
Baud = 460800
# Initstrings für das Modem, ATZ lädt das vorgespeicherte Profil
Init1 = ATZ
# ATZ+CSQ zeigt die Signalstärke an
Init2 = ATZ+CSQ
# das ist der APN, unsere Gegenstelle fürs Internet
Init3 = AT+CGDCONT=1,"IP","web.vodafone.de"
# nach 5 Minuten Inaktivität wird die Verbindung beendet
Idle Seconds = 300
13. Nameserver
Als Nameserver trägt man entweder in /etc/resolv.conf den 139.7.30.125 und 139.7.30.126 ein oder falls man einen lokalen BIND betreibt, gibt man sie in dessen Konfigurationsdatei als forwarder an.

14. Einwahl
Nachdem alles konfiguriert wurde, wird es nun Zeit zu testen. Also rein mit der Karte in den PCMCIA Slot und danach die PIN eingeben mit dem Script aus Schritt 11:

root@pd6000:~ # umtspin
Wenn keine Fehlermeldung aufgetreten ist, die Einwahl mit wvdial starten:
root@pd6000:~ # wvdial &
Die Verbindung sollte nach ein paar Sekunden stehen, testen kann man zum Beispiel mit ping oder einfach den Browser starten. Wenn es nicht klappt, sollte man sich die Logdateien vornehmen.
Beendet wird die Verbindung mit:
root@pd6000:~ # killall wvdial
Viel Spaß beim Surfen und immer schön den Traffic im Auge behalten.

15. Firmware Update, falls nötig
Eventuell kann es nötig sein, die Firmware der Karte zu updaten. Dies geht nur unter Windows. Genaue Anweisungen und die Firmware finden sich unter http://www.vodafone.de/business/support_download/software/77772.html. Man sollte nicht zu ungeduldig sein, das Update dauert circa 15 Minuten!


zurück zur Linux-Übersicht
Letzte Aktualisierung dieser Seite: 6. März 2006