USB Surfstick am Raspberry Pi verwenden – Mobiles Internet

In meinem Hardware-Fundus sind mir zwei ältere USB Surfsticks in die Hände gefallen ein Huawei e1550 (O2) und ein ZTE 4505 (Vodafone), anhand eines Surfsticks kann der Raspberry Pi 2 auch ohne WLAN oder LAN Verbindung eine Verbindung ins Internet aufbauen. Meinem Huawei e1550 USB-Surfstick arbeitet nach 3G (Dritte Generation) und ist damit, je nach Datentarif der SIM-Karte, in der Lage einen Zugang zu UMTS oder noch besser sogar mit HSDPA aufzubauen.

Von der Theorie schafft so ein 3G Surfstick, abhängig vom Standort und dem Mobilfunknetz, folgende Übertragungsraten was für die Anwendung mit einem Raspberry Pi mehr als ausreichend sein dürfte:

UMTS:
Download: 384 Kbit/s
Upload: 384 Kbit/s

HSPA ( HSDPA / HSUPA):

Download: 7,2 Mbit/s
Upload: 1,4 Mbit/s
Mein Raspberry Pi UMTS Test-Setup

In meinem Test-Setup verwende ich:

vodafone-k4505-z o2-surfstick

Leider gibt es die genannten Modell nicht, oder nur noch selten zu kaufen, daher habe ich euch weitere unterstützte UMTS-Sticks hier aufgelistet. Abhängig vom Stromverbrauch des Sticks und vom verwendeten Raspberry Pi Netzteil kann es passieren das ein zusätzlicher aktiver USB-Hub benötigt wird um den Stick mit ausreichend Strom zu versorgen. Bei meinen Test-Sticks war kein Hub notwendig.

Surfsticks für den Raspberry Pi

Die USB Dongels für 3G/4G von der Firma Huawei sind weit verbreitet und so mancher Mobilfunkanbieter klebt einfach nur sein Logo auf solch einen Stick. Da ich nicht alle Geräte testen kann habe ich euch eine kleine Liste von Huawei Modems (Quelle eLinux) zusammengestellt:

Wer plant den Pi in gebieten mit schlechter Netzabdeckung oder in „geschlossenen Räumen“  zu verwenden sollte überlegen einen Stick mit der Option für eine externe 3G Antenne zu beschaffen. Der E303 soll laut diversen Berichten mit dem aktuellen Raspbian problemlos funktionieren, hat allerdings keinen Anschluss für eine externe Antenne. Als Alternative dazu hat der E353 einen Antennenanschluss und Unterstützt HSDPA mit bis zu 21Mbit Download, preislich liegt der Stick m.E. auch noch im Rahmen. Alternativ könnt ihr das Auktionshaus eures Vertrauens nach gebrauchten Geräten durchsuchen (achtet auf SIM- / Net-Lock freie Geräte um eine eigene SIM verwenden zu können).

Surfstick am Raspberry Pi einrichten

Als Vorbereitung empfiehlt es sich die PIN Prüfung für die Karte zu deaktivieren, das erledigt ihr entweder via Software eures Mobilfunkanbieters an eurem normalen Windows Rechner oder ihr steckt die SIM in ein Smartphone und deaktiviert die Abfrage dort.

Als erstes stecken wir den Surfstick an den USB Port und prüfen mit lsusb ob dieser erkannt wird. Abhängig vom Stick müssen noch Einstellungen vorgenommen werden (so auch bei mir).

zte-surfstick

Bei manchen USB Sticks, die einen internen SD-Speicher haben, erkennt raspbian leider nur die SD-Karte, dann ist es notwendig das Tool usb-modeswitch zu installieren und den Pi einmal neu zu starten (sudo apt-get install usb-modeswitch). Raspbian sollte dann hoffentlich euer Gerät als Modem erkennen. Falls nicht müsst ihr unter Umständen eine Konfiguration erstellen, eine recht gute Anleitung gibt es im Ubuntu Wiki.

ZTE Surfstick Einrichtung

Bei meinem ZTE4505-E war es recht problemlos, ein einfaches „ifconfig -a“ nach dem Anstecken zeigt mir direkt einen neuen Adapter mit dem Namen wwan0, hier habe ich nichts weiter bezüglich der Einrichtung des Sticks zu tun.

