Surfstick einrichten/e160

Aus wiki.archlinux.de

Hinweis: Diese Seite beschreibt die Einrichtung des O2-Surfsticks Huawei e160/e161/e220. Eine Übersicht über verfügbare Konfigurationsanleitungen, sowie weitere Informationen und allgemeine Hinweise zur Fehlerbehebung befinden sich auf der Hauptseite zu den Surfsticks

Wer einen Surfstick des Mobilfunk-Anbieters O2 besitzt, möchte diesen eventuell auch unter Arch benutzen. Dies ist mit dem Standard-Kernel ab mindestens Version 2.6.27 ohne zusätzliche Kernelmodule problemlos möglich. Es wird vermutlich auch mit älteren Kerneln funktionieren, wurde vom Initial-Autor des Artikels allerdings nicht getestet.

Für die Einrichtung stehen zwei Lösungswege offen. Zum Einen bietet sich die Möglichkeit, den Surfstick mittels comgt und wvdial in Verbindung mit pppd manuell einzurichten, zum Anderen bietet sich mit umtsmon eine GUI-Basierende Konfiguration an.

Prinzipiell ist diese Vorgehensweise auch auf die Sticks anderer Anbieter übertragbar, sofern diese auf dem HUAWAI E160/E220 basiert.

Hardware

Der vom Autor zum Testen im Prozess der Initialisierung dieses Wiki-Artikels verwendete Surfstick ist laut Beschriftung der „HUAWEI E160 HSDPA USB Stick“, lsusb gibt folgendes aus.

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

Bei Anschluss des Surfsticks werden dem System zwei USB-GSM-Modems übergeben. „ttyUSB0“ ist das Verbindungs-Modem, und „ttyUSB1“ wird vom Stick selbst für interne Zwecke verwendet.

[ 2103.645260] usb 5-3: GSM modem (1-port) converter now attached to ttyUSB0
[ 2103.645305] usb 5-3: GSM modem (1-port) converter now attached to ttyUSB1

Die LED des Surfsticks verhält sich entsprechend des Status der Hardware unterschiedlich.

  • blinkt grün SIM geschlossen, nicht verbunden
  • blinkt dunkelblau SIM geöffnet, nicht verbunden
  • leuchtet dunkelblau verbunden, aber keine Datenübertragung
  • leuchtet hellblau es werden Daten übertragen

Einrichtung per Befehlszeile

Zur Einrichtung am CLI werden zwei Tools benötigt, dies sind wvdial und comgt. Ersteres befindet sich im „community“-Repository, letzteres ist im AUR verfügbar. wvdial kann aus den entsprechenden Repository mit Pacman installiert werden.

pacman -S wvdial

Sollte das Internetverbindungsaufbau-System nicht installiert sein, so müssen die Pakete ebenfalls noch installiert werden.

pacman -S rp-pppoe ppp

… wobei dies bei einer Standard-Installation nicht nötig ist.

Konfiguration

Vor der Verwendung des Surfsticks unter Arch müssen noch einige Dinge konfiguriert werden. Auch ist es ratsam, sich ein Script oder eine Bash-Funktion zu erstellen, um den Stick zu initialisieren, da man sonst alle Schritte manuell ausführen muss.

wvdial

Über das PPP-Einwahlprogramm „wvdial“ wird die Verbindung über das Surfstick-Modem ins Internet aufgebaut. Damit das Programm die richtigen Befehle ausführt, muss ein Script erstellt werden. Es wird davon ausgegangen, dass der Surfstick als einziges Modem verwendet werden soll. Falls nicht, muss statt „Dialer Defaults“ einfach ein anderer Name angegeben werden.

[Dialer Defaults]
Modem = /dev/ttyUSB0
ISDN = off
Modem Type = USB Modem
Baud = 115200
Init = ATZ
Init2 ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 AT+CGDCONT=1,"IP","surfo2"
Init4 = AT^SYSCFG=2,2,3FFFFFFF,2,4
Init5 =
Init6 =
Init7 =
Init8 =
Init9 =
Phone = *99#
Phone1 =
Phone2 =
Phone3 =
Phone4 =
Dial Prefix =
Dial Attempts = 100
Dial Command = ATM1L3DT
Ask Password = off
Password = o2
Username = o2
Auto Reconnect = on
Abort on Busy = off
Carrier Check = on
Check Def Route = on
Abort on No Dialtone = on
Stupid Mode = on
Idle Seconds = 0
Auto DNS = on

Username und Passwort müssen so belassen werden. Dies wird als Datei „/etc/wvdial.conf“ abgespeichert.

Script

Möchte man nicht jedes mal mehrere Befehle eingeben, wenn man den Surfstick initialisieren will, kann man sich ein kleines Script, oder eine Bash-Funktion erstellen. Im Beispiel wird eine Bash-Funktion verwendet, die in der bashrc von root notiert wurde.

function o2ss {
  ifconfig eth0 down
  mknod /dev/ppp c 108 0 2>/dev/null
  COMGTPIN=1234 comgt PIN -d /dev/ttyUSB0
  sleep 5
  wvdial
  ifconfig eth0 up
}

Zuerst wird eth0 offline gesetzt. Dies ist nötig, da wvdial, bzw. pppd dadurch eventuell verwirrt werden können. Es wird dann ein neuer Device Node erstellt, und Fehlermeldungen dabei verworfen. Gelegentlich kann das Device nämlich mal nicht vorhanden sein, und so wird es automatisch neu erstellt. Wenn es schon vorhanden ist, wird so keine Fehlermeldung angezeigt.

