Plötzliche FRITZ!Box DNS-Probleme beheben

Wenn von einer Sekunde auf die andere das Internet über die FRITZ!Box nicht mehr funktioniert, lohnt es sich ein Blick in die DNS-Konfiguration. Dazu ist ein kleiner Aufruf von dig im Terminal nötig:

dig example.org

Die Ausgabe zeigte dann das der DNS-Service auf der FRITZ!Box nicht mehr so arbeitete, wie er sollte.

;; WARNING: recursion requested but not available

Um auszuschließen, das es sich nicht um ein generelles Problem handelt, kann dig anschließend noch einmal mit einem manuell gesetzten DNS-Server aufgerufen werden:

dig @1.1.1.1 example.org

Liefert dieser Aufruf eine DNS-Auflösung, so ist die Ursache höchstwahrscheinlich in der FRITZ!Box zu finden. Hier lohnt es sich nach einem Login die DNS-Einstellungen unter InternetZugangsdatenDNS-Server aufzurufen.

Die DNS-Einstellungen der FRITZ!Box

Dort hilft es in vielen Fällen den Punkt Verschlüsselte Namensauflösung im Internet (DNS over TLS) zu deaktivieren. Meist kann die Einstellung anschließend, nachdem sie einmalig übernommen wurde, wieder aktiviert werden. In anderen Fällen muss sie komplett deaktiviert werden, damit die DNS-Auflösung wieder funktioniert.

Kiosk-System auf dem Raspberry Pi einrichten

Wer auf einem Raspberry Pi ein Kiosk-System einrichten möchte, kann hierfür mit dem Raspberry OS Lite beginnen. Dort sollte über einen Aufruf von raspi-config der Autologin aktiviert werden (System Options -> S6 Auto Login).

Im nächsten Schritt wird der Wayland Compositor Sway installiert:

apt install sway xwayland

Nach der Installation wird im lokalen Nutzer, welcher für den Kiosk-Modus benutzt werden soll, eine Konfiguration-Datei angelegt:

mkdir -p ~/.config/sway/
nano ~/.config/sway/config

Diese wird mit folgender Konfiguration befüllt:

# Sway kiosk configuration for Raspberry Pi + Raspberry Pi Touch Display 2

# Configure sway
default_border none
default_floating_border none

# Set and transform output
output DSI-2 transform 90

# Execute application
exec_always sh -c '/home/seeseekey/testapp'

Die Konfiguration sorgt dafür das Sway rahmenlos arbeitet und der Bildschirm des Raspberry Touch 2 Display um 90 Grad gedreht wird. Im letzten Schritt wird in der Konfiguration eine Applikation gestartet.

Für Debugzwecke können daneben bei Bedarf noch folgende Zeilen hinzugefügt werden:

# Debug (write outputs and tree into file)
exec_always sh -c 'sleep 4 && swaymsg -t get_outputs > /tmp/outputs.json'
exec_always sh -c 'sleep 4 && swaymsg -t get_tree > /tmp/tree.json'

Zwar ist mit dieser Konfiguration das Display gedreht, aber die Eingaben werden noch in der ursprünglichen Rotation übermittelt. Hierzu muss im ersten Schritt mittels libinput-tools das Gerät ermittelt werden:

apt install libinput-tools
libinput list-devices

Nachdem das Touchscreen-Gerät ermittelt wurde, kann der Name des Gerätes genutzt werden, um eine udev-Regel zu definieren:

nano /etc/udev/rules.d/99-touch-rotation.rules

Dort wird die Rotation ebenfalls um 90 Grad gedreht:

ATTRS{name}=="11-005d Goodix Capacitive TouchScreen", ENV{LIBINPUT_CALIBRATION_MATRIX}="0 1 0 -1 0 1"

Nachdem diese Konfiguration hinterlegt sind, wird eine lokale systemd-Unit erstellt:

mkdir -p ~/.config/systemd/user
nano ~/.config/systemd/user/sway.service

