DSM 5.1 Device::SerialPort Problem

Begonnen von claas, 25 Januar 2015, 19:38:26

Vorheriges Thema - Nächstes Thema

claas

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

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

claas

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

justme1968

ist dein optware auch unter /opt zu finden ?

zeig mal bitte dein fhem start script.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

claas

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

justme1968

trag mal bitte nur /opt ein.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

claas


claas

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