Skip to main content

⚙️ Schritt 8: Vorbereitung ioBroker installieren

1. Funktionen in /boot/config.txt anpassen

In der /boot/config.txt lassen sich bestimmte Funktionen deaktivieren, um Systemressourcen zu sparen.
Bei mir waren WiFi und Bluetooth, die ich nicht benötige, bereits deaktiviert:

sudo nano /boot/config.txt

Beispielinhalt:

# Uncomment if you want to disable wifi or bluetooth respectively
dtoverlay=disable-wifi
dtoverlay=disable-bt

Zusätzlich (optional):

dtparam=audio=off
# dtoverlay=vc4-kms-v3d
display_auto_detect=0

💡 Hinweis

Standardmäßig wird der UART des Raspberry Pi 4 vom integrierten Bluetooth-Modul belegt.
Um den UART für die serielle Kommunikation über die GPIO-Pins – z.B. für ein Razberry Z-Wave-Modul – freizugeben, füge folgende Zeile hinzu: enable_uart=1


2. NTP-Zeitserver konfigurieren

Ich nutze den Zeitserver der FritzBox:

sudo nano /etc/systemd/timesyncd.conf

Füge hinzu:

NTP=192.168.0.1

3. Root-Partition mit noatime mounten (ohne /etc/fstab)

a) /boot/cmdline.txt bearbeiten:

sudo nano /boot/cmdline.txt

b) In der vorhandenen Zeile den Parameter rootflags=noatime ergänzen.
Beispiel (alles in einer Zeile, keine Umbrüche!):

root=UUID=8823e411-2982-44c9-92f3-7af051ce915e rw rootwait rootflags=noatime console=serial0,115200 console=tty1 fsck.repair=yes

⚠️ Hinweis

Wenn du ein Razberry Z-Wave-Modul verwendest, entferne den Eintrag console=serial0,115200.
Dadurch wird der Serial Port nicht mehr für Konsolenausgaben genutzt.

root=UUID=8823e411-2982-44c9-92f3-7af051ce915e rw rootwait rootflags=noatime console=tty1 fsck.repair=yes

Nach diesen Anpassungen:

sudo ldconfig
sudo usermod -aG video $USER
sudo reboot

👉 Die Aufnahme in die Gruppe video ist notwendig, damit dein Benutzer Zugriff auf /dev/vcio_gencmd erhält und z.B. vcgencmd get_throttled ohne sudo nutzen kann (auch wichtig für iob diag).

Prüfen:

getent group video
id
ls -l /dev/vcio_gencmd /dev/vcio 2>/dev/null
ls -l /dev/ttyA*
cat /boot/cmdline.txt

id zeigt deine Gruppenzugehörigkeiten; ls -l zeigt, ob die Gerätedateien vorhanden sind und welche Zugriffsrechte sie haben.

(ioBroker läuft noch nicht. Da der Benutzer iobroker nach der Installation Zugriff auf das Gerät benötigt, richten wir seine Berechtigung später separat ein.)

Nach dem Neustart:

findmnt -no OPTIONS /

→ In der Ausgabe sollte noatime enthalten sein.
Damit werden keine Access-Time-Stempel mehr geschrieben → das spart Schreibzugriffe auf die SSD.


4. Automatischen TRIM-Lauf aktivieren

sudo systemctl enable --now fstrim.timer

Prüfen:

systemctl status fstrim.timer

💡 Hinweis

Manche externe SSDs (z.B. Samsung T7) unterstützen TRIM über USB nicht.
Du kannst es manuell aktivieren mit einer udev-Regel.

lsusb

Beispiel meiner Ausgabe:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 04e8:4001 Samsung Electronics Co., Ltd PSSD T7
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Verwende in der udev-Regel die passenden IDs. Im Beispiel sind das idVendor 04e8 und idProduct 4001:

echo 'ACTION=="add|change", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="4001", SUBSYSTEM=="scsi_disk", ATTR{provisioning_mode}="unmap"' \
| sudo tee /etc/udev/rules.d/50-usb-ssd-trim.rules
sudo udevadm control --reload-rules
sudo udevadm trigger

Prüfen:

cat /sys/block/sda/queue/discard_max_bytes

→ Sollte eine Zahl > 0 zeigen.

TRIM-Testlauf:

sudo fstrim -av

Beispielausgabe:

/boot: 442,2 MiB (463695872 Bytes) auf /dev/sda1 getrimmt
/: 913,5 GiB (980864098304 Bytes) auf /dev/sda2 getrimmt

Falls TRIM nicht unterstützt wird:

sudo systemctl disable --now fstrim.timer

5. Pi 4: Power-LED (optional deaktivieren)

