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_NAME="sundtek"
#PKG_VERSION="installer_111001.1658" PKG_VERSION="20120525"
PKG_VERSION="installer_development"
PKG_REV="0" PKG_REV="0"
PKG_ARCH="any" PKG_ARCH="i386 x86_64"
PKG_LICENSE="nonfree" PKG_LICENSE="nonfree"
PKG_SITE="http://support.sundtek.com/" 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_DEPENDS=""
PKG_BUILD_DEPENDS="" PKG_BUILD_DEPENDS=""
PKG_PRIORITY="optional" 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/ mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/
cp -P $PKG_DIR/config/* $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/ 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/ 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 2.1.1
- update to addon version 2.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 # Infrared Control Support is disabled/enabled
ir_disabled=1 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 # Get adapter serial number with mediaclient -e
# or look into file adapter_serial_number.txt # or look into file adapter_serial_number.txt
[SERIALNUMBER] [SERIALNUMBER]

View File

@ -3,58 +3,80 @@
# #
# ----- GLOBAL SECTION ----- # ----- GLOBAL SECTION -----
#Set loglevel for logging to /var/log/mediasrv.log #Set loglevel for logging to /var/log/mediasrv.log
#loglevel=[off|max] #loglevel=[off|max] #default: min
#default: min #max .. little bit more debug
#max .. little bit more debug #bulk_notification[on|off] #default off, bulk_notification will only trigger device_attach once
#loglevel=off #after the the first device scan when the driver is started up
loglevel=max #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 #dmhwpidfilter=[on|off] #default on, in some cases off might be useful to disable hw pid filter for settopboxes
#device_attach=[PATH_TO_SCRIPT] [PARAMETER|DEVID] #"DEVID" will automatically be replaced with the device ID #if you get a black image when capturing a TV channel and watching another channel on the
device_attach=/opt/bin/restartAddons.sh #same transponder - try this option and reboot
#Call detach script when device disappears #usb_transaction_delay=[0-20] #throttle the USB setup transactions, this can solve problems with weak USB stacks for
#device_detach=[PATH_TO_SCRIPT] [PARAMETER|DEVID] #"DEVID" will automatically be replaced with the device ID #example for embedded boards, unit is milliseconds
#Infrared Control Support is disabled/disabled #usb_timeout=[0 - N] #USB timeout for each transaction in milliseconds, 0 default infinite
ir_disabled=1 #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 #Enable listening on network
#enablenetwork=[on|off] #enablenetwork=[on|off] #default: off
#default: off
#Lowest adapter number to start with, e.g. /dev/dvb/adapter5/frontend0 #Lowest adapter number to start with, e.g. /dev/dvb/adapter5/frontend0
#first_adapter=5 #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] ----- # ----- Section for adapter with [SERIALNUMBER] -----
#Get adapter serial number with /opt/bin/mediaclient -e #Get adapter serial number with /opt/bin/mediaclient -e
#[SERIALNUMBER] #[SERIALNUMBER]
#Description register as dreambox tuner #Description register as dreambox tuner
#dreambox_support_fe1=[on|off] #dreambox_support_fe1=[on|off] #default: off
#default: off
#Infrared protocol to use #Infrared protocol to use
#ir_protocol=[RC5|NEC|RC6] #ir_protocol=[RC5|NEC|RC6] #default: NEC
#default: NEC
#Keymap to use, e.g. "/lib/udev/rc_keymaps/vp702x" #Keymap to use, e.g. "/lib/udev/rc_keymaps/vp702x"
#rcmap=[PATH_TO_KEYMAP] #rcmap=[PATH_TO_KEYMAP] #default: keymap which comes with the device
#default: keymap which comes with the device
#Choose initial DVB mode for hybrid DVB-T/DVB-C devices only #Choose initial DVB mode for hybrid DVB-T/DVB-C devices only
#initial_dvb_mode=[DVBC|DVBT] #initial_dvb_mode=[DVBC|DVBT]
#Call attach script when new device appears #Call attach script when new device appears
#device_attach=[PATH_TO_SCRIPT] [PARAMETER|DEVID] #device_attach=[PATH_TO_SCRIPT] [PARAMETER|DEVID] #"DEVID" will automatically be replaced with the device ID
#"DEVID" will automatically be replaced with the device ID
#Call detach script when device disappears #Call detach script when device disappears
#device_detach=[PATH_TO_SCRIPT] [PARAMETER|DEVID] #device_detach=[PATH_TO_SCRIPT] [PARAMETER|DEVID] #"DEVID" will automatically be replaced with the device ID
#"DEVID" will automatically be replaced with the device ID
#Volume level #disable_atv=[0|1] #disable initialization of analogTV Frontend
#Initial Audio Volume level for DVB-C/T Hybrid devices
#volume=[0-127] #default: 118 #volume=[0-127] #default: 118
@ -72,4 +94,13 @@ ir_disabled=1
# WSS_UNABLE_TO_DEMODULATE # WSS_UNABLE_TO_DEMODULATE
#Timeout in ms after that WSS_UNABLE_TO_DEMODULATE will be called #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_NAME="sundtek-mediatv"
PKG_VERSION="2.0" PKG_VERSION="2.0"
PKG_REV="1" PKG_REV="2"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="nonfree" PKG_LICENSE="nonfree"
PKG_SITE="http://support.sundtek.com/" PKG_SITE="http://support.sundtek.com/"

View File

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