Dank des günstigen Raspberry Pi Zeros werden Internet of Things (IoT) Projekte weiter wachsen. Einen Nachteil, den die Modelle Zero und A+ haben, ist der fehlende Ethernet-Anschluss. Das wäre soweit kein Problem, wäre nicht auch nur ein einziger (Micro) USB Port onboard.
Um diese Modelle ohne WLAN Adapter dennoch per Ethernetkabel mit dem Netzwerk zu verbinden, kann man dies über die GPIOs tun: Dafür wird lediglich das „ENC28J60“ Modul benötigt, dessen Anschluss in diesem Tutorial gezeigt wird.
Warum Ethernet?
Das Raspberry Pi Model Zero besitzt ähnlich zum Model A+ nur einen einzigen USB Anschluss. Schließt man eine Tastatur an, so braucht man für ein weiteres USB Gerät gezwungenermaßen einen (aktiven) USB Hub, welcher auch wieder mit Strom versorgt werden will und außerdem einen weiteren Kabelsalat verursacht. Um auf eine Tastatur verzichten zu können und den Pi über SSH zu steuern, braucht man eine Netzwerkverbindung. Nun kann man entweder über USB einen WLAN Adapter anschließen, oder die GPIOs nutzen:
Der Raspberry Pi bietet eine 40 köpfige GPIO Leiste, die sogar noch erweitert werden kann, hier bestehen also kaum Einschränkungen. Mit dem ENC28J60 Modul ist es möglich eine Netzwerkverbindung über ein Ethernetkabel zu erstellen. Das bietet den Vorteil, dass der einzige freie USB Anschluss anderweitig genutzt werden kann und du dennoch ein USB Gerät anschließen kannst – ohne Hub.
Zubehör
Folgende Teile wirst du benötigen:
- Raspberry Pi Zero
- alternativ: Model A+
- ENC28J60 Modul
- Female-Female Jumper Kabel
Zwar funktioniert das ganze auch mit einem Raspberry Pi B/B+/2B, allerdings haben alle B-Modelle einen integrierten Ethernet Port, weshalb es wenig Sinn macht zusätzlich einen Externen anzuschließen.
Anschluss
Es gibt verschiedene Versionen dieses Moduls, manche sind größer und manche sind kleiner. Damit es zu keinen Verwirrungen kommt, ist die Verbindung der Pins nur tabellarisch aufgezeigt und nicht als Bild, da auch die Position der Modul-Pins variiert. Ich habe alle bekannten Pin-Namen in eine Zeile, durch Schrägstriche getrennt, geschrieben:
ENC28J60 Modul | Raspberry Pi |
---|---|
VCC / 3.3 / Q3 | 3V3 (Pin 1) |
GND | GND (Pin 6) |
CS | CE0 (GPIO8, Pin 24) |
SI | MOSI (GPIO10, Pin 19) |
SCK | SCKL (GPIO11, Pin 23) |
SO | MISO (GPIO9, Pin 21) |
INT / IRQ | GPIO25 (Pin 22) |
Als Hilfe hier noch die Raspberry Pi GPIO Belegung (diese ist, bis auf das aller erste Model B der Revision 1, bei allen Modellen gleich geblieben):
Software
Ein Wort vorweg: Sofern du einen anderen Raspberry Pi hast, ist es am einfachsten die Schritte erst einmal darauf auszuführen und dann die SD Karte in den Pi Zero zu stecken. Andernfalls brauchst du einen Micro HDMI sowie einen Micro USB Adapter, womit du Bildschirm und Tastatur anschließt.
Das Ethernet Modul benutzt SPI, daher müssen wir es zuerst einmal freischalten, falls noch nicht bereits getan:
sudo raspi-config
Unter “8. Advanced Options” gibt es den Eintrag “A6 SPI”, welchen wir aktivieren. Ggf. ist ein Neustart nötig.
sudo nano /boot/config.txt
Am Ende dieser Datei fügen wir folgende Zeile ein:
dtoverlay=enc28j60
Du kannst nun neu starten und den WLAN Stick (sofern du einen nutzt) danach abnehmen.
sudo reboot
Das war’s! Dein Raspberry Pi kann nun über ein Ethernetkabel mit dem Internet verbunden werden.
Ein Wort zum Abschluss: Von der Geschwindigkeit her kommt ein über SPI betriebener Ethernet Port nicht an einen eingebauten Ethernet Anschluss heran. Auch eine WLAN Verbindung ist schneller. In meinen Tests hatte ich eine Download Geschwindigkeit von ca. 5Mbit/s.
36 Kommentare
funktioniert das auch unter raspi mit jessie ??
komme nicht weiter, das netzwerkteil wird in meiner FB angezeigt, allerdings kann ich weder mit putty noch mit remote desktop darauf zugreifen, benutze jessie
Weder über die IP noch über den Hostnamen?
nein weder noch, wenn ich zbsp in der raspi config das SPI aktiviere kommt, nach dem finish die meldung „modprobe: ERROR: could not insert ’spi_bcm2708′: No such device“
kann das mit dem problem zusammen hängen,? benutze jessie
Kannst du dir diesen Thread mal ansehen und danach sagen, ob das Problem immer noch auftaucht?
https://www.raspberrypi.org/forums/viewtopic.php?t=97314
Liegt offensichtlich am Devicetree.
also wenn ich Devicetree abschalte kommt die fehlermeldung nicht, teil wird zwar in der FB angezeigt aber dennoch kein zugriff, was mich wundert ist das obwohl keine veränderungen am netzwerk vorgenommen werden ändern sich die IP des teiles und auch die MAC adresse
also mit Devicetree sehe ich das teil in meiner FB, wenn ich Devicetree deaktiviere dann sehe ich es nicht mehr, aber nachwievor kein zugriff auf raspi mit putty oder so
Super Tutorial
Vielen Dank, ich hoffe es hat geholfen 🙂
🙂
Super Anleitung!
Hat bei mir auf anhieb funktioniert!
Vielen Dank!
Hallo zusammen,
ich habe an meinen Pi zero einen RFID Reader der schon über SPI läuft. Somit sind die SPI PINs am Raspi schon belegt. Ist es trotzdem möglich das Ethernetmodul anzubinden?
Am Raspberry Pi können zwei SPI Module laufen, daher: Ja 🙂
Sehr gute Anleitung. Danke! Hat auf Anhieb geklappt. Läuft 1a als OctoPi Server 🙂
Super Anleitung! Vielen Dank. klappt alles auf Anhieb (auch unter Stretch). In einem Punkt möchte ich Dir aber widersprechen:
Eine zweite LAN-Buchse am RPi macht durchaus Sinn! Wenn z. B. auf der Schüssel kritische Serverdienste laufen. Dadurch kann eine redundante Netzwerk-Anbindung (mit ifenslave und bonding) realisiert werden. Somit darf dann ruhig 1 Netzwerkstrecke ausfallen. Der RPi bleibt immer noch über den 2. Anschluss unter der gleichen IP erreichbar (Stichwort failover). 😉
Stimmt, soweit habe ich nicht gedacht – danke für den Hinweis 🙂
Hallo!
Sehr gut Anleitung, Danke dafür!
Ich bin absolut neu im Raspberry Wahn und habe mir den Raspberry Zero W gekauft!
Ich hätte aber lieber eine Ethernet Verbindung als WLAN! Funktionert deine Anleitung auch mit den Zero W?
Vielen Dank1
Gruß
Stephan
Klar, funktioniert mit allen Raspberry Pi Modellen. Ist allerdings nicht all zu schnell 🙁
aber vielleicht schneller als WLAN oder?
Leider nicht. Da das ganze über die GPIOs bzw. den SPI Bus läuft, kann man davon keine hohe Übertragungsrate erwarten (Stichwort Flaschenhals)…
bzw. eine bessere stabilere Verbindung oder?
Stabilere Verbindung ja – ob besser ist Ansichtssache (wenn besser=schneller dann eher nicht).
Ich benutze Octopi als 3D Druckserver! Ich möchte von unterwegs die Drucker m Auge behalten! Aber selbst im Heimnetzwerk ruckelt das Bild und ich möchte ausschliessen, das es am Wlan liegt! oder Wäre der PI3 die bessere Wahl als der Zero W?
Ich denke ein Raspberry Pi 3 mit WLAN und Ethernetanschluss ist der bessere für dich.
Ok. Vielen Dank für die Hilfe!
Einen schönen Abend noch!
Gruß
Stephan
Hallo,
bei meinem Raspi Zero hat der LAN-Adapter nach jedem Bootvorgang eine neue MAC. Wie kann ich hier eine feste MAC eintragen?
Die MAC Adresse eines Geräts sollte sich im Normalfall nicht ändern.
Die MAC-Adresse ändert sich, weil das ENC28J60 keine Hardware-MAC-Adresse hat. Soweit ich weiß, kann man die nur nach dem Systemstart ändern:
sudo ip link set eth0 down
sudo ip link set eth0 address 00:11:22:33:44:55
sudo ip link set eth0 up
Ich möchte den pi Zero als Pi Hole an der Fritzbox betreiben. Reicht die Geschwindigkeit des Netzwerkadapters dafür oder sollte ich besser über USB zu RJ45 gehen?
Vielen Dank schon mal.
Nimm lieber einen USB Adapter, falls der USB Port nicht genutzt wird.
Werd ich machen. Danke für die Info.
netzwerk geht auch über serial (uart) mit pppd, vorausgesetzt man hat einen server der auch NAT bereitstellt sowie den benötigten usb ttl adapter. ist aber ohne weitere konfiguration echt langsam. (115200 baud)
Zuerst funktioniert das ja alles super!
Aber nach kurzer Zeit entstehen Fehler, wie
– ping -c 10 http://www.google.de... => temporary failure in name resolution
– curl https://www.google.de… => es passiert gar nichts mehr.
Woran könnte das wohl liegen?
Danke für das Tutorial – aber einen kleinen Tipp gibt’s oben drauf: den Zero direkt headless per SSH konfigurieren, das klappt auch ohne einen „Zweit-Raspi“.
Einfach Raspbian auf die SD-Karte flashen, dann auf der Boot-Partition im Stammverzeichnis eine leere Datei namens SSH (ohne Dateiendung!) erstellen, zusätzlich im selben Verzeichnis die Datei wpa_supplicant.conf erstellen und gemäß des Links mit SSID, Passwort, Locale, .. versehen.
Dann ab damit in den Raspi und beim Start verbindet er sich automatisch mit Eurem WLAN, wo ihr dann (wenn ihr seine IP-Adresse habt, z.B. in der Router-Oberfläche nachsehen) per SSH auf den Pi zugreifen könnt. Und alles ohne microHDMI oder Peripherie am Pi 🙂
Quelle: https://www.dahlen.org/2017/10/raspberry-pi-zero-w-headless-setup/
auf meinem LAN baustein (ENC28J60 Modul) finde ich nur diese bezeichnungen.
bevor es bei mit nach elektronen riecht frage ich lieber mal nach wie ich die kontakte an den pi zero klemmen muß.
vielen dank für eure mühen
HanRun
HR911105A
18/20
5v GND
LNT CLK
S0 WOL
SCK ST
RST CS
Q3 GND
Hallo,
gibt es schon eine Lösung wegen der etwas abweichenden Bezeichnungen. Bei mir ist auch das „SI“ und das „INT/IRQ“ nicht vorhanden.