Raspberry Pi zu einem mini Server Konfigurieren
Ich habe vor, ein Raspberry Pi zu einem kleinen Server aufzubauen, nachdem ich feststellen musste, dass meine Kodi-Box doch zu instabil ist, um wichtige Services zu hosten.
Als Basis nutze ich Raspberry Pi OS Lite also ein Debian.
Vorbereitung
Als erstes habe ich das OS auf eine SSD installiert mithilfe des Installers von Raspberry Pi OS mit eingeschalteten SSH und einen User den man bei dem Installer bei den Zusatzoptionen angeben kann und einmal das OS und die firmware komplett geupdated. WLAN eingerichtet, was sich als etwas hackelig herausgestellt hatte und nun step by step meine Docker Umgebung.
Install Dockerd
Als erstes Installiere ich alles, wo ich glaube es zu brauchen.
sudo apt update
sudo apt install docker.io docker-compose
sudo usermod -aG docker ${USER}
Bei meiner CoreELEC Docker installation hatte ich meine Daten irgendwie unglücklich mit der Directory-Struktur verschachtelt, was ich jetzt natürlich verbessern möchte :)
sudo mkdir /home/docker
sudo chmod 777 /home/docker
Setup Services
Setup PI-hole Service
Unter Debian liegen die Service files in /etc/systemd/system also baue ich meine Systemd startup config ein wenig um.
Wir legen also eine leere Datei in /home/docker an und erzeugen einen Symlink in /etc/systemd/system/ für das File um es zentral in unserem Home zu haben.
touch /home/docker/pi-hole.docker.service
sudo ln -s /home/docker/pi-hole.docker.service /etc/systemd/system/pi-hole.docker.service
Das soll nun unser neues pi-hole.docker.service sein.
[Unit]
Description=%p container
Requires=network-online.target
After=network-online.target
[Service]
Restart=always
RestartSec=10s
TimeoutStartSec=0
ExecStartPre=-/bin/sh -c "mkdir -p /home/docker/%p/etc-pihole /home/docker/%p/dnsmasq"
ExecStartPre=-/bin/sh -c "/usr/bin/docker rm %p"
ExecStartPre=-/bin/sh -c "ntpd -d -n -q -p 157.90.24.29"
ExecStart=/usr/bin/docker run \
--rm \
--name %p \
-p 53:53/tcp -p 53:53/udp \
-p 8053:80 \
-e TZ="Europe/Berlin" \
#-e # WEBPASSWORD: 'set a secure password here or it will be random' \
-v "/home/docker/%p/etc-pihole:/etc/pihole" \
-v "/home/docker/%p/dnsmasq:/etc/dnsmasq.d" \
--dns=192.168.1.1 --dns=192.168.8.1 \
#--restart=unless-stopped \
--hostname raspberrypi \
-e VIRTUAL_HOST="raspberrypi" \
-e FTLCONF_LOCAL_IPV4="192.168.8.190" \
pihole/pihole:latest
# before set a new docker have u to pull it manual
# docker pull pihole/pihole:latest
# ohne dns kein pull ohne pull kein docker :)
ExecStop=/usr/bin/docker stop %p
[Install]
WantedBy=multi-user.target
Und nun teste ich erst mal ob der neue Service hoch kommt und wenn ja, setzte ich das er immer beim Booten gestartet werden soll.
docker pull pihole/pihole:latest
sudo systemctl daemon-reload
sudo systemctl start pi-hole.docker.service
systemctl status pi-hole.docker.service
sudo docker ps -a
sudo systemctl enable pi-hole.docker.service
Setup InfluxDB2 Service
Hier machen wir jetzt einfach das selbe mit ein paar Anpassungen.
touch /home/docker/influxdb.docker.service
sudo ln -s /home/docker/influxdb.docker.service /etc/systemd/system/influxdb.docker.service
Das soll nun unser neues influxdb.docker.service sein.
[Unit]
Description=%p container
Requires=network-online.target
After=network-online.target
After=pi-hole.docker.service
[Service]
Restart=always
RestartSec=10s
TimeoutStartSec=0
ExecStartPre=-/bin/sh -c "mkdir -p /home/docker/%p/etc /home/docker/%p/influxdb"
ExecStartPre=-/bin/sh -c "/usr/bin/docker rm %p"
ExecStart=/usr/bin/docker run \
--rm \
--name %p \
-p 8086:8086 \
# ip-hole is not bound on host localhost only inside the bridge
--dns=172.17.0.1 \
--add-host host.docker.internal:host-gateway \
#--network=host \
--hostname raspberrypi \
-v "/home/docker/%p/etc:/etc/influxdb2" \
-v "/home/docker/%p/influxdb:/var/lib/influxdb2" \
-e INFLUXD_LOG_LEVEL="warn" \
-e TZ="Europe/Berlin" \
# docker wand pull a arm/v7 image wat not exist for influxdb2
#--platform linux/arm64 \
influxdb:2.6
# https://hub.docker.com/_/influxdb/tags
ExecStop=/usr/bin/docker stop %p
[Install]
WantedBy=multi-user.target
Und weiter geht es mit starten und testen.
docker pull influxdb:2.6
sudo systemctl daemon-reload
sudo systemctl start influxdb.docker.service
systemctl status influxdb.docker.service
sudo docker ps -a
sudo systemctl enable influxdb.docker.service
Setup OpenHAB Service
Und noch einmal mit OpenHAB.
touch /home/docker/openhab.docker.service
sudo ln -s /home/docker/openhab.docker.service /etc/systemd/system/openhab.docker.service
Das soll nun unser neues openhab.docker.service sein.
[Unit]
Description=%p container
Requires=network-online.target
Requires=influxdb.docker.service
After=network-online.target
After=pi-hole.docker.service
[Service]
Restart=always
RestartSec=10s
TimeoutStartSec=0
ExecStartPre=-/bin/sh -c "mkdir -p /home/docker/%p/conf /home/docker/%p/addons /home/docker/%p/userdata"
ExecStartPre=-/bin/sh -c "/usr/bin/docker rm %p"
ExecStart=/usr/bin/docker run \
--rm \
--name %p \
-e TZ="Europe/Berlin" \
--network=host \
--hostname %p \
-v "/home/docker/%p/conf:/openhab/conf" \
-v "/home/docker/%p/addons:/openhab/addons" \
-v "/home/docker/%p/userdata:/openhab/userdata" \
-v "/etc/localtime:/etc/localtime:ro" \
-v "/etc/timezone:/etc/timezone:ro" \
--device=/dev/ttyACM0:/dev/ttyACM0 \
-e OPENHAB_HTTP_PORT=8090 \
-e OPENHAB_HTTPS_PORT=8094 \
-e CRYPTO_POLICY="unlimited" \
-e USER_ID=1000 \
-e GROUP_ID=1000 \
-e EXTRA_JAVA_OPTS="-Xms1024m -Xmx2048m -Duser.timezone=Europe/Berlin" \
openhab/openhab:3.4.2
# https://hub.docker.com/r/openhab/openhab/tags
# docker pull openhab/openhab:latest
ExecStop=/usr/bin/docker stop %p
[Install]
WantedBy=multi-user.target
Und weiter geht es mit starten und testen.
docker pull openhab/openhab:3.4.2
sudo systemctl daemon-reload
sudo systemctl start openhab.docker.service
systemctl status openhab.docker.service
sudo docker ps -a
sudo systemctl enable openhab.docker.servicee
Daten sichern und übertragen
Pi-Hole
Quellsystem, in meinem fall die Kodi-Box.
cd /storage/dockerdata/
tar cfvz pihole.tar.gz pi-hole.docker/config/
Kopieren zum Zielsystem und Entpacken.
cd /home/docker
sudo systemctl stop pi-hole.docker.service
# Alte Daten vom test lösche
sudo rm -rf influxdb.docker/*
sudo tar xfvzp pihole.tar.gz -C pi-hole.docker/ --strip-components=2
sudo systemctl start pi-hole.docker.service
InfluxDB
Quellsystem.
cd /storage/dockerdata/
tar cfvz influx.tar.gz influxdb.docker/data/
Kopieren zum Zielsystem und Entpacken.
cd /home/docker
sudo systemctl stop influxdb.docker.service
# Alte Daten vom test lösche
sudo rm -rf influxdb.docker/*
sudo tar xfvzp influx.tar.gz -C influxdb.docker --strip-components=2
sudo systemctl start influxdb.docker.service
OpenHAB
Quellsystem.
# source system
cd /storage/dockerdata/
tar cfvz openhab.tar.gz openhab.docker/data/openhab/
Kopieren zum Zielsystem und Entpacken.
cd /home/docker
sudo systemctl stop openhab.docker.service
rm -rf openhab.docker/*
sudo tar xfvzp openhab.tar.gz -C openhab.docker/ --strip-components=3
sudo chown -r 1000:1000 openhab.docker
sudo systemctl start openhab.docker.service
Jetzt sollte, nach einem Reboot, Systemd alles wie gewollt starten und unsere neue Box alles Kontrollieren.
Viel Spaß beim Nachbauen.
Links
Raspberry Pi einmal komplett upgraded
Wenn man ein Raspberry Pi hat sollte man auch immer mal wieder nachsehen ob es nicht auch neuere firmware gibt bzw. ein neues EPROM was einige bekannte Probleme beheben kann. Alo hier jetzt ein Upgrade Pfad.
OS Update
Ich nutze Raspberry Pi OS Lite als basis OS also ein Debian.
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
Firmware Update
Die Firmware wird z.b. für WLAN gebraucht.
sudo rpi-update
Zurück rollen kann man bei Problemen mit dem commit hash
sudo rpi-update {Commit-Nummer}
EPROM Update
Das EPROM entspricht dem BIOS des Raspberry Pi.
Checken ob es eine neue version gibt
sudo rpi-eeprom-update
Upgrade zum reboot forcieren und rebooten.
sudo rpi-eeprom-update -d -a
sudo reboot
Viel Spaß
Links
Raspberry Pi WLAN Verbindungsprobleme mit neueren Router lösen
Gestern wollte ich meinen neuen RaspberryPi 4b ins WLAN einhängen und bin da auf unerwartete Probleme gestoßen.
Test WPA
Zum testen muss man WLAN erst mal disconnecten und dem wpa daemon killen und kann dann mit wpa_supplicant die Verbindung überprüfen. Bitte dran denken das man dafür via Lan connected sein muss :)
sudo ifdown wlan0
sudo killall wpa_supplicant
sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
CTRL-EVENT-ASSOC-REJECT mit bssid=00:00
Wenn die bssid nur Nullen beinhalten bei einem REJECT kann man davon ausgehen das der Router gar nicht erreicht werden kann. Z.b. ist die WLAN Antenne Geerdet ist, durch ein Fehlerhaftes Gehäuse z.B. oder der Router ist zu weit weg.
CTRL-EVENT-ASSOC-REJECT bssid=00:00:00:00:00:00 status_code=16
set key_mgmt
Bei meinem Router wird das veraltete WPA-PSK nicht mehr unterstützt und man sieht dann im Router log nur AP-STA-POSSIBLE-PSK-MISMATCH und beim einen Test WPA mit wpa_supplicant CTRL-EVENT-ASSOC-REJECT status_code=16. Die Lösung kann WPA-PSK-SHA256 mit ieee80211w=2 sein. Dafür muss man seine wpa_supplicant.conf um folgendes ergänzen.
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
und füge den aktuellen WPA key_mgmt algo hinzu
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=DE
eapol_version=1
ap_scan=1
fast_reauth=1
pmf=1
network={
ssid="router_SSID"
psk=....
key_mgmt=WPA-PSK-SHA256
ieee80211w=2
}
Die Lösung hatte ich hier gefunden. github issue
Generate WPA Password
sudo wpa_passphrase "router_SSID" "wlanpassword" >> /etc/wpa_supplicant/wpa_supplicant.conf
WLAN Autoconnect
Damit sich mein WLAN selber Verbindet beim Booten und das Powermanagment aus ist um Verbindungsprobleme zu vermeiden habe ich diese config angelegt.
sudo nano /etc/network/interfaces.d/wlan.conf
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
post-up iw wlan0 set power_save off
brcmfmac modprobe options
Es gibt wohl verschiedenste Probleme und ein paar Lösungen sind die Optionen. Alle zu verwenden macht kein sin aber zum testen hier die Vorgehensweise.
Kernelmodule auswerfen.
sudo rmmod cfg80211
sudo rmmod brcmfmac
brcmfmac Config Optionen.
sudo nano /etc/modprobe.d/brcmfmac.conf
options brcmfmac roamoff=1
options brcmfmac p2pon=0
cfg80211 Config Optionen.
sudo nano /etc/modprobe.d/cfg80211.conf
options cfg80211 cfg80211_disable_40mhz_24ghz=1
Kernelmodule mit der neuen Config laden.
sudo modprobe brcmfmac
Und jetzt wieder testen wie in Test WPA Probieren ob es geht.
Nützliche Commands
List Verfügbare Wlan Channels
sudo iwlist chan
Show Country Infos
iw reg get
List Router
sudo iwlist scan|egrep 'ESSID|Channel:'
#oder full
sudo iwlist scan
Wlan infos
iwconfig
Viel Spaß beim Nachbauen
OpenHAB auf einer Kodi Box als Docker Service installieren
Nachdem ich ja, vor ein paar Tagen schon, ein PI-hole auf meine Kodi box installiert hatte, habe ich nun für die Home-Automatisierung auch noch ein openHAB mit einer influxdb2 eingerichtet um damit Licht, Thermostate und Multimedia zu steuern. Hier nun in groben schritten meine Lösung
Installation
Dockerd installieren
Wir brauchen das Kodi addon Docker in Dienste, wenn wir ein minimal System nutzen um einen dockerd zu haben.
Install xbmc.service Docker
systemd
Die service files speichere unter '/storage/.config/system.d/'
Filename: openhab.docker.service
[Unit]
Description=%p container
Requires=service.system.docker.service
Requires=network-online.service
After=network-online.service
After=pi-hole.docker.service
[Service]
Restart=always
RestartSec=10s
TimeoutStartSec=0
ExecStartPre=-/bin/sh -c "mkdir -p /storage/dockerdata/%p/data/openhab/conf /storage/dockerdata/%p/data/openhab/addons /storage/dockerdata/%p/data/openhab/userdata"
ExecStartPre=-/bin/sh -c "/storage/.kodi/addons/service.system.docker/bin/docker rm %p"
ExecStart=/storage/.kodi/addons/service.system.docker/bin/docker run \
--rm \
--name %p \
-e TZ="Europe/Berlin" \
--network=host \
--hostname %p \
-v "/storage/dockerdata/%p/data/openhab/conf:/openhab/conf" \
-v "/storage/dockerdata/%p/data/openhab/addons:/openhab/addons" \
-v "/storage/dockerdata/%p/data/openhab/userdata:/openhab/userdata" \
-v "/etc/localtime:/etc/localtime:ro" \
-v "/storage/.cache/timezone:/etc/timezone:ro" \
-e OPENHAB_HTTP_PORT=8090 \
-e OPENHAB_HTTPS_PORT=8094 \
-e CRYPTO_POLICY="unlimited" \
-e EXTRA_JAVA_OPTS="-Duser.timezone=Europe/Berlin" \
openhab/openhab:3.4.1
# https://hub.docker.com/r/openhab/openhab/tags
# docker pull openhab/openhab:latest
ExecStop=/storage/.kodi/addons/service.system.docker/bin/docker stop %p
[Install]
WantedBy=multi-user.target
Filename: influxdb.docker.service
[Unit]
Description=%p container
Requires=service.system.docker.service
Requires=network-online.service
After=network-online.service
After=pi-hole.docker.service
Before=openhab.docker.service
[Service]
Restart=always
RestartSec=10s
TimeoutStartSec=0
ExecStartPre=-/bin/sh -c "mkdir -p /storage/dockerdata/%p/data/etc /storage/dockerdata/%p/data/influxdb"
ExecStartPre=-/bin/sh -c "/storage/.kodi/addons/service.system.docker/bin/docker rm %p"
ExecStart=/storage/.kodi/addons/service.system.docker/bin/docker run \
--rm \
--name %p \
-p 8086:8086 \
# ip-hole is not bound on host localhost only inside the bridge
--dns=172.17.0.1 \
--add-host host.docker.internal:host-gateway \
#--network=host \
--hostname %p \
-v "/storage/dockerdata/%p/data/etc:/etc/influxdb2" \
-v "/storage/dockerdata/%p/data/influxdb:/var/lib/influxdb2" \
-e DOCKER_INFLUXDB_INIT_MODE="setup" \
-e DOCKER_INFLUXDB_INIT_USERNAME="admin" \
-e DOCKER_INFLUXDB_INIT_PASSWORD="admin1234" \
-e DOCKER_INFLUXDB_INIT_ORG="myorg" \
-e DOCKER_INFLUXDB_INIT_BUCKET="openhab" \
-e DOCKER_INFLUXDB_INIT_ADMIN_TOKEN="extremtopsecrettoken1234" \
-e INFLUXD_LOG_LEVEL="warn" \
-e TZ="Europe/Berlin" \
# docker wand pull a arm/v7 image wat not exist for influxdb2
--platform linux/arm64 \
influxdb:2.6
# https://hub.docker.com/_/influxdb/tags
ExecStop=/storage/.kodi/addons/service.system.docker/bin/docker stop %p
[Install]
WantedBy=multi-user.target
Steuerung des Services mit Systemd
Systemd Konfiguration neu einlesen.
systemctl daemon-reload
Service starten
systemctl start influxdb.docker.service
systemctl start openhab.docker.service
Service status
systemctl influxdb.docker.service
systemctl status openhab.docker.service
Start Service on reboot
systemctl enable openhab.docker.service
systemctl enable influxdb.docker.service
Service stoppen
systemctl stop openhab.docker.service
systemctl stop influxdb.docker.service
Logs lesen
journalctl -u openhab.docker.service
journalctl -u influxdb.docker.service
tail -f /storage/dockerdata/openhab.docker/data/openhab/userdata/logs/*.log
Bash im laufendem Docker öffnen
docker exec -it openhab.docker /bin/bash
Influxdb
Set New influxdb admin pw
Aus der infuxdb doku 'User passwords cannot be updated in the InfluxDB UI.'
Wir müssen als das pw mit der Shell ändern und das geht mit dem init token welsches bei dem ersten Start eingerichtet wird.
docker exec -it influxdb.docker influx user password -n admin -t extremtopsecrettoken1234
- go to Load Data->API Tokens
- Gerate API Token...
- Alte Admin token in der Liste löschen
Influxdb als persistent storage in openHAB einrichten
Als erstes muss man sich in openHAB einloggen und dort in die Settings gehen und bei den Add-ons das addon "InfluxDB Persistence" suchen und installieren.
Nach der Installation hat man nun in den Settings bei 'Other Services' die Einstellungen 'InfluxDB Persistence Service' wo man seine InfluxDB verbinden kann. Hier reichen wenige Optionen.
- Database URL: http://127.0.0.1:8086
- Database Version: InfluxDB 2
- Authentication Token: ein neues auth token generieren wie schon bei dem Admin pw ändern beschreiben und einfügen.
- Database/Organization: myorg
- Retention Policy / Bucket: openhab
Ich habe dann noch die 3 folgenden Schalter an gemacht 'Add Category Tag', 'Add Type Tag', 'Add Label Tag' um es eventuell später in Grafana als Selektor nutzten zu können.
Nun können wir die influxdb als Persistence storage auswählen. Dafür gehen wir wieder in den Settings zu den 'System Services' in die 'Persistence' Option und wählen 'InfluxDB persistence layer'.
Für die Persistence Config gibt es jetzt noch ein File was wir anlegen müssen und wofür es leider keine UI Config gibt.
Dafür legen wir das folgende File an
Filename: /storage/dockerdata/openhab.docker/data/openhab/conf/persistence/influxdb.persist
Strategies {
default = everyChange, restoreOnStartup
}
Items {
// persist all items on every change and restore them from the db at startup
* : strategy = everyChange, restoreOnStartup
}
Und nun sollten, sobald wir thinks haben Daten in der InfluxDB zu finden sein :)
Das war es schon, wie man nun ein paar Sachen in openHAB einbaut und benutzt werde ich in einem weiteren Artikel beschreiben.
Viel Spaß beim Nachbauen
Links
PI-hole auf einer Kodi Box als docker Service installieren
Ich habe mir vor einiger Zeit eine recht leistungsstarke und mit genug Ressourcen ausgestattete Kodi Box zugelegt die ich nun zum Testen mit ein paar Service auf Docker Basis nutzten wollte um nicht noch einen Server betreiben zu müssen bzw. die Existierenden Ressourcen einfach zu nutzten. Die Basis auf Docker hat hier 2. gründe. erstens Benutzte ich CoreELEC als Distribution, weswegen ich nur ein sehr minimales Linux System habe wo ich nicht einfach Pakete installieren kann und zweitens, ich mit einem fertigen Docker alles Nötige ohne Große spielen, in einem packet habe, welsches von dem restlichen System gut genug getrennt ist.
Installation
Dockerd installieren
Wir brauchen das Kodi addon docker in Dienste wenn wir ein minimal System nutzen um einen dockerd zu haben.
Install xbmc.service Docker
systemd
Das service file speichere ich in '/storage/.config/system.d/pi-hole.docker.service'
[Unit]
Description=%p container
Requires=service.system.docker.service
Requires=network-online.service
After=service.system.docker.service
After=network-online.service
Befora=kodi.service
[Service]
[Unit]
Description=%p container
Requires=service.system.docker.service
Requires=network-online.service
After=service.system.docker.service
After=network-online.service
Before=kodi.service
[Service]
Restart=always
RestartSec=10s
TimeoutStartSec=0
ExecStartPre=-/bin/sh -c "mkdir -p /storage/dockerdata/%p/config/etc-pihole /storage/dockerdata/%p/config/dnsmasq"
ExecStartPre=-/bin/sh -c "/storage/.kodi/addons/service.system.docker/bin/docker rm %p"
ExecStartPre=-/bin/sh -c "ntpd -d -n -q -p 157.90.24.29"
ExecStart=/storage/.kodi/addons/service.system.docker/bin/docker run \
--rm \
--name %p \
-p 53:53/tcp -p 53:53/udp \
-p 8053:80 \
-e TZ="Europe/Berlin" \
#-e # WEBPASSWORD: 'set a secure password here or it will be random' \
-v "/storage/dockerdata/%p/config/etc-pihole:/etc/pihole" \
-v "/storage/dockerdata/%p/config/dnsmasq:/etc/dnsmasq.d" \
--dns=192.168.1.1 --dns=192.168.8.1 \
#--restart=unless-stopped \
--hostname coreelec \
-e VIRTUAL_HOST="coreelec" \
-e FTLCONF_LOCAL_IPV4="192.168.8.190" \
pihole/pihole:latest
# before set a new docker have u to pull it manual
# docker pull pihole/pihole:latest
# ohne dns kein pull ohne pull kein docker :)
ExecStop=/storage/.kodi/addons/service.system.docker/bin/docker stop %p
[Install]
WantedBy=multi-user.target
Steuerung des Services mit systemd
Systemd Konfiguration neu einlesen.
systemctl daemon-reload
Service starten
systemctl start pi-hole.docker.service
Service status
systemctl status pi-hole.docker.service
Start Service on reboot
systemctl enable pi-hole.docker.service
Service stoppen
systemctl stop pi-hole.docker.service
Logs lesen
journalctl -u pi-hole.docker.service
Password für die Web-UI von Pi-hole
Wenn man ein Pi Hole das erste Mal aufsetzt, muss man ein neues Password setzten. Dafür gibt es 2 Wege.
-
Im dem Service File WEBPASSWORD setzten.
-
Neu setzten des Web-Passwords in dem Docker selbst mit dem Befehl
docker exec pi-hole.docker pihole -a -p
Zeit stellen
Meine Kodi Box hat keine Akku gepufferte Uhr weswegen ich nach jedem Reboot die Zeit neu stellen muss, das habe ich auch in dem Service Init eingebaut weil ohne richtige Zeit viele Probleme mit z.B. SSL auftreten und so Downloads fehlschlagen könnten oder diverse Crypto nicht richtig funktioniert.
Ermittel eine $IP aus pool.ntp.org
ntpd -d -n -q -p $IP
Der Grund für die ip ist, ohne DNS Server keine DNS Auflösung und man startet den Service ja erst :)
IP-Hole über DHCP als Primären DNS auf einen OpenWRT Router einrichten
Router via ssh Verbinden und dann die DHCP-Konfiguration anpassen.
/etc/config/dhcp
und yourDNSIP mit der ip vom IP-Hole ersetzten
config 'dhcp' 'lan'
...
list 'dhcp_option' '6,yourDNSIP'
So hat jeder Client den PI-hole als DNS Server und nicht den Router, so kann man in PI-hole genau sehen welscher Client welsche anfrage gemacht hat.
HDMI Suspend verhindern
Die Kodi Box ging bisher immer in den Suspend Modus, wenn der Fernseher ausgeschaltet wurde. Das ist aber jetzt nicht mehr gewollt, wenn wichtige Dienste auf der Box Parallel Laufen. Deswegen schalte ich aus, dass die Box auf das HDMI-Signal reagieren soll und verhindere so das Ungewollte einschlafen.
# HDMI CEC Control
# Setup custom options by enable these flags:
#
# Function bit
# CEC_FUNC_MASK 0
# ONE_TOUCH_PLAY_MASK 1
# ONE_TOUCH_STANDBY_MASK 2
# AUTO_POWER_ON_MASK 3
# STREAMPATH_POWER_ON_MASK 4
# CEC_INPUT_MASK 5
# ACTIVE_SOURCE_MASK 6
#
# default: cec_func_config=7f
Wir wollen kein ONE_TOUCH_STANDBY_MASK also das 2. Bit auf 0, ich setzte cec_func_config also auf 0b1101111 = 0x6F. zum Hinzufügen von cec_func_config=6f muss man mit ssh auf die Box und den /flash Mount Point auf Beschreibbar umstellen und die config anpassen.
ssh to CE
mount -o rw,remount /flash
nano /flash/config.ini
mount -o ro,remount /flash
Blocklisten
Pi-hole bringt zwar eine Block Liste mit, aber es gibt weit mehr nützliche listen, um sein internetleben Freier zu verbringen :)
Viel Spaß beim Nachbauen