Hi!
1. There is also an twonkeymedia-server.ini but i think it is the ini of the Twonkeymedia Server 5 which is preinstalled but deactivatet.
I changed the name of the file and twonkey 6 is still working
2. The Answer of "http://<ip.address.of.your.NAS>:9000/rpc/get_option?ituneslib" is "/share/HDA_DATA/Qmultimedia/iTunes/iTunes Library.xml" This is the correct Adress
3. The startup file: "#!/bin/sh
. /etc/init.d/wait_RR
echo system startup will be done by /dev/rtc ..."
4. I found an twonkeymedia-server.ini.default in /mnt/ext/opt/twonkeymedia
"contentbase=/share
contentdir=/Qmultimedia
friendlyname=TwonkyMedia [%HOSTNAME%]
dbdir=/mnt/HDA_ROOT/twonkymedia/twonkymedia.db
httpport=9000
enableweb=2
scantime=120
startupmb=0
platform=TS-Series NAS
cachemaxsize=100240
ignoredir=AppleDouble,AppleDB,AppleDesktop,TemporaryItems
suppressmenu=mediafeeds
"
5. Autostart Script of TwonkeyMedia6 "twonkeymedia6.sh" in /share/HDA_DATA/.qpkg/Twonkymedia/ (I think it is the install folder)
"
#!/bin/sh
#
# MediaServer Control File written by Itzchak Rehberg
# Modified for fedora/redhat by Landon Bradshaw <
phazeforward@gmail.com>
# Adapted to TwonkyMedia 3.0 by TwonkyVision GmbH
# Adapted to TwonkyMedia 4.0 by TwonkyVision GmbH
#
# This script is intended for SuSE and Fedora systems. Please report
# problems and suggestions at
http://www.twonkyvision.de/mantis/
#
#
###############################################################################
#
### BEGIN INIT INFO
# Provides: twonkymedia
# Required-Start: $network $remote_fs
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: TwonkyVision UPnP server
### END INIT INFO
#
# Comments to support chkconfig on RedHat/Fedora Linux
# chkconfig: 345 71 29
# description: TwonkyVision UPnP server
#
#==================================================================[ Setup ]===
QPKG_NAME="TwonkyMedia"
QPKG_DESC="Twonkymedia UPnP media server"
QPKG_DIR=
GETCFG="/sbin/getcfg"
DAEMON=twonkymedia
PIDFILE=/tmp/mediaserver.pid
MULTIMEDIA_SHARE=`/sbin/getcfg SHARE_DEF defMultimedia -d Qmultimedia -f /etc/config/def_share.info`
PUBLIC_SHARE=`/sbin/getcfg SHARE_DEF defPublic -d Public -f /etc/config/def_share.info`
BOND_SUP=`$GETCFG "Network" "BONDING Support" -d "FALSE"`
NIC_NUM=`$GETCFG "Network" "Interface Number" -d "FALSE"`
RETVAL=0
CMD_CP="/bin/cp"
CMD_RM="/bin/rm"
CMD_LN="/bin/ln"
#=================================================================[ Script ]===
move_db_path_to_hdd()
{
volume_test=`/sbin/getcfg ${MULTIMEDIA_SHARE} path -f /etc/smb.conf | cut -d '/' -f 3`
[ "x${volume_test}" = "x" ] || volume=${volume_test}
if [ ! -d "/share/${volume}/${MULTIMEDIA_SHARE}" ]; then
echo "db can't be moved to HDD"
/sbin/write_log "Default share ${MULTIMEDIA_SHARE} is not found. TwonkyMedia start failed." 2
exit 1
fi
[ -d /share/${volume}/.@twonkymedia.db ] || /bin/mkdir /share/${volume}/.@twonkymedia.db
twonkydb=`/usr/bin/readlink "/mnt/HDA_ROOT/twonkymedia/twonkymedia.db" 2>>/dev/null`
if [ -z $twonkydb ] || [ "$twonkydb" != "/share/${volume}/.@twonkymedia.db" ]; then
/bin/rm -rf /mnt/HDA_ROOT/twonkymedia/twonkymedia.db
/bin/ln -sf /share/${volume}/.@twonkymedia.db /mnt/HDA_ROOT/twonkymedia/twonkymedia.db
fi
logtxt=`/usr/bin/readlink "/mnt/HDA_ROOT/twonkymedia/twonkymediaserver-log.txt" 2>>/dev/null`
if [ "x$logtxt" != "x/share/${volume}/.@twonkymedia.db/twonkymediaserver-log.txt" ]; then
/bin/rm -rf /mnt/HDA_ROOT/twonkymedia/twonkymediaserver-log.txt
/bin/ln -sf /share/${volume}/.@twonkymedia.db/twonkymediaserver-log.txt /mnt/HDA_ROOT/twonkymedia/twonkymediaserver-log.txt
fi
# twonky 5.0 default config is /var/twonkymedia
if [ -d "/var/twonkymedia" ]; then
/bin/rm -rf /var/twonkymedia
fi
/usr/bin/readlink /var/twonkymedia
if [ $? = 0 ]; then
/bin/rm /var/twonkymedia
fi
/bin/ln -sf /share/${volume}/.@twonkymedia.db /var/twonkymedia
/bin/rm -rf /share/twonkymedia
/bin/ln -sf /share/${volume}/.@twonkymedia.db /share/twonkymedia
}
# ensure correct app running status
if [ `/sbin/getcfg $QPKG_NAME Enable -u -d FALSE -f /etc/config/qpkg.conf` = UNKNOWN ]; then
/sbin/setcfg Enable TRUE -f /etc/config/qpkg.conf
elif [ `/sbin/getcfg $QPKG_NAME Enable -u -d FALSE -f /etc/config/qpkg.conf` != TRUE ]; then
echo "${QPKG_NAME} is disabled."
exit 1
fi
# Determine BASE installation location according to smb.conf
find_base(){
QPKG_BASE=
publicdir=`/sbin/getcfg $PUBLIC_SHARE path -f /etc/config/smb.conf`
if [ ! -z $publicdir ] && [ -d $publicdir ];then
publicdirp1=`/bin/echo $publicdir | /bin/cut -d "/" -f 2`
publicdirp2=`/bin/echo $publicdir | /bin/cut -d "/" -f 3`
publicdirp3=`/bin/echo $publicdir | /bin/cut -d "/" -f 4`
if [ ! -z $publicdirp1 ] && [ ! -z $publicdirp2 ] && [ ! -z $publicdirp3 ]; then
[ -d "/${publicdirp1}/${publicdirp2}/${PUBLIC_SHARE}" ] && QPKG_BASE="/${publicdirp1}/${publicdirp2}"
fi
fi
# Determine BASE installation location by checking where the Public folder is.
if [ -z $QPKG_BASE ]; then
for datadirtest in /share/HDA_DATA /share/HDB_DATA /share/HDC_DATA /share/HDD_DATA /share/MD0_DATA /share/MD1_DATA /share/MD2_DATA; do
[ -d $datadirtest/$PUBLIC_SHARE ] && QPKG_BASE=$datadirtest
done
fi
if [ -z $QPKG_BASE ] ; then
echo "The Public share not found."
_exit 1
fi
QPKG_DIR=${QPKG_BASE}/.qpkg/${QPKG_NAME}
}
link_qpkg_icons()
{
[ -f /home/httpd/RSS/images/${QPKG_NAME}.gif ] || ${CMD_LN} -sf ${QPKG_DIR}/.qpkg_icon.gif /home/httpd/RSS/images/${QPKG_NAME}.gif
[ -f /home/httpd/RSS/images/${QPKG_NAME}_80.gif ] || ${CMD_LN} -sf ${QPKG_DIR}/.qpkg_icon_80.gif /home/httpd/RSS/images/${QPKG_NAME}_80.gif
[ -f /home/httpd/RSS/images/${QPKG_NAME}_gray.gif ] || ${CMD_LN} -sf ${QPKG_DIR}/.qpkg_icon_gray.gif /home/httpd/RSS/images/${QPKG_NAME}_gray.gif
}
find_base
check_twonkymedia5_daemon()
{
TWONKY5_STATUS=`$GETCFG TwonkyMedia Enable`
if [ "$TWONKY5_STATUS" = "TRUE" ]; then
/sbin/setcfg TwonkyMedia Enable FALSE
/sbin/setcfg TwonkyMedia "Web Enable" FALSE
/etc/init.d/twonkymedia.sh stop
/bin/sleep 3
TWONKY_VERSION=`$GETCFG TwonkyMedia Version -f /etc/config/qpkg.conf`
/sbin/write_log "[QPKG] The built-in Twonkymedia will be disabled now before starting Twonkymedia v$TWONKY_VERSION QPKG." 4
fi
}
# Source function library.
if [ -f /etc/rc.status ]; then
# SUSE
. /etc/rc.status
rc_reset
else
# Reset commands if not available
rc_status() {
case "$1" in
-v)
true
;;
*)
false
;;
esac
echo
}
alias rc_exit=exit
fi
if [ ! -f "${QPKG_DIR}/${DAEMON}" ]; then
DAEMON=twonkymusic
fi
TWONKYSRV="${QPKG_DIR}/${DAEMON}"
INIFILE="/etc/config/twonkyvision-mediaserver6.ini"
DEFAULT_INIFILE="${QPKG_DIR}/twonkymedia6-default.ini"
LOG_FILE="${QPKG_DIR}/twonkymediaserver6-log.txt"
cd $QPKG_DIR
case "$1" in
start)
move_db_path_to_hdd
check_twonkymedia5_daemon
link_qpkg_icons
if [ -e $PIDFILE ]; then
PID=`cat $PIDFILE`
echo "Twonky server seems already be running under PID $PID"
echo "(PID file $PIDFILE already exists). Checking for process..."
running=`ps --no-headers -o "%c" -p $PID`
if ( [ "${DAEMON}"=="${running}" ] ); then
echo "Process IS running. Not started again."
else
echo "Looks like the daemon crashed: the PID does not match the daemon."
echo "Removing flag file..."
rm $PIDFILE
$0 start
exit $?
fi
exit 0
else
if [ ! -x "${TWONKYSRV}" ]; then
echo "Twonky servers not found".
rc_status -u
exit $?
fi
echo -n "Starting UPnP MediaServer: ($TWONKYSRV) "
_contentdir=`/sbin/getcfg "" contentdir -d "/Qmultimedia" -f ${DEFAULT_INIFILE}`
[ "${MULTIMEDIA_SHARE}" = "${_contentdir}" ] || /bin/sed -i 's/^contentdir.*$/'"contentdir=+A|\/${MULTIMEDIA_SHARE}"'/' ${DEFAULT_INIFILE}
if [ ! -f ${INIFILE} ]; then
/bin/cp ${DEFAULT_INIFILE} ${INIFILE}
fi
# for multicast use
if [ "x${NIC_NUM}" = "x2" ] && [ "x${BOND_SUP}" = "xTRUE" ]; then
/sbin/route add -net 224.0.0.0 netmask 240.0.0.0 dev bond0
elif [ "x${NIC_NUM}" = "x2" ] && [ "x${BOND_SUP}" = "xFALSE" ]; then
/sbin/route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
/sbin/route add -net 224.0.0.0 netmask 240.0.0.0 dev eth1
else
/sbin/route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
fi
# end
$TWONKYSRV -inifile "${INIFILE}" -enableweb 2 -powersavemode 1 -logfile ${LOG_FILE} -suppressmenu mediafeeds 2>/dev/null 1>/dev/null &
rc_status -v
/bin/sleep 2
fi
;;
stop)
if [ ! -e $PIDFILE ]; then
echo "Shutting down UPnP MediaServer services: twonkymedia."
echo "PID file $PIDFILE not found, stopping server anyway..."
killall twonkymedia twonkymusic 2>/dev/null 1>/dev/null
rc_status -u
# exit 3
else
echo -n "Shutting down UPnP MediaServer services: twonkymedia."
PID=`cat $PIDFILE`
kill -s TERM $PID
kill -9 `pidof twonkymediaserver`
rm -f $PIDFILE
# end
rc_status -v
fi
if [ "x${NIC_NUM}" = "x1" ]; then
/sbin/route del -net 224.0.0.0 netmask 240.0.0.0 dev eth0 2> /dev/null 1>/dev/null
else
/sbin/route del -net 224.0.0.0 netmask 240.0.0.0 dev bond0 2> /dev/null 1>/dev/null
/sbin/route del -net 224.0.0.0 netmask 240.0.0.0 dev eth0 2> /dev/null 1>/dev/null
/sbin/route del -net 224.0.0.0 netmask 240.0.0.0 dev eth1 2> /dev/null 1>/dev/null
fi
;;
reload)
if [ ! -e $PIDFILE ]; then
echo "PID file $PIDFILE not found, stopping server anyway..."
killall twonkymedia twonkymusic 2>/dev/null 1>/dev/null
rc_status -u
exit 3
else
echo -n "Reloading Twonky server ... "
PID=`cat $PIDFILE`
kill -s HUP $PID
rc_status -v
fi
;;
restart)
$0 stop
/bin/sleep 2
$0 start
;;
status)
if [ ! -e $PIDFILE ]; then
running="`ps ax --no-headers | grep -e twonkymedia -e twonkymusic | grep -v grep | grep -v twonkymedia.sh | cut -d ' ' -f 1`"
if [ "${running}" == "" ]; then
echo "No twonky server is running"
else
echo "A twonky server seems to be running (PID: "${running}"), but no PID file exists."
echo "Probably no write permission for ${PIDFILE}."
fi
exit 0
fi
PID=`cat $PIDFILE`
running=`ps --no-headers -o "%c" -p $PID`
if ( [ "${DAEMON}"=="${running}" ] ); then
echo "Twonky server IS running."
else
echo "Looks like the daemon crashed: the PID does not match the daemon."
fi
;;
*)
echo ""
echo "Twonky server"
echo "-------------"
echo "Syntax:"
echo " $0 {start|stop|restart|reload|status}"
echo ""
exit 3
;;
esac
rc_exit
"