FHEM Forum

FHEM - Hardware => Network Attached Storage (NAS) => Thema gestartet von: claas am 25 Januar 2015, 19:38:26

Titel: DSM 5.1 Device::SerialPort Problem
Beitrag von: claas am 25 Januar 2015, 19:38:26
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
Titel: Antw:DSM 5.1 Device::SerialPort Problem
Beitrag von: justme1968 am 25 Januar 2015, 19:45:14
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
Titel: Antw:DSM 5.1 Device::SerialPort Problem
Beitrag von: claas am 25 Januar 2015, 19:54:33
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
Titel: Antw:DSM 5.1 Device::SerialPort Problem
Beitrag von: justme1968 am 25 Januar 2015, 20:27:07
ist dein optware auch unter /opt zu finden ?

zeig mal bitte dein fhem start script.

gruss
  andre
Titel: Antw:DSM 5.1 Device::SerialPort Problem
Beitrag von: claas am 26 Januar 2015, 19:19:52
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
Titel: Antw:DSM 5.1 Device::SerialPort Problem
Beitrag von: justme1968 am 26 Januar 2015, 19:39:08
trag mal bitte nur /opt ein.

gruss
  andre
Titel: Antw:DSM 5.1 Device::SerialPort Problem
Beitrag von: claas am 26 Januar 2015, 19:49:29
also ohne

/volume1

?
Titel: Antw:DSM 5.1 Device::SerialPort Problem
Beitrag von: claas am 26 Januar 2015, 19:55:51
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