Skip to content
Jens Maus edited this page Feb 9, 2024 · 38 revisions

Möchte man als Virtualisierungslösung auf Linux Containers (LXC) um darüber auf einem bereits bestehenden Debian-basierten Linux System (Debian, Ubuntu, RaspberryPiOS, Armbian, etc.) RaspberryMatic als nativen leichtgewichtigen Linux Container zu betreiben, kann man mit dem folgenden Schritten eine Installation eines solchen LXC-basierten RaspberryMatic Systems vornehmen. Hierbei kann im Folgenden dann eine teilautomatische Installation vorgenommen werden.

Note

Bei der Nutzung von LXC im Kontext einer RaspberryMatic/CCU gilt zu beachten, dass im Gegensatz zu einer virtuellen Maschine z.B. unter Proxmox VE oder mittels QEmu/KVM auf dem jeweiligen Host-System (d.h. auf dem System auf dem man LXC betreibt) für den Betrieb eines solchen RaspberryMatic LXC gewisse Zusatzpakete und Modifikationen vorgenommen werden müssen um auf die notwendige Homematic Funkmodulhardware (z.B. RPI-RF-MOD, HmIP-RFUSB, etc.) zugreifen zu können. Zwar können diese Zusatzpakete/Modifikationen später wieder komplett zurückgenommen werden. Auf Grund dieser Abhängigkeiten zu notwendigen Paketen des Host-Systems können im späteren Verlauf (ggf. bei OS-Updates des Host-Systems) es später zu Problemen kommen. Solche Host-Updates sollten also immer mit dem Wissen durchgeführt werden, dass diese ggf. Auswirkungen auf die Funktion des RaspberryMatic LXC Container haben kann.

Voraussetzungen

Um ein RaspberryMatic LXC Container auf seinem bereits bestehenden Linux System betreiben zu können, müssen auf diesem (dem sogenannten "Host") vor der eigentlichen Installation gewisse Voraussetzungen erfüllt sein bzw. gewisse Vorkehrungen getroffen sein damit der in Betrieb zu nehmende RaspberryMatic LXC dann auch korrekt funktioniert. Dies betrifft vor allem die Netzwerkkonfiguration des Hostsystems. Damit dort der RaspberryMatic Container korrekt funktionieren muss darauf ein sogenanntes "Bridge" Interface (br0) mit statischer IP-Adresse eingerichtet werden worüber dann dann Host system mit dem LAN Interface verbunden wird. Je nach eingesetztem Betriebssystem und Netzwerkframework muss dies ggf. jeweils etwas anders umgesetzt werden:

NetworkManager Umgebungen (Armbian, RaspberryPiOS)

Setzt man als Host-OS ein Linux ein das auf NetworkManager als Netzwerkmanagement Tool setzt (z.B. Armbian, RaspberryPiOS), so kann man mit den folgenden Schritten dafür sorgen das solch ein "Bridge Interface" entsprechend angelegt und nutzbar wird:

  1. Aktuellen Interfacenamen identifizieren: Mit dem folgenden Befehl sollte man an erstes sich alle aktuellen "Interfaces" ausgeben lassen:

    sudo nmcli connection show --active

    Aus der Ausgabe dieses Befehles sollte man sich dann den Namen des Hauptinterfaces (z.B. eth0) notieren da man diesen dann später wieder benötigt. Zusätzlich dazu sollte man sich noch die aktuelle IP-Adresse bzw. eine IP-Adresse die man später statisch vergeben will samt Netmaske notieren (z.B. 192.168.178.10/24).

  2. bridge-utils installieren: Damit man eine "Netzwerk-Bridge" einrichten kann muss mit folgendem Befehl sichergestellt werden das die passenden bridge-utils installiert sind:

    sudo apt install bridge-utils
  3. Netzwerk-Bridge einrichten: Nun sollte man mit den folgenden Befehlen

    sudo nmcli connection add ifname br0 type bridge con-name br0
    sudo nmcli connection add type bridge-slave ifname <device> master br0
    sudo nmcli connection modify br0 ipv4.addresses "<address>/<prefix>" ipv4.gateway "<gateway>" ipv4.dns "<dns1>,<dns2>" ipv4.method "manual"

    Anstelle der hier mit < und > eingeschlosenen Beispielwerten muss man stattdessen die folgenden Informationen einfügen:

    • <device>: der Name des Hauptinterfaces (z.B. eth0) den man in Schritt 1 identifiziert hat.
    • <address>/<prefix>: die statische IPv4 Adresse samt Netzwerkprefix die man in Zukunft für das Host-system nutzen möchte (z.B. 192.168.178.10/24).
    • <gateway>: die IPv4 Adresse des "default gatway" bzw. Routers (z.B. 192.168.178.1).
    • <dns1>,<dns2>: die IPv4 Adressen (oder nur eine ohne komma) des DNS-Servers bzw. Routers (z.B. 192.168.178.1).

    ⚠️ Achtung: Bitte beachten, das sobald diese Befehle eingegeben werden das Host-System ggf. kurzzeitig seine aktuelle Netzwerkverbindung verliert und damit nicht erreichbar ist. Ggf. muss hier auch via direktem Tastatur/Monitorzugriff eingegriffen werden falls falsche Angaben bei diesen Befehlen vorgenommen werden.

  4. Neustart durchführen: Hat man die notwendige Netzwerkbridge (br0) eingerichtet sollte diese via ip a Befehl bzw. nmcli auf der Kommandozeile sichtbar werden. Trotzdem wäre nun angeraten vor der weiteren Einrichtung des LXC Containers erst ein Neustart des Hostsystems durchzuführen um sicherzustellen das dieses auch nach einem Neustart wieder korrekt hochfährt:

    sudo reboot

ifupdown Umgebungen (Debian-x86_64)

Setzt man als Host-OS ein Linux ein das auf ifupdown als Netzwerkmanagement Tool setzt (z.B. Debian Linux), so kann man mit den folgenden Schritten dafür sorgen das solch ein "Bridge Interface" entsprechend angelegt und nutzbar wird:

  1. bridge-utils installieren: Damit man eine "Netzwerk-Bridge" einrichten kann muss mit folgendem Befehl sichergestellt werden das die passenden bridge-utils installiert sind:
    sudo apt install bridge-utils

netplan Umgebungen (Ubuntu-x86_64)

Setzt man als Host-OS ein Linux ein das auf netplan als Netzwerkmanagement Tool setzt (z.B. Ubuntu Linux), so kann man mit den folgenden Schritten dafür sorgen das solch ein "Bridge Interface" entsprechend angelegt und nutzbar wird:

Installation