Raspberry Pi GSM Modul – Mobiles Internet (LTE, 3G, UMTS)

3. März 2016
13 Comments

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:

Raspberry Pi UMTS Router login

Nachdem du deinen PIN Code eingegeben hast und Enter gedrückt hast, wirst du auf das Hauptmenü weitergeleitet.

Raspberry Pi Sim Card panel

 

Nun navigieren wir zu Einstellungen > Verbindungsaufbau > Profilverwaltung.

Huawei Internet Sticks 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.

Raspberry Pi GSM Modul Profil

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

Raspberry Pi UMTS LTE Mobiles Internet

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.

13 Kommentare

  1. 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!

    Antworten
    • 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 🙁

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

      Antworten
  2. 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.

    Antworten
  3. 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?

    Antworten
  4. @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.

    Antworten
  5. 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

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

      Antworten
  6. 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.

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

    Antworten
    • 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.

      Antworten

Hinterlasse einen Kommentar

Deine Email Adresse wird nicht veröffentlicht.

Blog abonnieren

Abonniere Raspberry Pi Tutorials, um kein Tutorial mehr zu verpassen!