Skip to content

YAHM LXC

Leonid Kogan edited this page May 11, 2017 · 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
-b	  - Build number (=version) of the CCU2-FW

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

Möglichen Parameter:
yahm-lxc   -b   VERSION   -n   KONTAINER_NAME   -f   -v   -d   /PFAD/ZU/FIRMWARE   install

Es wird eine aktuelle Firmware der CCU2 von der Homematic Webseite runtergeladen und in das /var/lib/lxc/{NAME} Verzeichnis installiert.

Sofern gewünscht kann auch eine ältere Firmware durch die Angabe der Version mit dem -b Flag ausgewählt werden. Die Auswahl möglicher Versionen befindet sich hier und kann durch die Nennung der Versionsnummer (z.B. 2.17.16) bestimmt werden.

Ebenfalls besteht die Möglichkeit mit dem Flag -d eine lokale Datei anzugeben, sofern ein Download aus dem Internet nicht möglich ist. Bei einer lokalen Datei ist es zwingend notwendig die Versionsnummer mit -b anzugeben, damit ein passender Patch für die Version ausgewählt wird.

Eine 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.

Die Konfiguration des LXC Containers befindet sich in der Datei /var/lib/lxc/{NAME}/config, das Dateisystem der CCU2 ist unter /var/lib/lxc/{NAME}/root zu finden.

update

Möglichen Parameter:
yahm-lxc   -n   KONTAINER_NAME   -f   -v   -d   /PFAD/ZU/FIRMWARE   update

Es besteht die Möglichkeit mit Hilfe von YAHM ein Update auf die jeweils aktuelle Version der CCU2 durchzuführen. 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

Möglichen Parameter:
yahm-lxc   -n   KONTAINER_NAME   -f   -v   remove

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