sundtek-mediatv: new driver version

support for multiple Sundtek tuners
support for working with other tuners (with kernel drivers)
This commit is contained in:
vpeter4 2012-05-23 10:05:16 +02:00
parent 8fc3d3e130
commit 62dda072bf
10 changed files with 172 additions and 126 deletions

37
packages/3rdparty/driver/sundtek/build vendored Executable file
View File

@ -0,0 +1,37 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
cd $PKG_BUILD
# binary search & replace (strings must be same length!)
# mediasrv
# /etc/sunI»dtek.conf
# /etc/sundtek.conf
# libdrv_em28xx.so
# /etc/sundtek.conf
# mediaclient
# /etc/sundtek_diseqc.conf
perl -pi -e 's|/etc|/tmp|g' opt/bin/mediasrv
perl -pi -e 's|/etc|/tmp|g' opt/bin/dvb/libdrv_em28xx.so
perl -pi -e 's|/etc|/tmp|g' opt/bin/mediaclient

7
packages/3rdparty/driver/sundtek/meta vendored Normal file → Executable file
View File

@ -19,13 +19,12 @@
################################################################################
PKG_NAME="sundtek"
#PKG_VERSION="installer_111001.1658"
PKG_VERSION="installer_development"
PKG_VERSION="20120525"
PKG_REV="0"
PKG_ARCH="any"
PKG_ARCH="i386 x86_64"
PKG_LICENSE="nonfree"
PKG_SITE="http://support.sundtek.com/"
PKG_URL="http://www.sundtek.de/media/${PKG_NAME}_${PKG_VERSION}.sh"
PKG_URL="${DISTRO_SRC}/${PKG_NAME}-${PKG_VERSION}-${ARCH}.tar.gz"
PKG_DEPENDS=""
PKG_BUILD_DEPENDS=""
PKG_PRIORITY="optional"

View File

