27.8UMTS-Interna

Die meisten aktuellen Modems sehen wie ein USB-Stick aus. Obwohl sich die Bezeichnung »UMTS-Modem« eingebürgert hat, sind die meisten Modems zu älteren und manche auch zu neueren Standards kompatibel, also zu GSM, GPRS, EDGE, LTE etc. Das Modem verwendet dann je nach Empfang automatisch das schnellste verfügbare Netz.

Die Unterstützung für UMTS-Modems unter Linux ist erfreulich gut. Sofern Sie eine aktuelle Distribution verwenden, werden die meisten UMTS-Modems sofort beim Anstecken als solche erkannt. Sie können sich davon mit dmesg überzeugen:

root# dmesg ... usb 1-4: new high speed USB device using ehci_hcd and address 3 ... USB Serial support registered for GSM modem (1-port) option 1-4:1.0: GSM modem (1-port) converter detected usb 1-4: GSM modem (1-port) converter now attached to ttyUSB0 option 1-4:1.1: GSM modem (1-port) converter detected usb 1-4: GSM modem (1-port) converter now attached to ttyUSB1 usbcore: registered new interface driver option option: v0.7.2:USB Driver for GSM modems

Hat die Hardware-Erkennung einmal funktioniert, ist es zumeist kein Problem, mit dem NetworkManager eine Internetverbindung herzustellen.

Linux-intern werden die meisten Modems als serielle Geräte behandelt. Bei einigen Geräten ist dazu der Nozomi-Treiber aus dem gleichnamigen Kernelmodul erforderlich, andere Geräte werden direkt als serielle USB-Geräte erkannt. Anschließend kann das Modem über eine Device-Datei gesteuert werden, beispielsweise /dev/ttyUSBn, /dev/ttyACMn oder /dev/nozomin. Aus Sicht von Linux verhält sich ein modernes UMTS-Modem damit ganz ähnlich wie ein 20 Jahre altes Analogmodem! Selbst die AT-Kommandos sind weiterhin erforderlich. Zur Steuerung einiger mobilfunkspezifischer Funktionen wurden einfach neue AT-Kommandos definiert, z.B. AT+CPIN=nnnn zur Übermittlung des PIN-Codes.

Aus diesem Grund ist es prinzipiell möglich, UMTS-Modems mit den eigentlich für Analogmodems konzipierten Programmen gnome-ppp oder KPPP zu steuern. Das funktioniert allerdings nur, wenn Sie vorher die PIN-Abfrage deaktivieren, und ist insofern nur eine Notlösung.

Die meisten gängigen UMTS-Modems haben eine Doppelfunktion: Sie erscheinen dem Computer anfänglich als USB-Datenträger und ermöglichen so die komfortable Installation der auf dem Modem gleich mitgelieferten Windows- bzw. OS-X-Treiber. Erst durch einen speziellen Code wird die eigentliche Modemfunktion aktiviert.

Unter Linux kann diese Doppelgleisigkeit zu Problemen führen. Bei bekannten Modellen sendet der Linux-Kernel derartigen Modems eine spezielle Bytesequenz, um die Modemfunktion zu aktivieren. Verantwortlich für diesen Automatismus ist das Kommando usb_modeswitch aus dem gleichnamigen Paket. Das Kommando wird mit der richtigen Bytesequenz ausgeführt, sobald das udev-System ein UMTS-Modem erkennt. Die entsprechende udev-Regel befindet sich unter Ubuntu in der Datei /lib/udev/usb_modeswitch. Eine komprimierte Datenbank aller bekannten Modems und der dazugehörigen Umschaltsequenzen enthält /usr/share/usb_modeswitch/configPack.tar.gz. Weitere Details zu diesem Mechanismus können Sie hier nachlesen:

http://wiki.ubuntuusers.de/USB_ModeSwitch

Sollte der Automatismus bei Ihrem ganz neuen Modem nicht funktionieren, führen Sie nach dem Anstecken manuell eject /dev/xxx aus, wobei Sie den Device-Namen des zuletzt eingebundenen USB-Datenträgers angeben. df ermittelt eine Liste aller Datenträger, aus der Sie den richtigen auswählen müssen.

Alternativ können Sie versuchen, eine eigene usb_modeswitch-Regel einzurichten. Im Regelfall ist die Umschaltsequenz von verschiedenen Modems eines Herstellers identisch. Deswegen reicht es zumeist aus, mit lsusb die USB-ID des Modems zu ermitteln und in eine einfache udev-Regeldatei einzutragen:

root# lsusb ... ID 1234:5678 <hersteller abc> HSDPA/HSUPA Modem

Nun erzeugen Sie die Datei /lib/udev/rules.d/61-my-usb-modeswitch.conf nach dem folgenden Muster. Die gesamte Anweisung muss in einer einzigen Zeile angegeben werden. Außerdem müssen Sie die Codes 1234 und 5678 durch die USB-ID Ihres Modems ersetzen.

ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", RUN+="modem-modeswitch -v 0x%s{idVendor} -p 0x%s{idProduct} -t option-zerocd"

UMTS-Konfigurationsprogramme sehen üblicherweise Eingabefelder für die Telefonnummer, eine APN-Zeichenkette, den Login-Namen, das Passwort und den PIN-Code vor. Als Telefonnummer ist bei allen Providern die Zeichenkette *99# üblich. Die APN-Zeichenkette (Access Point Name) hängt vom Provider ab und bezeichnet den Namen des Anschlusspunkts im Mobilfunknetz. Der Login-Name und das Passwort können bei vielen Providern leer bleiben bzw. werden nicht ausgewertet.

Wenn der NetworkManager oder andere Programme immer wieder zur Eingabe von PIN- und PUK-Codes auffordern, liegt ein Problem vor. Vermeiden Sie allzu viele Experimente! Es besteht die Gefahr, dass die SIM-Karte nach zu vielen vermeintlich falschen PIN-Eingaben gesperrt wird.

Diesem Problem gehen Sie aus dem Weg, wenn Sie den PIN-Code der SIM-Karte deaktivieren: Dazu entfernen Sie die SIM-Karte aus dem USB-Modemstecker, legen sie in ein entsperrtes Handy ein und deaktivieren dort den PIN. Anschließend bauen Sie die SIM-Karte wieder in den USB-Stecker ein. Die Internetverbindung kann jetzt ohne PIN-Code hergestellt werden. Verlieren Sie Ihren Modemstecker aber nicht! Jeder kann Ihr Modem nun ohne PIN-Code nutzen!