Diese wird mit folgendem Inhalt befüllt:

[Unit]
Description=Sway
After=graphical-session.target
Requires=graphical-session.target

[Service]
ExecStart=/usr/bin/sway
Restart=always
Environment=XDG_RUNTIME_DIR=/run/user/%U

[Install]
WantedBy=default.target

Anschließend kann die systemd-Unit aktiviert werden.

systemctl --user enable sway

Nun kann der Raspberry Pi neugestartet werden. Im Idealfall startet das System führt den Login durch und startet die Applikation. Sollte es hier Probleme geben, kann es an bestimmten Bibliotheken wie libxi6 liegen, welche noch nachinstalliert werden müssen.

GitHub zu Codeberg spiegeln

Im Rahmen digitaler Souveränität ist das Hosten auf GitHub eine zwiespältige Sache. Während die zugrundeliegenden Werkzeuge wie Git frei verfügbar sind, trifft dies auf Plattformen wie GitHub nicht zu.

Allerdings existieren auch Alternativen, wie Codeberg. Dabei handelt es sich um eine gemeinnützige, community-getriebene Plattform für die Entwicklung und das Hosting von Open-Source-Softwareprojekten. Betrieben wird sie vom eingetragenen Verein Codeberg e.V. mit Sitz in Berlin. Die Plattform bietet eine datenschutzfreundliche Alternative zu kommerziellen Diensten wie GitHub und richtet sich an Entwickler:innen, die Wert auf Transparenz, Offenheit und digitale Souveränität legen.

Die Plattform Codeberg

Nun ist ein vollständiger Wechsel für viele Nutzer nicht unbedingt immer möglich. Eine Alternative ist dann unter Umständen die Nutzung zweier Plattformen wie GitHub und Codeberg und eine entsprechende Spiegelung. Die der Codeberg zugrundeliegende Plattform Forgejo beherrscht die Spiegelung von Repositories. Allerdings ist dieses Feature auf der Plattform mit Absicht deaktiviert.

Wer eine solche Synchronisation nutzen möchte, ist damit auf weitere Werkzeuge angewiesen. Eines dieser Werkzeuge ist Gickup. Nach der Installation:

brew install gickup

sollte eine Konfigurationsdatei mit dem Namen conf.yml angelegt werden. Eine Minimalkonfiguration könnte folgendermaßen aussehen:

source:
  github:
    - token: topsecret-github-token
      includeorgs:
        - Entitaet
        - seeseekey
      wiki: true
      issues: true
destination:
  gitea:
    - url: https://codeberg.org/
      token: topsecret-codeberg-token
      createorg: true
      mirror:
        enabled: true

Diese Konfiguration stellt sicher, dass nur gewünschte Organisationen synchronisiert werden und dass Repositories von Organisationen, als solche in Codeberg angelegt werden. Die Token müssen auf GitHub und Codeberg angelegt werden und anschließend in der Konfiguration hinterlegt werden. Für GitHub wird dieses Token in den Einstellungen erzeugt. Hier sollte ein Classic-Token erzeugt werden und die Rechte für repo sollten zugewiesen werden.

Für GitHub werden die repo-Berechtigungen benötigt

Unter Codeberg wird das neue Token ebenfalls in den Einstellungen unter Anwendungen angelegt.

Das Token für Codeberg wird erzeugt

Nachdem die Token in der Konfiguration hinterlegt worden sind, kann der Prozess mittels gickup gestartet werden:

2025-05-20T21:18:50+02:00 INF Reading conf.yml file=conf.yml
2025-05-20T21:18:50+02:00 INF Configuration loaded destinations=1 pairs=1 sources=1
2025-05-20T21:18:50+02:00 INF Backup run starting
2025-05-20T21:18:50+02:00 INF grabbing my repositories stage=github url=https://github.com
2025-05-20T21:19:20+02:00 INF starting backup for https://github.com/Entitaet/autoxylophon.git stage=backup
2025-05-20T21:19:20+02:00 INF mirroring autoxylophon to https://codeberg.org/ stage=gitea url=https://codeberg.org/
2025-05-20T21:19:21+02:00 INF already up-to-date stage=gitea url=https://github.com/Entitaet/autoxylophon.git

