Mit dem Orange PI 2G-IOT per GPRS ins Internet

Bürogebäude von Shenzhen Xunlong Software CO., Limited
Bürogebäude in Shenzhen. Dort ist das Office von Shenzhen Xunlong Software CO., Limited

Der Orange Pi 2G-IOT  ist eine  Open-Source Hardware. Die Technologie wird von der  Shenzhen Xunlong Software CO., Limited unterstützt.
Bedauerlicherweise findet man  außer einem Schaltplan und einer nicht sehr umfangreichen Anleitung zur Inbetriebnahme keine ausführliche Dokumentation zu den verwendeten Komponenten.

Die erste Veröffentlichung zur Verwendung des im Orange PI 2G-IOT eingesetzten GPRS Modems unter Linux befindet sich auf der spanischen Webseite  http://surfero.blogspot.de/2017/04/freedompop-orange-pi-2g-iot.html?m=1.

Dort hat Juan Carlos Barrientos bereits Ende April 2017 beschrieben, wie man erfolgreich eine stabile Internetverbindung  aufbaut. Einige Wochen später, Anfang Juni 2017,  feierte man in China das erfolgreiche Nachstellen dieser Anleitung im Forum von Orange Pi.

Akustikkoppler
Akkustikkoppler | (C) Rama,, CC BY-SA 2.0 fr
Seatusleuchten meines letzten ISDN-Modems in den 90er Jahren
Statusleuchten meines letzten ISDN-Modems in den 90er Jahren.

Die älteren unter uns hatten bereits vor über 30 Jahren vor ähnlichen Aufgaben gestanden. In jener Zeit haben wir uns noch mit Akustikkopplern und Modems über das Telefonnetz mit dem Internet verbunden. Die Steuerung der Kommunikationsfunktionen der Modems  fand damals mit AT-Befehlen statt. Der Begriff „Hayes-Kompatibel“ stand für den heute noch verwendeten  AT-Befehlsatz, der sich seinerzeit noch auf 16 Seiten im Format DIN A6 dokumentieren ließ.  Im Jahr 2010 hatte ich mich erneut mit GPRS Modems befasst. Damals hatte ich eine  Möglichkeit geschaffen, um während meines Urlaubs in Dänemark kostengünstig das mobile Internet zu nutzen.

Für aktuelle Modems kann die ausführliche Dokumentation der möglichen AT Kommandos durchaus aus mehreren hundert Seiten bestehen.
Zur Ansteuerung unseres Orange PI 2G-IOT Modems gibt es leider keine Dokumentation. Man konnte hoffen, dass die üblicherweise auch bei anderen  GSM Modems verwendeten Standard AT Befehle  funktionieren. – Und das tun sie auch. Zumindest die zum Verbindungsaufbau notwendigen sind im Modem implementiert.

Die GPRS-Modem-Verbindung zu ALDI TALK im E-Plus Netz

Zur Verbindung des Orange PI 2G-IOT mit unseren Mobilfunkanbieter ALDI TALK im E-Plus Netz von Telefónica  verwenden wir eine bei Bedarf aufgebaute GPRS Wählverbindung. Der Verbindungsaufbau geschieht mit dem Programm wvdial.

Sinnigerweise heißt das für die Netzwerkverbindung verwendete Protokoll ppp (Point-to-Point Protocol). Nach dem Handshake teilt uns der Provider, wie beim DHCP-Verfahren, vor der Nutzdatenübertragung die uns zugewiesene IP-Adresse, das Gateway und den zu verwendenden Nameserver mit.

Zunächst installieren wir die beiden zum Verbindungsaufbau notwendigen Systemprogramme

root@OrangePi:~# apt install ppp wvdial [ENTER]

Dann editieren wir zuerst die Konfigurationsdatei für wvdial

root@OrangePi:~# nano /etc/wvdial.conf [ENTER]
[Dialer defaults]
Phone = *99#
Stupid Mode = 1
Modem = /dev/modem0
Baud = 460800
Init1 = AT+CFUN=1
Init2 = AT+CGDCONT=1,"IP","internet.eplus.de","0.0.0.0"
Username = "eplus "
Password = "gprs"

Wir haben hierzu die Parameter in Dialer Defaults auf das aus unserer Erfahrung minimal notwendige reduziert. Anschließend wird der wvdial peer unter ppp konfiguriert:

root@OrangePi:~# nano /etc/ppp/peers/wvdial [ENTER]
auth
name wvdial
defaultroute
replacedefaultroute

Unsere  Internetverbindung soll auch  bei Nichtverwendung, wenn Tux sich ausruht,  gehalten werden. Deshalb kommentieren wir in der zuständigen Configdatei die Überwachung des LCP Echos mit einem # am Anfang der Zeile aus.

root@OrangePi:~# nano /etc/ppp/peers/wvdial [ENTER]
# If this option is given, pppd will presume the peer to be dead if n
# LCP echo-requests are sent without receiving a valid LCP echo-reply.
# If this happens, pppd will terminate the connection. Use of this
# option requires a non-zero value for the lcp-echo-interval parameter.
# This option can be used to enable pppd to terminate after the physical
# connection has been broken (e.g., the modem has hung up) in
# situations where no hardware modem control lines are available.
#lcp-echo-failure 4

Nun starten wir wvdial

