Der Raspberry Pi kann sehr schnell und einfach über das lokale Netzwerk mit dem Internet verbunden werden. Doch was, wenn man auch außerhalb des eigenen WLAN eine mobile Internetverbindung braucht? Dazu gibt es ein GSM Module / Surfsticks (meist von Huawei), welche über USB angeschlossen werden können. Manchmal gibt es so ein GSM Modul, welches 3G, UMTS und manchmal sogar LTE unterstützt, gratis zu einem Handyvertrag mit Internetoption.
In diesem Tutorial wird gezeigt, wie eine Internetverbindung am Raspberry Pi mittels GSM Modulen aufgebaut werden kann.
Zubehör
Die Vorgehensweise ist bei den allermeisten Huawei Internet Sticks die selbe, allerdings habe ich es nur mit zwei Modellen getestet:
- Huawei E303 Stick, welcher sehr verbreitet ist.
- Huawei E3531s Stick, welchen ich zu einem Vertrag mit Datenvolumen dazu bekommen habe.
- darüber hinaus gibt es einige LTE Surfsticks, welche bei einem entsprechenden Vertrag genutzt werden können. Mit den beiden GSM Sticks, die ich getestet habe, ist die maximale Verbindung HSDPA+, was jedoch für gewöhnlich unterwegs auch ausreicht.
Außerdem brauchst du für den Raspberry Pi eine Sim Karte, am besten mit einer Flatrate. Je nach Bedarf sollte der Traffic natürlich nicht zu gering sein.
Sobald dein Raspberry Pi erstmal mit dem Internet verbunden ist, ist es auch möglich online SMS zu empfangen und den Pi damit fernzusteuern (ähnlich zur Telegram-App).
Surfstick am Raspberry Pi einrichten
Normalerweise wird der UMTS Surfstick nicht automatisch am Pi erkannt. Um das zu überprüfen, verbinden wir das GSM Modul und rufen folgendes im Terminal auf. Die Simkarte solltest du in den Stick einfügen, bevor du ihn mit dem Raspberry Pi verbindest.
lsusb
Sollte hier nicht etwas wie Bus 001 Device 008: ID 12d1:1f01 Huawei Technologies Co., Ltd.
stehen, wurde das GSM Modul am Raspberry Pi noch nicht erkannt. Wir müssen also entsprechende Treiber installieren.
Falls der Stick bei dir bereits erkannt wird, kannst du diesen Schritt überspringen.
sudo apt-get install usb-modeswitch --yes
Führen wir nun erneut lsusb
aus, sollte der Raspberry Pi das GSM Modul erkannt haben. Falls nicht, entferne den Stick aus dem USB Anschluss und verbinde ihn erneut. Eine Zeile sollte folgendes anzeigen:
Bus 001 Device 008: ID 12d1:1f01 Huawei Technologies Co., Ltd.
Nachdem der Internet Stick nun erkannt wird, muss der Pi noch neu gestartet werden.
sudo reboot
Nun können wir uns alle Netzwerk Schnittstellen ansehen, wobei das Gerät usb0
erkannt worden sein (bei manchen heißt es auch wwan0
oder eth1
).
ifconfig -a
Das führt zu folgendem Output (ggf. abweichend, falls kein WLAN Adapter / Ethernet angeschlossen ist):
eth0 Link encap:Ethernet HWaddr b8:27:eb:28:72:f7 inet addr:192.168.1.77 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:154 errors:0 dropped:0 overruns:0 frame:0 TX packets:127 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:14085 (13.7 KiB) TX bytes:19919 (19.4 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1104 (1.0 KiB) TX bytes:1104 (1.0 KiB) wlan0 Link encap:Ethernet HWaddr 7c:dd:90:5f:c9:1f UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) usb0 Link encap:Ethernet HWaddr b6:c6:c7:f6:25:d6 inet addr:192.168.8.100 Bcast:192.168.8.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:49 errors:0 dropped:0 overruns:0 frame:0 TX packets:21 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:20069 (19.5 KiB) TX bytes:3887 (3.7 KiB)
Nun müssen wir auf den Browser des Raspberry Pi’s zugreifen und die Seite zum Eingeben des PIN Codes besuchen. Falls du per Konsole verbunden bist, kannst du entweder startx
eingeben, oder dich per Remotedesktopverbindung einloggen.
Im Browser des Raspberry Pi rufen wir die Adresse 192.168.1.1 auf. Falls du noch mit dem lokalen Netzwerk verbunden bist, kann es sein, dass du nur das Router Panel siehst und nicht den Zugang zum USB Surfstick. Am einfachsten ist es (falls du direkt auf dem Pi arbeitest, ohne RDV oder VNC), kurz Ethernetkabel bzw. WLAN Stick zu trennen und die Seite erneut aufzurufen. Bei meinem Stick wurde ich auf die Adresse 192.168.8.1 weitergeleitet, was auch bei bestehender Netzwerkverbindung funktionierte. Vielleicht klappt es bei dir ja auch, einen Versuch ist es wert – ansonsten eben kurz die Netzwerkverbindung trennen.
Je nach Surfstick Anbieter bekommst du eine solche Seite zu Gesicht:
Nachdem du deinen PIN Code eingegeben hast und Enter gedrückt hast, wirst du auf das Hauptmenü weitergeleitet.
Nun navigieren wir zu Einstellungen > Verbindungsaufbau > Profilverwaltung.
Daraufhin erstellen wir ein neues Profil. Der Profilname ist egal (z.B. „raspi“), Benutzername und Passwort lassen wir frei und als APN wählen wir „Dynamisch“ aus. Anschließend wird gespeichert.
Nachdem gespeichert wurde navigieren wir unter Verbindungsaufbau > Mobile Verbindung. Falls die Verbindung hier nicht aktiviert ist, aktivieren wir sie. Bei mir war es bereits standardmäßig aktiviert. Falls du möchtest, kannst du hier auch Datenroaming aktivieren (was höhere Kosten verursachen kann).
Du kannst nun irgendeine Internetseite wie Google (am besten natürlich tutorials-raspberrypi.de 😉 ) aufrufen, um zu überprüfen, dass die Verbindung funktioniert. Alternativ kannst du auch einfach eine Seite wie google.de anpingen und schauen, ob es geklappt hat.
GSM Modul am Raspberry Pi automatisch erkennen
So weit, so gut: Um unserere Schnittstelle automatisch beim Neustart laden zu lassen, müssen wir eine Datei des Betriebssystems bearbeiten, da ansonsten die Schritte von oben jedes Mal ausgeführt werden müssten.
sudo nano /etc/network/interfaces
Diese Datei sollte bereits einige Zeilen enthalten. Unter iface eth0 inet manual
fügen wir folgende beiden Zeilen ein (falls wwan0
bzw. eth1
statt usb0
, bitte anpassen):
allow-hotplug usb0 iface usb0 inet dhcp
Mit STRG+O und STRG+X kannst du die Datei speichern und in die Konsole zurückkehren.
Beim nächsten Neustart sollte die Verbindung nun automatisch hergestellt werden, falls der GSM Surfstick mit aktiver Sim Karte per USB angeschlossen ist.
Falls du wieder per WLAN / Ethernet verbunden sein möchtest, brauchst du diese beiden Zeilen einfach wieder raus nehmen (löschen oder mit einer Raute # auskommentieren).
Raspberry Pi als 3G/UMTS Router / Access Point ?
Vielleicht wirst du dir die Frage gestellt haben, ob man mit dem nun eingerichteten mobilen Internet auch einen Raspberry Pi WLAN Hotspot einrichten kann. Die Antwort ist Ja, das funktioniert! Wie auch bei einer Ethernet / LAN Verbindung kannst du einen Raspberry Pi Access Point erstellen. Wie das funktioniert wird auf eLinux erklärt.
32 Kommentare
Moin.
Super Tutorial und eröffnet eine Menge Möglichkeiten für den PI. Ich hätte da eber noch eine Frage. Gäbe es auch eine Möglichkeit den Stick ohne grafische Oberfläche, rein über die Konsole zu aktivieren (ich beziehe mich auf den Part, der im Browser ausgeführt werden muss)? Für reine Service-PIs wäre das mittels SSH deutlich komfortabler…
Vielen Dank!
Gute Frage. Ich denke das wird auf den Stick und ggf. auch auf den Anbieter ankommen: Meiner ist bspw. von O2 und bisher habe ich keine Möglichkeit gesehen ihn „einfach“ per Konsole einzurichten. Allerdings habe ich auch nicht wirklich nach Packages gesucht – ich nehme an es wird bestimmt eine Möglichkeit/entsprechendes Packag geben, nur kann ich dir leider im Moment nicht sagen welches 🙁
Für die Konfiguration per Browser braucht es keine zusätzliche Software auf dem Pi.
Möglichkeit 1: Surfstick am lokalen Laptop / Workstation einstecken und konfigurieren, danach zurück in den Pi.
Möglichkeit 2: Laptop-Browser und SSH mit Port Forwarding. Man loggt sich per SSH auf dem Pi ein baut dabei eine Forwarding-Verbindung zum Pi ein. Aus dem Stehgreif: „ssh -L 8080:192.168.8.1:80 pi@myraspberry“ leitet Verbindungen zu localhost:8080 weiter zum Pi und von dort an 192.168.8.1:80 (also der Weboberfläche des Surfsticks, der im Pi steckt).
Update für alle die aktuell auf die Seite kommen. Da ich aktuell einen Windows PC nutze konnte ich die ssh Umleitung nicht ohne weiteres nutzen. Daher habe ich unter Windows cmd einfach „route add 192.168.8.0 mask 255.255.255.0 [IP Addr Raspberry]“ eingegeben. Ferner wurde mein Huawei USB Stick sofort als eth1 auf dem pi erkannt. Dort habe ich dann einfach „sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE“ eingeben und konnte vom Windows PC direkt auf die Website http://192.168.8.1 zugreifen.
Raspberry 1 mit Jessie Linux version 4.4.21+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611) ) #911 Thu Sep 15 14:17:52 BST 2016
mit Huawei E303 Version CH2E303SM hat folgender Artikel geholfen:
http://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?f=4&t=1734
Da usb_modswitch in meiner Version Version 2.2.0 den Stick nicht erkannt hatte musste ich den switch manuel per udev Regel hinzufügen:
Man erstellt mit root rechten die Datei „/etc/udev/rules.d/70-usb-modeswitch.rules“
und schreibt folgende 3 Zeilen rein:
# eigene udev-Regeln für Huawei303-CH2E303SM-Stick
ACTION==“add“, SUBSYSTEM==“usb“, ATTRS{idVendor}==“12d1″, ATTRS{idProduct}==“1f01″, RUN+=“/usr/sbin/usb_modeswitch -v 12d1 -p 1f01 -M ‚55534243123456780000000000000011060000000000000000000000000000‘“
ACTION==“add“, SUBSYSTEM==“usb“, ATTRS{idVendor}==“12d1″, ATTRS{idProduct}==“1001″, RUN+=“/bin/bash -c ‚modprobe option && echo 12d1 1001 > /sys/bus/usb-serial/drivers/option1/new_id'“
die das ganze automatisiert wenn der Stick eingesteckt wird.
Jetzt den Stick einstecken und er sollte erkannt werden. Der Befehl „lsusb“ sollte dann uA in etwa folgende Zeile enthalten:
Bus 001 Device 007: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Wichtig ist, dass der Text jetzt „Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem“ und nicht nur „Huawei Technologies Co., Ltd.“ enthält.
Wie sieht es mit der Sicherheit aus? Firewall usw.?
LG uwe
Das ist nur die Verbindung zum Internet. Eine Firewall (Software) müsstest du separat einrichten.
LG, Felix
Hi. Habe das heute hier auch probiert. Der Stick wird erkannt per lsusb und sauber aufgelistet, aber unter ifconfig -a erscheint dennoch nur lo, eth0 und wlan0, kein USB. Stick ungeeignet?
lsusb:
Bus 001 Device 005: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Aktuelle JESSIE Lite installiert mit Kodi.
Ideen?
@Sirko: Bist Du sicher, dass der Stick richtig erkannt wird?
Die UMTS Sticks sind CDROM und Modem in einem … Ich hatte auch Probleme und habe folgendes geprüft:
1. Stick entfernen
2. usb-modeswitch entfernen
sudo apt-get remove usb-modeswitch
3. UMTS Stick verbinden
4. usb Devices anzeigen
lsusb
angezeigt wird z.b. „Bus 001 Device 015: ID 12d1:1446 Huawei Technologie … “ ( ID xxxx:1446 bedeutet bei meinem Stick Huawei1820 Huawei wird hier als Storrage angezeigt
5. UMTS Stick entfernen
6. usb-modeswitch installieren
sudo apt-get install usb-modeswitch
7. UMTS Stick verbinden
8. usb Devices anzeigen
lsusb
Bus 001 Device 015: ID 12d1:14ac Huawei Technologie … ( ID xxxx:14ac bedeutet hier, der 1820 wird als Modem erkannt.
Hallo,
habe alles versucht und nichts funktioniert. Benutze einen Huawei E3372.
Hat jemand noch einen Tipp für mich?
Internetzugriff funktioniert, Modem nicht.
Ganz wichtig fr mich ist, dass ich SMS versenden kann.
LG
bfb
Auf den SMS Versand wird in diesem Tutorial nicht eingegangen. Meiner Erfahrung eignen sich nicht alle Sticks dafür am Raspberry Pi (auch wenn damit geworben wird).
Ich denke, die Anleitung funktioniert nur für whezzy und älter. Wäre super, wenn die Anleitung für Stretch aktualisiert werden könnte. Ich habe schon etwas gesucht. Im Web finde ich keine Schritt-für-Schrittanleitung für stretch.
Hallo,
ich überlege bei meiner Anwendung direkt die Daten in eine Datenbank in meine SQL Datenbank auf meinem externen Server (Strato) zu schreiben, Dazu würde ich normalerweise mein Wlan nutzen, wenn dieses aber ausfällt sollt automatisch das mobile Internet genutzt werden. Hälst du das für möglich?
Gibt es andere Möglichkeiten, falls Internet offline ist, das der Raspberry die Daten zwischenspeichert und sobald online dann in die Datenbank schreibt?
Danke
Du kannst auch einen try..except Block um deine Datenbankverbindung stellen und falls sie fehlschlägt (keine Verbindung) entweder per Stick mit dem Internet verbinden oder aber die Daten lokal zwischenspeichern. Dann müsstest du bei der nächsten Anfrage an den Server checken, ob lokale Daten vorhanden sind und diese dann erst übertragen.
hallo, ich baue gerade einen nano pi2 handheld und überlege einen umts stick „nackig“ zu machen und das ganze per kabel direkt an den usb port zu löten. sollte kein problem sein oder?
Sollte kein Problem sein.
Hallo,
bei mir wird leider das Kommando lusb nicht gefunden. Muss dafür noch ein Paket installiert werden?
Das Kommando lautet „lsusb“.
Ich überlege mir dem neuen Telekom-Tarif MagentaMobil XL zu zulegen. Damit hätte ich endlich Internet zum Fernseh schaun auf meinem Campingplatz.
Einen Router darf ich damit nicht betreiben, einen Surfstick schon.
Mein Traum wäre ein Raspberry mit Surfstick für LTE mit bis zu 300 Mbit/s im Download und Upload bis zu 50 Mbit/s. Und um das Signal zum Fernsehen oder Smartphone zu bekommen, benötigt der Raspberry ein schnelles WLan.
Kennt jemand ein entsprechendes Modul?
Die Raten werden in der Praxis kaum erreicht. Schau am besten, ob dein gewünschtes Modell schon einmal unter Linux verwendet wurde / es Treiber gibt, dann bist du auf der sicheren Seite.
Vielen Dank für die schnelle Antwort!
Habe ich auch schon gelesen, daher reicht locker 150Mbit/s also LTE Cat 6 (ja, habe in der zwischenzeit schon etwas gelernt 😉
Das WLan des Raspberry ist gar nicht so schnell. Da muss ich mir auch noch etwas überlegen…
Ich benutze zur Zeit das Produkt hier : https://www.roundsolutions.com/de/10644-aarlogic-raspberry-pi-erweiterungskarte-mobilfunk-4gnb1m13g2ggps . Es funktioniert einwandfrei und es ist mega einfach damit zu arbeiten. Für mich hat es sich gelohnt, da es nicht nur 3G hat, sondern auch 2G und 4G aufsätze hat. Also ich kann es euch echt empfehlen. 🙂
aber ganz schön teuer im gegensatz zu zwei usb geräten, ich will nicht billig, aber die usb teile kann man auch noch an anderen geräten verwenden.
Kann man das auch mit dem Rpi 3+ CM verbinden?
Mir wurde empfohlen, Pro – 2G & 4G Verstärker zu kaufen. https://www.gsmrepeaters.de/produkt/pro-2g-4g-verstarker-300-m2/
Würdest du es weiterempfehlen?
was willst du damit machen?
Hallo, ich habe vieles probiert, ich komme aber nicht ins Internet mit dem USB Stick.
Hier ein paar Infos
HUWAEI 3531, funktioniert an meinem Laptop unter Windows
lsusb bringt für den Stick
Bus 001 Device 006: ID 12d1:1506 Huawei Technologies Co., Ltd. Modem/Networkcard
-> wird als Modem erkannt
ifconfig -a bringt für den Stick
wwan0: flags=4163 mtu 1500
inet 169.254.62.145 netmask 255.255.0.0 broadcast 169.254.255.255
inet6 fe80::101d:ab41:2b8e:c891 prefixlen 64 scopeid 0x20
ether 00:1e:10:1f:00:00 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 600 bytes 30866 (30.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Ich habe RaspAP für einen mobilen Hotspot laufen.
Das zeigt bei Networking „no route to the internet found“
Wenn ich allerdings ein LAN Kabel meiner Fritzbox anstecke kommt dort eth0 als Internetverbindung und ich komme ins Internet.
Mir scheint ich brauche einen route für den/zum USB Stick.
Ich habe allerdings hierzu keine Erfahrung mit den ganzen Befehlen.
Irgendjemand eine Idee, kann mir bitte jemand helfen.
Vielen Dank, Michael
Hallo
Ich habe eine E173 stick. Er wird als wwan0 erkannt. Ich kann jedoch nicht die Adresse 192.168.1.1 aufrufen. Auch nicht bei getrennter verbindung. Irgendwelche Tipps?
Danke!
Hallo,
vielen Dank für das Tutorial!!!
Bei mir hat es mit Stick Huawei 3531 an einem Raspberry Pi 3 funktioniert.
Aber, kleine Ergänzung: Obwohl der Stick mittels lsusb gleich angezeigt wurde, war es notwendig, usb-modeswitch zu installieren. Der Stick wurde nämlich zunächst read-only eingehängt, und damit war offenbar nichts ausführbar. Die install-Prozedur, die auf dem Stick für Linux vorhanden war, war übrigens nicht nötig.
Das ist schonmal nicht schlecht. Aber ich bräuchte eine Anleitung, wo der Raspi als Router inklusive Firewall, das Wlan über einen Adapter holend, als auch anderen Adapter sendet betrieben werden kann. Darüber hinaus per 4G/LTE holend, per Wlan sendend. 4G/LTE aus diversen Gründen mit 2 Simkarten, was wohl auch 2 Sticks bedeutet.
Szenario ist der Betrieb im Wohnmobil.
Hab dazu leider rein nichts gefunden.
Ist es möglich mehre UMTS Sticks mit unterschieden Anbieter einzutrichtern wo er auch automatisch umstellt auf das Bessere netz wie z.b o2,Telekom, oder auch Vodafone.
wenn es dafür schon was gibt dann könnt ihr es ja mal schreiben.