Habe basierend auf folgender Anleitung versucht ein Huawei E173u-2 Surfstick unter ArchLinux auf dem RaspberryPi zum laufen zu bringen und hatte diverse Probleme, Zugriff aufs Internet zu bekommen. Habs dann mit einigen Modifikationen aber letztendlich geschafft:
Internetzugang mit Surfstick einrichten (ohne LAN)
Nachdem der Raspi bei mir gelandet ist, wollte ich einen Internetzugang mit dem USB Surfstick haben.
Leider ließ sich das erstmal nur mit bestehender LAN Verbindung verwirklichen.
Selbst intensive Suche hat mich zu keinem Ergebnis geführt. Vielmehr bin ich auf viele Threads gestoßen, die das gleiche Problem hatten wie ich.
Ich habe ja gehofft, dass mir jemand weiterhelfen kann und habe diese Frage hier im Forum gestellt:
Huawei E1750 HSPA USB Modem am Raspberry…
Da die Lösung nicht gerade naheliegend ist, soll der folgende Beitrag dazu helfen anderen die aufwändige Fehlersuche zu ersparen.
Zur installation diverser Software ist zunächst einmal Zugang zum Internet über die Ethernet Schnittstelle vonnöten.
Weil ArchLinux mit der Paketverwaltung pacman arbeitet, ist die Anleitung im obengenannten Link etwas abzuwandeln.
Folgende Pakete sind zu installieren (habe Archlinux ohne graphische Benutzeroberfläche laufen - die Installation erfolgte also von der Konsole):
als root (es werden jeweils automatisch die abhängigen Pakete mitinstalliert):
pacman -S libusb
pacman -S libpcap
pacman -S libusb-compat
pacman -S ppp
pacman -S gcc
Wie folgt das Modem Initialisierungsscript herunterladen, entpacken und installieren:
cd /usr/local/bin (in diesem Verzeichnis liegen normalerweise lokale Programme und Scripts)
wget http://raspberry-at-home.com/files/sakis3g.tar.gz (Sakis 3g aus dem Internet ziehen)
tar -xvzf sakis3g.tar.gz (dekomprimieren und entpacken )
rm sakis3g.tar.gz (das nicht mehr benötigte Archiv löschen)
chmod 744 sakis3g (Zugriffsrechte festlegen)
nano /etc/sakis3g.conf (die Konfigurationsdatei für sakis3g erzeugen - vi als editor geht natürlich auch)
Folgendes im editor eintragen:
SIM_PIN="XXXX" <- hier steht in Wirklicheit die gültige PIN
APN="internet.eplus.de" (wurde die Tagesflat von Alditalk gebucht, sollte hier tagesflat.eplus.de stehen, sonst saugt eplus relativ schnell den Restbetrag der Prepaid Karte leer)
APN_USER="eplus"
APN_PASS="gprs"
PPPD_OPTIONS="10.0.0.1:10.0.0.2 modem crtscts -detach defaultroute dump noipdefault usepeerdns usehostname ktune logfd 2 noauth lock maxfail 3 ipcp-accept-local ipcp-accept-remote noaccomp nobsdcomp noccp nopcomp novj novjccomp debug"
(geändert 24.05.2014 laranja - Es hatte sich ein Doppelpunkt im Block oben zwischen modem und crtscts eingeschlichen - sorry ! )
Nun sakis3g neu kompilieren:
sakis3g recompile (dauert ein wenig)
mit dem Internet verbinden:
sakis3g connect
Internetverbindung trennen
sakis3g disconnect
Weitere Optionen mit sakis3g --help
Hintergrund - oder auf welche Schwierigkeiten ich bei der Ausarbeitung stiess.
Nacdem ich die im obengenannten Forumsbeitrag aufgezählten Pakete installiert hatte, musste ich zusätzlich noch gcc (gnu c++ compiler) installieren, weil Archlinux in der Standardversion keinen c++ Compiler mitbringt. Zunächst verband sich nach der Installation der Stick relativ schnell mit eplus und die blaue LED am Stick leuchtete permanent. Allerdings konnte ich keine Rechner im Internet ansprechen - weder ping noch tcp protokolle funktionierten. Nach der Installation von Traceroute stellte ich allerdings verwundert fest, dass offensichtlich Zugriff auf DNS bestand, weil traceroute die IP des Zielhosts anzeigte. Der Aufruf von "route" zeigte 10.64.64.64 als defaultroute. Dieser host ließ sich aber nicht anpingen. Ein von traceroute als erster hop angegebener Host sendete aber ping pakete zurück. Nach langer Fehlersuche verdichtete sich das Problem auf ppp, welches nach erfolgreicher Verbindung mit dem Provider, die IP Verbindung mit dem Zielhost aushandelt. Es wurde zwar die Rechneradresse des PI vom Zielhost übertragen, aber die Aushandlung des Remote Peer blieb offen (Meldung "Could not determine remote IP address: defaulting to 10.64.64.64") Normalerweise sollte das keine Rolle spielen, aber ich konnte das ganze erst zum laufen bekommen, als ich eine beliebige Wunschadresse als Zielhost vorgab (nur eben nicht 0.0.0.0 wie beider Anfrage gesendet):
Kein Erfolg hiermit:
############ Auszug aus dem Logfile, das ich mit "sakis3g reconnect --debug 2>/tmp/log_sakis" erzeugte #############
CHAP authentication succeeded
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
rcvd [IPCP ConfNak id=0x1 <ms-dns1 10.11.12.13> <ms-dns2 10.11.12.14> <ms-wins 10.11.12.13> <ms-wins 10.11.12.14>]
sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns2 10.11.12.14> <ms-wins 10.11.12.13> <ms-wins 10.11.12.14>]
rcvd [IPCP ConfNak id=0x2 <ms-dns1 10.11.12.13> <ms-dns2 10.11.12.14> <ms-wins 10.11.12.13> <ms-wins 10.11.12.14>]
sent [IPCP ConfReq id=0x3 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns2 10.11.12.14> <ms-wins 10.11.12.13> <ms-wins 10.11.12.14>]
rcvd [IPCP ConfReq id=0x0]
sent [IPCP ConfNak id=0x0 <addr 0.0.0.0>]
rcvd [IPCP ConfRej id=0x3 <ms-wins 10.11.12.13> <ms-wins 10.11.12.14>]
sent [IPCP ConfReq id=0x4 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns2 10.11.12.14>]
rcvd [IPCP ConfReq id=0x1]
sent [IPCP ConfAck id=0x1]
rcvd [IPCP ConfNak id=0x4 <addr 10.128.134.237> <ms-dns1 212.23.115.148> <ms-dns2 212.23.115.132>]
sent [IPCP ConfReq id=0x5 <addr 10.128.134.237> <ms-dns1 212.23.115.148> <ms-dns2 212.23.115.132>]
rcvd [IPCP ConfAck id=0x5 <addr 10.128.134.237> <ms-dns1 212.23.115.148> <ms-dns2 212.23.115.132>]
Could not determine remote IP address: defaulting to 10.64.64.64
not replacing existing default route via 192.168.0.1
Cannot determine ethernet address for proxy ARP
local IP address 10.128.134.237
remote IP address 10.64.64.64
Der Schlüssel zum Erfolg war die Vorgabe irgendeiner IP (ziemlich egal welche) als Wunschzieladresse -siehe den rot markierten Bereich:
############ Auszug aus dem Logfile, das ich mit "sakis3g reconnect --debug 2>/tmp/log_sakis" erzeugte #############
CHAP authentication succeeded
sent [IPCP ConfReq id=0x1 <addr 10.0.0.1> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
rcvd [IPCP ConfNak id=0x1 <ms-dns1 10.11.12.13> <ms-dns2 10.11.12.14> <ms-wins 10.11.12.13> <ms-wins 10.11.12.14>]
sent [IPCP ConfReq id=0x2 <addr 10.0.0.1> <ms-dns1 10.11.12.13> <ms-dns2 10.11.12.14> <ms-wins 10.11.12.13> <ms-wins 10.11.12.14>]
rcvd [IPCP ConfNak id=0x2 <ms-dns1 10.11.12.13> <ms-dns2 10.11.12.14> <ms-wins 10.11.12.13> <ms-wins 10.11.12.14>]
sent [IPCP ConfReq id=0x3 <addr 10.0.0.1> <ms-dns1 10.11.12.13> <ms-dns2 10.11.12.14> <ms-wins 10.11.12.13> <ms-wins 10.11.12.14>]
rcvd [IPCP ConfReq id=0xe]
sent [IPCP ConfNak id=0xe <addr 10.0.0.2>]
rcvd [IPCP ConfRej id=0x3 <ms-wins 10.11.12.13> <ms-wins 10.11.12.14>]
sent [IPCP ConfReq id=0x4 <addr 10.0.0.1> <ms-dns1 10.11.12.13> <ms-dns2 10.11.12.14>]
rcvd [IPCP ConfReq id=0xf]
sent [IPCP ConfAck id=0xf]
rcvd [IPCP ConfNak id=0x4 <addr 10.129.199.182> <ms-dns1 212.23.115.150> <ms-dns2 212.23.115.84>]
sent [IPCP ConfReq id=0x5 <addr 10.129.199.182> <ms-dns1 212.23.115.150> <ms-dns2 212.23.115.84>]
rcvd [IPCP ConfAck id=0x5 <addr 10.129.199.182> <ms-dns1 212.23.115.150> <ms-dns2 212.23.115.84>]
Cannot determine ethernet address for proxy ARP
local IP address 10.129.199.182
remote IP address 10.0.0.2
Vielleicht hat ja einer der mehr Ahnung hat als ich eine Erklärung, warum sich das so verhält ?