GPRS/UMTS

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche

Der folgende Text bezieht sich auf die Konfiguration für T-Mobile (D1) unter Benutzung der "pinken" T-Mobile UMTS/GPRS Karte von Option. Erweiterung werden natürlich gerne gesehen.

Inhaltsverzeichnis

[Bearbeiten] Hardware

[Bearbeiten] Option GlobeTrotter 3G+

Die UMTS/GPRS Karten von Option mit der Bezeichnung GT 3G+ EMEA werden vom nozomi Treiber unterstützt. Mit dem Befehl lspci (aus dem Paket sys-apps/pciutils) kann geprüft werden, ob es sich tatsächlich um diese Karte handelt:

 02:00.0 Network controller: Option N.V. Qualcomm MSM6275 UMTS chip

Leider sind alle auf den ersten Blick auffindbaren Treiber, zum Beispiel die von PHARscape, nicht wirklich benutzbar. Besserung ist allerdings in Sicht, nachdem der Treiber in Andrew Morton's Kernel aufgenommen wurde. Der Treiber aus den mm-sources-2.6.21_rc2-r1 ist schon benutzbar, Kernel Panics wie mit den offiziellen Treibern gehören damit der Vergangenheit an, solange man die Karte nicht auswirft, während sie in Benutzung ist.

Wer den Treiber aus diesem Kernel benutzen möchte, ohne einen -mm Kernel einzusetzen, kann das folgendermaßen tun:

  1. Ein neues Verzeichnis anlegen
  2. Darin ein Makefile anlegen, zum Beispiel das unten gezeigte
  3. Den Treiber aus dem -mm Kernel ebenfalls in das Verzeichnis kopieren (er liegt unter drivers/char/nozomi.c im Verzeichnis der mm-sources, zum Beispiel /usr/src/linux-2.6.21-rc2-mm1/drivers/char/nozomi.c für die mm-sources-2.6.21_rc2-r1).
  4. Durch Aufruf von make install den Treiber kompilieren und installieren.
Datei: Makefile

KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
obj-m := nozomi.o

modules:
       $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules

modules_install: install

install:
       $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules_install

Die Leerzeichen vor den Zeilen, die mit $(MAKE) beginnen, müssen Tabulatoren sein!

Das Modul wird automatisch beim Einstecken der Karte oder durch modprobe nozomi geladen. Es erzeugt dabei eine Reihe von tty-Schnittstellen, über die die Karte wie ein Modem angesprochen wird. Diese Schnittstellen sind /dev/noz[0-3].

[Bearbeiten] Kernel Konfiguration

Neben dem Treiber für das Modem werden noch die Grundlagen für das PPP Protokoll benötigt:

Linux Kernel Configuration: Device Drivers -> Network Device Support
<M>   PPP (point-to-point protocol) support
<M>     PPP support for async serial ports
<M>     PPP Deflate compression 
<M>     PPP BSD-Compress compression


[Bearbeiten] Konfiguration des Modems

Die Konfiguration erfolgt über den sogenannten AT-Befehlssatz mittels eines Terminalprogramms, zum Beispiel net-dialup/minicom (Konsole), net-dialup/komport (KDE) oder net-dialup/gtkterm (GTK). Interessante Befehle für die Konfiguration eines UMTS-Modems sind:

[Bearbeiten] Befehle zum Modem

ATI Ausgabe der Modem-Identifikation.
ATZ Zurücksetzen des Modems
AT&F Laden der Firmware-Voreinstellungen des Modems
AT&V Ausgabe der unterstützten Befehle.
AT+CGMI Ausgabe der Herstellerkennung.
AT+CGMM Ausgabe der Modellkennung.
AT+CGMR Ausgabe der Versionsnummer.
AT+CGSN Ausgabe der Seriennummer (IMEI).

[Bearbeiten] Befehle zur PIN

