Ubuntu 10.04 „Lucid Lynx“
Besitzer eines UMTS-fähigen Mobiltelefons können sich nach der Anleitung UMTS per Mobiltelefon ins Netz einwählen.
Diese Anleitung zur Nutzung von UMTS setzt voraus, dass die UMTS-Datenkarte bereits korrekt erkannt wurde. In den meisten Fällen dürfte es sich hierbei um PCMCIA-Karten der Firma Option handeln, die als OEM-Versionen dann mit dem Aufdruck des jeweiligen Providers versehen werden. Auf der Rückseite lässt sich der Original-Hersteller aber noch erkennen.
Wer den Umgang mit den im Anschluss beschriebenen Skripten scheut, hat mit UMTSmon und Vodafone Mobile Connect zwei komfortable grafische Einwahlprogramme zur Auswahl. Auch eine Einwahl mit GNOME PPP ist möglich.
Option 3G Datacard von T-Mobile (Ubuntu 6.06)
Option 3G Datacard von Vodafone (Ubuntu 7.04 64-Bit)
Option GTmax EMEA alias T-Mobile Web'n'Walk Card compact (Ubuntu 8.04, 7.10, 7.04)
Option GT 3G+ EMEA von T-Mobile (Ubuntu 9.10, 9.04, 8.10)
Man steckt die PCMCIA-Karte in den vorgesehenen Schacht und ruft anschließend in einem Terminalfenster [1]
dmesg
auf. Die letzten Zeilen geben Auskunft darüber, ob der Kernel die Karte richtig erkannt hat. Nachfolgend beispielhaft die Ausgabe für eine Option GTmax EMEA:
pccard: CardBus card inserted into slot 0 nozomi 0000:03:00.0: Init, cards_found: 1 nozomi 0000:03:00.0: Card type is: 2048 PCI: Enabling device 0000:03:00.0 (0000 -> 0002) ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 18 (level, low) -> IRQ 19 nozomi 0000:03:00.0: Nozomi driver nozomi_tty nozomi 0000:03:00.0: Version of card: 3 nozomi 0000:03:00.0: Initialization OK!
Korrekt erkannte PCMCIA-Karten werden später - je nach Karte - entweder über /dev/ttyUSB0, /dev/ttyACM0 oder /dev/noz0 angesteuert.
Für diesen kurzen Test muss das Programm
gcom (universe, [2]; )
installiert [3] werden. Außerdem muss die SIM-Karte für den UMTS-Zugang eingelegt sein. Nun kann man in einem Terminalfenster (/dev/...
für die eigene Karte anpassen, siehe oben)
gcom -d /dev/noz0
ausführen. Gegebenenfalls wird die PIN der SIM-Karte abgefragt (bei Failed to register
Befehl wiederholen; evtl. Standort wechseln). Beispiel:
SIM ready Waiting for Registration..(120 sec max) Registered on Home network: "Vodafone.de",2 Signal Quality: 18,99
Die Signalqualität kann dabei zwischen 3 und 33 schwanken. Wichtig ist die Zahl hinter dem Providernamen ("Home network"): 0
steht für GPRS, 2
für UMTS (aus Geschwindigkeitsgründen zu bevorzugen). Nun können die eingangs beschriebenen grafischen Einwahlprogramme oder die nachfolgenden Skripte eingesetzt werden.
Die initiale PPP-Konfiguration gestaltet sich recht einfach. Nach dem Aufruf von
sudo pppconfig
im Terminal [1] ist eine neue Verbindung zu erstellen. Hier sind nun folgende Eingaben zu tätigen:
Name des Providers: dient zur späteren Auswahl, könnte z.B. umts
lauten
DNS: dynamic
Authentifizierung: PAP
Login: xxxx
(provider- und tarifabhängig)
Passwort: ****
(provider- und tarifabhängig)
Geschwindigkeit: 460800
Impuls- oder Tonwahl: Tone
Rufnummer: *99#
oder *99***1#
(provider- und tarifabhängig)
Automatische Erkennung des Modems: Nein
Modem-Anschluss: /dev/xxx
(siehe oben)
Die Daten der Verbindung können nun gespeichert und das Konfigurationsprogramm beendet werden.
Um überhaupt eine Verbindung herstellen zu können, muss sich die Karte aber erst einmal ins Netz "einbuchen". Wie vom Handy bekannt, geht das nicht ohne PIN. Um diese zu setzen, gibt es grundlegend zwei Möglichkeiten: fest auf der Karte setzen (gefährlich bei "abhanden kommen", aber bequem) oder vor der Anwahl (z.B. per Skript). Man öffnet einen Editor [4] mit Root-Rechten [5] und gibt folgenden Text ein (der aber nur als Vorlage dient):
#!/usr/bin/env perl use strict; use warnings; # Substitute xxx with your device, i.e. ttyUSB0 or noz0 my $modem = "/dev/xxx"; # Substitute yyyy with your PIN. # You should probably put your PIN somewhere else, e.g. on a USB stick, # an encrypted file system or something else, and read it from there... # You have been warned! my $pin = "yyyy"; $SIG{ALRM} = sub { die("timeout: no response from modem $modem\n"); }; (MODEM, "+<", $modem) or die("can't open modem $modem"); alarm(10); print(MODEM "AT+CPIN=\"$pin\"\n\r"); while (<MODEM>) { if (m/OK/) { close(MODEM); print("PIN accepted\n"); exit(0); } if (m/ERROR/) { close(MODEM); print("PIN rejected\n"); exit(1); } }
Diesen speichert man dann z.B. unter /usr/local/sbin/setpin und setzt die Rechte [6] im Terminal mit
sudo chmod 700 /usr/local/sbin/setpin
so, dass nur root die Datei anschauen darf (man will ja nicht unbedingt, dass jeder Benutzer die PIN sehen kann!).
Alternativ kann man folgende leicht abgewandelte Form des Skriptes nutzen. Es hat den Vorteil, dass die PIN nicht auf dem Rechner gespeichert wird, da sie direkt abgefragt wird. Dieses kann man dann unter /usr/local/bin/setpin speichern. Am Ende wird noch eine 3-sekündige Pause gemacht: falls man sich einen Starter auf der Oberfläche anlegt, kann man noch den Erfolg der Eingabe kontrollieren, bevor sich das Fenster schließt.
#!/usr/bin/env perl use strict; use warnings; # Substitute xxx with your device, i.e. ttyUSB0 or noz0 my $modem = "/dev/xxx"; my $pin = ""; print "Please enter PIN: "; $pin=<STDIN>; $SIG{ALRM} = sub { die("timeout: no response from modem $modem\n"); }; (MODEM, "+<", $modem) or die("can't open modem $modem"); alarm(10); print(MODEM "AT+CPIN=\"$pin\"\n\r"); while (<MODEM>) { if (m/OK/) { close(MODEM); print("PIN accepted\n"); sleep(3); exit(0); } if (m/ERROR/) { close(MODEM); print("PIN rejected\n"); sleep(3); exit(1); } } sleep(3);
Hier braucht die Berechtigung nicht so restriktiv zu sein, da die PIN nicht im Skript gespeichert ist. Folgender Befehl setzt die Ausführen-Berechtigung [3] für alle Benutzer des Rechners:
sudo chmod 755 /usr/local/bin/setpin
Jetzt kann man das Skript starten; entweder das erste als Root mit
sudo /usr/local/sbin/setpin
oder das angepasste als normaler Benutzer:
/usr/local/bin/setpin
Ist all das so weit geschehen, kann nun mit
pon umts
die Verbindung aufgebaut werden.
Leider scheint die oben beschriebene Variante via pppconfig nicht bei jedem zu funktionieren, daher sei an dieser Stelle ein alternativer Lösungsweg erläutert, der das Programm wvdial zum Verbindungsaufbau benutzt. Falls es noch nicht installiert ist:
which wvdial
muss es erst installiert werden [4].
Nun führt man einfach wvdial
in einem Terminalfenster aus. Beim ersten Start des Programms wird automatisch die Datei ~/.wvdial.conf erstellt. Diese öffnest du nun mit einem Editor deiner Wahl und ersetzt die darin enthaltenen Zeilen mit den folgenden:
[Dialer Defaults] Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Modem Type = Analog Modem Baud = 460800 New PPPD = yes # Substitute xxx with your device, i.e. ttyUSB0 or noz0 Modem = /dev/xxx ISDN = 0 [Dialer umts-pin] Init3 = AT+CPIN=XXXX [Dialer umts] Dial Command = ATD Carrier Check = no # Substitute yyy with your dialin number, i.e. *99# or *99***1# Phone = yyy Password = none Username = none Stupid Mode = 1 # Substitute "zzz" with your APN, i.e. "web.vodafone.de" Init4 = AT+CGDCONT=1,"IP","zzz" Dial Attempts = 2
XXXX wird mit der eigenen (vierstelligen) Pin ersetzt. Jetzt kann man wvdial wie folgt aufrufen:
wvdial umts-pin
Anschließend kann man sich mit:
wvdial umts
ins UMTS-Netz einwählen.
Während der NetworkManager ab Ubuntu 8.10 Intrepid Ibex mit UMTS USB-Sticks relativ zuverlässig funktioniert, wenn man die Startschwierigkeiten mit USB ModeSwitch behoben hat, war die Unterstützung von PCMCIA-Karten bisher so gut wie nicht-existent.
Durch Veränderungen im Kernel kann bei einigen PCMCIA-Karten keine Verbindung hergestellt werden: die Karten werden zwar einwandfrei erkannt, nur die Kommunikation über den Kernel läuft nicht. Hierzu ist es erforderlich, einen neueren Mainline-Kernel ab 2.6.32-8 zu installieren. Ubuntu 10.04 Lucid Lynx verwendet diese Kernel-Version standardmäßig.
PHARscape - Linux and 3G - Wissenswertes zu Linux und UMTS
Linux and the Vodafone Mobile Connect (UMTS) 3G/GPRS Datacard
Linux-Magazin 10/2004: Daten-Düse – UMTS-Karten unter Linux nutzen
umtsmon - komfortables grafisches UMTS-Einwahlprogramm
Vodafone Mobile Connect Card driver - weiteres grafisches UMTS-Einwahlprogramm (nicht nur für Vodafone)
Launch2net - kommerzielles grafisches Einwahlprogramm (Beta-Version; erst ab Ubuntu 8.10!)