Je nach Größe der eigenen Repositories kann die Spiegelung einige Minuten in Anspruch nehmen. Ist eine Aktualisierung gewünscht, so kann der Prozess einfach erneut angestoßen werden. Neben dieser Möglichkeit existieren weitere Möglichkeiten, um eine Spiegelung von Repositories zu Codeberg zu realisieren.

DNS over TLS auf der FRITZ!Box aktivieren

Die FRITZ!Box aus dem Hause AVM beherrscht neben den althergebrachten DNS-Verfahren auch DNS over TLS (DoT). Damit werden DNS-Abfragen nicht mehr unverschlüsselt über das Internet versendet. Zur Nutzung müssen die Einstellungen der FRITZ!Box unter Internet -> Zugangsdaten -> DNS-Server angepasst werden.

Die FRITZ!Box-DNS Einstellungen

Dort kann z.B. der Cloudflare-DoT-Server eingestellt werden. Dieser nutzt folgende Werte für die IP-Adressen:

IPv4: 1.1.1.1, 1.0.0.0
IPv6: 2606:4700:4700::1111, 2606:4700:4700::1001

Neben den IP-Adressen müssen auch die Auflösungsnamen der DNS-Server definiert werden:

one.one.one.one
1dot1dot1dot1.cloudflare-dns.com

Je nachdem ob ein Rückgriff auf konventionelles DNS gewünscht ist, kann der Punkt Bei DNS-Störungen auf öffentliche DNS-Server zurückgreifen aktiviert und deaktiviert werden.

WLED auf einen ESP8622 flashen

Seit einigen Jahren existieren LED-Strips mit einzeln adressierbaren LEDs. Diese können für unterschiedlichste Projekte genutzt werden und z.B. über einen Arduino angesteuert werden. Auch über einen ESP8622 kann eine solche Ansteuerung vorgenommen werden. Wer die nicht von Hand tun möchte und mehr eine Lösung aus einem Guss benötigt, der sollte sich WLED ansehen.

Der ESP8266 auf einem Entwicklungsboard

Bei WLED handelt es sich um ein Open-Source-Projekt, welches speziell für die Steuerung von adressierbaren LED-Streifen entwickelt wurde. Es ermöglicht LED-Streifen einfach zu konfigurieren und zu steuern, um Lichteffekte zu erzeugen. WLED kann auf hierbei auf dem ESP8266 und ESP32 installiert werden.

Um WLED auf einem ESP8266 zu installieren, muss im ersten Schritt das esptool installiert werden (in diesem Fall mittels Homebrew unter macOS):

brew install esptool

Nachdem das entsprechende WLED-Binary heruntergeladen wurde, kann mit dem Flash-Vorgang begonnen werden:

esptool.py write_flash 0x0 ./WLED_0.15.0-b4_ESP8266.bin 
esptool.py v4.7.0
Found 3 serial ports
Serial port /dev/cu.wlan-debug
Connecting......................................
/dev/cu.wlan-debug failed to connect: Failed to connect to Espressif device: No serial data received.
For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html
Serial port /dev/cu.usbserial-21420
Connecting....
Detecting chip type... Unsupported detection protocol, switching and trying again...
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 60:01:94:2d:8b:e7
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Flash will be erased from 0x00000000 to 0x000d9fff...
Compressed 890480 bytes to 641849...
Wrote 890480 bytes (641849 compressed) at 0x00000000 in 62.1 seconds (effective 114.8 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

Ist der Flashvorgang erfolgreich vonstattengegangen, so startet die Firmware und öffnet einen WLAN-AP mit dem Namen WLED-AP. Über das initiale Passwort wled1234 kann nun die Konfiguration vorgenommen werden.