@ -1,77 +0,0 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
mkdir -p $BUILD/${PKG_NAME}_${PKG_VERSION}
(
cd $BUILD/${PKG_NAME}_${PKG_VERSION}
CHAR=`echo $SOURCES | awk '{ch=substr($0, 0, 1); printf("%c", ch); }'`
if [ ${CHAR} = "/" ]; then
SRC_INSTALLER_ROOT=""
else
SRC_INSTALLER_ROOT="$ROOT/"
fi
sh ${SRC_INSTALLER_ROOT}$SOURCES/$1/${PKG_NAME}_${PKG_VERSION}.sh -e >/dev/null 2>&1
rm chk* installer.tar.gz
rm -r 32bit23 arm* dreambox mips* openwrtmipsr2 ppc*
)
[ "$TARGET_ARCH" = "i386" ] && ARCH_DIR=32bit
[ "$TARGET_ARCH" = "x86_64" ] && ARCH_DIR=64bit
SUNDTEK_ROOT=$BUILD/${PKG_NAME}_${PKG_VERSION}/rootsys
mkdir -p $SUNDTEK_ROOT
tar xzf $BUILD/${PKG_NAME}_${PKG_VERSION}/$ARCH_DIR/installer.tar.gz -C $SUNDTEK_ROOT
# fix permissions (on mediasrv binary)
chmod 755 $SUNDTEK_ROOT/opt/bin/*
# binary search & replace (strings must be same length!)
# mediasrv
# /etc/sunI»dtek.conf
# /etc/sundtek.conf
# libdrv_em28xx.so
# /etc/sundtek.conf
# mediaclient
# /etc/sundtek_diseqc.conf
#perl -pi -e 's|\x2F\x65\x74\x63\x2F\x73\x75\x6E\x49\xBB\x64\x74\x65\x6B\x2E\x63\x6F\x6E\x66|\x2F\x74\x6D\x70\x2F\x73\x75\x6E\x49\xBB\x64\x74\x65\x6B\x2E\x63\x6F\x6E\x66|g' $SUNDTEK_ROOT/opt/bin/mediasrv
#perl -pi -e 's|/etc/sundtek.conf|/tmp/sundtek.conf|g' $SUNDTEK_ROOT/opt/bin/mediasrv
#perl -pi -e 's|/etc/sundtek.conf|/tmp/sundtek.conf|g' $SUNDTEK_ROOT/opt/bin/dvb/libdrv_em28xx.so
#perl -pi -e 's|/etc/sundtek_diseqc.conf|/tmp/sundtek_diseqc.conf|g' $SUNDTEK_ROOT/opt/bin/mediaclient
perl -pi -e 's|/etc|/tmp|g' $SUNDTEK_ROOT/opt/bin/mediasrv
perl -pi -e 's|/etc|/tmp|g' $SUNDTEK_ROOT/opt/bin/dvb/libdrv_em28xx.so
perl -pi -e 's|/etc|/tmp|g' $SUNDTEK_ROOT/opt/bin/mediaclient
if [ "$PKG_VERSION" = "installer_development" ]; then
wget -q -t 3 -T 3 -O $SUNDTEK_ROOT/sundtek_version.html http://support.sundtek.com/index.php/topic,708.0.html
else
cat >$SUNDTEK_ROOT/sundtek_version.html << MYDATA
<html><body>${PKG_NAME}_${PKG_VERSION}.sh</body></html>
MYDATA
fi

View File

@ -25,10 +25,8 @@
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/
cp -P $PKG_DIR/config/* $ADDON_BUILD/$PKG_ADDON_ID/config/
cp -P $ROOT/$BUILD/sundtek_*/rootsys/sundtek_version.html $ADDON_BUILD/$PKG_ADDON_ID/
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin/
cp -Pa $ROOT/$BUILD/sundtek_*/rootsys/opt/bin/* $ADDON_BUILD/$PKG_ADDON_ID/bin/
cp -Pa $ROOT/$BUILD/sundtek-*/opt/bin/* $ADDON_BUILD/$PKG_ADDON_ID/bin/
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib/
cp -Pa $ROOT/$BUILD/sundtek_*/rootsys/opt/lib/*.so $ADDON_BUILD/$PKG_ADDON_ID/lib/
cp -Pa $ROOT/$BUILD/sundtek-*/opt/lib/*.so $ADDON_BUILD/$PKG_ADDON_ID/lib/

View File

@ -1,3 +1,7 @@
2.1.2
support for multiple Sundtek tuners
support for working with other tuners (kernel drivers)
2.1.1
- update to addon version 2.1

View File

@ -8,6 +8,12 @@ device_attach=/storage/.xbmc/addons/driver.dvb.sundtek-mediatv/bin/device-attach
# Infrared Control Support is disabled/enabled
ir_disabled=1
# trigger device_attach only once if more devices is used
bulk_notification=on
# Lowest adapter number to start with, e.g. /dev/dvb/adapter5/frontend0
#first_adapter=5
# Get adapter serial number with mediaclient -e
# or look into file adapter_serial_number.txt
[SERIALNUMBER]

View File

@ -3,73 +3,104 @@
#
# ----- GLOBAL SECTION -----
#Set loglevel for logging to /var/log/mediasrv.log
#loglevel=[off|max]
#default: min
#max .. little bit more debug
#loglevel=off
loglevel=max
#loglevel=[off|max] #default: min
#max .. little bit more debug
#bulk_notification[on|off] #default off, bulk_notification will only trigger device_attach once
#after the the first device scan when the driver is started up
#after this first scan, the notification will be triggered
#normally again for each device.
#
#for example when 2 devices are attached to the system only one
#notification will be triggered initially, any at a later time
#attached device will generate another device_attach notification
#by default each device will call the script which is set up with
#device_attach
#use_hwpidfilter=[on|off] #For DVB-C, DVB-T, DVB-S/S2
#enable PID filter, please be careful with that, there are only 15 HW Pid filters available
#when more than 15 pids are set up the pid filter will be disabled automatically
#Call attach script when new device appears
#device_attach=[PATH_TO_SCRIPT] [PARAMETER|DEVID] #"DEVID" will automatically be replaced with the device ID
device_attach=/opt/bin/restartAddons.sh
#dmhwpidfilter=[on|off] #default on, in some cases off might be useful to disable hw pid filter for settopboxes
#if you get a black image when capturing a TV channel and watching another channel on the
#same transponder - try this option and reboot
#Call detach script when device disappears
#device_detach=[PATH_TO_SCRIPT] [PARAMETER|DEVID] #"DEVID" will automatically be replaced with the device ID
#usb_transaction_delay=[0-20] #throttle the USB setup transactions, this can solve problems with weak USB stacks for
#example for embedded boards, unit is milliseconds
#Infrared Control Support is disabled/disabled
ir_disabled=1
#usb_timeout=[0 - N] #USB timeout for each transaction in milliseconds, 0 default infinite
#voltage_tone_off=[1 or 0] #0 .. default, normal behaviour
#1 .. force DVB-S/S2 to not use any Voltage or Tone (ignore any user parameters)
#ir_disabled=[1 or 0] #0 .. enable remote control polling, the driver will permanently check for remote control keys
#1 .. disable remote control polling, might fix bugs with weak USB stacks on embedded boards
#
#Enable listening on network
#enablenetwork=[on|off]
#default: off
#enablenetwork=[on|off] #default: off
#Lowest adapter number to start with, e.g. /dev/dvb/adapter5/frontend0
#first_adapter=5
#Lowest videodevice number to start with, e.g. /dev/video5
#first_videodev=5
#Call attach script when new device appears
#device_attach=[PATH_TO_SCRIPT] [PARAMETER|DEVID] #"DEVID" will automatically be replaced with the device ID
#Call detach script when device disappears
#device_detach=[PATH_TO_SCRIPT] [PARAMETER|DEVID] #"DEVID" will automatically be replaced with the device ID
#Dreambox especially for DM800HD (not SE!)
#vtuner_acceleration=[on|off] #default off, accelerate Dreambox 800HD datatransfer between USB Stick and
#DM800HD
# ----- Section for adapter with [SERIALNUMBER] -----
#Get adapter serial number with /opt/bin/mediaclient -e
#[SERIALNUMBER]
#Description register as dreambox tuner
#dreambox_support_fe1=[on|off]
#default: off
#dreambox_support_fe1=[on|off] #default: off
#Infrared protocol to use
#ir_protocol=[RC5|NEC|RC6]
#default: NEC
#ir_protocol=[RC5|NEC|RC6] #default: NEC
#Keymap to use, e.g. "/lib/udev/rc_keymaps/vp702x"
#rcmap=[PATH_TO_KEYMAP]
#default: keymap which comes with the device
#rcmap=[PATH_TO_KEYMAP] #default: keymap which comes with the device
#Choose initial DVB mode for hybrid DVB-T/DVB-C devices only
#initial_dvb_mode=[DVBC|DVBT]
#Call attach script when new device appears
#device_attach=[PATH_TO_SCRIPT] [PARAMETER|DEVID]
#"DEVID" will automatically be replaced with the device ID
#device_attach=[PATH_TO_SCRIPT] [PARAMETER|DEVID] #"DEVID" will automatically be replaced with the device ID
#Call detach script when device disappears
#device_detach=[PATH_TO_SCRIPT] [PARAMETER|DEVID]
#"DEVID" will automatically be replaced with the device ID
#device_detach=[PATH_TO_SCRIPT] [PARAMETER|DEVID] #"DEVID" will automatically be replaced with the device ID
#Volume level
#volume=[0-127] #default: 118
#disable_atv=[0|1] #disable initialization of analogTV Frontend
#Initial Audio Volume level for DVB-C/T Hybrid devices
#volume=[0-127] #default: 118
# WSS callback (see http://en.wikipedia.org/wiki/Widescreen_signaling)
# trigger script when the videoformat changes between 16:9 or 4:3
#wss_callback=[scriptname]
# WSS_4_3_FULL
# WSS_14_9_LETTERBOX_CENTRE
# WSS_14_9_LETTERBOX_TOP
# WSS_16_9_LETTERBOX_CENTRE
# WSS_16_9_LETTERBOX_TOP
# WSS_16_9_LETTERBOX_DEEPER
# WSS_14_9_FULL_HEIGHT_4_3
# WSS_16_9_FULL_HEIGHT_16_9
# WSS_UNABLE_TO_DEMODULATE
# WSS_4_3_FULL
# WSS_14_9_LETTERBOX_CENTRE
# WSS_14_9_LETTERBOX_TOP
# WSS_16_9_LETTERBOX_CENTRE
# WSS_16_9_LETTERBOX_TOP
# WSS_16_9_LETTERBOX_DEEPER
# WSS_14_9_FULL_HEIGHT_4_3
# WSS_16_9_FULL_HEIGHT_16_9
# WSS_UNABLE_TO_DEMODULATE
#Timeout in ms after that WSS_UNABLE_TO_DEMODULATE will be called
#wss_demodulation_timeout=[MILLISECONDS]
#wss_demodulation_timeout=[MILLISECONDS][/code]
#vtuner_skip0=vtuner0 # skip /dev/misc/vtuner0 can also be vtunerN
#vtuner_skip1=vtuner1 # skip /dev/misc/vtuner1 can also be vtunerN
#fe_helper=/path/to/channellist # override frequency setup and use parameters from channellist
# VDR channellists can be used here (eg. created by w_scan)
# this somewhat guarantees high speed channel switching
# when used with a lousy player
# Astra 19.2 Channellist: 1)

View File

@ -20,7 +20,7 @@
PKG_NAME="sundtek-mediatv"
PKG_VERSION="2.0"
PKG_REV="1"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="nonfree"
PKG_SITE="http://support.sundtek.com/"

View File

@ -46,11 +46,10 @@ if [ -z "$(pidof mediasrv)" ]; then
if [ -f $SUNDTEK_READY ]; then
rm -f $SUNDTEK_READY
break
else if [ "$cnt" = "120" ]; then
logger -t Tvheadend "### No Sundtek device attached in 60 sec ###"
elif [ "$cnt" = "240" ]; then
logger -t Sundtek "### No Sundtek device attached in 120 sec ###"
return
fi
fi
let cnt=cnt+1
usleep 500000
done
@ -62,9 +61,11 @@ if [ -z "$(pidof mediasrv)" ]; then
# save adapter serial number in background
sleep 4
serial_number_old=$(cat $ADDON_HOME/adapters.txt 2>/dev/null)
serial_number_new=$(mediaclient -e | awk '/ID:/ {print $2}')
serial_number_new=$(mediaclient -e | awk '/device / {print $0} /ID:/ {print $2}')
if [ "$serial_number_old" != "$serial_number_new" ]; then
echo "$serial_number_new" >$ADDON_HOME/adapters.txt
fi
)&
else
export LD_PRELOAD=$ADDON_DIR/lib/libmediaclient.so:$LD_PRELOAD
fi

47
tools/mkpkg/mkpkg_sundtek Executable file
View File

@ -0,0 +1,47 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
date=$(date +%Y%m%d)
sundtek_base=sundtek-$date
rm -f installer.tar.gz
rm -fr $sundtek_base
echo "getting 32bit driver..."
wget --passive-ftp --no-check-certificate -O installer.tar.gz http://sundtek.de/media/netinst/32bit/installer.tar.gz
echo "unpacking..."
mkdir -p $sundtek_base
tar xzf installer.tar.gz -C $sundtek_base
chmod 755 $sundtek_base/opt/bin/*
echo "packing..."
tar czf $sundtek_base-i386.tar.gz $sundtek_base
rm -fr $sundtek_base
echo "getting 64bit driver..."
wget --passive-ftp --no-check-certificate -O installer.tar.gz http://sundtek.de/media/netinst/64bit/installer.tar.gz
echo "unpacking..."
mkdir -p $sundtek_base
tar xzf installer.tar.gz -C $sundtek_base
rm -f installer.tar.gz
chmod 755 $sundtek_base/opt/bin/*
echo "packing..."
tar czf $sundtek_base-x86_64.tar.gz $sundtek_base
rm -fr $sundtek_base