Beachten Sie jedoch, dass Raspbian beim Einbinden der Sticks gerne Ärger macht (siehe Kasten “UMTS-Sticks und der RasPi”). Falls der von Ihnen verwendete UMTS-Stick nicht auf Anhieb unter Linux funktioniert, lohnt sich in der Regel eine kurze Recherche im Internet. Für viele UMTS-Dongles finden sich Anleitungen, um sie unter Linux zum Laufen zu bekommen. Oft muss man dazu allerdings ein wenig tiefer ins System eingreifen. Sämtliche Kausalitäten aller am Markt verfügbaren UMTS-Sticks zu beschreiben, würde den Artikel sprengen.
UMTS-Sticks und der RasPi
Generell harmonieren viele UMTS-Sticks mit Linux, doch im Zusammenhang mit dem Raspberry Pi taucht immer wieder ein Problem auf: Steckt man den Stick nachträglich ein, funktioniert der Modeswitch ohne Probleme. Hängt der Stick jedoch schon während des Systemstarts am System, passiert nichts. Die Ursache: Der für das Umschalten verantwortliche Udev-Daemon startet zu spät. Die Hardware des Sticks ist schon initialisiert und Udev bekommt davon nichts mit. Als Workaround fügen Sie der Datei /etc/rc.local vor der letzten Zeile mit dem exit die Anweisung udevadm trigger hinzu. Dies löst noch einmal alle Kaltstart-Events aus, sodass der Moduswechsel dann doch noch funktioniert.
Einwahl
In Vor-DSL-Zeiten war für die Internetverbindung ein Wählprogramm notwendig, die eigentliche Verbindung wurde per PPP aufgebaut. Damals wie heute steht PPP für “Point-to-Point Protocol”, also Punkt-zu-Punkt-Verbindungsprotokoll. Darauf setzen auch moderne UMTS-Modems auf. Das in den Stick integrierte Modem wählt sich ein und stellt eine Verbindung zu einer Gegenstelle her. Der Pppd-Daemon hält die Leitung und stellt die Netzwerkschnittstelle bereit. Beim Aufbau des RasPi-Routers übernimmt das Wählprogramm Wvdial diese komplexe Aufgabe.
Nach der Installation und dem Anstecken des Sticks rufen Sie einmalig sudo wvdialconf auf. Steckt der Stick schon während der Installation von Wvdial, dann passiert das sogar automatisch. Das Konfigurationsprogramm ermittelt ein paar Basiswerte für die Initialisierung und die Kommunikation mit dem Modem und schreibt das Ergebnis in die Datei /etc/wvdial.conf. Diese müssen Sie anschließend nur noch um ein paar spezifische Informationen Ihres Providers ergänzen – Listing 2 zeigt das beispielhaft für Tchibo-Mobil.
Am besten googeln Sie mit dem Suchbegriff “wvdial Anbieter” nach den entsprechenden Einstellungen; weitere hilfreiche Informationen zu den APN-Einstellungen der diversen Mobilfunkanbieter liefert ein Artikel bei Explipedia [2]. Gegebenenfalls tragen Sie mehr als nur einen Provider in die Datei ein, wobei die korrespondierenden Abschnitte stets mit [Dialer Anbieter] beginnen müssen.
Listing 2
[Dialer Defaults] Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Modem Type = Analog Modem ISDN = 0 Modem = /dev/ttyUSB0 Baud = 9600 [Dialer pin] Init3 = AT+CPIN=1234 [Dialer pinstatus] Init3 = AT+CPIN? [Dialer umts] Init3 = AT+CGDCONT=1,"IP","webmobil1" Stupid Mode = 1 Phone = *99***1# Username = egal Password = egal Dial Attempts = 3
Speichern Sie danach die Datei, kappen Sie alle herkömmlichen Netzwerkverbindungen und rufen Sie die Befehle aus Listing 3 auf. Geht alles gut, startet Wvdial den Pppd-Daemon. In einem zweiten Fenster überprüfen Sie mit ifconfig, ob das Netzwerkinterface ppp0 bereitsteht. Kommt keine Verbindung zustande, helfen meist die Ausgaben von Wvdial bei der Fehlersuche. Da Sie das Wählprogramm aus einem Terminalfenster heraus im Vordergrund gestartet haben, genügt für den Abbruch von Wvdial mitsamt Pppd ein [Strg]+[C]. Starten Sie die Verbindung erneut, müssen Sie die PIN nicht noch mal eingeben, hier genügt das zweite Wvdial-Kommando. Um in Zukunft die Verbindung nicht jedes Mal von Hand starten zu müssen, richten Sie nun einen automatischen Verbindungsaufbau ein – dafür reichen die Bordmittel von Linux aus.
Listing 3
$ sudo wvdial pin $ sudo wvdial umts
Automatik
Den automatischen Start übernimmt auch bei PPP-Wählverbindungen ein Eintrag in die Konfigurationsdatei /etc/network/interfaces (Listing 4, Zeilen 4 bis 8). Soll die Konfiguration des Netzwerkgeräts über die Interfaces-Datei erfolgen, die Verbindung aber nicht automatisch laden, deaktivieren Sie die Zeile 4 (auto ppp0) durch eine vorangestellte Raute (#). Die Zeile 7 führt vor dem Verbindungsaufbau das Skript /usr/local/sbin/setpin aus (Listing 5). Das kleine Programm wartet bis zu 30 Sekunden auf das Modem und setzt, sobald es das Modem findet, die PIN. Sobald die Verbindung steht, lädt das Kommando aus Zeile 8 noch eine Reihe von Firewall-Regeln – dazu später mehr.
Listing 4
auto lo iface lo inet loopback auto ppp0 iface ppp0 inet wvdial provider umts pre-up /usr/local/sbin/setpin up iptables-restore < /etc/iptables.3ghotspot auto br0 iface br0 inet static address 192.168.100.250 netmask 255.255.255.0 network 192.168.100.0 broadcast 192.168.100.255 bridge-ports eth0 wlan0 bridge_maxwait 0
Listing 5
#!/bin/bash
# in case /dev/ttyUSB0 does not exist, wait for it at most 30 seconds
let i=1
while ! test -c /dev/ttyUSB0; do
let i+=1
if [ $i -gt 10 ]; then
logger -s -t setpin "/dev/ttyUSB0 does not exist"
exit 3
fi
logger -s -t setpin "waiting 3 seconds for /dev/ttyUSB0"
sleep 3
done
# check for pin and set it if necessary
wvdial pinstatus 2>&1 | grep -q '^+CPIN: READY'
if [ $? -eq 0 ]; then
logger -s -t setpin "SIM card is ready to use :-)"
else
logger -s -t setpin "setting PIN"
wvdial pin 2>/dev/null
fi
echo -en "sleeping for 3 seconds ..."
sleep 3
echo " done"
exit 0
Nach dieser Vorarbeit sollte die Verbindung gleich beim Systemaufbau hochkommen. Testen Sie die UMTS-Leitung beispielsweise mit einem ping -c 3 google.de. Mit sudo ifdown ppp0 trennen Sie die Verbindung bei Bedarf wieder. Mit sudo ifup ppp0 veranlassen Sie das UMTS-Modem, sich wieder einzuwählen – dieses Kommando benötigen Sie auch, falls Sie den automatischen Verbindungsaufbau deaktiviert haben. Meldungen zum Auf- und Abbau der Verbindung finden Sie stets in der Logdatei /var/log/messages. Details zum Verbindungsaufbau während des Systemstarts suchen Sie hier allerdings vergeblich, da Linux das Netzwerk zu einem sehr frühen Zeitpunkt hochzieht, wenn der Systemlogger noch nicht läuft.
Kontrolle
Bei mobilen Datenverbindungen gilt es, das übertragene Datenvolumen im Auge zu behalten: In der Regel drosselt der Anbieter ab einer bestimmten Datenmenge die Geschwindigkeit der Datenleitung auf Schneckentempo, manch ein Mobilfunkvertrag rechnet sogar jedes weitere Kilobyte gegen teures Geld ab. Um das Übertragungsvolumen regelmäßig zu kontrollieren, setzen Sie das Programm Vnstat [3] ein. Es protokolliert zuverlässig die über jede Netzwerkschnittstelle übertragenen Datenvolumen und fasst die akkumulierten Daten in übersichtlichen Statistiken zusammen. Ständig vorhandene Schnittstellen wie eth0 oder wlan0 müssen Sie in Vnstat nicht extra konfigurieren, das PPP-Interface der UMTS-Leitung erfordert jedoch eine einmalige manuelle Initialisierung.





