:: fischer-net.de

UPDATE: siehe auch Artikel FHEM mit Perl 5.16.0 auf Synology DiskStation

Ich habe mir die Tage mal die Mühe gemacht und FHEM auf meine Synology Rackstation RS812 mit DSM 4.0 zu portieren. Im Prinzip ginge das recht reibungslos, wenn Synology die Diskstation / Rackstation nicht mit einem alten Perl, fehlenden Perl-Modulen und Kernel Treibern ausliefern würde. Aber man muß ja dankbar sein, daß die Geräte auf Linux basieren und man die Möglichkeit hat eigene Anwendungen zu installieren.

FHEM auf der DiskstationFHEM auf der DiskstationSo mußte also erstmal eine passende Umgebung her, um die notwendigen Pakete für eine ARM-Architektur auf einem x86 basierenden Rechner cross-compilen konnte. Im ersten Durchlauf habe ich die passenden Kernel Treiber für die USB-Unterstützung (usbserial.ko, cdc-acm.ko, ftdi_sio.ko, pl2303.ko) übersetzt. Im zweiten Schritt habe ich mir die aktuelle Version 5.2 (Stand 26.04.12) von FHEM vorgenommen. Beide Schritte verliefen ohne weitere Probleme. Nun kam Perl in der Version 5.14.2 an die Reihe.

Wenn man der Suche im Internet glauben schenken kann, dann gehört Perl wohl zu den anspruchsvolleren Sourcen zum cross-compilen. Genau so verhielt es sich bei mir. Irgendwie gelang es mir in den letzten Wochen nicht Perl an den Start zu bekommen. Letztlich verhalf mir das Projekt perl-cross zum notwendigen Durchbruch, wenn auch (aktuell) mit Einschränkungen. Aber mehr dazu im weiteren Verlauf.

 

Synology Pakete

Im Ergebnis liegen nun drei Pakete vor, die im Downloadbereich unter der Kategorie Synology herunter zu laden sind. Alle drei Pakete lassen sich über das Paketmanagement der Diskstation installieren und natürlich auch wieder entfernen. Ich habe die Installation von FHEM bewußt in verschiedene Pakete ausgelagert, da z.B. die USB Kernel Treiber heißbegehrt sind und vielleicht nicht jeder dann zwingend FHEM installieren will. Ebenso verhält es sich mit Perl.

Meine Synology Rackstation RS812 basiert auf einer ARM Architektur. Laut Synology sollten folgende Geräte mit Marvel 88f6281 / 88f6282 kompatibel sein:

DS109, DS209, DS409, DS409slim, RS409, DS110j, DS210j, DS410j, DS211j, DS411j, DS111, DS211, DS411, DS411slim, DS211+, RS812.

Hinweis: Vereinzelt wurde ich darauf angesprochen, das die Installation über den Paketmanager nicht funktioniert. Nach dem das Paket ausgewählt wurde, verbleibt die Diskstation längere Zeit in der Fortschrittsanzeige. Dies ist kein Problem seitens meiner Pakete, sondern ein generelles Problem mit DSM. Dies tritt meines Wissens nur auf, wenn man mit dem Firefox ein Upload vornimmt. Setzt man den Internet Explorer ein, dann lassen sich die Pakete auch installieren. Dies ist besonders ärgerlich, wenn man so wie ich zu 100% unter Linux arbeitet. Aber Achtung: nicht zu ungeduldig sein! Perl ist > 12 MByte und das dauert bei einem HTML Upload ca. 5-6 Minuten.

 

USB Kernel Treiber

Package ModulesPackage ModulesDas Paket usb-driver-kernel beinhaltet die für den Betrieb eines FHZ 1300, CUL, etc. notwendigen Module usbserial.ko, cdc-acm.ko, ftdi_sio.ko und pl2303.ko als Bonus ;-) Während der Installation werden die Module anders als sonst nicht als Symlink eingebunden, sondern befinden sich neben dem entsprechenden @appstore Verzeichnis auf dem gewählten Volume auch unter /usr/local/lib/modules. Wie oben bereits geschrieben, habe ich den Weg gewählt um die Module auch anderen Paketen zur Verfügung zu stellen. Und unter dem gewählten Pfad halte ich das auf einem Linux System für sinnvoll. Weiterhin werden während der Installation die notwendigen Charakter-Devices /dev/ttyUSB0, /dev/ttyUSB1, /dev/ttyUSB2 und /dev/ttyUSB3 mit den entsprechenden Rechten angelegt. Diese verbleiben auch nach dem Entfernen über das Paketmanagement.

 

