Repository navigation
Installation LXC
Wenn du OpenCCU als nativen, leichtgewichtigen Linux-Container auf einem bereits bestehenden Debian-basierten Host (Debian, Ubuntu, Raspberry Pi OS, Armbian, …) betreiben möchtest, kannst du dies mit Linux Containers (LXC) umsetzen. Die nachfolgenden Schritte führen durch eine teilautomatisierte Installation eines OpenCCU-LXC-Systems.
Important
Im Gegensatz zu einer vollwertigen VM (z. B. unter Proxmox VE oder mit QEMU/KVM) erfordert LXC zusätzliche Pakete und Anpassungen auf dem Host. Diese sind nötig, damit OpenCCU auf die Homematic-Funkhardware (z. B. RPI-RF-MOD, HmIP-RFUSB, …) zugreifen kann. Zwar lassen sich alle Änderungen später wieder entfernen, doch Host-Updates können sich auf den Betrieb des OpenCCU-Containers negativ auswirken. Plane System-Updates daher bewusst ein und teste sie, falls möglich, vorab.
Note
LXC bereits installiert und eine Netzwerk-Bridge (br0) als Hauptinterface vorhanden? Dann kannst du direkt zu Installation Container springen.
- Ein Debian-basiertes amd64- oder arm64-Host-System (32-Bit-Systeme werden seit OpenCCU 3.87.6.20260313 nicht mehr unterstützt).
- Für den Container: mindestens 1 GB, empfohlen 2 GB Arbeitsspeicher sowie 2 CPU-Kerne.
- Die vom Skript installierten Kernel-Module
pivccu-modules-dkmsmüssen mindestens in Version 1.0.88 vorliegen; bei älteren Installationen ggf. persudo apt update && sudo apt install --only-upgrade pivccu-modules-dkmsaktualisieren. - Ein unterstütztes Funkmodul.
Um einen OpenCCU-LXC-Container stabil zu betreiben, muss der Host vorab korrekt netzwerktechnisch vorbereitet sein. OpenCCU erwartet auf dem Host eine Bridge (br0) mit statischer IP-Adresse, über die der Host ins LAN eingebunden ist. Je nach Distribution und Netzwerk-Stack unterscheidet sich die Einrichtung.
Im Folgenden werden Platzhalter in spitzen Klammern <…> verwendet:
-
<device>: Name des primären Netzwerkinterfaces (z. B.eth0) des Hosts. -
<address>/<prefix>: statische IPv4-Adresse mit Netzwerkpräfix (z. B.192.168.178.10/24). -
<gateway>: IPv4-Adresse des Default-Gateways/Routers (z. B.192.168.178.1). -
<dns1>,<dns2>: IPv4-Adresse(n) des/der DNS-Server (z. B.192.168.178.1).
Verwendest du NetworkManager (z. B. auf Armbian, Raspberry Pi OS), richte die Bridge wie folgt ein:
-
Aktives Interface ermitteln
nmcli con show --active
Notiere dir das primäre Interface (z. B.
eth0) sowie die künftige statische IP (inkl. Präfix). -
bridge-utils installieren
sudo apt install bridge-utils
-
Bridge anlegen und konfigurieren
sudo nmcli con add type bridge ifname br0 con-name br0 stp no forward-delay 0 sudo nmcli con add type bridge-slave ifname <device> master br0 sudo nmcli con modify br0 ipv4.addresses "<address>/<prefix>" ipv4.gateway "<gateway>" ipv4.dns "<dns1>,<dns2>" ipv4.method manual
Achtung: Während der Umkonfiguration kann die Netzwerkverbindung kurzzeitig ausfallen. Bei Remote-Zugriff ggf. Konsole/Monitor bereithalten.
-
Neustart Prüfe die Bridge mit
ip aodernmcli. Führe anschließend zur Sicherheit einen Neustart durch:sudo reboot
Auf Systemen mit ifupdown (z. B. klassisches Debian):
-
bridge-utils installieren
sudo apt install bridge-utils
-
/etc/network/interfacesanpassenauto lo iface lo inet loopback iface <device> inet manual auto br0 iface br0 inet static address <address>/<prefix> gateway <gateway> dns-nameservers <dns1>,<dns2> bridge_ports <device> bridge_stp off bridge_fd 0 -
Neustart
sudo reboot
Auf Systemen mit netplan (z. B. Ubuntu):
-
/etc/netplan/<file>.yamlanpassennetwork: version: 2 renderer: networkd ethernets: <device>: dhcp4: no dhcp6: no bridges: br0: dhcp4: no dhcp6: no interfaces: [<device>] addresses: [<address>/<prefix>] routes: - to: default via: <gateway> nameservers: addresses: [<dns1>, <dns2>] parameters: stp: false forward-delay: 0
-
Änderungen anwenden
sudo netplan generate sudo netplan --debug apply
Achtung: Auch hier kann die Verbindung kurzzeitig abreißen. Bei Fehlkonfiguration ggf. lokale Konsole nutzen.
-
Neustart
sudo reboot
Sind die Voraussetzungen erfüllt und die Bridge br0 aktiv, lässt sich der OpenCCU-Container wie folgt installieren:
-
Installationsskript starten In einer Shell (lokal oder per SSH) den Downloader ausführen:
sudo sh -c "wget -qO - https://openccu.de/install-lxc.sh | bash -" -
Dependency-Check bestätigen Das Skript prüft die erforderlichen Pakete und Host-Anpassungen und zeigt einen Hinweisdialog. Mit Yes bestätigen, um fortzufahren.
Hinweis: Die durch das Skript vorgenommenen Änderungen lassen sich jederzeit rückgängig machen; siehe Abschnitt Deinstallation (
uninstall-Option). -
Funkmodul-Overlays (nur ARM/GPIO) Auf ARM-Hosts mit GPIO-Funkmodul (
RPI-RF-MOD/HM-MOD-RPI-PCB) fragt das Skript, ob die nötigen Device-Tree-Overlays installiert werden sollen.
Hinweis: Bei USB- (
HmIP-RFUSB,HB-RF-USB-2, …) oder Ethernet-Anbindung (HB-RF-ETH) ist keine Overlay-Installation nötig → No wählen. -
Version wählen Wähle die gewünschte OpenCCU-Version (Release oder Snapshot).
Empfehlung: Für den produktiven Einsatz Release-Versionen bevorzugen; Snapshots sind experimentell.
-
Userdisk-Pfad festlegen Gib den Pfad für die „Userdisk“ (persistente Daten) an, Standard:
/var/lib/openccu/userfs.
Achtung: Ein bereits verwendetes
userfsdarf nicht gleichzeitig von mehreren Containern genutzt werden. -
Container-Name festlegen Vergib einen eindeutigen Namen für den OpenCCU-Container.
-
CPU-Kerne zuweisen Wähle die Anzahl der CPU-Kerne (empfohlen ≥ 2).
-
Arbeitsspeicher limitieren Lege das RAM-Limit für den Container fest (Minimum 1024 MB, Vorgabe 2048 MB).
-
Installation durchführen Das Skript legt den Container an und konfiguriert ihn.
-
Neustart (falls Overlays/Module installiert)
sudo reboot
Nach dem Reboot startet der Host erneut; idealerweise wird der neue OpenCCU-LXC direkt gestartet. Konsole ansehen: lxc-console <name>; Shell betreten: lxc-attach <name>. Weitere Hinweise findest du in der Skriptausgabe und in den offiziellen LXC-Manpages. Die WebUI ist anschließend unter http://openccu/ bzw. der IP-Adresse des Containers erreichbar; danach helfen die ersten Schritte nach der Installation bei der weiteren Einrichtung.
So aktualisierst du einen bestehenden OpenCCU-LXC:
-
Container stoppen
lxc-stop <name>
-
Backup/Snapshot anlegen
lxc-snapshot <name>
-
Updateskript starten
sudo sh -c "wget -qO - https://openccu.de/install-lxc.sh | bash -s update" -
Container auswählen
-
Zielversion wählen
Hinweis: Für produktive Systeme Release statt Snapshot wählen.
-
Update bestätigen
-
Update läuft/ist abgeschlossen
Abschließend den Container wieder starten:
lxc-start <name>Zum Mitlesen der Bootausgaben:
lxc-console <name>Da für den LXC-Betrieb Host-Anpassungen vorgenommen wurden (Pakete, Module, Overlays), kannst du diese mit der Uninstall-Option des Skripts wieder entfernen:
-
Deinstallation starten
sudo sh -c "wget -qO - https://openccu.de/install-lxc.sh | bash -s uninstall" -
Bestätigen
-
Rückbau durchführen lassen
Hinweis: Bei Fehlermeldungen den Vorgang ggf. erneut ausführen; das Skript prüft vor jedem Schritt, ob die jeweilige Komponente noch vorhanden ist.
Der OpenCCU-Container selbst sowie dessen Userdisk werden dabei nicht entfernt. Bei Bedarf den Container mit sudo lxc-destroy <name> löschen und das Userdisk-Verzeichnis (Standard: /var/lib/openccu/userfs) manuell entfernen.
Nach erfolgreicher Deinstallation einen Neustart einplanen. Nicht mehr benötigte Abhängigkeiten lassen sich optional per
sudo apt autoremoveentfernen.
Inhalt · Contents OpenCCU Documentation © 2015-2026 Jens Maus and OpenCCU Contributors, licensed under CC BY-SA License 4.0