knb:rpb4_wg

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
knb:rpb4_wg [2020/12/17 10:54] – [Konfiguration] Djangoknb:rpb4_wg [2020/12/18 21:06] – Wie bringt man ein RPi-Image auf eine SD-Karte - Fixes, Erläuterungen und Ergänzungen gunter.m
Zeile 13: Zeile 13:
  
 <WRAP center round info 90%> <WRAP center round info 90%>
-Diese Anleitung funktioniert auf quasi allen Linux basierten Betriebssystemen, mit ein paar Anpassungen. \\+Diese Anleitung geht von einem Linux Hostrechner aus - sie funktioniert auf quasi allen Linux basierten Betriebssystemen, mit ein paar Anpassungen. \\
 \\ \\
 In den nachfolgenden Beispielen zu den Shell-/Konsolen-Befehlen gelt folgende Formatierungen: In den nachfolgenden Beispielen zu den Shell-/Konsolen-Befehlen gelt folgende Formatierungen:
-  * Ein vorangestelltes Dollarzeichen **''$''** bedeutet, dass der bzw. die Befehle mit Userrechten des gerade angemldeten Benutzers ausgeführt werden können. +  * Ein vorangestelltes Dollarzeichen **''$''** bedeutet, dass der bzw. die Befehle mit Userrechten des gerade angemeldeten Benutzers ausgeführt werden können. 
-  * Ein vorangestelltes Raute-Symbol **''#''** hingegen bedeutet, dass zum Ausführen des Befehls bzw. der befehle Root-Rechte benötigt werden, die man z.b. mit Hilfe von **'' $ sudo su -''** erlangen kann. +  * Ein vorangestelltes Raute-Symbol **''#''** hingegen bedeutet, dass zum Ausführen des Befehls bzw. der Befehle Root-Rechte benötigt werden, die man z.b. mit Hilfe von **'' $ sudo su -''** erlangen kann. 
 \\ \\
 Sollten trotz des eingehenden Studiums dieser Anleitung dennoch Fragen offen bleiben, oder unvorhergesehenen Problemstellungen auftreten, findet man im **[[https://chat.ffmuc.net/freifunk/channels/technik-offloader|Chat]]** sicher schnell Hilfe und Unterstützung.  Sollten trotz des eingehenden Studiums dieser Anleitung dennoch Fragen offen bleiben, oder unvorhergesehenen Problemstellungen auftreten, findet man im **[[https://chat.ffmuc.net/freifunk/channels/technik-offloader|Chat]]** sicher schnell Hilfe und Unterstützung. 
Zeile 23: Zeile 23:
 </WRAP> </WRAP>
  
-Mit dem [[https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711/rpi_DATA_2711_1p0_preliminary.pdf|Raspberry PI 4]] ist es das erste Mal möglich, einen Offloader sinnvoll auf einem PI zu betreiben. Denn in dieser Version bietet der Ethernet Anschluss genug Durchsatz und die CPU ist leistungsfähig genug um eine ordentliche **WireGuard** Performance zu bieten. Dies war bei den Vorgänger Modellen so leider **nicht** der Fall.+Mit dem [[https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711/rpi_DATA_2711_1p0_preliminary.pdf|Raspberry PI 4]] ist es das erste Mal möglich, einen Offloader sinnvoll auf einem PI zu betreiben. Denn in dieser Version bietet der Ethernet Anschluss genug Durchsatzund die CPU ist leistungsfähig genug um eine ordentliche **WireGuard** Performance zu bieten. Dies war bei den Vorgänger Modellen so leider **nicht** der Fall.
  
 <WRAP center round important 60%> <WRAP center round important 60%>
Zeile 34: Zeile 34:
 {{:knb:raspberry:rpi.jpg?405|Bild: Raspberry 4 - Lieferung/Verpackung}} \\ {{:knb:raspberry:rpi.jpg?405|Bild: Raspberry 4 - Lieferung/Verpackung}} \\
 {{:knb:raspberry:19-06-26_14-06-10_2041.jpg?405|Bild: Raspberry 4 - Platine in Verpackung}} {{:knb:raspberry:19-06-26_14-06-10_2041.jpg?405|Bild: Raspberry 4 - Platine in Verpackung}}
 +
 +===== Ansible-Playbook gesteuerter Bau des Offloaders =====
 +<WRAP center round tip 60%>
 +Wer nicht  die nachfolgenden gut dokumentierten Schritte per Hand ausführen möchte, kann sich auch mit Hilfe von **[[https://www.ansible.com/|Ansible]]** binnen 20 Minuten automatisiert einen Offloader Menü geführt und scriptiert erstellen lassen. 
 +
 +<html><center>Das entsprechende <b><a href="https://wiki.mailserver.guru/doku.php/centos:ansible:ffmuc-rpb4-ol" class="urlextern" target="_tab" title="https://wiki.mailserver.guru/doku.php/centos:ansible:ffmuc-rpb4-ol" rel="nofollow noopener">HOWTO</a></b> findet man in <b><a href="https://wiki.mailserver.guru" class="urlextern" target="_tab" title="https://wiki.mailserver.guru" rel="nofollow noopener">Djangos WIKI</a></b>.</center></html>
 +</WRAP>
  
 ===== Raspberry Pi OS ===== ===== Raspberry Pi OS =====
Zeile 60: Zeile 67:
  
 ==== Kopieren des Images auf die MicroSD-Karte ==== ==== Kopieren des Images auf die MicroSD-Karte ====
-Nun können wir das Image auf die MicroSD-Karte, die wir später in den Raspberry 4B stecken kopieren. Wir werfen also am besten einmal einen Blick in das syslog unseres Arbeitsrechners und erkennen so das Device unserer Speicherkarte.+Nun können wir das Image auf die MicroSD-Karte, die wir später in den Raspberry 4B steckenkopieren. Wir werfen also am besten einmal einen Blick in das syslog unseres Arbeitsrechners und erkennen so das Device unserer Speicherkarte.
    # tail -f /var/log/messages    # tail -f /var/log/messages
 bzw. bzw.
Zeile 77: Zeile 84:
 Sep  5 21:11:09 BOFHs-X230 gnome-terminal-[8119]: g_menu_insert_item: assertion 'G_IS_MENU_ITEM (item)' failed</code> Sep  5 21:11:09 BOFHs-X230 gnome-terminal-[8119]: g_menu_insert_item: assertion 'G_IS_MENU_ITEM (item)' failed</code>
  
-In dem gezeigtem Fall handelt es sich also um die Gerätedatei **''/dev/mmcblk0''**. Wir wissen also wie wir nun die zuvor heruntergeladene **[[#download|Debian Buster Image-Datei]]** auf die MicroSD-Karte kopieren müssen. In der Regel hat der "normale Nutzer" keine Rechte um diese Gerätedatei anzusprechen, wir müssen also als Benutzer **root** oder mir den Rechten des Benutzers **root** die  Gerätedatei **''/dev/mmcblk0''** in diesem Konfigurationsbeispiel ansprechen.+Aus der zweiten Zeile ergibt sich, dass die MicroSD-Karte über die Gerätedatei **''/dev/mmcblk0''** angesprochen werden kannDie nachfolgenden Zeilen zeigen an, wie das Linux-System den bestehenden Inhalt der Karte interpretiert - tut aber für unsere Zwecke nichts zur Sache, weil wir die Karte eh gleich überschreiben. Achtung: schließt man die MicroSD-Karte z.B. über einen USB-Adapter an, kann sie auch unter einem anderen Namen erscheinen, z.B. **''/dev/sde''**. Und hier ist Gefahr in Verzug, weil die System-Platte des Host-Rechners auch unter **''/dev/sd<irgendwas>''** erscheint, und es auch erfahrenen Benutzern passiert, die Buchstaben zu verwechseln, und beim nachfolgenden Schreibvorgang sein System zerschießt.  
 + 
 +Mit Hilfe der Gerätedatei können wir das heruntergeladene **[[#download|Debian Buster Image-Datei]]** auf die MicroSD-Karte kopieren. In der Regel hat der "normale Nutzer" keine Rechte um diese Gerätedatei anzusprechen, wir müssen also als Benutzer **root** oder mit den Rechten des Benutzers **root** den Kopiervorgang aufrufen: 
  
    # dd if=~/2020-08-20-raspios-buster-armhf-lite.img of=/dev/mmcblk0  bs=4M status=progress conv=fsync    # dd if=~/2020-08-20-raspios-buster-armhf-lite.img of=/dev/mmcblk0  bs=4M status=progress conv=fsync
Zeile 83: Zeile 92:
    $ sudo dd if=/home/django/Freifunk/2020-08-20-raspios-buster-armhf-lite.img of=/dev/mmcblk0 bs=4M status=progress conv=fsync</code>    $ sudo dd if=/home/django/Freifunk/2020-08-20-raspios-buster-armhf-lite.img of=/dev/mmcblk0 bs=4M status=progress conv=fsync</code>
  
-Da wir später weder Tastatur noch Monitor an unseren Raspberry 4B anstecken wollen, diesen demnach im **headless**-Mode betreiben wollen und werden, legen wir noch eine Datei **''/boot/ssh''** auf der SD-Karte ab. Nach dem erneuten Anstecken der MicroSD-Karte wir der Speicher in der Regel im Verzeichnis **''/run/media/''** oder auch **''/media/''**gemountet. Zum Anlagen der betreffenden Datei  **''ssh''** in dem Verzeichnis reicht also folgender Aufruf, bei dem wir den Usernamen natürlich unseren Gegebenheiten entsprechend anpassen.:+Wenn der Kopiervorgang abgeschlossen ist, Karte entfernen und wieder einstecken. Das System erkennt die beiden Partitions auf der Karte. Je nach Systemeinstellungen mountet sie die Partitions automatisch - in der Regel im Verzeichnis **''/run/media/''** oder auch **''/media/''**. Oder es erscheint in der Systemleiste ein Icon für einen neu erkannten Wechseldatenspeicher, den man dann per Mausklick mounten kann. Wer unsicher ist, kann  
 + 
 +   # mount 
 + 
 +aufrufen, und feststellen, wo die **root-Partition** und die **boot-Partition** zu finden ist. 
 + 
 +Da wir später weder Tastatur noch Monitor an unseren Raspberry 4B anstecken wollen, diesen demnach im **headless**-Mode betreiben wollen und werden, legen wir noch eine leere Datei **''ssh''** auf der **boot**-Partition ab. Damit wird beim Hochfahren der ssh-Server auf dem RPi gestartet. Zum Anlagen dieser Datei  **''ssh''** reicht also folgender Aufruf, bei dem wir den Usernamen im Pfad natürlich unseren Gegebenheiten entsprechend anpassen:
    # touch /run/media/django/boot/ssh    # touch /run/media/django/boot/ssh
 bzw. bzw.
    $ touch /media/django/boot/ssh    $ touch /media/django/boot/ssh
  
-Anschließend können wir nach einem Unmounten des Gerätes **''/dev/sdb''** die Micro-SD-Karte in den Kartenslot des Raspberry 4B stecken und den Kleinstcomputer mit dem Netzwerk sowie dem zugehörigen Netzteil verbinden und starten.+Anschließend können wir nach einem Unmounten der Partitions **''/dev/mmcblk0p*''** die Micro-SD-Karte in den Kartenslot des Raspberry 4B stecken und den Kleinstcomputer mit dem Netzwerk sowie dem zugehörigen Netzteil verbinden und starten.
  
 ===== Vorbereitende Konfigurationsschritte ===== ===== Vorbereitende Konfigurationsschritte =====
Zeile 825: Zeile 840:
  
 ==== Werteermittlung ==== ==== Werteermittlung ====
-Wir ermitteln also am einfachsten die Geo-Koordinaten aus der Feifunk München Karte: https://map.ffmuc.net+Wir ermitteln also am einfachsten die Geo-Koordinaten aus der Freifunk München Karte: https://map.ffmuc.net
  
-{{ :knb:raspberry:ffmuc_map_01.png?900 |Bild: Kartenauschnitt der Freifunk München Karte zur Ermittlung der Geo-Koordinaten}}+{{ :knb:raspberry:ffmuc_map_01.png?900 |Bild: Kartenausschnitt der Freifunk München Karte zur Ermittlung der Geo-Koordinaten}}
  
  
Zeile 876: Zeile 891:
 </WRAP> </WRAP>
  
-Wir tragen demach folgende Daten ein:+Wir tragen demnach folgende Daten ein:
 \\ \\
 <html> <html>
Zeile 967: Zeile 982:
 </pre></html> </pre></html>
  
-Nach kurzer Zeit taucht unser Node auf der Karte auf.+Nach kurzer Zeit taucht unser Node dann auch auf der Karte auf.
 {{ :knb:raspberry:ffmuc_map_02.png?700 |Bild: Freifunk München Karte mit eingetragenem neune Node}} {{ :knb:raspberry:ffmuc_map_02.png?700 |Bild: Freifunk München Karte mit eingetragenem neune Node}}
  
Zeile 990: Zeile 1005:
   br-welt          UP             10.80.204.2/21 2001:678:e68:109:dea6:32ff:fe5c:4607/64 fe80::dea6:32ff:fe5c:4607/64   br-welt          UP             10.80.204.2/21 2001:678:e68:109:dea6:32ff:fe5c:4607/64 fe80::dea6:32ff:fe5c:4607/64
  
-Wir sehen somit die Adresen auf unseren Interfaces aus dem gewählten Segment.+Wir sehen somit die Adressen auf unseren Interfaces aus dem gewählten Segment.
  
 Als nächstes prüfen wir, ob die beiden Interfaces **''dummy-welt''** und **''mesh-vpn''** aktiv sind. Als nächstes prüfen wir, ob die beiden Interfaces **''dummy-welt''** und **''mesh-vpn''** aktiv sind.
Zeile 1004: Zeile 1019:
 8a:5d:44:50:c3:f8    0.220s (       10.0) [  mesh-vpn]</code> 8a:5d:44:50:c3:f8    0.220s (       10.0) [  mesh-vpn]</code>
  
-Zu guter letzt sehen wir uns noch die Gateway-Liste an über bzw. mit denen unser Offloader verbunden ist.+Zu guter Letzt sehen wir uns noch die Gateway-Liste an über bzw. mit denen unser Offloader verbunden ist.
    # batctl meshif bat-welt gwl    # batctl meshif bat-welt gwl
 <code>[B.A.T.M.A.N. adv 2020.4, MainIF/MAC: dummy-welt/dc:a6:32:5c:46:07 (bat-welt/dc:a6:32:5c:46:07 BATMAN_V)] <code>[B.A.T.M.A.N. adv 2020.4, MainIF/MAC: dummy-welt/dc:a6:32:5c:46:07 (bat-welt/dc:a6:32:5c:46:07 BATMAN_V)]
Zeile 1132: Zeile 1147:
    # echo 'DAEMON_OPTS="-d"' >> /etc/default/hostapd    # echo 'DAEMON_OPTS="-d"' >> /etc/default/hostapd
  
-==== Konfiguartion ==== +==== Konfiguration ==== 
- Nun legen wir uns eine entsprechende KOnfigurationsdatei an.+ Nun legen wir uns eine entsprechende Konfigurationsdatei an.
    # vim /etc/hostapd/hostapd.conf    # vim /etc/hostapd/hostapd.conf
  
Zeile 1171: Zeile 1186:
 </file> </file>
  
-Anschließend ativieren und starten wir den **''hostapd''**-Daemon.+Anschließend aktivieren und starten wir den **''hostapd''**-Daemon.
    # systemctl unmask hostapd    # systemctl unmask hostapd
    # systemctl enable hostapd    # systemctl enable hostapd
Zeile 1202: Zeile 1217:
 </file> </file>
  
-Am Besten nochmal rebooten um sicher zugehen dass alles passt, danach einfach mit dem ClientWifi verbinden.+Am Besten nochmal rebooten um sicher zugehendass alles passt, danach einfach mit dem ClientWifi verbinden.
    # systemctl reboot    # systemctl reboot
  
 ===== LAN Clients ===== ===== LAN Clients =====
-Will man LAN Clients versorgen, so erstellt man am einfachsten ein VLAN getaggtes Clientnetz. Dazu erstellt man in der Konfigurationsdatei **''/etc/network/interfaces''** diezugehörige Konfiguration. Im folgenden Beispiel nutzen wir die VLAN-ID **''333''** und definieren zunächst einmal das VLAn-Interface und fügen es anschließend in der vorhandenen Bridge hinzu.+Will man LAN Clients versorgen, so erstellt man am einfachsten ein VLAN getaggtes Clientnetz. Dazu erstellt man in der Konfigurationsdatei **''/etc/network/interfaces''** die zugehörige Konfiguration. Im folgenden Beispiel nutzen wir die VLAN-ID **''333''** und definieren zunächst einmal das VLAn-Interface und fügen es anschließend in der vorhandenen Bridge hinzu.
    # vim /etc/network/interfaces    # vim /etc/network/interfaces
 <file bash /etc/network/interfaces> <file bash /etc/network/interfaces>
Zeile 1313: Zeile 1328:
  
 ==== Installation der Software-Bibliotheken ==== ==== Installation der Software-Bibliotheken ====
-Jetzt installieren wir die notwendige Python Library um das Display ansteuern zu können.+Jetzt installieren wir die notwendige Python Bibliotheken  um das Display ansteuern zu können.
    # apt install git fonts-freefont-ttf -y    # apt install git fonts-freefont-ttf -y
    # cd /usr/local/src/    # cd /usr/local/src/
Zeile 1601: Zeile 1616:
 </file> </file>
  
-Anschließend Informieren wir unser System über unser definiertes Daemon-Startscript und aktivieren dies auch gleich noch. +Anschließend informieren wir unser System über unser definiertes Daemon-Startscript und aktivieren dies auch gleich noch. 
    # systemctl daemon-reload    # systemctl daemon-reload
    # systemctl enable oled-bandwidth.service    # systemctl enable oled-bandwidth.service
  
-Zu guter letzte rebooten wir nun unseren Rechner.+Zu guter Letzt rebooten wir nun unseren Rechner.
    # systemctl reboot    # systemctl reboot
  
  • knb/rpb4_wg.txt
  • Zuletzt geändert: 2023/11/04 21:29
  • von django