Skip to content

YAHM LXC

Leonid Kogan edited this page May 12, 2016 · 20 revisions

Das Skript yahm-lxc wird verwendet um die CCU2 Firmware in einem LXC Container unter einem Debian/Raspbian Jessie ausführen zu können.

YAHM LXC management script

Usage Example: 

./yahm-lxc [FLAG] COMMAND
./yahm-lxc  -n mycccu install

Flags:
-n        - LXC container name.
-f        - Force operation (no halt on errors).
-v        - Verbose output 
-d        - Path to custom CCU2 firmware file

Commands:
install     - Create new lxc instance with actual ccu2 image.
update      - Updates lxc instance to the actual version.
remove      - Removes lxc instance.

Folgende Funktionen stehen zur Verfügung:

#install

Es wird eine aktuelle Firmware der CCU2 von der Homematic Webseite runtergeladen und in das /var/lib/lxc Verzeichnis installiert. Ebenfalls besteht die Möglichkeit mit dem Flag -d eine lokale Datei anzugeben, sofern ein Download aus dem Internet nicht möglich ist. In diesem Fall wird die Versionsnummer, die im weiteren Verlauf für das Patchen der Firmware verwendet wird, auf die Nummer 2.17.16 gesetzt, sofern es nicht möglich ist diese anhand der Installation zu bestimmen.

Ein CCU2 Firmware ist ein TAR Archiv, welches das Dateisystem der CCU2 in Form eines UBI Images beinhaltet (UBI Dateisystem). Das Image wird mit Hilfe des Tools [ubi_reader] (https://github.com/jrspruitt/ubi_reader/tree/v1_ui) extrahiert und in das jeweils notwendige Verzeichnis verschoben. Anschließend muss die Datei entsprechend angepasst werden, damit diese in einem LXC Container lauffähig ist, es wird unter anderem die Unterstützung des Dateisystems in Form einer "internet" SD-Karte simuliert und Backup&Restore Funktionalität deaktiviert, da diese von YAHM übernommen wird.

#update

Es besteht die Möglichkeit mit Hilfe von YAHM ein Update auf die jeweils aktuelle Version der CCU2 zu wechseln. Im Zuge des Update wird ein Backup der aktuellen Konfiguration (LXC und der CCU2 Daten) vorgenommen. Die vorhandene LXC Instanz wird gelöscht und anschließend eine aktuelle Version der CCU2 installiert (siehe install). Nach einer erfolgreichen Installation wird ein Restore Skript ausgeführt, welches die zuvor gesicherten Daten wiederherstellt.

#remove

Diese Funktion entfernt das LXC Container restlos von dem Dateisystem, ein Backup wird NICHT vorgenommen