Perl

Package PerlPackage PerlDas Paket perl5 in der aktuellen Version 5.14.2 war wie erwähnt (für mich) recht aufwendig zu bauen. Deshalb gibt es hier zur Zeit auch noch ein paar Einschränkungen. Weil ich das ursprüngliche System der Diskstation möglichst unangetastet lassen und nicht mit einer evtl. vorhandenen Optware-Lösung kollidieren wollte, liegt Perl unter /usr/local/perl5, welches wiederum auf das entsprechende @appstore Verzeichnis im gewählten Volume verlinkt ist. Einschränkungen bestehen zur Zeit in Form einiger fehlenden CPAN-Module die für bestimmte FHEM Module notwendig sind. So gelang es mir nicht die Module Weather::Google und LWP auf meiner Cross-Platform zu übersetzen. Auch fehlt zur Zeit noch das Modul OW. Dies schränkt die Verwendung einiger wenigen Module wie z.B. meine eigenen 1-Wire Module (OWFS und OWTEMP) sowie Weather und noch zwei, drei weitere ein, sofern ich das im Moment richtig überblicke. Möchte man das installierte Perl in eigenen Anwendungen nutzen, dann ist darauf zu achten, das der Shebang #!/usr/bin/perl durch #!/usr/local/perl5/bin/perl ersetzt wird. Auch sollte der entsprechende PERL5LIB Pfad im Environment gesetzt sein. Ein Hinweis darauf habe ich in der beigefügten README.usage Datei hinterlegt. Alles was zu Perl 5.14.2 gehört, ist unter dem angegebenen Pfad zu finden. Das Basissystem der Diskstation bleibt ansonsten unangetastet.

 

FHEM 

Package FHEMPackage FHEMDas Pakte FHEM in der aktuellen Version 5.2 benötigt zwingend das Paket usb-driver-kernel. Zwar wäre eine Installation auch ohne dieser Abhängigkeit möglich, doch ich wollte mir Nachfragen auf Grund nicht funktionierender Devices (CUL, FHZ 1300, etc.) ersparen. FHEM liegt ebenfalls unter /usr/local/FHEM, welches wiederum auf das entsprechende @appstore Verzeichnis im gewählten Volume verlinkt ist. Beim Start von FHEM wird automatisch die systemeigene Perlvariante genutzt. Dies kann /usr/bin/perl oder wenn Optware installiert ist /opt/bin/perl sein. Ist jedoch das obige Perl Paket installiert, so wird FHEM vorrangig dieses nutzen. Dies begründet sich darin, das beim systemeigenen Perl und beim Optware-Perl einige Module für FHEM fehlen. FHEM ist also in diesem aktuell vorliegenden Paket mit allen drei Varianten (mit Einschränkungen bei den genutzten FHEM-Modulen) einsatzbereit. 

Nachdem FHEM installiert wurde, empfehle als einen der ersten Schritte ein updatefhem vorzunehmen um auf den letzten Entwicklungsstand zu aktualisieren. Sollte während dem ersten Start von FHEM bereits ein USB-Device (z.B. CUL) angeschlossen sein, kann dieses sofort über einen define genutzt werden. Andernfalls sollte ein Starten / Stoppen von FHEM über das Paketmanagement abhilfe schaffen. Die benötigten Kernel Module werden beim Start von FHEM geladen und beim Beenden entladen.

 

The Bottom Line

Einen ausführlichen Test habe ich derzeit nicht vorgenommen. Es sollte jedoch soweit (bis auf die erwähnten Einschränkungen) alles laufen. So bald es meine Zeit zuläßt und ich eine Lösung für die fehlenden CPAN-Module gefunden habe, werde ich weiter berichten.

Wer also interessiert ist, FHEM auf seiner Diskstation zu testen, dem wünsche ich viel Spaß und Erfolg mit obigen Paketen. Kommentare sind ausdrücklich erwünscht ;-) 

UPDATE: siehe auch Artikel FHEM mit Perl 5.16.0 auf Synology DiskStation

Powered by ...

 

 

reichelt elektronik – Elektronik und PC-Technik