knb:rpb4

Dies ist eine alte Version des Dokuments!


Offloader auf Basis eines Raspberry PI 4B

Bild: Freifunk München Logo

Offloader auf Basis eines Raspberry PI 4B - eine Kurzanleitung von goligo.

Dieser Anleitung beschreibt das Aufsetzen eines Offloaders auf dem Raspberry PI 4B mit der vorhandenen Freifunk München-Firmware. Es kann entweder ein zusätzlicher USB-LAN-Adapter angeschlossen werden oder, wenn man einen VLAN-fähigen Switch hat, geht es auch nur mit dem einen vorhandenen Netzwerkport.

Der Raspberry PI 4 ist schnell genug, um eine 250 MBit/s Leitung voll auszulasten, unabhängig davon, ob man mit einem zusätzlichen Adapter oder einem VLAN arbeitet.

Man benötigt natürlich einen Raspberry PI 4, am besten in einem ordentlichem Gehäuse, außerdem eine MicroSD-Karte mit wenigstens 1GB Speicher:

Je nach Setup wird zusätzlich ein USB 3.0 LAN-Adapter benötigt, der von Gluon/OpenWrt unterstützt wird. Da es sich um einen Linux-Kernel handelt, gibt es Treiber für viele Hersteller. Man sollte sich aber unbedingt vor dem Kauf darüber informieren. Eine Liste der Chipsets, für die es Treiber gibt, findet man hier: OpenWrt Netzwerk Treiber. Das Firmware-Image für den Raspberry PI 4 enthält bereits die meisten üblichen Treiber.

Zur Installation der Firmware muss man das Firmware-Image auf die SD-Karte schreiben. Das Erstinstallations-Image zum herunterladen gibt es auf unserer Firmware-Seite:

Raspberry PI 4 Firmware Download

Die Firmware auf die SD-Karte zu flashen geht unter Linux oder MacOS am einfachsten im Terminal mit dem „dd“-Befehl (auf dem Mac vorher eine evtl. bereits vorhandene Partition unmounten und Festplatten den Vollzugriff für das Terminal erlauben):

sudo dd if=gluon-ffmuc-<aktuelle version>-raspberry-pi-4-model-b.img of=/dev/<sdcard device> bs=65536

Unter Windows braucht man dazu ein Programm wie zum Beispiel den Win32DiskImager.

Jetzt kann man die SD-Karte in den Raspberry Pi stecken, den Computer direkt per Netzwerkkabel anschließen, DHCP aktivieren und den Raspberry Pi starten. Nach kurzer Zeit ist die Setup-Wizard im Browser unter http://192.168.1.1 zu erreichen und der neue Raspberry-Knoten kann wie gewohnt eingerichtet werden.

Wichtig: Zuerst auf „Erweiterte Einstellungen“ gehen und dort unter „Remotezugriff“ den SSH-Key hinterlegen, so dass man später auf den Knoten zugreifen kann. Danach erst auf „Wizard“ gehen, um den Knotennamen und die restlichen Einstellungen vorzunehmen.

Nach der Einrichtung kann der Knoten nun vom Einrichtungscomputer abgesteckt und ans lokale Netzwerk angeschlossen werden. Er ist in der Regel nach kurzer Zeit unter dem Namen des Knotens erreichbar und man kann sich per SSH darauf einloggen.

Hier folgt ein Beispiel mit dem Knotennamen „raspi4“ und dem Knoten angeschlossen an einer AVM Fritz!Box:

% ping raspi4
...
--- raspi4.fritz.box ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.655/0.760/0.826/0.066 ms

% ssh root@raspi4
BusyBox v1.33.1 (2020-12-22 03:35:17 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 21.02-SNAPSHOT, r16295+8-3a051a234a
 -----------------------------------------------------

root@raspi4:~# 

Wenn man einen USB-LAN-Adapter verwenden möchte, so kann man diesen jetzt anschließen und sich per SSH einloggen, um diesen einzurichten. Als erstes schaut man am besten mit „lsusb“, ob der Adapter erkannt wurde und als was. Dann prüft man ob auch das zugehörige Ethernet-Interface vorhanden ist oder ob man noch zusätzliche Treiber installieren muss.

root@raspi4:~# lsusb
Bus 002 Device 002: ID 0bda:8153 Realtek USB 10/100/1000 LAN
Bus 002 Device 001: ID 1d6b:0003 Linux 5.4.143 xhci-hcd xHCI Host Controller
Bus 001 Device 002: ID 2109:3431  USB2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux 5.4.143 xhci-hcd xHCI Host Controller

root@raspi4:~# ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 00:E1:33:00:00:2A  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)          

Um Gluon jetzt beizubringen, dass ein zusätzliches Netzwerk-Interface vorhanden ist, muss man die Datei „/lib/gluon/core/sysconfig/lan_ifname“ anlegen mit dem Namen des Interfaces als Inhalt. Danach ruft man „gluon-reconfigure“ auf, um die Konfiguration zu aktualisieren. Danach sollte „eth1“ mit ins Client-Netzwerk aufgenommen sein und nach einem Neustart des Knotens sollte ein angeschlossener Computer Freifunk-Netzwerk haben auf dem Anschluss.

root@raspi4:~# echo eth1 > /lib/gluon/core/sysconfig/lan_ifname

root@raspi4:~# gluon-reconfigure 
Configuring: 001-upgrade
Configuring: 005-set-domain
...
Configuring: 998-commit
Configuring: 999-version

root@raspi4:~# uci show network.client.ifname
network.client.ifname='local-port' 'bat0' 'eth1'

root@raspi4:~# reboot

Wenn man einen VLAN-fähigen Switch hat, kommt man auch ohne zusätzlichen Netzwerk-Adapter aus. Man muss in diesem Fall das WAN- und LAN-Interface entsprechend der VLAN-Konfiguration setzen.

Hier in diesem Beispiel ist das WAN auf der VLAN-ID 10 und das Freifunk-Netzwerk auf der VLAN-ID 20.

root@raspi4:~# echo eth0.10 > /lib/gluon/core/sysconfig/wan_ifname 

root@raspi4:~# echo eth0.20 > /lib/gluon/core/sysconfig/lan_ifname

root@raspi4:~# gluon-reconfigure
Configuring: 001-upgrade
Configuring: 005-set-domain
...
Configuring: 998-commit
Configuring: 999-version

root@raspi4:~# reboot

Wenn man den Offloader für ein Unifi- oder Omada-Mesh verwendet, ist man jetzt fertig und kann den Offloader anschließen. Wenn man Mesh-On-LAN verwenden und andere Freifunk-Knoten per Kabel verbinden will, muss man das noch umstellen, indem man das LAN-Interface aus dem Client-Netzwerk entfernt und Mesh-On-LAN aktiviert.

root@raspi4:~# uci set network.mesh_lan.disabled=0

root@raspi4:~# uci del_list network.client.ifname=$(cat /lib/gluon/core/sysconfig/lan_ifname)

root@raspi4:~# uci commit network
  • knb/rpb4.1644539238.txt.gz
  • Zuletzt geändert: 2022/02/11 00:27
  • von goligo