Die rote Power-LED (PWR) kann beim Boot automatisch abgeschaltet werden.

a) LED-Namen prüfen:

ls /sys/class/leds/

Beispielausgabe:

ACT  default-on  mmc0  mmc0::  PWR

b) Manuell testen: LED ausschalten:

echo 0 | sudo tee /sys/class/leds/PWR/brightness

Zum Wiedereinschalten:

echo 1 | sudo tee /sys/class/leds/PWR/brightness

c) Service-Datei erstellen:

sudo nano /etc/systemd/system/disable-pwr-led.service

Inhalt:

[Unit]
Description=Disable the PWR LED on Raspberry Pi

[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo 0 > /sys/class/leds/PWR/brightness"

[Install]
WantedBy=multi-user.target

d) Service aktivieren:

sudo systemctl enable disable-pwr-led.service
sudo systemctl start disable-pwr-led.service

Oder testen nach Neustart:

sudo reboot

💡 Hinweis

Mit cat /sys/class/leds/PWR/brightness kannst du den Zustand prüfen:
0 = aus, 1 = an.


6. Pi 5: Grüne Power-LED (optional deaktivieren)

Die grüne Anzeige der zweifarbigen Status-LED signalisiert Aktivität. Du kannst sie beim Boot automatisch abschalten.

Teste die Einstellung zuerst manuell. Damit wird die grüne ACT-Anzeige ausgeschaltet; die rote Power-LED bleibt als Aus-/Fehleranzeige erhalten.

Manuell testen

echo none | sudo tee /sys/class/leds/ACT/trigger
echo 1 | sudo tee /sys/class/leds/ACT/brightness

Soll die grüne ACT-Anzeige wieder Aktivität anzeigen, setze den Trigger zurück:

echo mmc0 | sudo tee /sys/class/leds/ACT/trigger

Beim Start automatisch deaktivieren

Wenn der manuelle Test funktioniert, kannst du die Einstellung mit einem systemd-Service bei jedem Start anwenden.

Service-Datei erstellen:

sudo nano /etc/systemd/system/disable-act-led.service

Inhalt:

[Unit]
Description=Disable the green ACT LED on Raspberry Pi 5
After=systemd-udev-settle.service

[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo none > /sys/class/leds/ACT/trigger; echo 1 > /sys/class/leds/ACT/brightness"

[Install]
WantedBy=multi-user.target

Service aktivieren und sofort ausführen:

sudo systemctl enable --now disable-act-led.service

💡 Hinweis

Der manuelle Rückstellbefehl echo mmc0 ... gilt bis zum nächsten Start. Wenn der Service aktiviert ist, schaltet er die grüne ACT-LED beim Start wieder aus.


7. Systempakete installieren

sudo pacman -S --needed \
acl avahi base-devel cairo cmake curl gcc giflib git htop iftop \
libcap libjpeg-turbo librsvg lm_sensors make fastfetch net-tools \
pam pango pkgconf systemd-libs unzip sqlite cifs-utils nfs-utils \
rsync polkit distro-info hdparm

8. Node.js installieren

💡 Hinweis

  • ioBroker unterstützt keine Installation über NVM (Node Version Manager).
  • Verwende stattdessen eine LTS-Version direkt aus den offiziellen Arch-Paketquellen.

Installation der aktuellen LTS-Version Krypton (Node.js 24.x, empfohem von ioBroker, Stand Oktober 2026):

sudo pacman -S nodejs-lts-krypton npm

💡 Info

nodejs-lts-krypton entspricht zum Zeitpunkt dieser Anleitung der empfohlenen Node.js-LTS-Version 24 (Krypton).
Wichtig: Bitte prüfe vor der Installation die aktuell gültige ioBroker-Empfehlung, da sich diese mit neuen LTS-Versionen ändern kann.

Linux Arch Quellen:

Dokumentation Node.js:

Prüfen:

command -v node nodejs npm npx && node -v && nodejs -v && npm -v && npx -v

Beispielausgabe (wenn „nodejs“ fehlt):

/usr/bin/node
/usr/bin/npm
/usr/bin/npx
v24.22.2
-bash: nodejs: command not found
sudo ln -s /usr/bin/node /usr/bin/nodejs

Erneuter Test:

command -v node nodejs npm npx && node -v && nodejs -v && npm -v && npx -v

Beispielausgabe

/usr/bin/node
/usr/bin/nodejs
/usr/bin/npm
/usr/bin/npx
v24.22.2
v24.22.2
12.2.2
12.2.2

💡 Hinweis

Wenn du Dateien verschiebst oder löschst, aktualisiere den Bash-Cache:
hash -r