diff --git a/packages/3rdparty/driver/sundtek/build b/packages/3rdparty/driver/sundtek/build deleted file mode 100755 index 5777907bb4..0000000000 --- a/packages/3rdparty/driver/sundtek/build +++ /dev/null @@ -1,37 +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 - -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 diff --git a/packages/3rdparty/driver/sundtek/meta b/packages/3rdparty/driver/sundtek/meta deleted file mode 100644 index 02003fea0c..0000000000 --- a/packages/3rdparty/driver/sundtek/meta +++ /dev/null @@ -1,35 +0,0 @@ -################################################################################ -# 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 -################################################################################ - -PKG_NAME="sundtek" -PKG_VERSION="20120912" -PKG_REV="0" -PKG_ARCH="i386 x86_64 arm" -PKG_LICENSE="nonfree" -PKG_SITE="http://support.sundtek.com/" -PKG_URL="${DISTRO_SRC}/${PKG_NAME}-${PKG_VERSION}-${ARCH}.tar.gz" -PKG_DEPENDS="" -PKG_BUILD_DEPENDS="" -PKG_PRIORITY="optional" -PKG_SECTION="driver/dvb" -PKG_SHORTDESC="Sundtek USB Stick DVB userspace driver" -PKG_LONGDESC="Driver for Sundtek MediaTV Pro (DVB-C, DVB-T, AnalogTV, Composite, S-Video, FM-Radio USB Stick) and Sundtek SkyTV Ultimate (DVB-S/S2 USB)." -PKG_IS_ADDON="no" -PKG_AUTORECONF="no" diff --git a/packages/addons/driver/sundtek-mediatv/source/bin/userspace-driver.sh b/packages/addons/driver/sundtek-mediatv/source/bin/userspace-driver.sh deleted file mode 100755 index ef8855229a..0000000000 --- a/packages/addons/driver/sundtek-mediatv/source/bin/userspace-driver.sh +++ /dev/null @@ -1,85 +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 -################################################################################ - -. /etc/profile - -ADDON_DIR="$HOME/.xbmc/addons/driver.dvb.sundtek-mediatv" -ADDON_HOME="$HOME/.xbmc/userdata/addon_data/driver.dvb.sundtek-mediatv" -SUNDTEK_READY="/var/run/sundtek.ready" -ADAPTER_WAIT_TIME=120 - -NETWORK_TUNER_IP=$(awk '/^network_tuner_ip=/ {split($0,a,"="); printf("%s", a[2])}' "$ADDON_HOME/sundtek.conf") - -mkdir -p $ADDON_HOME - -if [ ! -f "$ADDON_HOME/sundtek.conf" ]; then - cp $ADDON_DIR/config/* $ADDON_HOME/ -fi - -SUNDTEK_ARG="--pluginpath=$ADDON_DIR/bin --daemon" - -if [ -z "$(pidof mediasrv)" ]; then - rm -f /var/log/mediasrv.log - rm -f /var/log/mediaclient.log - rm -f $SUNDTEK_READY - rm -f /tmp/sundtek.conf - - ln -sf $ADDON_HOME/sundtek.conf /tmp/sundtek.conf - mediasrv $SUNDTEK_ARG - - if [ -n "$NETWORK_TUNER_IP" ]; then - logger -t Sundtek "### Trying to connect Sundtek device $NETWORK_TUNER_IP ###" - mediaclient --mount=$NETWORK_TUNER_IP - else - logger -t Sundtek "### Trying to attach Sundtek device ###" - fi - - # wait for device to get attached or connected - cnt=0 - while [ 1 ]; do - if [ -n "$NETWORK_TUNER_IP" -a -e /dev/dvb/adapter*/frontend* ]; then - sh $ADDON_DIR/bin/device-attached.sh - fi - - if [ -f $SUNDTEK_READY ]; then - rm -f $SUNDTEK_READY - break - elif [ "$cnt" = "$ADAPTER_WAIT_TIME" ]; then - logger -t Sundtek "### No Sundtek device attached or connected ###" - return - fi - let cnt=cnt+1 - usleep 500000 - done - -( - # 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 '/device / {print $0} /ID:/ {print $2}') - if [ "$serial_number_old" != "$serial_number_new" ]; then - echo "$serial_number_new" >$ADDON_HOME/adapters.txt - fi -)& -fi - -export LD_PRELOAD=$ADDON_DIR/lib/libmediaclient.so:$LD_PRELOAD diff --git a/packages/addons/driver/sundtek-mediatv/addon b/packages/addons/driver/sundtek/addon similarity index 83% rename from packages/addons/driver/sundtek-mediatv/addon rename to packages/addons/driver/sundtek/addon index 12b17a98c2..64dad25a52 100755 --- a/packages/addons/driver/sundtek-mediatv/addon +++ b/packages/addons/driver/sundtek/addon @@ -24,9 +24,4 @@ mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/ cp -P $PKG_DIR/config/* $ADDON_BUILD/$PKG_ADDON_ID/config/ - -mkdir -p $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-*/opt/lib/*.so $ADDON_BUILD/$PKG_ADDON_ID/lib/ + cp -P $PKG_DIR/settings-default.xml $ADDON_BUILD/$PKG_ADDON_ID/ diff --git a/packages/addons/driver/sundtek-mediatv/changelog.txt b/packages/addons/driver/sundtek/changelog.txt similarity index 56% rename from packages/addons/driver/sundtek-mediatv/changelog.txt rename to packages/addons/driver/sundtek/changelog.txt index 6e2258a742..7043ca6cb5 100644 --- a/packages/addons/driver/sundtek-mediatv/changelog.txt +++ b/packages/addons/driver/sundtek/changelog.txt @@ -1,12 +1,16 @@ 3.0.1 -- bump addon version + addon renamed to just sundtek + added addon settings + sundtek's binaries are downloaded on first run + automatically download new version of the binaries if available + added preload library to .profile (to run mediaclient, w_scan, ... from console) 2.1.4 support for Raspberry Pi 2.1.3 support for network tuner - + 2.1.2 support for multiple Sundtek tuners support for working with other tuners (kernel drivers) diff --git a/packages/addons/driver/sundtek-mediatv/config/sundtek.conf b/packages/addons/driver/sundtek/config/sundtek.conf similarity index 73% rename from packages/addons/driver/sundtek-mediatv/config/sundtek.conf rename to packages/addons/driver/sundtek/config/sundtek.conf index 04553abba7..103a7ab60b 100644 --- a/packages/addons/driver/sundtek-mediatv/config/sundtek.conf +++ b/packages/addons/driver/sundtek/config/sundtek.conf @@ -2,11 +2,8 @@ # sundtek.conf # # Call attach/detach script when new device appears/disappears -# Do not change this line! -device_attach=/storage/.xbmc/addons/driver.dvb.sundtek-mediatv/bin/device-attached.sh - -# network tuner IP address (OpenELEC specific) -#network_tuner_ip=xxx.xxx.xxx.xxx +# Do not change this line (OpenElec addon require this) ! +device_attach=/storage/.xbmc/addons/driver.dvb.sundtek/bin/device-attached.sh # Infrared Control Support is disabled/enabled ir_disabled=1 @@ -19,8 +16,11 @@ bulk_notification=on # Get adapter serial number with mediaclient -e # or look into file adapter_serial_number.txt -[SERIALNUMBER] +#[SERIALNUMBER] # Choose initial DVB mode for hybrid DVB-T/DVB-C devices only #initial_dvb_mode=[DVBC|DVBT] # default mode is DVB-C, we must set it to DVB-T if needed #initial_dvb_mode=DVBT + +#[U123456789012] +#initial_dvb_mode=DVBT diff --git a/packages/addons/driver/sundtek-mediatv/config/sundtek.conf.full b/packages/addons/driver/sundtek/config/sundtek.conf.full similarity index 100% rename from packages/addons/driver/sundtek-mediatv/config/sundtek.conf.full rename to packages/addons/driver/sundtek/config/sundtek.conf.full diff --git a/packages/addons/driver/sundtek-mediatv/icon/icon.png b/packages/addons/driver/sundtek/icon/icon.png similarity index 100% rename from packages/addons/driver/sundtek-mediatv/icon/icon.png rename to packages/addons/driver/sundtek/icon/icon.png diff --git a/packages/addons/driver/sundtek-mediatv/meta b/packages/addons/driver/sundtek/meta similarity index 95% rename from packages/addons/driver/sundtek-mediatv/meta rename to packages/addons/driver/sundtek/meta index 3c036ac677..ce0440aacb 100644 --- a/packages/addons/driver/sundtek-mediatv/meta +++ b/packages/addons/driver/sundtek/meta @@ -18,15 +18,15 @@ # http://www.gnu.org/copyleft/gpl.html ################################################################################ -PKG_NAME="sundtek-mediatv" +PKG_NAME="sundtek" PKG_VERSION="3.0" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="nonfree" PKG_SITE="http://support.sundtek.com/" PKG_URL="" -PKG_DEPENDS="sundtek" -PKG_BUILD_DEPENDS="sundtek" +PKG_DEPENDS="" +PKG_BUILD_DEPENDS="" PKG_PRIORITY="optional" PKG_SECTION="driver/dvb" PKG_SHORTDESC="Sundtek USB Stick DVB userspace driver" diff --git a/packages/addons/driver/sundtek/settings-default.xml b/packages/addons/driver/sundtek/settings-default.xml new file mode 100755 index 0000000000..5de6cb8a02 --- /dev/null +++ b/packages/addons/driver/sundtek/settings-default.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/packages/addons/driver/sundtek-mediatv/source/bin/device-attached.sh b/packages/addons/driver/sundtek/source/bin/device-attached.sh old mode 100755 new mode 100644 similarity index 100% rename from packages/addons/driver/sundtek-mediatv/source/bin/device-attached.sh rename to packages/addons/driver/sundtek/source/bin/device-attached.sh diff --git a/packages/linux-drivers/aver_h826d/build b/packages/addons/driver/sundtek/source/bin/sundtek.start old mode 100755 new mode 100644 similarity index 87% rename from packages/linux-drivers/aver_h826d/build rename to packages/addons/driver/sundtek/source/bin/sundtek.start index ae725f6a48..eed33185de --- a/packages/linux-drivers/aver_h826d/build +++ b/packages/addons/driver/sundtek/source/bin/sundtek.start @@ -20,10 +20,9 @@ # http://www.gnu.org/copyleft/gpl.html ################################################################################ -. config/options $1 +. /etc/profile -cd $PKG_BUILD/installer/src +ADDON_DIR="$HOME/.xbmc/addons/driver.dvb.sundtek" -LDFLAGS="" make KERNELDIR=$(kernel_path) - -fix_module_depends "h826d.ko" "averusbh826d,videodev" +logger -t Sundtek "### Sundtek manual start ###" +. $ADDON_DIR/bin/userspace-driver.sh diff --git a/packages/linux-drivers/aver_h826d/install b/packages/addons/driver/sundtek/source/bin/sundtek.stop old mode 100755 new mode 100644 similarity index 84% rename from packages/linux-drivers/aver_h826d/install rename to packages/addons/driver/sundtek/source/bin/sundtek.stop index 2723572407..be22e253f3 --- a/packages/linux-drivers/aver_h826d/install +++ b/packages/addons/driver/sundtek/source/bin/sundtek.stop @@ -20,9 +20,11 @@ # http://www.gnu.org/copyleft/gpl.html ################################################################################ -. config/options $1 +. /etc/profile -VER=`ls $BUILD/linux*/modules/lib/modules` +ADDON_DIR="$HOME/.xbmc/addons/driver.dvb.sundtek" -mkdir -p $INSTALL/lib/modules/$VER/aver_h826d - cp $PKG_BUILD/installer/src/*.ko $INSTALL/lib/modules/$VER/aver_h826d +export LD_PRELOAD=$ADDON_DIR/lib/libmediaclient.so + +logger -t Sundtek "### Sundtek manual stop ###" +mediaclient --shutdown diff --git a/packages/addons/driver/sundtek/source/bin/userspace-driver.sh b/packages/addons/driver/sundtek/source/bin/userspace-driver.sh new file mode 100644 index 0000000000..0ec17a5389 --- /dev/null +++ b/packages/addons/driver/sundtek/source/bin/userspace-driver.sh @@ -0,0 +1,197 @@ +#!/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 +################################################################################ + +. /etc/profile + +ADDON_DIR="$HOME/.xbmc/addons/driver.dvb.sundtek" +ADDON_HOME="$HOME/.xbmc/userdata/addon_data/driver.dvb.sundtek" +ADDON_SETTINGS="$ADDON_HOME/settings.xml" +SUNDTEK_READY="/var/run/sundtek.ready" + +mkdir -p $ADDON_HOME + +if [ ! -f "$ADDON_HOME/sundtek.conf" ]; then + cp $ADDON_DIR/config/* $ADDON_HOME/ +fi + +if [ ! -f "$ADDON_SETTINGS" ]; then + cp $ADDON_DIR/settings-default.xml $ADDON_SETTINGS +fi + +mkdir -p /var/config +cat "$ADDON_SETTINGS" | awk -F\" '{print $2"=\""$4"\""}' | sed '/^=/d' > /var/config/sundtek-addon.conf +. /var/config/sundtek-addon.conf + +if [ "$AUTO_UPDATE" = "true" -a -f $ADDON_DIR/bin/mediasrv ]; then + logger -t Sundtek "### Checking for new Sundtek binary installer ###" + touch $ADDON_HOME/driver-version.txt + wget -O /tmp/sundtek-driver-version.txt http://sundtek.de/media/latest.phtml + md5_1=$(md5sum -b /tmp/sundtek-driver-version.txt | awk '{print $1}') + md5_2=$(md5sum -b $ADDON_HOME/driver-version.txt | awk '{print $1}') + if [ "$md5_1" != "$md5_2" ]; then + logger -t Sundtek "### Updating Sundtek binary installer ###" + rm -f $ADDON_DIR/bin/mediasrv + fi + + rm -f /tmp/sundtek-driver-version.txt +fi + +if [ ! -f $ADDON_DIR/bin/mediasrv ]; then + logger -t Sundtek "### Downloading installer ###" + cd $ADDON_DIR + mkdir -p bin lib tmp + cd tmp/ + + ARCH=$(sed -n 's|.*\.\([^-]*\)-.*|\1|p' /etc/release | tr -d '\n') + if [ "$ARCH" = "x86_64" ]; then + INSTALLER_URL="http://sundtek.de/media/netinst/64bit/installer.tar.gz" + elif [ "$ARCH" = "i386" ]; then + INSTALLER_URL="http://sundtek.de/media/netinst/32bit/installer.tar.gz" + elif [ "$ARCH" = "arm" ]; then + INSTALLER_URL="http://sundtek.de/media/netinst/armsysvhf/installer.tar.gz" + else + logger -t Sundtek "### Unsupported architecture ###" + cd .. + rm -fr tmp/ + exit 1 + fi + + # test only !!! + #INSTALLER_URL="http://sundtek.de/support/installer.tar.gz" + + wget -O installer.tar.gz $INSTALLER_URL + wget -O ../driver-version.txt http://sundtek.de/media/latest.phtml + logger -t Sundtek "### Extracting installer ###" + tar -xzf installer.tar.gz + if [ $? -ne 0 ]; then + logger -t Sundtek "### Installer damaged ###" + cd .. + rm -fr tmp/ + exit 2 + fi + + cp -Pa opt/bin/* ../bin/ + cp -Pa opt/lib/* ../lib/ + cp ../driver-version.txt $ADDON_HOME/ + cd .. + rm -fr tmp/ + logger -t Sundtek "### Installer finished ###" +fi + +if [ ! -f $ADDON_HOME/driver-version.txt ]; then + cp $ADDON_DIR/driver-version.txt $ADDON_HOME/ +fi + +# enable to install same version again +rm -f /storage/.xbmc/addons/packages/driver.dvb.sundtek-* + +# add alias for /opt/bin/mediaclient +#alias_set="$(grep /opt/bin/mediaclient /storage/.profile 2>/dev/null)" +alias_set="$(grep libmediaclient.so /storage/.profile 2>/dev/null)" +if [ -z "$alias_set" ]; then + echo "" >>/storage/.profile + #echo "alias /opt/bin/mediaclient=/storage/.xbmc/addons/driver.dvb.sundtek/bin/mediaclient" >>/storage/.profile + echo "[ -f /storage/.xbmc/addons/driver.dvb.sundtek/lib/libmediaclient.so ] && export LD_PRELOAD=/storage/.xbmc/addons/driver.dvb.sundtek/lib/libmediaclient.so" >>/storage/.profile + echo "" >>/storage/.profile +fi + +export LD_PRELOAD=$ADDON_DIR/lib/libmediaclient.so + +if [ "$ANALOG_TV" = "true" -a ! -f "$ADDON_DIR/bin/plugins/lib/libavcodec.so.54.12.100" ]; then + logger -t Sundtek "### Downloading missing ffmpeg libraries ###" + cd $ADDON_DIR/bin + mkdir -p plugins/ + cd plugins/ + + ARCH=$(sed -n 's|.*\.\([^-]*\)-.*|\1|p' /etc/release | tr -d '\n') + wget -O sundtek-ffmpeg-analog_tv-lib.tgz http://dl.dropbox.com/u/8224157/public/sundtek/sundtek-ffmpeg-analog_tv-lib-$ARCH.tgz + + logger -t Sundtek "### Extracting ffmpeg libraries ###" + tar -xzf sundtek-ffmpeg-analog_tv-lib.tgz + if [ $? -ne 0 ]; then + logger -t Sundtek "### Ffmpeg library archive damaged ###" + rm -f sundtek-ffmpeg-analog_tv-lib.tgz + exit 2 + fi + + rm -f sundtek-ffmpeg-analog_tv-lib.tgz +fi + +if [ -z "$(pidof mediasrv)" ]; then + rm -f /var/log/mediasrv.log + rm -f /var/log/mediaclient.log + rm -f $SUNDTEK_READY + + mediasrv --wait-for-devices -p $ADDON_DIR/bin -c $ADDON_HOME/sundtek.conf -d + + if [ -n "$NETWORK_TUNER_IP" -a "$NETWORK_TUNER_IP" != "0.0.0.0" ]; then + logger -t Sundtek "### Trying to connect to Sundtek network device IP $NETWORK_TUNER_IP ###" + mediaclient --mount=$NETWORK_TUNER_IP + else + logger -t Sundtek "### Trying to attach Sundtek device ###" + fi + + # wait for device to get attached or connected + for i in $(seq 1 240); do + if [ -n "$NETWORK_TUNER_IP" -a -e /dev/dvb/adapter*/frontend* ]; then + sh $ADDON_DIR/bin/device-attached.sh + fi + + if [ -f $SUNDTEK_READY ]; then + rm -f $SUNDTEK_READY + logger -t Sundtek "### Sundtek ready ###" + + if [ -n $SETTLE_TIME -a $SETTLE_TIME -gt 0 ]; then + logger -t Sundtek "### Settle for $SETTLE_TIME sec ###" + sleep $SETTLE_TIME + fi + + break + elif [ "$i" = "240" ]; then + logger -t Sundtek "### No Sundtek device attached or connected ###" + return + else + usleep 500000 + fi + done + + if [ "$ANALOG_TV" = "true" ]; then + logger -t Sundtek "### Switching to analog TV mode ###" + #rm -fr /dev/dvb/ + mediaclient --disable-dvb=/dev/dvb/adapter0 + fi + + if [ "$RUN_USER_SCRIPT" = "true" -a -f "$ADDON_HOME/userscript.sh" ]; then + logger -t Sundtek "### Running user script $ADDON_HOME/userscript.sh ###" + cat $ADDON_HOME/userscript.sh | dos2unix >/var/run/sundtek-userscript.sh + sh /var/run/sundtek-userscript.sh + fi +( + # save adapter serial number in background + sleep 5 + serial_number_old=$(cat $ADDON_HOME/adapters.txt 2>/dev/null) + 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 +)& +fi diff --git a/packages/addons/driver/sundtek-mediatv/source/default.py b/packages/addons/driver/sundtek/source/default.py similarity index 100% rename from packages/addons/driver/sundtek-mediatv/source/default.py rename to packages/addons/driver/sundtek/source/default.py diff --git a/packages/addons/driver/sundtek/source/resources/language/English/strings.xml b/packages/addons/driver/sundtek/source/resources/language/English/strings.xml new file mode 100644 index 0000000000..fe9a39f090 --- /dev/null +++ b/packages/addons/driver/sundtek/source/resources/language/English/strings.xml @@ -0,0 +1,9 @@ + + + General + Auto update binary driver + Analog TV + Network tuner IP + Extra settle time + Run user script + diff --git a/packages/addons/driver/sundtek/source/resources/settings.xml b/packages/addons/driver/sundtek/source/resources/settings.xml new file mode 100644 index 0000000000..13c4605753 --- /dev/null +++ b/packages/addons/driver/sundtek/source/resources/settings.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/addons/driver/sundtek-mediatv/source/sleep.d/sundtek-mediatv.power b/packages/addons/driver/sundtek/source/sleep.d/sundtek.power old mode 100755 new mode 100644 similarity index 93% rename from packages/addons/driver/sundtek-mediatv/source/sleep.d/sundtek-mediatv.power rename to packages/addons/driver/sundtek/source/sleep.d/sundtek.power index 2dbf91847e..b81f5ea9cc --- a/packages/addons/driver/sundtek-mediatv/source/sleep.d/sundtek-mediatv.power +++ b/packages/addons/driver/sundtek/source/sleep.d/sundtek.power @@ -23,12 +23,12 @@ . /etc/profile LOCKDIR="/var/lock/" -LOCKFILE="sundtek-mediatv" +LOCKFILE="sundtek" case "$1" in hibernate|suspend) if [ -n "$(pidof mediasrv)" ]; then - progress "Shutting down Sundtek MediaTV DVB driver for suspending..." + progress "Shutting down Sundtek DVB driver for suspending..." mkdir -p "$LOCKDIR" touch "$LOCKDIR/$LOCKFILE" mediaclient --shutdown diff --git a/packages/audio/alsa/config/modprobe.d/disable-spdif-for-hd-audio.conf b/packages/audio/alsa/config/modprobe.d/disable-spdif-for-hd-audio.conf new file mode 100644 index 0000000000..245345d416 --- /dev/null +++ b/packages/audio/alsa/config/modprobe.d/disable-spdif-for-hd-audio.conf @@ -0,0 +1,16 @@ +# INTEL HBR WORKAROUND FOR DTS-MA & Dolby TrueHD PLAYBACK + +# Uncomment the following lines to disable any S/PDIF out to deliver +# bitstreamed audio on Intel builds. This is a rough workaround for +# users that have both S/PDIF and HDMI audio outputs on their motherboard +# or motherboard+discrete graphics combo. + +# EVEN IF YOU ARE NOT USING THE S/PDIF OUTPUT +# but still have one, you will need to uncomment the lines below ! + +# after uncommenting these lines, you must reboot for these settings to take effect + +# blacklist snd_hda_codec_realtek +# blacklist snd_hda_codec_sigmatel +# blacklist snd_hda_codec_cirrus + diff --git a/packages/audio/alsa/install b/packages/audio/alsa/install index 99930fb0e2..861ad5839f 100755 --- a/packages/audio/alsa/install +++ b/packages/audio/alsa/install @@ -24,3 +24,6 @@ mkdir -p $INSTALL/etc/modprobe.d cp -P $PKG_DIR/config/alsa-base.conf $INSTALL/etc/modprobe.d + +mkdir -p $INSTALL/usr/config + cp -R $PKG_DIR/config/modprobe.d $INSTALL/usr/config diff --git a/packages/initramfs/sysutils/busybox-initramfs/scripts/init b/packages/initramfs/sysutils/busybox-initramfs/scripts/init index c155c0156b..51dab2d243 100755 --- a/packages/initramfs/sysutils/busybox-initramfs/scripts/init +++ b/packages/initramfs/sysutils/busybox-initramfs/scripts/init @@ -373,7 +373,7 @@ SPLASHIMAGE="/splash/splash.png" fi - ply-image $SPLASHIMAGE > /dev/null 2>&1 & + ply-image $SPLASHIMAGE > /dev/null 2>&1 fi } diff --git a/packages/linux-drivers/RTL8192CU/patches/RTL8192CU-use_kthread_run.patch b/packages/linux-drivers/RTL8192CU/patches/RTL8192CU-use_kthread_run.patch new file mode 100644 index 0000000000..a40a21421a --- /dev/null +++ b/packages/linux-drivers/RTL8192CU/patches/RTL8192CU-use_kthread_run.patch @@ -0,0 +1,107 @@ +diff -ur _/core/rtw_mp.c rt8192cu-master/core/rtw_mp.c +--- _/core/rtw_mp.c 2012-07-09 10:32:18.000000000 +0200 ++++ rt8192cu-master/core/rtw_mp.c 2012-12-21 03:13:45.358137142 +0100 +@@ -1140,8 +1140,7 @@ + _rtw_memset(ptr, payload, pkt_end - ptr); + + //3 6. start thread +- pmp_priv->tx.PktTxThread = kernel_thread(mp_xmit_packet_thread, pmp_priv, CLONE_FS|CLONE_FILES); +- if(pmp_priv->tx.PktTxThread < 0) ++ if(!start_kthread(&pmp_priv->tx.PktTxThread, mp_xmit_packet_thread, pmp_priv, "8192cu-mp-xmit")) + DBG_871X("Create PktTx Thread Fail !!!!!\n"); + + } +diff -ur _/include/osdep_service.h rt8192cu-master/include/osdep_service.h +--- _/include/osdep_service.h 2012-07-09 10:32:18.000000000 +0200 ++++ rt8192cu-master/include/osdep_service.h 2012-12-21 03:09:05.314123589 +0100 +@@ -100,6 +100,9 @@ + #include + #endif + ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)) ++ #include ++#endif + + #ifdef CONFIG_USB_HCI + typedef struct urb * PURB; +@@ -133,8 +136,12 @@ + //typedef u32 _irqL; + typedef unsigned long _irqL; + typedef struct net_device * _nic_hdl; +- ++ ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) + typedef pid_t _thread_hdl_; ++#else ++ typedef struct task_struct * _thread_hdl_; ++#endif + typedef int thread_return; + typedef void* thread_context; + +@@ -827,4 +834,8 @@ + + #endif + ++#ifdef PLATFORM_LINUX ++extern int start_kthread(_thread_hdl_ *t_hdl, int (*threadfn)(void *data), ++ void *data, const char *name); ++#endif + +diff -ur _/os_dep/linux/os_intfs.c rt8192cu-master/os_dep/linux/os_intfs.c +--- _/os_dep/linux/os_intfs.c 2012-12-21 03:17:25.618147802 +0100 ++++ rt8192cu-master/os_dep/linux/os_intfs.c 2012-12-21 03:14:14.554138555 +0100 +@@ -797,27 +797,22 @@ + RT_TRACE(_module_os_intfs_c_,_drv_info_,("+rtw_start_drv_threads\n")); + + #ifdef CONFIG_SDIO_HCI +- padapter->xmitThread = kernel_thread(rtw_xmit_thread, padapter, CLONE_FS|CLONE_FILES); +- if(padapter->xmitThread < 0) ++ if(!start_kthread(&padapter->xmitThread, rtw_xmit_thread, padapter, "8192cu-xmit")) + _status = _FAIL; + #endif + + #ifdef CONFIG_RECV_THREAD_MODE +- padapter->recvThread = kernel_thread(recv_thread, padapter, CLONE_FS|CLONE_FILES); +- if(padapter->recvThread < 0) ++ if(!start_kthread(&padapter->recvThread, recv_thread, padapter, "8192cu-recv")) + _status = _FAIL; + #endif + +- padapter->cmdThread = kernel_thread(rtw_cmd_thread, padapter, CLONE_FS|CLONE_FILES); +- if(padapter->cmdThread < 0) ++ if(!start_kthread(&padapter->cmdThread, rtw_cmd_thread, padapter, "8192cu-cmd")) + _status = _FAIL; + else + _rtw_down_sema(&padapter->cmdpriv.terminate_cmdthread_sema); //wait for cmd_thread to run +- + + #ifdef CONFIG_EVENT_THREAD_MODE +- padapter->evtThread = kernel_thread(event_thread, padapter, CLONE_FS|CLONE_FILES); +- if(padapter->evtThread < 0) ++ if(!start_kthread(&padapter->evtThread, event_thread, padapter, "8192cu-evt")) + _status = _FAIL; + #endif + +diff -ur _/os_dep/osdep_service.c rt8192cu-master/os_dep/osdep_service.c +--- _/os_dep/osdep_service.c 2012-12-21 03:17:25.618147802 +0100 ++++ rt8192cu-master/os_dep/osdep_service.c 2012-12-21 03:08:30.330121896 +0100 +@@ -1553,3 +1553,19 @@ + #endif + } + ++#ifdef PLATFORM_LINUX ++int start_kthread(_thread_hdl_ *t_hdl, int (*threadfn)(void *data), ++ void *data, const char *name) ++{ ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) ++ *t_hdl = kernel_thread(threadfn, data, CLONE_FS|CLONE_FILES); ++ if(*t_hdl < 0) ++#else ++ *t_hdl = kthread_run(threadfn, data, name); ++ if(IS_ERR(*t_hdl)) ++#endif ++ return 0; ++ return -1; ++} ++#endif ++ diff --git a/packages/linux-drivers/aver_h826d/kdep_2.6.30/OBJ-4GREG/_prebuild.o_shipped b/packages/linux-drivers/aver_h826d/kdep_2.6.30/OBJ-4GREG/_prebuild.o_shipped deleted file mode 100644 index f167884b53..0000000000 Binary files a/packages/linux-drivers/aver_h826d/kdep_2.6.30/OBJ-4GREG/_prebuild.o_shipped and /dev/null differ diff --git a/packages/linux-drivers/aver_h826d/kdep_2.6.30/OBJ-4GREG/aver/osdep_dvb.o_shipped b/packages/linux-drivers/aver_h826d/kdep_2.6.30/OBJ-4GREG/aver/osdep_dvb.o_shipped deleted file mode 100644 index 9c98ea8137..0000000000 Binary files a/packages/linux-drivers/aver_h826d/kdep_2.6.30/OBJ-4GREG/aver/osdep_dvb.o_shipped and /dev/null differ diff --git a/packages/linux-drivers/aver_h826d/kdep_2.6.30/OBJ-x64/_prebuild.o_shipped b/packages/linux-drivers/aver_h826d/kdep_2.6.30/OBJ-x64/_prebuild.o_shipped deleted file mode 100644 index 9a49dc8a22..0000000000 Binary files a/packages/linux-drivers/aver_h826d/kdep_2.6.30/OBJ-x64/_prebuild.o_shipped and /dev/null differ diff --git a/packages/linux-drivers/aver_h826d/kdep_2.6.30/OBJ-x64/aver/osdep_dvb.o_shipped b/packages/linux-drivers/aver_h826d/kdep_2.6.30/OBJ-x64/aver/osdep_dvb.o_shipped deleted file mode 100644 index 38ab6ef008..0000000000 Binary files a/packages/linux-drivers/aver_h826d/kdep_2.6.30/OBJ-x64/aver/osdep_dvb.o_shipped and /dev/null differ diff --git a/packages/linux-drivers/aver_h826d/meta b/packages/linux-drivers/aver_h826d/meta deleted file mode 100644 index d2f79854c9..0000000000 --- a/packages/linux-drivers/aver_h826d/meta +++ /dev/null @@ -1,36 +0,0 @@ -################################################################################ -# 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 -################################################################################ - -PKG_NAME="aver_h826d" -PKG_VERSION="0.10" -PKG_REV="1" -PKG_ARCH="i386 x86_64" -PKG_LICENSE="GPL" -PKG_SITE="http://www.avermedia-usa.com/avertv/product/ProductDetail.aspx?Id=431&tab=APDriver" -[ "$TARGET_ARCH" = "i386" ] && PKG_URL="http://www.avermedia-usa.com/AVerTV/Upload/Download/C038A827H826_Installer_x86_0.10-Beta_091126.zip" -[ "$TARGET_ARCH" = "x86_64" ] && PKG_URL="http://www.avermedia-usa.com/AVerTV/Upload/Download/C038A827H826_Installer_x64_0.10-Beta_091126.zip" -PKG_DEPENDS="" -PKG_BUILD_DEPENDS="toolchain linux" -PKG_PRIORITY="optional" -PKG_SECTION="driver" -PKG_SHORTDESC="AVerTV Hybrid Volar MAX H826 driver" -PKG_LONGDESC="AVerTV Hybrid Volar MAX H826 driver" -PKG_IS_ADDON="no" -PKG_AUTORECONF="no" diff --git a/packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-100-latest_kernel.patch b/packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-100-latest_kernel.patch deleted file mode 100644 index 43d8659c47..0000000000 --- a/packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-100-latest_kernel.patch +++ /dev/null @@ -1,65 +0,0 @@ -diff -Nr -u0 original/installer/installer.sh modified/installer/installer.sh ---- original/installer/installer.sh 2009-11-13 11:47:33.000000000 +0100 -+++ modified/installer/installer.sh 2011-08-28 20:58:38.000000000 +0200 -@@ -177,13 +176,0 @@ -- if [[ "$kversion" != "2" || "$kpatchlevel" != "6" ]]; then -- dialog --backtitle "$BACKTITLE" \ -- --title "Kernel version error" \ -- --msgbox "Installer cannot determine kernel version or the running kernel is not 2.6.x kernel. \n\ --Installer will abort now. --" \ -- 10 $WIDTH -- log "generate_kdep_string: wrong kernel version ${kversion}.${kpatchlevel}.${ksublevel}. Abort." -- log_from_file $ksrc/Makefile #s016 -- log_from_file $kobj/Makefile #s016 -- exit -- fi -- -diff -Nr -u0 original/installer/src/aver/osdep.c modified/installer/src/aver/osdep.c ---- original/installer/src/aver/osdep.c 2009-11-13 11:54:56.000000000 +0100 -+++ modified/installer/src/aver/osdep.c 2011-08-28 20:19:19.000000000 +0200 -@@ -89 +88,0 @@ --#include -@@ -435 +434 @@ -- init_MUTEX(tmp); -+ sema_init(tmp, 1); -@@ -439 +438 @@ -- init_MUTEX_LOCKED(tmp); -+ sema_init(tmp, 0); -@@ -1069,0 +1069 @@ -+static DEFINE_MUTEX(dvbdev_mutex); -@@ -1072 +1072 @@ -- lock_kernel(); -+ mutex_lock(&dvbdev_mutex); -@@ -1077 +1077 @@ -- unlock_kernel(); -+ mutex_unlock(&dvbdev_mutex); -diff -Nr -u0 original/installer/src/aver/osdep_dvb.c modified/installer/src/aver/osdep_dvb.c ---- original/installer/src/aver/osdep_dvb.c 2009-11-13 11:54:57.000000000 +0100 -+++ modified/installer/src/aver/osdep_dvb.c 2011-08-28 20:19:36.000000000 +0200 -@@ -79 +78,0 @@ --#include -@@ -233 +232 @@ -- init_MUTEX(&p->feedlock); -+ sema_init(&p->feedlock, 1); -diff -Nr -u0 original/installer/src/aver/osdep_th2.c modified/installer/src/aver/osdep_th2.c ---- original/installer/src/aver/osdep_th2.c 2009-11-13 11:54:57.000000000 +0100 -+++ modified/installer/src/aver/osdep_th2.c 2011-08-28 20:20:00.000000000 +0200 -@@ -78 +77,0 @@ --#include -@@ -80,0 +80 @@ -+#include "osdep.h" -@@ -90 +90 @@ -- lock_kernel(); -+ SysLockKernel(); -@@ -100 +100 @@ -- unlock_kernel(); -+ SysUnlockKernel(); -diff -Nr -u0 original/installer/src/aver/osdep_v4l2.c modified/installer/src/aver/osdep_v4l2.c ---- original/installer/src/aver/osdep_v4l2.c 2009-11-13 11:54:58.000000000 +0100 -+++ modified/installer/src/aver/osdep_v4l2.c 2011-08-28 20:20:19.000000000 +0200 -@@ -75,0 +76,2 @@ -+#define VFL_TYPE_VTX 3 -+ -@@ -84 +85,0 @@ --#include diff --git a/packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-100-latest_kernel.patch.txt b/packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-100-latest_kernel.patch.txt deleted file mode 100644 index 181f84035f..0000000000 --- a/packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-100-latest_kernel.patch.txt +++ /dev/null @@ -1 +0,0 @@ -http://linuxtv.org/wiki/index.php/AVerMedia_AverTV_Hybrid_Volar_HX_(A827) \ No newline at end of file diff --git a/packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-101-kernel-3.2.patch b/packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-101-kernel-3.2.patch deleted file mode 100644 index 775974f4a5..0000000000 --- a/packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-101-kernel-3.2.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -Naur AVERMEDIA-Linux-x64-H826D-0.10-beta/installer/src/driver-core.c AVERMEDIA-Linux-x64-H826D-0.10-beta.patch/installer/src/driver-core.c ---- AVERMEDIA-Linux-x64-H826D-0.10-beta/installer/src/driver-core.c 2009-11-13 11:54:59.000000000 +0100 -+++ AVERMEDIA-Linux-x64-H826D-0.10-beta.patch/installer/src/driver-core.c 2011-12-21 02:32:24.008225956 +0100 -@@ -81,6 +81,7 @@ - #include "aver/id.h" - #include "driver-core.h" - #include -+#include - - - diff --git a/packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-102-crosscompile.patch b/packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-102-crosscompile.patch deleted file mode 100644 index b3ab88413b..0000000000 --- a/packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-102-crosscompile.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/installer/src/Makefile b/installer/src/Makefile -index 7679c65..a83fb0b 100644 ---- a/installer/src/Makefile -+++ b/installer/src/Makefile -@@ -56,7 +56,7 @@ h826d-objs := $(COBJS) $(PREBUILD_OBJ) - averusbh826d-objs := aver/averusb-mod.o - default:: links - $(MAKE) -C $(KERNELSRC) O=$(KERNELOBJ) SUBDIRS=`pwd` $(TARGET) -- $(CROSS_COMPILE)strip --strip-debug *.ko -+ $(STRIP) --strip-debug *.ko - - - diff --git a/packages/linux-drivers/aver_h826d/unpack b/packages/linux-drivers/aver_h826d/unpack deleted file mode 100755 index 9148078f4b..0000000000 --- a/packages/linux-drivers/aver_h826d/unpack +++ /dev/null @@ -1,52 +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 - -ZIP_PKG="`echo $PKG_URL | sed 's%.*/\(.*\)$%\1%'`" - -mkdir -p $BUILD/${PKG_NAME}-${PKG_VERSION} - -unzip $SOURCES/$1/$ZIP_PKG -d $BUILD/${PKG_NAME}-${PKG_VERSION} >/dev/null 2>&1 - -tail -n +115 $BUILD/${PKG_NAME}-${PKG_VERSION}/H826D_Installer_*/AVERMEDIA-Linux-*-H826D-0.10-beta.sh | bzip2 -d | tar xf - -C $BUILD/${PKG_NAME}-${PKG_VERSION} - -# this code is copied from scripts/unpack -PKG_BUILD=`ls -d $BUILD/${PKG_NAME}[-_.]${PKG_VERSION}` -for i in $PKG_DIR/patches-manual/$PKG_NAME-$PKG_VERSION*.patch ; do - if [ -f "$i" ]; then - PATCH=`basename $i` - PT=`echo $PATCH | sed 's/.*\.\(.*\)$/\1/'` - if [ "$PT" != "patch" -a "$PT" != "$TARGET_ARCH" ]; then - printf "%${INDENT}c SKIP PATCH: $i\n" >&$SILENT_OUT - continue; - else - printf "%${INDENT}c APPLY PATCH: $i\n" >&$SILENT_OUT - cat $i | patch -p1 -d `echo "$PKG_BUILD" | cut -f1 -d\ ` -p1 >&$VERBOSE_OUT - fi - fi -done - -# prebuild objects were hex edited for kernel 3.1 -[ "$TARGET_ARCH" = "x86_64" ] && KVSTR=x64 -[ "$TARGET_ARCH" = "i386" ] && KVSTR=4GREG -cp -rf $PKG_DIR/kdep_2.6.30/OBJ-$KVSTR/* $BUILD/${PKG_NAME}-${PKG_VERSION}/installer/src diff --git a/packages/linux/patches/3.7.5/linux-990.01-hda_Add_workaround_for_conflicting_IEC958_controls.patch b/packages/linux/patches/3.7.5/linux-990.01-hda_Add_workaround_for_conflicting_IEC958_controls.patch new file mode 100644 index 0000000000..a17d219332 --- /dev/null +++ b/packages/linux/patches/3.7.5/linux-990.01-hda_Add_workaround_for_conflicting_IEC958_controls.patch @@ -0,0 +1,266 @@ +From dcda5806165c155d90b9aa466a1602cf4726012b Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Fri, 12 Oct 2012 17:24:51 +0200 +Subject: [PATCH] ALSA: hda - Add workaround for conflicting IEC958 controls + +When both an SPDIF and an HDMI device are created on the same card +instance, multiple IEC958 controls are created with indices=0, 1, ... +But the alsa-lib configuration can't know which index corresponds +actually to which PCM device, and both the SPDIF and the HDMI +configurations point to the first IEC958 control wrongly. + +This patch introduces a (hackish and ugly) workaround: the IEC958 +controls for the SPDIF device are re-labeled with device=1 when HDMI +coexists. The device=1 corresponds to the actual PCM device for +SPDIF, so it's anyway a better representation. In future, HDMI +controls should be moved with the corresponding PCM device number, +too. + +Signed-off-by: Takashi Iwai +--- + sound/pci/hda/hda_codec.c | 60 ++++++++++++++++++++++++++++------------ + sound/pci/hda/hda_codec.h | 1 + + sound/pci/hda/hda_local.h | 8 +++-- + sound/pci/hda/patch_cirrus.c | 5 ++- + sound/pci/hda/patch_hdmi.c | 7 ++-- + sound/pci/hda/patch_realtek.c | 7 ++-- + sound/pci/hda/patch_sigmatel.c | 7 ++-- + 7 files changed, 63 insertions(+), 32 deletions(-) + +diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c +index ee958a7..2da7875 100644 +--- a/sound/pci/hda/hda_codec.c ++++ b/sound/pci/hda/hda_codec.c +@@ -2166,12 +2166,12 @@ EXPORT_SYMBOL_HDA(snd_hda_set_vmaster_tlv); + + /* find a mixer control element with the given name */ + static struct snd_kcontrol * +-_snd_hda_find_mixer_ctl(struct hda_codec *codec, +- const char *name, int idx) ++find_mixer_ctl(struct hda_codec *codec, const char *name, int dev, int idx) + { + struct snd_ctl_elem_id id; + memset(&id, 0, sizeof(id)); + id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; ++ id.device = dev; + id.index = idx; + if (snd_BUG_ON(strlen(name) >= sizeof(id.name))) + return NULL; +@@ -2189,15 +2189,16 @@ _snd_hda_find_mixer_ctl(struct hda_codec *codec, + struct snd_kcontrol *snd_hda_find_mixer_ctl(struct hda_codec *codec, + const char *name) + { +- return _snd_hda_find_mixer_ctl(codec, name, 0); ++ return find_mixer_ctl(codec, name, 0, 0); + } + EXPORT_SYMBOL_HDA(snd_hda_find_mixer_ctl); + +-static int find_empty_mixer_ctl_idx(struct hda_codec *codec, const char *name) ++static int find_empty_mixer_ctl_idx(struct hda_codec *codec, const char *name, ++ int dev) + { + int idx; + for (idx = 0; idx < 16; idx++) { /* 16 ctlrs should be large enough */ +- if (!_snd_hda_find_mixer_ctl(codec, name, idx)) ++ if (!find_mixer_ctl(codec, name, dev, idx)) + return idx; + } + return -EBUSY; +@@ -3148,26 +3149,48 @@ static struct snd_kcontrol_new dig_mixes[] = { + }; + + /** +- * snd_hda_create_spdif_out_ctls - create Output SPDIF-related controls ++ * snd_hda_create_dig_out_ctls - create Output SPDIF-related controls + * @codec: the HDA codec +- * @nid: audio out widget NID +- * +- * Creates controls related with the SPDIF output. +- * Called from each patch supporting the SPDIF out. ++ * @associated_nid: NID that new ctls associated with ++ * @cvt_nid: converter NID ++ * @type: HDA_PCM_TYPE_* ++ * Creates controls related with the digital output. ++ * Called from each patch supporting the digital out. + * + * Returns 0 if successful, or a negative error code. + */ +-int snd_hda_create_spdif_out_ctls(struct hda_codec *codec, +- hda_nid_t associated_nid, +- hda_nid_t cvt_nid) ++int snd_hda_create_dig_out_ctls(struct hda_codec *codec, ++ hda_nid_t associated_nid, ++ hda_nid_t cvt_nid, ++ int type) + { + int err; + struct snd_kcontrol *kctl; + struct snd_kcontrol_new *dig_mix; +- int idx; ++ int idx, dev = 0; ++ const int spdif_pcm_dev = 1; + struct hda_spdif_out *spdif; + +- idx = find_empty_mixer_ctl_idx(codec, "IEC958 Playback Switch"); ++ if (codec->primary_dig_out_type == HDA_PCM_TYPE_HDMI && ++ type == HDA_PCM_TYPE_SPDIF) { ++ dev = spdif_pcm_dev; ++ } else if (codec->primary_dig_out_type == HDA_PCM_TYPE_SPDIF && ++ type == HDA_PCM_TYPE_HDMI) { ++ for (idx = 0; idx < codec->spdif_out.used; idx++) { ++ spdif = snd_array_elem(&codec->spdif_out, idx); ++ for (dig_mix = dig_mixes; dig_mix->name; dig_mix++) { ++ kctl = find_mixer_ctl(codec, dig_mix->name, 0, idx); ++ if (!kctl) ++ break; ++ kctl->id.device = spdif_pcm_dev; ++ } ++ } ++ codec->primary_dig_out_type = HDA_PCM_TYPE_HDMI; ++ } ++ if (!codec->primary_dig_out_type) ++ codec->primary_dig_out_type = type; ++ ++ idx = find_empty_mixer_ctl_idx(codec, "IEC958 Playback Switch", dev); + if (idx < 0) { + printk(KERN_ERR "hda_codec: too many IEC958 outputs\n"); + return -EBUSY; +@@ -3177,6 +3200,7 @@ int snd_hda_create_spdif_out_ctls(struct hda_codec *codec, + kctl = snd_ctl_new1(dig_mix, codec); + if (!kctl) + return -ENOMEM; ++ kctl->id.device = dev; + kctl->id.index = idx; + kctl->private_value = codec->spdif_out.used - 1; + err = snd_hda_ctl_add(codec, associated_nid, kctl); +@@ -3189,7 +3213,7 @@ int snd_hda_create_spdif_out_ctls(struct hda_codec *codec, + spdif->status = convert_to_spdif_status(spdif->ctls); + return 0; + } +-EXPORT_SYMBOL_HDA(snd_hda_create_spdif_out_ctls); ++EXPORT_SYMBOL_HDA(snd_hda_create_dig_out_ctls); + + /* get the hda_spdif_out entry from the given NID + * call within spdif_mutex lock +@@ -3364,7 +3388,7 @@ int snd_hda_create_spdif_in_ctls(struct hda_codec *codec, hda_nid_t nid) + struct snd_kcontrol_new *dig_mix; + int idx; + +- idx = find_empty_mixer_ctl_idx(codec, "IEC958 Capture Switch"); ++ idx = find_empty_mixer_ctl_idx(codec, "IEC958 Capture Switch", 0); + if (idx < 0) { + printk(KERN_ERR "hda_codec: too many IEC958 inputs\n"); + return -EBUSY; +@@ -4472,7 +4496,7 @@ int snd_hda_add_new_ctls(struct hda_codec *codec, + addr = codec->addr; + else if (!idx && !knew->index) { + idx = find_empty_mixer_ctl_idx(codec, +- knew->name); ++ knew->name, 0); + if (idx <= 0) + return err; + } else +diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h +index 10a03b0..62d4229 100644 +--- a/sound/pci/hda/hda_codec.h ++++ b/sound/pci/hda/hda_codec.h +@@ -836,6 +836,7 @@ struct hda_codec { + struct mutex hash_mutex; + struct snd_array spdif_out; + unsigned int spdif_in_enable; /* SPDIF input enable? */ ++ int primary_dig_out_type; /* primary digital out PCM type */ + const hda_nid_t *slave_dig_outs; /* optional digital out slave widgets */ + struct snd_array init_pins; /* initial (BIOS) pin configurations */ + struct snd_array driver_pins; /* pin configs set by codec parser */ +diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h +index 09dbdc3..8c43198 100644 +--- a/sound/pci/hda/hda_local.h ++++ b/sound/pci/hda/hda_local.h +@@ -240,9 +240,11 @@ int snd_hda_mixer_bind_tlv(struct snd_kcontrol *kcontrol, int op_flag, + /* + * SPDIF I/O + */ +-int snd_hda_create_spdif_out_ctls(struct hda_codec *codec, +- hda_nid_t associated_nid, +- hda_nid_t cvt_nid); ++int snd_hda_create_dig_out_ctls(struct hda_codec *codec, ++ hda_nid_t associated_nid, ++ hda_nid_t cvt_nid, int type); ++#define snd_hda_create_spdif_out_ctls(codec, anid, cnid) \ ++ snd_hda_create_dig_out_ctls(codec, anid, cnid, HDA_PCM_TYPE_SPDIF) + int snd_hda_create_spdif_in_ctls(struct hda_codec *codec, hda_nid_t nid); + + /* +diff --git a/sound/pci/hda/patch_cirrus.c b/sound/pci/hda/patch_cirrus.c +index 61a7113..a7f8790 100644 +--- a/sound/pci/hda/patch_cirrus.c ++++ b/sound/pci/hda/patch_cirrus.c +@@ -873,8 +873,9 @@ static int build_digital_output(struct hda_codec *codec) + if (!spec->multiout.dig_out_nid) + return 0; + +- err = snd_hda_create_spdif_out_ctls(codec, spec->multiout.dig_out_nid, +- spec->multiout.dig_out_nid); ++ err = snd_hda_create_dig_out_ctls(codec, spec->multiout.dig_out_nid, ++ spec->multiout.dig_out_nid, ++ spec->pcm_rec[1].pcm_type); + if (err < 0) + return err; + err = snd_hda_create_spdif_share_sw(codec, &spec->multiout); +diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c +index 71555cc..39ca100 100644 +--- a/sound/pci/hda/patch_hdmi.c ++++ b/sound/pci/hda/patch_hdmi.c +@@ -1589,9 +1589,10 @@ static int generic_hdmi_build_controls(struct hda_codec *codec) + if (err < 0) + return err; + +- err = snd_hda_create_spdif_out_ctls(codec, +- per_pin->pin_nid, +- per_pin->mux_nids[0]); ++ err = snd_hda_create_dig_out_ctls(codec, ++ per_pin->pin_nid, ++ per_pin->mux_nids[0], ++ HDA_PCM_TYPE_HDMI); + if (err < 0) + return err; + snd_hda_spdif_ctls_unassign(codec, pin_idx); +diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c +index 8253b4e..2d2bb66 100644 +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -1836,9 +1836,10 @@ static int __alc_build_controls(struct hda_codec *codec) + return err; + } + if (spec->multiout.dig_out_nid) { +- err = snd_hda_create_spdif_out_ctls(codec, +- spec->multiout.dig_out_nid, +- spec->multiout.dig_out_nid); ++ err = snd_hda_create_dig_out_ctls(codec, ++ spec->multiout.dig_out_nid, ++ spec->multiout.dig_out_nid, ++ spec->pcm_rec[1].pcm_type); + if (err < 0) + return err; + if (!spec->no_analog) { +diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c +index 770013f..6214165 100644 +--- a/sound/pci/hda/patch_sigmatel.c ++++ b/sound/pci/hda/patch_sigmatel.c +@@ -1136,9 +1136,10 @@ static int stac92xx_build_controls(struct hda_codec *codec) + } + + if (spec->multiout.dig_out_nid) { +- err = snd_hda_create_spdif_out_ctls(codec, +- spec->multiout.dig_out_nid, +- spec->multiout.dig_out_nid); ++ err = snd_hda_create_dig_out_ctls(codec, ++ spec->multiout.dig_out_nid, ++ spec->multiout.dig_out_nid, ++ spec->autocfg.dig_out_type[0]); + if (err < 0) + return err; + err = snd_hda_create_spdif_share_sw(codec, +-- +1.7.7.6 + diff --git a/packages/linux/patches/3.7.5/linux-990.02-hda-Fix-default-multichannel-HDMI-mapping-regre.patch b/packages/linux/patches/3.7.5/linux-990.02-hda-Fix-default-multichannel-HDMI-mapping-regre.patch new file mode 100644 index 0000000000..b62de2e517 --- /dev/null +++ b/packages/linux/patches/3.7.5/linux-990.02-hda-Fix-default-multichannel-HDMI-mapping-regre.patch @@ -0,0 +1,66 @@ +From b3ed803a1f4012a5067087674b8b1efad22d2bb0 Mon Sep 17 00:00:00 2001 +From: Anssi Hannula +Date: Sun, 3 Feb 2013 17:28:34 +0200 +Subject: [PATCH] ALSA: hda - Fix default multichannel HDMI mapping regression + +Commit d45e6889ee69456a4d5b1bbb32252f460cd48fa9 ("ALSA: hda - Provide +the proper channel mapping for generic HDMI driver") added support for +custom channel maps in the HDA HDMI driver. Due to a mistake in an +'if' condition the custom map is always used even when no such map has +been set. This causes incorrect channel mapping for multichannel audio +by default. + +Pass per_pin->chmap_set to hdmi_setup_channel_mapping() as a parameter +so that it can use it for detecting if a custom map has been set instead +of checking if map is NULL (which is never the case). + +Reported-by: Staffan Lindberg +Signed-off-by: Anssi Hannula +Cc: stable@vger.kernel.org +--- + +This also affects stable 3.7, but not earlier versions. + + sound/pci/hda/patch_hdmi.c | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c +index 807a2aa..e85959f 100644 +--- a/sound/pci/hda/patch_hdmi.c ++++ b/sound/pci/hda/patch_hdmi.c +@@ -714,9 +714,10 @@ static void hdmi_setup_fake_chmap(unsigned char *map, int ca) + + static void hdmi_setup_channel_mapping(struct hda_codec *codec, + hda_nid_t pin_nid, bool non_pcm, int ca, +- int channels, unsigned char *map) ++ int channels, unsigned char *map, ++ bool chmap_set) + { +- if (!non_pcm && map) { ++ if (!non_pcm && chmap_set) { + hdmi_manual_setup_channel_mapping(codec, pin_nid, + channels, map); + } else { +@@ -905,7 +906,8 @@ static void hdmi_setup_audio_infoframe(struct hda_codec *codec, int pin_idx, + pin_nid, + channels); + hdmi_setup_channel_mapping(codec, pin_nid, non_pcm, ca, +- channels, per_pin->chmap); ++ channels, per_pin->chmap, ++ per_pin->chmap_set); + hdmi_stop_infoframe_trans(codec, pin_nid); + hdmi_fill_audio_infoframe(codec, pin_nid, + ai.bytes, sizeof(ai)); +@@ -915,7 +917,8 @@ static void hdmi_setup_audio_infoframe(struct hda_codec *codec, int pin_idx, + * accordingly */ + if (per_pin->non_pcm != non_pcm) + hdmi_setup_channel_mapping(codec, pin_nid, non_pcm, ca, +- channels, per_pin->chmap); ++ channels, per_pin->chmap, ++ per_pin->chmap_set); + } + + per_pin->non_pcm = non_pcm; +-- +1.7.10 + diff --git a/packages/mediacenter/xbmc/build b/packages/mediacenter/xbmc/build index 14f200da22..8771e01746 100755 --- a/packages/mediacenter/xbmc/build +++ b/packages/mediacenter/xbmc/build @@ -22,9 +22,6 @@ . config/options $1 -# disable build of GOOM until its fixed - XBMC_VIS_GOOM="no" - if [ "$DISPLAYSERVER" = "xorg-server" ]; then XBMC_XORG="--enable-x11 --enable-xrandr" else diff --git a/packages/mediacenter/xbmc/patches/xbmc-990.01-PR2158.patch b/packages/mediacenter/xbmc/patches/xbmc-990.01-PR2158.patch new file mode 100644 index 0000000000..7f984189e7 --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-990.01-PR2158.patch @@ -0,0 +1,39 @@ +From ac86e23aa11861a4fa063fb2fa05f10cbc4eea19 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Fri, 1 Feb 2013 18:37:20 +0000 +Subject: [PATCH] [rbp] Avoid blocking the video thread keeping the video fifo + full. OpenMAX IL is an asynchronous media player. The key + to getting good performance is to ensure the audio and + video fifo have sufficient data to withstand any processing + spikes by the ARM. Ideally the fifos would allow the arm to + crash, and video and audio playback to continue smoothly + for a couple of seconds. + +I've examined the fifo behaviour, and found the video fifo is always almost empty. (The audio fifo is full). +It turns out that the PlayerVideo task (which submits video frames to GPU fifo) blocks until the presentation time has arrived before calling FlipPage (in order to keep subtitles etc. synced). +This is very bad. We generally only one frame of video data in the GPU fifo. This means a spike in ARM workload (e.g. bringing up OSD, or a peak in bitrate) causes the fifo to empty and video to stutter. + +The patch here avoids blocking, and lets the FlipPage happen on a later packet. +I've found with this patch, my test clip (1080p with software DTS audio decode) I can play without stuttering at 700MHz. Without this patch it fails to play even at 1000MHz. +--- + xbmc/cores/omxplayer/OMXPlayerVideo.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +index 90f94aa..5f3f050 100644 +--- a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp ++++ b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +@@ -455,8 +455,8 @@ void OMXPlayerVideo::Output(int iGroupId, double pts, bool bDropPacket) + double pts_media = m_av_clock->OMXMediaTime(false, false); + ProcessOverlays(iGroupId, pts_media); + +- while(!CThread::m_bStop && m_av_clock->GetAbsoluteClock(false) < (iCurrentClock + iSleepTime + DVD_MSEC_TO_TIME(500)) ) +- Sleep(1); ++ if (!CThread::m_bStop && m_av_clock->GetAbsoluteClock(false) < (iCurrentClock + iSleepTime + DVD_MSEC_TO_TIME(500)) ) ++ return; + + g_renderManager.FlipPage(CThread::m_bStop, (iCurrentClock + iSleepTime) / DVD_TIME_BASE, -1, FS_NONE); + +-- +1.7.10 + diff --git a/packages/mediacenter/xbmc/patches/xbmc-990.02-PR2119.patch b/packages/mediacenter/xbmc/patches/xbmc-990.02-PR2119.patch new file mode 100644 index 0000000000..9133fdc7ce --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-990.02-PR2119.patch @@ -0,0 +1,91 @@ +From 5016973c68567e0691c9dc6c14d78de9e7d4558c Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Fri, 25 Jan 2013 23:00:13 +0000 +Subject: [PATCH] [rbp] Add support for new video codecs Latest firmware has a + start_x.elf with support for additional codecs. These are + MJPEG, VP6, VP8 and Ogg Theora. They are software GPU + accelerated and should be good for SD resolutions. This + update should be harmless with firmware that doesn't + support the new codecs - they will fail to open and behave + as before. + +--- + xbmc/cores/omxplayer/OMXVideo.cpp | 33 +++++++++++++++++++++++++++++++++ + 1 file changed, 33 insertions(+) + +diff --git a/xbmc/cores/omxplayer/OMXVideo.cpp b/xbmc/cores/omxplayer/OMXVideo.cpp +index 9215fd9..45e10fe 100644 +--- a/xbmc/cores/omxplayer/OMXVideo.cpp ++++ b/xbmc/cores/omxplayer/OMXVideo.cpp +@@ -69,7 +69,10 @@ + #define OMX_MPEG2V_DECODER OMX_VIDEO_DECODER + #define OMX_VC1_DECODER OMX_VIDEO_DECODER + #define OMX_WMV3_DECODER OMX_VIDEO_DECODER ++#define OMX_VP6_DECODER OMX_VIDEO_DECODER + #define OMX_VP8_DECODER OMX_VIDEO_DECODER ++#define OMX_THEORA_DECODER OMX_VIDEO_DECODER ++#define OMX_MJPEG_DECODER OMX_VIDEO_DECODER + + #define MAX_TEXT_LENGTH 1024 + +@@ -145,6 +148,7 @@ bool COMXVideo::NaluFormatStartCodes(enum CodecID codec, uint8_t *in_extradata, + + bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, bool hdmi_clock_sync) + { ++ bool vflip = false; + Close(); + + OMX_ERRORTYPE omx_err = OMX_ErrorNone; +@@ -248,6 +252,18 @@ bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, b + m_codingType = OMX_VIDEO_CodingMPEG4; + m_video_codec_name = "omx-h263"; + break; ++ case CODEC_ID_VP6: ++ // this form is encoded upside down ++ vflip = true; ++ // fall through ++ case CODEC_ID_VP6F: ++ case CODEC_ID_VP6A: ++ // (role name) video_decoder.vp6 ++ // VP6 ++ decoder_name = OMX_VP6_DECODER; ++ m_codingType = OMX_VIDEO_CodingVP6; ++ m_video_codec_name = "omx-vp6"; ++ break; + case CODEC_ID_VP8: + // (role name) video_decoder.vp8 + // VP8 +@@ -255,6 +271,21 @@ bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, b + m_codingType = OMX_VIDEO_CodingVP8; + m_video_codec_name = "omx-vp8"; + break; ++ case CODEC_ID_THEORA: ++ // (role name) video_decoder.theora ++ // theora ++ decoder_name = OMX_THEORA_DECODER; ++ m_codingType = OMX_VIDEO_CodingTheora; ++ m_video_codec_name = "omx-theora"; ++ break; ++ case CODEC_ID_MJPEG: ++ case CODEC_ID_MJPEGB: ++ // (role name) video_decoder.mjpg ++ // mjpg ++ decoder_name = OMX_MJPEG_DECODER; ++ m_codingType = OMX_VIDEO_CodingMJPEG; ++ m_video_codec_name = "omx-mjpeg"; ++ break; + case CODEC_ID_VC1: + case CODEC_ID_WMV3: + // (role name) video_decoder.vc1 +@@ -594,6 +625,8 @@ bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, b + configDisplay.transform = OMX_DISPLAY_ROT0; + break; + } ++ if (vflip) ++ configDisplay.transform = OMX_DISPLAY_MIRROR_ROT180; + + omx_err = m_omx_render.SetConfig(OMX_IndexConfigDisplayRegion, &configDisplay); + if(omx_err != OMX_ErrorNone) +-- +1.7.10 + diff --git a/packages/mediacenter/xbmc/patches/xbmc-990.03-Remove_some_annoying_log-spam.patch b/packages/mediacenter/xbmc/patches/xbmc-990.03-Remove_some_annoying_log-spam.patch new file mode 100644 index 0000000000..29d276a2a5 --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-990.03-Remove_some_annoying_log-spam.patch @@ -0,0 +1,26 @@ +From 5c61cc2c3ef7b047060742d736fd2a8cc037ae57 Mon Sep 17 00:00:00 2001 +From: Jim Carroll +Date: Sun, 3 Feb 2013 16:31:51 -0500 +Subject: [PATCH] Remove some annoying log-spam. + +--- + xbmc/interfaces/python/CallbackHandler.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/interfaces/python/CallbackHandler.cpp b/xbmc/interfaces/python/CallbackHandler.cpp +index 01707b9..61c0b5f 100644 +--- a/xbmc/interfaces/python/CallbackHandler.cpp ++++ b/xbmc/interfaces/python/CallbackHandler.cpp +@@ -35,8 +35,8 @@ + */ + PythonCallbackHandler::PythonCallbackHandler() : RetardedAsynchCallbackHandler("PythonCallbackHandler") + { ++ TRACE; + objectThreadState = PyThreadState_Get(); +- CLog::Log(LOGDEBUG,"NEWADDON PythonCallbackHandler construction with PyThreadState 0x%lx",(long)objectThreadState); + } + + /** +-- +1.7.10 + diff --git a/projects/Virtual/options b/projects/Virtual/options index afd0eb3aa6..ffd1e96717 100755 --- a/projects/Virtual/options +++ b/projects/Virtual/options @@ -293,7 +293,7 @@ LCD_DRIVER="irtrans,imon,imonlcd,mdm166a,MtxOrb,lis,dm140,hd44780,CFontz" # Modules to install in initramfs for early boot - INITRAMFS_MODULES="" + INITRAMFS_MODULES="uvesafb xhci-hcd" # additional Firmware to use (dvb-firmware, misc-firmware, wlan-firmware) # Space separated list is supported,