AT+CPIN? Abfrage, ob eine PIN eingegeben wurde. Die möglichen Antworten sind
+CPIN: SIM PUK Es wird die PUK der Karte benötigt. Dies kann passieren, wenn die PIN nach mehrfacher Falscheingabe gesperrt ist. Das Setzen einer neuen PIN ist erforderlich.
+CPIN: SIM PIN es ist noch keine PIN eingegeben.
+CPIN: READY Die Karte ist betriebsbereit.
AT+CPIN="XXXX" Eingabe der PIN (XXXX muss durch die PIN ersetzt werden).
AT+CPIN="XXXXXXXX","YYYY" Setzen einer neuen PIN (XXXXXXXX muss durch die PUK ersetzt werden, YYYY ist die neue PIN).
AT+CLCK="SC",0,"XXXX" Abschalten der PIN-Abfrage (XXXX muss durch die PIN ersetzt werden).
AT+CLCK="SC",1,"XXXX" Einschalten der PIN-Abfrage.
AT+CLCK="SC",2 Abfrage, ob eine PIN benötigt wird. Die möglichen Antworten sind
+CLCK: 0 Es wird keine PIN benötigt.
+CLCK: 1 Es wird eine PIN benötigt.

[Bearbeiten] Befehle zum Netz

AT+CREG? Anfrage, on das Modem in ein Netz eingebucht ist. Die möglichen Antworten sind
+CREG: 0,1 Modem ist eingebucht.
+CREG: 0,2 Modem ist nicht eingebucht.
AT+COPS? Abfrage, in welches Netz das Modem eingebucht ist.
AT+COPS=? Abfrage, welche Netze zur Verfügung stehen. Dieser Befehl braucht einige Zeit, bis er abgeschlossen ist.
AT+CSQ Abfrage der Signalqualität (Feldstärke und Bitfehlerrate)
AT_OPSYS=X,2 Setzen des bevorzugten Netzes. Mögliche Werte für X sind
0 Nur GPRS.
1 Nur UMTS.
2 Bevorzuge GPRS, aber erlaube UMTS.
3 Bevorzuge UMTS, aber erlaube GPRS.
AT_OPSYS? Abfrage des bevorzugten Netzes. Die möglichen Antworten sind die gleichen wie oben.
AT+CGDCONT= Setzen des APN (Access Point Name). Dieser ist netzspezifisch verschieden. Typischerweise sollte AT+CGDCONT=1,"IP","internet" genügen, um den IP Service des Netzes auszuwählen.

[Bearbeiten] Verbindungsaufbau

ATD Stellt eine Verbindung her. Die Rufnummer wird dabei hinter das D geschrieben.
ATD*99# Baut eine Verbindung mit dem im Modem voreingestellten APN auf.
ATD*99***1# Baut eine Verbindung mit dem ersten im Modem gespeicherten APN auf.

[Bearbeiten] Beispiel-Initialisierung

Die Befehle sollen nur eine Übersicht darstellen. Eine sinnvolle Initialisierung sieht folgendermaßen aus (mit Kommentaren):

Code: Initialisierung

ATZ Modem zurücksetzen
AT&F Standard-Profil der Firmware laden
ATE1 Zurücksenden der Kommandos (Echo) aktivieren
AT+CPIN? Abfragen, ob die PIN eingegeben werden muss
AT+CPIN=XXXX Gegebenenfalls die PIN eingeben
AT_OPSYS=3,2 Bevorzuge UMTS, aber erlaube GPRS
AT+CGDCONT=1,"IP","internet.t-mobile" Auswählen eines IP APNs
ATD*99***1# Verbindung aufbauen


[Bearbeiten] Software

[Bearbeiten] Nutzung mit Init-Skript

PPP-Schnittstellen lassen sich wie alle Netzwerkschnittstellen über Init-Skripte benutzen. Nach dem Erstellen eines Symlinks für das Init-Skript

Code: Anlegen des Symlinks

ln -sf /etc/init.d/net.lo /etc/init.d/net.ppp0

Und den folgenden Ergänzungen zur Netzwerkkonfiguration in /etc/conf.d/net zur Nutzung der UMTS-Karte:

Datei: /etc/conf.d/net