root@OrangePi:~# wvdial [ENTER]
--> WvDial: Internet dialer version 1.61
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: AT+CFUN=1
AT+CFUN=1
OK
--> Sending: AT+CGDCONT=1,"IP","internet.eplus.de","0.0.0.0"
AT+CGDCONT=1,"IP","internet.eplus.de","0.0.0.0"
OK
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
CONNECT
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Fri Jun 16 18:52:57 2017
--> Pid of pppd: 6938
--> Using interface ppp0
--> pppd: �w[10][01] �[10][01]�w[10][01]
--> pppd: �w[10][01] �[10][01]�w[10][01]
--> pppd: �w[10][01] �[10][01]�w[10][01]
--> pppd: �w[10][01] �[10][01]�w[10][01]
--> local  IP address 10.239.155.223
--> pppd: �w[10][01] �[10][01]�w[10][01]
--> remote IP address 192.200.1.21
--> pppd: �w[10][01] �[10][01]�w[10][01]
--> primary   DNS address 62.109.121.17
--> pppd: �w[10][01] �[10][01]�w[10][01]

Auf einem weiteren Terminal können wir eine neue Netzwerverbindung ppp0 sehen:

root@OrangePi:~# ifconfig [ENTER]
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:2 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:190 (190.0 B) TX bytes:190 (190.0 B)

ppp0 Link encap:Point-to-Point Protocol
inet addr:10.118.216.200 P-t-P:192.200.1.21 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:4 errors:1 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:58 (58.0 B) TX bytes:250 (250.0 B)

wlan0 Link encap:Ethernet HWaddr 5e:c4:ab:08:00:ff
inet addr:192.168.11.85 Bcast:192.168.11.255 Mask:255.255.255.0
inet6 addr: 2003:d0:7bc2:bca6:5cc4:abff:fe08:ff/64 Scope:Global
inet6 addr: fe80::5cc4:abff:fe08:ff/64 Scope:Link
inet6 addr: 2003:d0:7bc2:bce5:5cc4:abff:fe08:ff/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7809 errors:0 dropped:0 overruns:0 frame:0
TX packets:4028 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:971002 (971.0 KB) TX bytes:524713 (524.7 KB)

Auch die Default Route wurde automatisch geändet:

root@OrangePi:~# route [ENTER]
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default * 0.0.0.0 U 0 0 0 ppp0
192.168.11.0 * 255.255.255.0 U 0 0 0 wlan0
192.200.1.21 * 255.255.255.255 UH 0 0 0 ppp0

Mit einem Ping Test auf einen externen Server prüfen wir die Funktion der Verbindung

root@OrangePi:~# ping hobbykompetenz.de [ENTER]
PING hobbykompetenz.de (85.214.52.84) 56(84) bytes of data.
64 bytes from server1.hunscher.net (85.214.52.84): icmp_seq=1 ttl=51 time=342 ms
64 bytes from server1.hunscher.net (85.214.52.84): icmp_seq=2 ttl=51 time=334 ms
64 bytes from server1.hunscher.net (85.214.52.84): icmp_seq=3 ttl=51 time=323 ms

Mit traceroute kann man den Weg der Datenpakete prüfen:

root@OrangePi:~# traceroute www.orangepi.org [ENTER]
traceroute to www.orangepi.org (182.92.236.130), 30 hops max, 60 byte packets
 1  * * *
 2  10.81.85.5 (10.81.85.5)  373.032 ms  435.664 ms  475.555 ms
 3  10.81.85.22 (10.81.85.22)  493.851 ms  516.894 ms  551.660 ms
 4  10.81.121.145 (10.81.121.145)  614.651 ms  673.146 ms  756.151 ms
 5  195.71.45.209 (195.71.45.209)  816.585 ms  850.759 ms  936.312 ms
 6  ae1-0.0003.prrx.02.fra.de.net.telefonica.de (62.53.26.111)  954.102 ms  623.911 ms  640.537 ms
 7  176.52.252.30 (176.52.252.30)  639.574 ms  641.914 ms  720.169 ms
 8  5.53.4.28 (5.53.4.28)  703.493 ms  700.588 ms  717.911 ms
 9  219.158.42.238 (219.158.42.238)  660.373 ms  678.356 ms  661.364 ms
10  219.158.102.225 (219.158.102.225)  855.613 ms  881.282 ms  1023.516 ms
11  219.158.98.145 (219.158.98.145)  944.059 ms  904.980 ms  884.377 ms
12  219.158.18.65 (219.158.18.65)  782.894 ms  772.288 ms *
13  124.65.194.18 (124.65.194.18)  703.309 ms 124.65.194.22 (124.65.194.22)  689.049 ms  719.449 ms
14  * * *
15  * * *
16  123.56.34.22 (123.56.34.22)  809.132 ms * *
17  * 119.38.213.141 (119.38.213.141)  846.439 ms 119.38.213.153 (119.38.213.153)  778.869 ms
18  * 123.56.34.66 (123.56.34.66)  657.522 ms 106.11.130.145 (106.11.130.145)  659.606 ms
19  * * *
20  * * *
21  182.92.236.130 (182.92.236.130)  717.409 ms  774.891 ms  787.286 ms

4 Antworten auf „Mit dem Orange PI 2G-IOT per GPRS ins Internet“

  1. So weit so gut. Aber die Verbindung bricht nach ziemlich genau 120s ab. Und kommt auch erst nach manuellem Neustart wieder hoch. Habt ihr dieses Phänomen auch mal beobachtet?

  2. Hallo Reinhard, vielen dank fuer die Anleitugen, super gemacht. Ich wuerde gern ueber die IMEI nummer genauer wissen. Warum solltest du nicht dies konfigurieren? Ich glaub mein Carrier akzeptiert es nicht also kein IMEI zu haben. Wie soll ich es machen? Einfach im wvdial.conf hinzufuegen?

    Danke!

    1. You can adjust the IMEI Number on the modem „factory partition“ with the Command AT +EGMR

      AT +ÉGMR=2,7 reads the actuell value from modem
      AT +EGMR=1,7,“123456789012345″ write the new value in the memory (remove 123456789012345 with your IMEI)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.