zte-surfstick-ifconfig

zte-stick

Huawei Surfstick Einrichtung

Bei meinem Huawei wurde leider nicht direkt ein Modem eingebunden und ich musst vorher noch usb-modeswitch installieren da die SD-Karte erkannt wurde anstelle des Modem.

Nach einem reboot zeigt lsusb auch hier den Stick sauber an.

o2-surfstick-lsusb

huawei-stick

Internetverbindung einrichten

Um nun eine Internetverbindung über die UMTS bzw. Surfsticks herstellen zu können installieren wir noch das Tool wvdial und ppp

Wir benötigen den Pfad, unter welchem sich das Modem unseres USB Sticks registriert hat, das könnt ihr via dmesg, wie oben zu sehen, einsehen. Falls ihr die Informatione nicht direkt findet steckt euren USB Stick vom Pi ab, wartet einige Sekunden und Steckt ihn dann wieder an, wartet erneut einige Sekunden. Durch Eingabe von dmesg können wir dann nachvollziehen unter welchem Gerät sich das Modem registriert hat.

Als erstes lasse ich wvdailconf laufen um die Standardwerte für meinen Stick ermitteln zu lassen.

Wird editieren nun die Konfiguration unter /etc/wvdial.conf mit dem Editor nano

Ich füge folgendes ans Ende der Datei an, den APN, Benutzername und Passwort müsst ihr ggf. auf den eures Providers anpassen.

Speichert mit STRG+X, Y und Enter. Den APN, also den Zugangspunkt des Mobilfunk Providers, habe ich auf deren Homepage gefunden:

Das Problem ist das bei der Verwendung von wvdail mit einem UMTS-Stick ist das der Raspberry Pi nicht weiß wohin er den die Daten in Richtung Internet versenden soll. Zusätzlich wollen wir ja neben dem UMTS Stick ja eventuell noch ein WLAN oder eine lokale LAN Verbindung aktiv haben.

Um zu erreichen das Daten an Netzwerke (also das Internet), die nicht direkt am Raspberry Pi angeschlossen sind, grundsätzlich via UMTS-Stick versendet bzw. empfangen werden wenn eine Verbindung aufgebaut ist konfigurieren wir folgendes:

Ans Ende der Datei hängen wir folgende Zeilen:

Gespeichert wird wie immer bei Nano mit STRG+X, Y und ENTER.

Internetverbindung Testen

Zum Testen unseres Modem bzw. der Verbindung zum Provider können wir manuell verbinden. Wir rufen wvdail mit dem konfigurierten Dailer auf (bei mir war das [Dialer o2Loop]), also o2loop.

Wenn alles glatt geht wird direkt eine Verbindung aufgebaut.

o2-verbindung

Durch drücken der Enter Taste landet ihr wieder auf der Shell und könnt nun im Internet surfen.

Zum Beenden der Verbindung müssen wir den wvdial Prozess „killen“, um ihn überhaupt zu finden geben wir folgendes auf der Kommandozeile ein

Bei mir findet er mehrere Prozesse, einer ist mein „Grep“ Prozess und die anderen von wvdial. Ich will den „Mutter Prozess“ beenden, also beende ich den an erster Stelle mit der niedrigsten Prozess ID. Die Prozess ID steht an zweiter Stelle, bei mir momentan 2901.

Wir killen also den Prozess 2901 um die Verbindung zu beenden.

Sobald auf der Kommandozeile „–> Disconnecting at Wed Apr 29 19:14:06 2015   …. Exit“ erscheint wurde die Verbindung beendet.

Viel Spaß!

Weitere Pläne

Das Problem beim Datentransfer via UMTS ist, vor allem dann wenn ihr euch mit eurem Pi bewegen wollt (zum Beispiel im Auto), das je nach Funkzelle die Verfügbarkeit von mobilem Internet variieren kann und unter Umständen beim Sprung zwischen zwei Zellen die Internetverbindung verloren geht. Zusätzlich wäre es ganz gut wenn der RasPi sich auch automatisch ins Internet verbindet und dieses via WLAN Stick im Hotspot Modus an Smartphones, Computer, Laptops etc (Quasi als Internet Router) weitergeben kann.

Diese Probleme / Themen werde ich in weiteren Tutorials aufarbeiten und hier zur Verfügung stellen.