Die Theorie sieht dabei wie folgt aus: Der Pi fährt hoch und erzeugt eine USB-Netzwerkschnittstelle mit automatisch vergebener IP-Adresse. Auf dem anderen Rechner erscheint ein neues USB-Netzwerk-Device, das ebenfalls automatisch eine IP-Adresse bekommt – somit steht eine Punkt-zu-Punkt Verbindung. In diesem Fall erreichen Sie den Pi über den Hostnamen raspberrypi.local im Netzwerk.
In der Praxis gibt es allerdings ein paar Hürden, die die Sache erschweren. So müssen Sie auf dem Zero zwei Dateien anpassen. Nachdem Sie wie üblich ein Raspbian “Jessie” oder “Jessie Lite” auf die SD-Karte kopiert haben, editieren Sie noch vor dem ersten Booten die config.txt auf der ersten Partition und hängen am Schluss die folgende Zeile an:
dtoverlay=dwc2
Außerdem fügen Sie an die einzige Zeile in cmdline.txt nach rootwait und einem Leerzeichen die folgende Zuweisung an:
modules-load=dwc2,g_ether
Hängen Sie jetzt den Mini-Rechner mit einem normalen USB-Kabel an einen Laptop oder PC (Abbildung 3), bootet der Zero und meldet sich am anderen Computer als Netzwerkgerät. Sie können die Bootmeldungen per HDMI an einen Bildschirm senden und dort verfolgen, ein Eingreifen klappt aber nicht: Mangels USB-Host-Port lässt sich keine Tastatur anschließen.

Abbildung 3: Verbinden Sie den Pi Zero per USB-Kabel mit einem Notebook, bauen Sie auf diesem Weg bei Bedarf ebenfalls eine Netzwerkverbindung auf.
Als Lösung bietet sich eine serielle Konsole per USB an (mit Chip CP2102, ungefähr 8 Euro), wie sie Abbildung 3 zeigt. Eingesteckt am PC oder Notebook gelingt dann der Zugriff auf den Zero per Putty (Windows) oder Screen (Linux).
Auf dem Zero selbst erzeugt der Gadget-Treiber die Netzwerkschnittstelle usb0, der standardmäßig aktive Avahi-Dämon vergibt automatisch eine Adresse (Abbildung 4). Im Idealfall erscheint auf der Host-Seite ein neues USB-Device, das das jeweilige System ebenfalls automatisch konfiguriert.

Abbildung 4: Mit der passenden Konfiguration für die Schnittstelle »usb0« laufen die Netzwerkpakete über diese Schnittstelle.
In der Praxis funktioniert das allerdings oft nicht ganz so glatt: Im Test erkannte kein Host den Zero überhaupt als USB-Gerät. Nach langem Suchen stellte sich ein minderwertiges USB-Kabel als Ursache heraus. Nach dem Austausch des Kabels erschien zwar das Device, aber die automatische Konfiguration scheiterte wegen der speziellen Art, wie der verwendete OpenSuse-Host die Netzwerkschnittstellen verwaltet. Die manuelle Vergabe einer passenden IP-Adresse an das Device usb0 war hier die Lösung.
Unter Windows kommen noch weitere Probleme ins Spiel: Dem System fehlt je nach Version der passende Treiber. Windows 7 sollte den nötigen RNDIS-Treiber automatisch herunterladen und installieren, je nach Konfiguration fällt aber trotzdem noch ein manueller Eingriff an.
Außerdem fehlt Windows eine Bonjour-Unterstützung. Dieses Protokoll sorgt für die automatische Konfiguration von Netzwerkschnittstellen. Entweder rüsten Sie Bonjour nach, oder Sie vergeben von Hand eine Adresse aus dem Bereich 169.254.0.0/24. Ein Tutorial zu diesem Thema einschließlich der Besonderheiten von Windows und MacOS finden Sie online [5].
Per Jumperkabel
Die letzte hier vorgestellte Technik kommt mit minimalem Zubehör aus: Sie verbinden zwei RasPis mit zwei einfachen Jumperkabeln (Abbildung 5). Dabei kommen die physikalischen Pins 8 (TX, GPIO14) und 10 (RX, GPIO15) ins Spiel.

Abbildung 5: Eine Pi2Pi-Verbindung per Jumperkabel funktioniert – es handelt sich aber um einen eher akademischen Ansatz.
Die verbinden Sie über Kreuz, von Pin 8 beim Pi Zero zum Pin 10 des anderen RasPi und umgekehrt. Sofern die Stiftleiste rechts liegt, handelt es sich um den vierten und fünften Pin von oben auf der rechten Seite. Verwenden Sie einen Zero ohne eingelötete GPIO-Leiste, setzen Sie als Notlösung jeweils ein Male-Female-Kabel ein und sorgen per Knetmasse für einen halbwegs guten Halt der Anschlüsse auf dem Zero.
Auf den Pins 8 und 10 stellt der RasPi eine serielle Leitung bereit. Normalerweise konfiguriert Raspbian darauf eine serielle Konsole für die Bootmeldungen. Für unsere Verbindung zwischen den RasPis kommt stattdessen der PPP-Daemon (Point-to-Point Protocol) zum Zug. Den installieren Sie zuerst auf die übliche Weise:
$ sudo apt-get -y install ppp
Dann editieren Sie als Root die Kommandozeile des Kernels in der Datei /boot/cmdline.txt und entfernen dort den String console=serial0,115200. Anschließend fügen Sie der /boot/config.txt noch die folgenden Zeilen hinzu:
enable_uart=1 init_uart_clock=16000000
Diese Änderungen nehmen Sie auf beiden RasPis vor. Nach einem Reboot stehen noch zwei Aufgaben an: die Konfiguration von PPP und der automatische Start des Daemons beim Hochfahren des Systems.
PPP-Netzwerk
Die PPP-Konfiguration aus Listing 3 übernehmen Sie in die Datei /etc/pppd/options.serial0 auf dem Pi Zero. Auf dem zweiten RasPi bekommt dieselbe Datei einen etwas anderen Inhalt (Listing 4).





