Hallo,
ich habe heute meine DS von DSM 4.3 auf DSM 5.1 gehoben.
Nun bekomme ich folgende Fehlermeldung beim Anlegen eines Jeelink (fhem.cfg ist unverändert zu vorher).
ZitatCan't locate Device/SerialPort.pm in @INC (you may need to install the Device::SerialPort module) (@INC contains: /usr/lib/perl5/site_perl /usr/share/perl5/site_perl /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/core_perl /usr/share/perl5/core_perl . /usr/local/FHEM/share/fhem/FHEM) at /usr/local/FHEM/share/fhem/FHEM/DevIo.pm line 265.
In der fhem.sh steht
PERL=/volume1/@optware/bin/perl
In der fhem.pl
Zitat#!/volume1/@optware/bin/perl
Es ist perl per ipkg installiert und im Verzeichnis
/volume1/@optware/lib/perl5/site_perl/5.10.0/i686-linux
liegt auch das Verzeichnis Device und darin die SerialPort.pm
Wie kann ich das nun lösen?
Laut Fehlermeldung sucht Perl nicht in den korrekten Verzeichnissen, oder?
Ach so:
dmesg per ssh liefert
Zitat[ 202.186211] usb 4-2: FTDI USB Serial Device converter now attached to ttyUSB0
Also sind die Kerneltreiber wohl korrekt geladen.
Danke für Hinweise
Claas
das schaut so aus als ob dein fhem nicht das optware perl verwendet sondern das synology perl.
wenn dein fhem das start script von martin fischer verwendet muss PERL auf /opt bzw. /volume1/@optware/ zeigen und nicht direkt auf das perl binary. das wird weiter unten im script über perl_BIN=${PERL}/bin/perl referenziert.
gruss
andre
Hi Andre,
wenn ich das im Skript ändere auf
ZitatPERL=/volume1/@optware/
und dann per ssh "./fhem.sh start" absetze erhalte ich als Rückmeldung
ZitatCan't exec /volume1/@optware/ at /usr/local/FHEM/bin/fhem.pl line 1.
Gruss
Claas
ist dein optware auch unter /opt zu finden ?
zeig mal bitte dein fhem start script.
gruss
andre
Hi Andre,
ja, liegt in @optware.
das fhem.sh sieht jetzt so aus. Vorher stand in Zeile 5 der Pfad zum Binary.
#!/bin/sh
#
#
HOME=/usr/local/FHEM
PERL=/volume1/@optware/
KMOD=/var/packages/usb-driver-kernel
PATH=$HOME:$PERL:$PATH
export PATH
fhem_BIN=${HOME}/bin/fhem.pl
test -x ${fhem_BIN} || { echo "${fhem_BIN} not installed";
if [ "$1" = "stop" ]; then exit 0;
else exit 5; fi; }
# Check for existence of needed config file and read it
fhem_CONFIG=${HOME}/etc/fhem.cfg
test -r ${fhem_CONFIG} || { echo "${fhem_CONFIG} not existing";
if [ "$1" = "stop" ]; then exit 0;
else exit 6; fi; }
fhem_LOG=${HOME}/var/log/fhem-`date +"%Y-%m"`.log
perl_BIN=${PERL}/bin/perl
if [ -x ${perl_BIN} ]; then
export PERL5LIB="${PERL}/lib/5.16.0:${PERL}/lib/site_perl/5.16.0"
else
perl_BIN=`which perl`
fi
#
case "$1" in
start)
echo "Starting fhem "
if [ -d "${KMOD}" ]; then
if [ ! -f "${KMOD}/enabled" ]; then
${KMOD}/scripts/start-stop-status start
touch ${KMOD}/enabled && chmod 775 ${KMOD}/enabled
fi
fi
${perl_BIN} $fhem_BIN $fhem_CONFIG
;;
stop)
echo "Shutting down fhem "
${perl_BIN} $fhem_BIN 7072 shutdown
;;
restart)
$0 stop
$0 start
;;
status)
echo -n "Checking for service fhem "
ps|grep fhem.pl
;;
log)
test -r $fhem_LOG || { echo "$fhem_LOG not existing"; exit 0; }
echo $fhem_LOG
;;
*)
echo "Usage: $0 {start|stop|status|restart|log}"
exit 1
;;
esac
exit 0
trag mal bitte nur /opt ein.
gruss
andre
also ohne
/volume1
?
Problem gelöst.
Hab das Syno-Perl Paket im Paketzentrum deinstalliert,
die fhem.pl auf
#!/opt/bin/perl
und die fhem.sh auf
PERL=/opt
gesetzt und alles ist gut.
Danke Andre
Gruss
Claas