Website-Icon Dein Smart Home Blog

Die Fibaro HC2 "Rooten" und eigene Programme installieren

Man kennt es aus der Welt der Smartphones: Das “Rooten” oder beim iPhone das “Jailbreak”. Es bedeutet alles das eine: Der Nutzer bekommt Admin Rechte und kann die Einschränkungen des Herstellers umgehen.

Bei der Fibaro HC2 bedeutet das für uns wir können per SSH Zugriff erlangen und das aufgespielte Linux verändern. Auf die HC2 können wir beispielsweise zusätzlich einen MediaServer installieren oder wir betreiben eine NAS über die USB Ports. Für mich war es natürlich einerseits interessant ein paar Fakten über die Funktionsweise der Fibaro Software zu erhaschen und andererseits möchte ich gern einen Gateway mit API direkt auf die Fibaro installieren. Per USB können dann eigene Funksticks installiert werden und die Steuerung von 433 Mhz oder auch von Open Source Hardware wie MySensors wird möglich. Genauso können wir diverse Protokolle anzapfen. Der MAX! Cube kann dann ohne Umwege direkt mit der HC2 gesteuert werden. Klingt alles nicht schlecht oder?

Hier muss ich selbst die Notbremse ziehen! Fibaro möchte natürlich nicht, dass sich unerfahrene Nutzer an der Software vergreifen. Alles was hier beschrieben wird, führt umgehend zum Verlust der Garantie und es besteht keinerlei Service-Anspruch. Weder bei uns noch bei Fibaro! Wer also mal Lust hat seine 500€ Zentrale aufs Spiel zu setzen, kann das hier ausprobieren. Alle anderen lesen vielleicht lieber nur und bilden sich eine Meinung!

Benötigt wird

Backup erstellen bevor etwas schief geht

Dazu müssen wir die HC2 als Erstes öffnen. Das Betriebssystem auf der HC2 ist Debian 6 und befindet sich auf einem USB Stick, welcher mit dem Mainboard verbunden ist. Wir kommen sehr leicht an den Stick, indem wir die 4 Schrauben auf der Unterseite lösen und das Mainboard vorsichtig herausziehen. Der Stick ist mit etwas Kleber befestigt, also vorsichtig beim Abstecken. Den Stick dann in den PC stöpseln.

[carousel arrows="display"] [panel][/panel] [panel][/panel] [panel][/panel] [panel][/panel] [panel][/panel] [/carousel]

Auf unserem Windows Rechners starten wir nun Win 32 Disk Imager um ein Backup zu erstellen. Dazu auf dem Desktop eine neue Textdatei erstellen und umbenennen in “fibaro.img”. Im DiskImager wählen wir dann über den blauen Ordner die Datei aus und außerdem den Laufwerksbuchstaben, unter welchem der Stick eingelegt wurde. Dann READ Klicken und warten. (Hier vorsichtig sein, denn wer WRITE klickt, löscht seinen Fibaro Stick.) Wenn alles fertig ist haben wir eine Backup Datei. Diese spielen wir jetzt gleich auf den neuen Stick auf, indem wir das Spiel umkehren: Fibaro Stick beiseite legen und den neuen Stick anstecken. Den blauen Ordner klicken und das Image auswählen. Als letztes nun WRITE klicken und warten. Wenn alles fertig ist, könnt ihr probehalber den neuen Stick in die Fibaro stecken und einmal booten. Es sollte bis hier her alles aussehen wie immer und wir müssen nun nicht mehr auf dem original Fibaro Stick herumbasteln.

Ein paar Hintergrundinformationen

Der Fibaro Stick wurde Hardware codiert. Im Stick selbst befindet sich eine Serial und ein spezieller Name, der den Stick einzigartig macht. Die Kopie unseres Sticks hat diese Daten nicht und kann somit (theoretisch) von der HC2 erkannt werden. Fibaro rät explizit davon ab den Stick bzw. den Recovery Stick zu kopieren. Bei mir funktioniert alles wie immer, aber es gibt ein paar Beiträge im Netz, welche von Problemen beim Remote Zugang usw. sprechen. Ihr könnt mir hier gern Feedback zu euren Erfahrungen lassen. Sollte ich Infos von Fibaro bekommen, werde ich diese auch gern teilen. Es ist übrigens durchaus möglich auch die Serial des Sticks zu schreiben, darauf möchte ich hier aber aus gegebenem Anlass nicht weiter eingehen.

Das “Rooten” der HC2 Software über Linux

Mit Windows kommen wir nun nicht weiter, denn das Dateisystem von Linux hat Windows nicht gern (Es kann damit nichts anfangen). Wir starten also unsere Ubuntu VM / Unsere Linux-Installation oder unsere LIVE-CD und legen den Stick (die erstellte Kopie) ein. Es sollten nun 2 Partitionen angezeigt werden. Ich beschreibe den Workflow jetzt über Ubuntu, je nach Linux-Distribution kann sich hier einiges ändern.

Wir Starten das Terminal und loggen uns als Root ein. Das Passwort hat man in der Regel bei der Installation gesetzt.

Jetzt navigieren wir zu unserem Stick. Als Erstes

("daniel" ist mein Benutzername, hier muss natürlich euer eigener hinein, den ihr bei der Installation gewählt habt.)

Jetzt werden die Partitionen angezeigt. Gebt nun cd  und dann die ersten paar Buchstaben ein. Ihr könnt mit TAB anschließend die Eingabe vervollständigen. Als Bsp.:

Nun bearbeiten wir die User mit

Es öffnet sich eine Datei die in etwa wie folgt aussieht:

In der Zeile von root ändern wir den Passwort Hash zwischen dem ersten “:” und zweitem “:” Wir generieren uns als Erstes einen eigenen. Öffnet als erstes ein neues Terminal Fenster und gebt dort folgende Zeile ein:

Jetzt könnt ihr ein neues root Passwort eingeben und nachdem ihr ENTER drückt, wird eine Passwort Hash generiert.

Wer darauf keine Lust hat, für den hier eine fertige HASH (Das Passwort ist hier “admin”)

Die Hash muss nun wie beschrieben zwischen den 1. und 2. Doppelpunkt in der shadow Datei. Der bereits darin stehende Hash wird überschrieben bzw. vorher gelöscht. Am Ende noch speichern mit Strg+X, Y, Enter.

Fertig! Alle Terminal-Fenster schließen und den Stick auswerfen per Rechtsklick in der Leiste links. Der Stick kann jetzt wieder in die Fibaro und ab jetzt haben wir unser ganz eigenes root-Kennwort gesetzt.

Login via ssh wie beim Raspberry Pi

Als Letztes können wir uns nun als root per SSH einloggen. Wir haben nun alle Möglichkeiten mit dem aufgespielten Linux zu arbeiten und können z.B. via apt-get install unsere eigenen Pakete und Programme installieren. In Putty dann einfach als Name "root" und als Passwort das jeweilige Wort, aus dem der Passwort-Hash generiert wurde.

Die mobile Version verlassen