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:

  • Einen Raspberry Pi 2 mit Netzteil und SD-Karte sowie einem LAN-Kabel zu Ersteinrichtung
  • Einen ZTE k4505-z und einen Huawei e1550 USB-Surfstick
  • Das aktuelle Raspbian Image
  • Eine kostenlose O2 Loop Simkarte, 99ct am Tag für 30MB Fullspeed, danach gedrosselt (reicht für mich und 1€ Startguthaben enthalten)

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).

lsusb

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.

ifconfig -a

zte-surfstick-ifconfig

dmesg

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.

sudo apt-get install usb-modeswitch

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

o2-surfstick-lsusb

dmesg

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

sudo apt-get install ppp wvdial

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.

sudo wvdialconf /etc/wvdial.conf

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

sudo nano /etc/wvdial.conf

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

[Dialer o2Loop]
Modem = /dev/ttyUSB0
Auto DNS = on
Init3 = AT+CGDCONT=1,"IP","pinternet.interkom.de"
Stupid mode = off
Phone = *99#
ISDN = 0
Auto Reconnect = on
Baud = 460800
Username="blank"
Password="blank"

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

Profilname:	o2 Internet Prepaid
APN (Zugangspunkt):	pinternet.interkom.de
Benutzername:	nicht notwendig
Passwort:	nicht notwendig

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:

sudo nano /etc/ppp/peers/wvdial

Ans Ende der Datei hängen wir folgende Zeilen:

defaultroute
replacedefaultroute

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.

sudo wvdial 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

ps auxwww| egrep wvdial

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.

root      2901  0.0  0.2   4592  2500 pts/0    S    19:12   0:00 sudo wvdial o2loop
root      2902  0.1  0.4   9124  4068 pts/0    S    19:12   0:00 wvdial o2loop
root      2909  0.2  0.2   3352  1996 pts/0    S    19:13   0:00 /usr/sbin/pppd 460800 modem crtscts ....
pi        2943  0.0  0.1   3548  1724 pts/0    S+   19:13   0:00 egrep --color=auto wvdial

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

sudo kill 2715

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.

Weitere Raspberry Pi Projekte

  • Tor Gateway – Raspberry Pi zum anonymen surfen verwenden – AnoPiTor Gateway – Raspberry Pi zum anonymen surfen verwenden – AnoPi
  • Ambi-TV – Ambilight mit dem Raspberry Pi nachrüstenAmbi-TV – Ambilight mit dem Raspberry Pi nachrüsten
  • Raspberry Pi Kernel kompilieren (Cross-Compiler)Raspberry Pi Kernel kompilieren (Cross-Compiler)
  • Lohnt sich ein Raspberry Pi 2 Starterkit?Lohnt sich ein Raspberry Pi 2 Starterkit?