Es wird dann mittels „comgt“ die PIN, im Beispiel „1234“, an die SIM-Karte übergeben, und diese damit geöffnet, da der Surfstick danach einen Moment braucht, um die SIM-Karte freizugeben, wird durch das darauffolgende „sleep“ fünf Sekunden gewartet. Will man die PIN nicht in einer Datei stehen haben, bietet sich eine etwas angepasste Methode an (siehe Optimieren).

Nun wird „wvdial“ ausgeführt, wenn nur eine Konfiguration – und diese als „Dialer Default“ – eingetragen wurde, reicht der Aufruf so, ansonsten muss er um den Eintrags-Namen erweitert werden, etwa „wvdial surfstick“, wenn der Konfigurationsabschnitt „surfstick“ heißt.

Durch „wvdial“ wird selbständig „pppd“ gestartet, und durch diesen die Verbindung über das Modem ins Internet aufgebaut. Alle nötigen Daten werden durch den O2-DHCP-Server bereitgestellt und von „pppd“ automatisch dem System übergeben.

o2ss
SIM ready
--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Modem initialized.
--> Sending: ATM1L3DT*99#
--> Waiting for carrier.
ATM1L3DT*99#
CONNECT
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Sat Apr 18 22:14:50 2009
--> Pid of pppd: 5503
--> Using interface ppp0
--> local  IP address 10.68.85.169
--> remote IP address 10.64.64.64
--> primary   DNS address 193.189.244.197
--> secondary DNS address 193.189.244.205

Das geöffnete Shell-Fenster dient zur Kontrolle und Statusanzeige. Wenn in dem Fenster Strg+C gedrückt wird, wird die Verbindung getrennt, ebenso, wie, wenn das Fenster geschlossen wird.

Optimieren

Will man seine PIN nicht im Klartext in einer Datei stehen haben, sondern jedes mal verdeckt eingeben, kann man sich folgenden Scriptes, anstatt des oben angegebenen direkten Aufrufs von comgt mit der PIN bedienen. Das Script setzt zuerst die Shell in den Passwort-Eingabemodus und Fragt das Passwort ab, setzt die Shell dann wieder zurück in den vorherigen Modus, und führt „comgt“ aus.

trap "stty echo ; exit" 1 2 15
echo -n "PIN: "
stty -echo
read PIN
COMGTPIN=${PIN} comgt PIN -d /dev/ttyUSB0
stty echo
echo 
trap "" 1 2 15

„trap“ sichert, dass die Shell wieder in den ursprünglichen Modus zurückwechselt, wenn man die Eingabe mit Strg+C o.ä. abbricht.

Grafische Einrichtung

Eine weitere Methode, den Surfstick unter Arch zu verwenden, ist, umtsmon einzusetzen. umtsmon ist ein Qt3-Basierendes Programm, das im AUR verfügbar ist, und aus diesem AUR installiert werden kann. Zusätzlich wird das Paket „qt3“ benötigt, das im „extra“-Repository vorhanden ist, und mittels Pacman installiert werden kann.

pacman -S qt3
Die Einstellung der Profildaten

Nach der Installation kann das Tool mittels „umtsmon“ gestartet werden, es bedarf dann aber noch der Einstellung eines Profils. Zuerst wird allerdings die PIN abgefragt, um die SIM-Karte zu öffnen. Über „Verbindung → Profile“ gelangt man zum Profil-Editor, hier muss man ein neues Profil anlegen.

Die Daten in den Abschnitten „einloggen“ und „Erweiterte PPP-Einstellungen“ sollten so übernommen werden, wie sie im Screenshot vorhanden sind, das Passwort lautet auch hier „o2“. Hat man keine echte Flatrate, sondern einen Volumen- oder Zeit-Tarif, kann man unter „Monatliche Daten/Zeitlimits“, ob und wann das Tool eine Warnmeldung ausgeben soll.

Mit einem Klick auf „Speichern“ speichert man das Profil, und kann den Profilmanager dann schließen.

umtsmon ist Verbunden und zeigt Statusmeldungen an

Will man nun mit dem Surfstick online gehen, klickt man auf das zweite Icon im Hauptfenster (die Darstellung von zwei Computern). „umtsmon“ baut nun die Verbindung anhand der im Profil eingestellten Daten auf. Im Statusbereich werden die übertragenen Datenmengen sowie die Signalstärke angezeigt.

Das Versenden von SMS-Nachrichten funktioniert ebenfalls. Über den Menüpunkt „SMS“, oder das Icon mit dem Briefumschlag kann man eine neue SMS-Nachricht erstellen und über den erscheinenden Dialog versenden, eine UMTS-Verbindung muss dazu nicht bestehen.

Beim Testen innerhalb der Vorbereitungen für die Initialisierung dieses Artikels war „umtsmon“ zwar eine Fehlermeldung aus, dass die SMS nicht versendet wurde, sie kam allerdings dennoch an. Der Empfang von SMS-Nachrichten klappte beim Testen jedoch nicht.

Über den Menüpunkt „PIN-Einstellungen“ kann man die PIN ändern oder die PIN-Abfrage deaktivieren.

Offline gehen kann man mit dem Icon rechts neben dem Verbindungsicon. Alternativ kann man das Fenster auch einfach schließen. Die Verbindung wird dann getrennt.

Weblinks