USB-Surf-Stick unter Debian lenny einrichten
 

Einen Surf-Stick unter Linux in Betrieb zu nehmen ist dank des Pakets usb_modeswitch heutzutage kein Problem mehr. Das Paket wird benötigt, da Surf-Sticks eigentlich aus zwei Geräten bestehen. Einem Wechsellaufwerk und einem Modem. Das Wechsellaufwerk wird benötigt um die Windows-Treiber nach dem ersten Einstecken bereit zu stellen. Nach der automatischen Installation der Treiber unter Windows wird der Surf-Stick automatisch in den Modem-Betrieb geschaltet und ist bereit, sich mit dem Provider zu verbinden. Da besagte Windows-Treiber natürlich nicht unter Linux funktionieren, muß der Surf-Stick mittels der Software usb_modeswitch in den Modem-Betrieb geschaltet werden. Danach kann man mittels eines ppp-Dialers wie z.B. wvdial eine Verbindung ins Internet aufbauen.
Noch ein Hinweis: wvdial muß mit root-Rechten gestartet werden da es auf das ppp-Device zugreift. Ohne root-Rechte bricht das Programm mit einer Fehlermeldung ab.

Unter Debian squeeze gibt es die beiden benötigten Pakete usb-modeswitch und usb-modeswitch-data als fertige Debian Pakete in den Repositorys. Unter Debian lenny leider nicht. Die entsprechenden Quell-Pakete findet man unter
http://www.draisberghof.de/usb_modeswitch/. Natürlich benötigen wir für die Übersetzung die Pakete g++ und make, die man in einem Rutsch mittels des Meta-Pakets build-essential installieren kann:
# apt-get install build-essential
Zusätzlich benötigen wir noch das Quell-Paket der libusb, also
# apt-get install libusb-dev

Nachdem man die Quellen von usb-modeswitch (das Hauptprogramm) und usb-modeswitch-data (die Daten über die Surf-Sticks) in jeweils eigene Ordner entpackt hat, kann man sie mit
# make install
für jeden Ordner separat installieren. Dabei erstellt usb-modeswitch die manpages und frisch kompilierte Binarys während usb-modeswitch-data eine udev-Regel in /lib/udev/rules.d/ erstellt und ein Verzeichnis anlegt namens /etc/usb_modeswitch.d/. Unter Debian liegen die udev-Regeln allerdings unter /etc/udev/rules.d/, daher sollte man die Regel in besagtes Verzeichnis kopieren. Sollte der Stick in der udev-Regel schon erfaßt sein, kann man ihn nach der Installation einfach Einstecken und er ist sofort als Modem einsatzbereit. Dies kann man überprüfen in dem man sich nach dem Einstecken die letzten Meldungen von dmesg ansieht.
# dmesg
tauchen dort Meldungen wie
usb 5-4: GSM modem (1-port) converter now attached to ttyUSB0
auf, dann siehts gut aus.

Da unser "Modem" nun funktioniert, müssen wir lediglich noch die Einwahl-Software konfigurieren. Theoretisch kann man dafür jeden ppp-Dialer nehmen, jedoch haben einige Probleme mit USB-Surf-Sticks. Als sehr zuverlässig hat sich wvdial herausgestellt. Natürlich muß man wvdial vorher installieren:
# apt-get install wvdial
Danach muß man noch eine Konfigurations-Datei /etc/wvdial.conf anlegen mit folgendem Inhalt:

[Dialer Defaults]
Init1 = ATZ
;Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = USB-Modem
Baud = 460800
New PPPD = yes
Modem = /dev/ttyUSB2
ISDN = 0

[Dialer pin]
init3 = AT+CPIN=xxxx # hier die PIN-Nummer der Karte eintragen

[Dialer umts]
init4 = AT+CGDCONT=1,"IP","mail.partner.de" # Hier die APN des Providers
Phone = *99#
Username = vf
Password = vf
Stupid Mode = 1
AutoDNS = 1
Auto Reconnect = on

Wie man sieht, ist die Konfigurations-Datei in verschiedene Abschnitte aufgeteilt:
[Dialer Defaults], [Dialer pin] und [Dialer umts]. Wie die Namen schon vermuten lassen ist der Defaults Abschnitt für allgemeine Einstellungen, der pin Abschnitt für die Übermittlung der PIN zum Surf-Stick und der umts Abschnitt für die Einwahl. Einen Benutzernamen und ein Paßwort braucht man in der Regel für einen Surf-Stick nicht. Hier hilft ein Blick in die Anleitung des Providers. Auch um die APN des Providers nachzulesen. APN steht für die Abkürzung von Access Point Name. Die APN definiert den Zugangspunkt um mobil im Internet surfen zu können. Obige Konfigurations-Datei funktioniert für einen 1und1-Surf-Stick. Man muß lediglich noch die PIN und die APN anpassen.

