Ubuntu 16.04 Xenial Xerus
Ubuntu 12.04 Precise Pangolin
Diese Anleitung zur Nutzung von UMTS bzw. des Internetzugangs über PCMCIA-Karten setzt voraus, dass die UMTS-Datenkarte bereits korrekt erkannt wurde. In den meisten Fällen dürfte es sich hierbei um 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, kann den Network-Manager oder verschiedene grafische Einwahlprogramme einsetzen.
Option 3G Datacard von T-Mobile (Ubuntu 8.04, 6.06)
Option 3G Datacard von Vodafone (Ubuntu 7.04 64-Bit)
Option GTmax EMEA alias T-Mobile Web'n'Walk Card compact (Ubuntu 16.04, 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 folgende Programm installiert [2] werden:
comgt (universe)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install comgt
sudo aptitude install comgt
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)
comgt -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 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 [3] mit Root-Rechten [4] 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 Recht 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 [5] 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 immer zu funktionieren, daher sei an dieser Stelle ein alternativer Lösungsweg erläutert, der das Programm wvdial zum Verbindungsaufbau benutzt. Dazu installiert man folgendes Paket:
wvdial
mit apturl
Paketliste zum Kopieren:
sudo apt-get install wvdial
sudo aptitude install wvdial
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.
UMTSmon - komfortables grafisches UMTS-Einwahlprogramm
Vodafone Mobile Connect Card driver - weiteres grafisches UMTS-Einwahlprogramm (nicht nur für Vodafone)
Während der NetworkManager ab Ubuntu 8.10 mit UMTS USB-Sticks relativ zuverlässig funktioniert (wenn man die Startschwierigkeiten mit USB ModeSwitch behoben hat), war die Unterstützung von PCMCIA-Karten zum Zeitpunkt der Erstellung des Artikels so gut wie nicht existent. Zumindest unter Ubuntu 16.04 werden die obigen Karten inzwischen problemlos automatisch erkannt und unter der Bezeichnung "Mobiles Breitband" bereitgestellt.
Damit sind die oben genannten alternativen Einwahlprogramme prinzipiell überflüssig (auch wenn sie immer noch funktionieren).
UMTS unter Linux funktioniert - Blogbeitrag, 07/2005
Daten-Düse – UMTS-Karten unter Linux nutzen - Linux-Magazin, 10/2004
Diese Revision wurde am 9. November 2016 15:20 von aasche erstellt.