Synology Diskstation DS213+

Aus FHEMWiki
Version vom 7. Juni 2015, 14:51 Uhr von 50watt (Diskussion | Beiträge) (Initiale Version)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Ab DSM 5.0 gibt es für die DS213+ (CPU: Freescale PowerPC, siehe hier) ein Paket für Perl, welches via Paketmanager installiert werden kann.

Diverse Perl-Module (z.B. Device::SerialPort) lassen sich jedoch nicht (einfach via cpan oder ipkg) installieren (Stand: Juni 2015).

Man kann Perl jedoch auch direkt auf der Diskstation kompilieren, mit dem Vorteil, dass dann cpan funktioniert und so diverse Perl-Module, die von Fhem bzw. von Fhem-Modulen verwendet werden, installiert werden können. So kommt man zu einer leistungsfähigeren Installation von Fhem, als z.B. auf einem RaspberryPi.

Perl Installation

Vorbereitungen

Sollte das Perl-Paket installiert sein - bitte das Perl-Paket zuerst deinstallieren!

Im Prinzip vorgehen wie in http://search.cpan.org/dist/perl-5.20.2/README.synology beschrieben: Für die DS213+ gibt es aktuell (Juni 2015) kein Synology Paket ("Bootstrap Installer Beta"), die ipkg installiert, also installieren via command line (ssh)

Synology ipkg installieren: siehe http://www.synology-wiki.de/index.php/IPKG

Für PowerPC (ppc_85xx, e500v?): http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/syno-e500-bootstrap_1.2-7_powerpc.xsh

cd /volume1/public
wget http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/syno-e500-bootstrap_1.2-7_powerpc.xsh
sh syno-e500-bootstrap_1.2-7_powerpc.xsh
... (PATH anpassen, start script..., reboot,...)

Compiler installieren

Um Perl auf der Synology Diskstation zu compilieren, installiert einen Compiler samt Zubehör auf der DS213+:

ipkg install make gcc coreutils patch expat

(expat wird später für die Perlmodule für das Fhem Sonosmodul gebraucht)

Symlinks zu system libraries

Der Compiler erwartet z.B. die library libm.so, das ist normalerweise ein symlink zu libm.so.6. Synology bietet nur das letztere und nicht den symlink. Das kann nachgeholt werden:

cd /lib
ln -s libm.so.6 libm.so
ln -s libcrypt.so.1 libcrypt.so
ln -s libdl.so.2 libdl.so
cd /opt/powerpc-linux-gnuspe/lib
ln -s /lib/libdl.so.2 libdl.so
ln -s /lib/libgdbm.so /lib/libgdbm.so.3
ln -s /lib/libdb-5.1.so /lib/libdb-4.2.so
ln -s /lib/libgdbm_compat.so /lib/libgdbm_compat.so.3

ACHTUNG: Nach einem Systemupdate (update der DSM) sind die symlink wieder weg und müssen gegebenenfalls wieder hergestellt werden.

Download perl

cd /volume1/public
mkdir perl_sources
cd perl_sources
wget http://www.cpan.org/src/5.0/perl-5.22.0.tar.gz
tar -xzvf perl-5.22.0.tar.gz
cd perl-5.22.0

Policy.sh

Im aktuellen Verzeichnis (/volume1/public/perl_sources/perl-5.22.0) die Datei Policy.sh erstellen (z.B.

vi Policy.sh

mit folgendem Inhalt:

# Administrivia.
perladmin="your.email@goes.here"
# Install Perl in a tree in /opt/perl instead of /opt/bin.
prefix=/opt/perl
# Select the compiler. Note that there is no 'cc' alias or link.
cc=gcc
# Build flags.
ccflags="-DDEBUGGING -Dusethreads"
# Library and include paths.
libpth="/lib"
locincpth="/opt/include"
loclibpth="/lib"

For threads support of Perl (for the SONOS module of Fhem): Fix the pthreads library symlink (Borrowed from Synology Forum)

rm /opt/powerpc-linux-gnuspe/lib/libpthread.so.0
ln -s /lib/libpthread.so.0 /opt/powerpc-linux-gnuspe/lib/

Perl compilieren

./Configure -Dplibpth=/opt/powerpc-linux-gnuspe/lib /lib /usr/lib -de -Dusethreads –Duseithreads
make
make test

Zwei tests funktionieren nicht, sollte jedoch kein Problem sein.

make install

Perl ist nun nach /opt/perl/ installiert - diesen Pfad eventuell zu $PATH hinzufügen:

vi /etc/profile

Zur Zeile PATH=... /opt/perl/bin hinzufügen - könnten dann so aussehen:

PATH=/opt/bin:/opt/sbin:/opt/perl/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin

Das wirkt erst nach erneutem anmelden an der Console ;-)

Perlmudule für Fhem- Module installieren

Für den EnOcean USB300 (wohl auch für CUL,Zwave...)

cpan Device::SerialPort 

Für die EnOcean cryptographic functions

cpan Crypt::Rijndael
cpan Crypt::Random 

Für das SONOS-Modul

Man braucht die openssl header files

Openssl Version erfragen:

openssl version

Passende openssl Version downloaden

wget http://www.openssl.org/source/openssl-1.0.1m.tar.gz
tar -xzvf openssl-1.0.1m.tar.gz 
cd openssl-1.0.1m/ 
./config
make
cp include/openssl/* /opt/include/openssl/

Module installieren

cpan LWP::Simple
cpan LWP::UserAgent
cpan SOAP::Lite
cpan HTTP::Request

Für das ENIGMA2-Modul

cpan XML::Simple

(cpan XML::Parser::Lite)