Verwenden des UMTS Modems Huawei E160 unter Debian Squeeze

Geschrieben von Eric Scheibler am 09.04.2012

Für mein Notebook brauchte ich ein UMTS Modem. Es sollte günstig sein und unter Debian Squeeze funktionieren, die erreichbare Höchstgeschwindigkeit spielte nur eine untergeordnete Rolle. Schließlich fiel meine Wahl auf das USB Modem Huawei E160. Im folgenden soll kurz die Inbetriebnahme erläutert werden.

Umschalten des UMTS Sticks in den Modemmodus

Die meisten UMTS Sticks bringen neben einem SIM Karten Slot noch einen für SD Karten mit. Daher werden sie vom System zunächst als Mass Storage Devices erkannt. Das Programm USBModeSwitch kümmert sich um das Umschalten in den Modemmodus. Installation:

# apt-get install usb-modeswitch

USB-ModeSwitch bringt bereits eine Regel für das Ansteuern des Huawei E160 mit, sodass das Aktivieren des Modems beim Einstecken automatisch durchgeführt wird. Nach etwa 10 Sekunden sollten unter /dev/ die zwei Einträge ttyUSB0 und ttyUSB1 angelegt worden sein. In der Ausgabe von dmesg finden sich folgende Zeilen:

dmesg
...
[82749.254876] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB0
[82749.256455] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB1

Sollte dies nicht funktioniert haben, so ist zunächst zu klären, ob zum einen die jeweilige Udev Regel existiert und zum anderen ein Config File für den UMTS Stick vorhanden ist. Dazu braucht man die Product- und VendorID des Sticks, welche man mit dem Befehl lsusb bekommt:

# lsusb
...
Bus 001 Device 009: ID 12d1:1003 Huawei Technologies Co., Ltd. E220 HSDPA Modem / E230/E270/E870 HSDPA/HSUPA Modem
...

Die VendorID des Huawei E160 ist 12d1 und die ProductID 1003.

Unter /etc/usb_modeswitch.d/ muss eine Datei namens 12d1:1003 existieren. Wenn nicht, fehlt wahrscheinlich das Data Paket, welches entweder von der USB-Modeswitch Projektseite heruntergeladen oder mittels

# apt-get install usb-modeswitch-data

nachinstalliert werden kann. Außerdem muss in der Datei /lib/udev/rules.d/40-usb_modeswitch.rules eine Udev Regel mit der Vendor- und ProductID eingetragen sein. Falls nicht, eine vorhandene Regel anpassen.

Verbindungsaufbau mit WvDial

Das Einwählen geschieht über das PPP-Protokoll mit dem programm Wvdial.

Installation:

# apt-get install ppp wvdial

Ich habe mich auf Grund des relativ günstigen Preises und der D-Netz Qualität für den Mobilfunkanbieter Fyve entschieden. Fyve nutzt das Vodafone Netz und bietet daher eine hohe Netzabdeckung. Die folgende WvDial Konfiguration bezieht sich stark auf die Einstellungen von Fyve, obgleich eine Anpassung an andere Provider im Vodafone Netz relativ leicht durchzuführen sein dürfte.

Inhalt der WvDial Konfigurationsdatei:

vim /etc/wvdial.conf
[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &&C1 &&D2 +FCLASS=0
Modem Type = Analog Modem
ISDN = 0
New PPPD = yes
Modem = /dev/ttyUSB0
Baud = 460800

[Dialer umts]
Stupid mode = 1
Dial Command = ATD
Phone = *99***1#
Init3 = AT+CGDCONT=1,"IP","web.vodafone.de","0.0.0.0"
Username = fyve
Password = fyve
Auto DNS = 1
Check Def Route = 1

Von besonderer Relevanz ist die Zeile:

Init3 = AT+CGDCONT=1,"IP","web.vodafone.de","0.0.0.0"

Hier wird der APN festgelegt. Den APN erfährt man auf der jeweiligen Providerseite. Gegebenenfalls muss auch die phone number angepasst werden. In einigen Tutorials habe ich statt 99**1# nur *99# gelesen. Benutzername und Passwort dürfen zwar nicht leer sein, sind aber sonst nicht wichtig und es kann etwas beliebiges eingetragen werden. Die PIN der SIM Karte habe ich deaktiviert, daher fehlt dieser Eintrag in der Config.

Wichtig: Bevor der Wählvorgang gestartet werden kann, muss das Routing der Pakete noch geändert werden. Anderenfalls bekommt man zwar eine IP aber der Internetzugang funktioniert trotzdem nicht. Die folgenden zwei Befehle sorgen dafür, dass die Paketroute angepasst wird, je nach dem ob die Internet Verbindung via UMTS oder LAN hergestellt wird:

echo "defaultroute" >> /etc/ppp/peers/wvdial
echo "replacedefaultroute" >> /etc/ppp/peers/wvdial

Schließlich startet man den Wählvorgang mit:

wvdial umts

oder falls WvDial im Hintergrund ausgeführt werden soll mit:

wvdial umts &

Quellen