config_ppp0=( "ppp" )
link_ppp0="/dev/noz0" # Hier das genutze Device eintragen
username_ppp0='t-mobile' # Username und Passwort spielen bei den meisten Anbietern
password_ppp0='internet' # keine Rolle, da über die SIM-Karte abgerechnet wird
pppd_ppp0=(
 "debug"
 "defaultroute"
 "ipcp-accept-remote"
 "ipcp-accept-local"
 "lock"
 "115200"
 "modem crtscts"
 "usepeerdns"
)
chat_ppp0=(
 'ABORT' 'BUSY'
 'ABORT' 'ERROR'
 'ABORT' 'NO ANSWER'
 'ABORT' 'NO CARRIER'
 'ABORT' 'NO DIALTONE'
 'ABORT' 'Invalid Login'
 'ABORT' 'Login incorrect'
 'TIMEOUT' '1'
 '' 'ATZ'
 'OK' 'AT&F'
 'OK' 'ATE1'
 'OK' 'AT+CPIN?'
 'CPIN: READY-AT+CPIN=XXXX-OK' 'AT+COPS?' # Hier ggf. die PIN eintragen
 'OK' 'AT_OPSYS=3,2' # Je nach Präferenz anpassen
 'OK' 'AT+CSQ'
 'OK' 'AT+CGDCONT=1,"IP","internet.t-mobile"'
 'TIMEOUT' '60'
 'OK' 'ATD*99***1#'
 'CONNECT' ''
 'TIMEOUT' '5'
 '~--' ''
)


kann durch den Aufruf von

Code:

/etc/init.d/net.ppp0 start|stop

die Verbindung hergestellt bzw. getrennt werden. Im Gegensatz zur im Internet weit verbreiteten Meinung, dass die auschliessliche Nutzung von Chat-Skripten und SIM-PINs sich ausschliesst, kann im obigen Script anstelle der XXXX die PIN hinterlegt werden. Zu den restlichen Parametern der obigen Konfiguration wird die Lektüre des PPP-Abschnitts in /etc/conf.d/net.example empfohlen.

[Bearbeiten] Userspace pppd

Um den pppd als normaler User nutzen zu können sind zwei Dateien nötig. Die erste ist ein Chat-Skript, das das Modem konfiguriert, wählt und nach dem erfolgreichen Verbindungsaufbau zum pppd zurückkehrt. Diese soll in diesem Beispiel /etc/chatscripts/umts heissen.

Datei: /etc/chatscripts/umts

# abortstring
ABORT BUSY ABORT ERROR ABORT 'NO CARRIER'
ABORT 'NO DIALTONE' ABORT 'NO ANSWER'
# modeminit
'TIMEOUT' '1'
'' 'ATZ'
'OK' 'AT&F'
'OK' 'ATE1'
'OK' 'AT+CPIN?'
'CPIN: READY-AT+CPIN=XXXX-OK' 'AT+COPS?'
'OK' 'AT_OPSYS=3,2'
'OK' 'AT+CSQ'
'OK' 'AT+CGDCONT=1,"IP","internet.t-mobile"'
# ispnumber
'TIMEOUT' '60'
'OK' 'ATDT*99***1#'
# ispconnect
'CONNECT'


Auch hier ist wieder bei Bedarf die SIM PIN anstelle der XXXX anzugeben und bei Bedarf der APN und die Netzwerkpräferenz anzupasen. Die zweite benötigte Datei ist eine Beschreibung der PPP Eigenschaften für die Verbindung. Diese nennen wir in diesem Beispiel /etc/ppp/peers/umts.

Datei: /etc/ppp/peers/umts

hide-password
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/umts"
debug
/dev/noz0
115200
defaultroute
noipdefault
user "t-mobile"
password "internet"
usepeerdns
ipcp-accept-remote
ipcp-accept-local
lock


In dieser Datei sind nach Bedarf Benutzername, Passwort und Devicename anzupassen.

Nachdem diese beiden Dateien existieren, kann mit den Befehlen

Code: Verbindung starten und stoppen

pon umts
poff umts

die UMTS Verbindung gestartet bzw. beendet werden.

[Bearbeiten] Links

Wikipedia:de:AT-Befehlssatz
Wikipedia:de:Access Point Name

'Persönliche Werkzeuge