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)
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:
- Huawei E173 -> Ab 27€
- Huawei E1820 -> Ab 29€
- Huawei E353 -> Ab 29€ (21MBit )
- Huawei E169, E620, E800 -> Ab 24€
- Huawei E303 -> Ab 27€
- ZTE K4505-Z
- …. uvm
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).
1 |
lsusb |
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.
1 |
ifconfig -a |
1 |
dmesg |
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.
1 |
sudo apt-get install usb-modeswitch |
Nach einem reboot zeigt lsusb auch hier den Stick sauber an.
1 |
dmesg |
Internetverbindung einrichten
Um nun eine Internetverbindung über die UMTS bzw. Surfsticks herstellen zu können installieren wir noch das Tool wvdial und ppp
1 |
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.
1 |
sudo wvdialconf /etc/wvdial.conf |
Wird editieren nun die Konfiguration unter /etc/wvdial.conf mit dem Editor nano
1 |
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.
1 2 3 4 5 6 7 8 9 10 11 |
[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:
1 2 3 4 5 |
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:
1 |
sudo nano /etc/ppp/peers/wvdial |
Ans Ende der Datei hängen wir folgende Zeilen:
1 2 |
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.
1 |
sudo wvdial o2loop & |
Wenn alles glatt geht wird direkt eine Verbindung aufgebaut.
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
1 |
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.
1 2 3 4 5 |
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 2901 um die Verbindung zu beenden.
1 |
sudo kill 2901 |
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.