Um die PIN zu übermitteln ruft man mittels des Befehls wvdial und den Zusatz pin den Abschnitt [Dialer pin] auf:
# wvdial pin
Manche Surf-Sticks leuchten nach dem Einstecken rot und werden durch die Übermittlung der PIN grün. Daran erkennt man, daß die Übermittlung erfolgreich war und der Surf-Stick verbindungsbereit ist. Bevor man sich nun einwählt, muß man eine eventuell vorhandene Default Route einer LAN-Schnittstelle zu einem Router löschen, da sonst trotz der ppp-Verbindung der Browser versucht den nichtvorhandenen Router zu finden. Sind keine weiteren Netzwerkschnittstellen wie z.B. eth0 (für LAN-Schnittstellen) oder wlan0 (für Wireless-Schnittstellen) konfiguriert, kann man sich den nächsten Schritt sparen, ansonsten muß man mittels ifconfig die eingerichteten Schnittstellen anzeigen lassen und mit dem Befehl
# ifdown Schnittstelle
die Schnittstelle runterfahren. Eventuelle Default Routen werden dabei gelöscht. Anschließend kann man mit
# wvdial umts
eine Verbindung zum Provider und somit ins Internet herstellen. Solange wvdial läuft besteht die Verbindung und die Konsole ist durch das Programm belegt. Drückt man STRG-C und beendet damit das Programm, wird auch die Verbindung beendet. Natürlich ist es für den Ein oder Anderen ein wenig umständlich jedes Mal für eine Verbindung ins Internet eine Konsole zu öffnen und im Hintergrund geöffnet zu lassen. Wenn man will, kann man aber auch drei Knöpfe auf dem Desktop anlegen. Einen für die Übermittlung der PIN, einen für die Einwahl und einen zum Beenden. Versuche mit einem Knopf der beides macht -die PIN übermitteln UND den Surf-Stick einwählen- scheiterten bei mir alle, da wvdial bereits die Einwahl vornimmt, ohne auf das Ende der Aktivierung durch die PIN zu warten. Daher ist es besser zwei Desktop-Icons anzulegen und nach drücken des PIN-Knopfes auf das grüne Leuchten des Sticks zu warten. Damit der Aufruf von wvdial mit administrativen Rechten ohne Paßwort funktioniert, muß man ihn für sudo aktivieren (siehe sudo) Also sehen die Befehle für die Desktop-Symbole bei mir so aus:

Knopf1: sudo wvdial pin
Knopf2: sudo ifdown eth0; sudo wvdial umts
Knopf3: sudo killall wvdial; sudo ifup eth0

Da wir die Prozessnummer von wvdial nicht wissen, benötigen wir den Befehl killall, welcher einfach jeden Prozess (natürlich sollte es nur einer sein) von wvdial beendet. Noch komfortabler wird das Ganze wenn man sieht, ob man verbunden ist oder nicht. Das ermöglicht der Netzwerkmonitor KNemo (siehe Artikel KNemo), welchen man so konfigurieren kann, daß er zwei kleine Monitore anzeigt sobald eine Verbindung besteht.

Noch ein Tip für vodafone-Surfsticks, bzw. solche, die das Vodafone-Netz nutzen:

Die meisten Surf-Sticks benutzen für die Datenübertragung einen Proxy. Ein Proxy ist ein zwischen die Datenübertragung geschalteter Computer, der die Anfragen weiterleitet. Im Falle der Surf-Sticks hat der Proxy die Aufgabe den Quellcode zu manipulieren. Ja, genau, ihr habt richtig gelesen! Die Seite kommt nicht genau so an, wie ihr sie auf dem Webserver hinterlegt habt. Sämtliche JPG-Bilder werden gegen verkleinerte oder höher komprimierte Varianten ausgetauscht, was man im Quellcode an den veränderten Links erkennt (in der Regel fängt der Pfad z.B. mit http://1.1.1.2/ an). Und es kommt noch dicker: Stellenweise wird sogar der CSS-Code verändert oder Javascript-Code eingefügt (Eigentlich kennt man das Einfügen von Javascript-Code nur von Viren her...). Das alles wird gemacht um den Traffic gering zu halten und damit die Geschwindigkeit beim Seitenaufbau zu erhöhen - zumindest behaupten das die Provider. Während mir für den Grund das erste Vorgehen noch einleuchtet, verstehe ich nicht das Verändern von CSS-Dateien, denn dadurch wird der Code eigentlich nicht schlanker. Mitunter kann diese "Datenkomprimierung" aber fatale Nebeneffekte haben, daß z.B. swf-Dateien nicht korrekt abgespielt werden (war bei mir der Fall) oder die Seite von den Abmaßen her ganz anders dargestellt wird. Möchte man ohne Komprimierung und somit auch ohne Manipulation der Daten surfen, kann man bei Vodafone die APN austauschen. Anstatt web.vodafone.de gibt man als APN volume.d2gprs.de an und die Seiten werden korrekt dargestellt.