mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.0
This commit is contained in:
commit
9cb02d21a7
@ -71,7 +71,7 @@ providing cutting edge hardware support to deliver a set-top box experience.
|
||||
read-only with the exception of /var (containing runtime configuration data).
|
||||
* Manual update/downgrade procedure is as follows:
|
||||
Extract the snapshot and navigate to the 'target' directory.
|
||||
Copy KERNEL and SYSTEM to the 'Update' network share (or /storage/.update) on
|
||||
Copy KERNEL and SYSTEM along with KERNEL.md5 and SYSTEM.md5 to the 'Update' network share (or /storage/.update) on
|
||||
your openelec machine. Your system will automatically upgrade during the
|
||||
next reboot.
|
||||
* Automatic mounting of filesystems is supported. Devices such as USB Flash
|
||||
|
@ -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
|
@ -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/
|
@ -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)
|
@ -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
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
@ -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"
|
7
packages/addons/driver/sundtek/settings-default.xml
Executable file
7
packages/addons/driver/sundtek/settings-default.xml
Executable file
@ -0,0 +1,7 @@
|
||||
<settings>
|
||||
<setting id="AUTO_UPDATE" value="false" />
|
||||
<setting id="ANALOG_TV" value="false" />
|
||||
<setting id="NETWORK_TUNER_IP" value="0.0.0.0" />
|
||||
<setting id="SETTLE_TIME" value="0" />
|
||||
<setting id="RUN_USER_SCRIPT" value="false" />
|
||||
</settings>
|
@ -1,6 +1,8 @@
|
||||
#!/bin/sh
|
||||
|
||||
################################################################################
|
||||
# Copyright (C) 2009-2010 OpenELEC.tv
|
||||
# http://www.openelec.tv
|
||||
# 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
|
||||
@ -18,10 +20,9 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
# starting Bluetooth
|
||||
#
|
||||
# runlevels: openelec, textmode
|
||||
. /etc/profile
|
||||
|
||||
# starting Bluetooth manager
|
||||
progress "starting Bluetooth manager"
|
||||
/usr/lib/bluetooth/bluetoothd > /dev/null 2>&1 &
|
||||
ADDON_DIR="$HOME/.xbmc/addons/driver.dvb.sundtek"
|
||||
|
||||
logger -t Sundtek "### Sundtek manual start ###"
|
||||
. $ADDON_DIR/bin/userspace-driver.sh
|
30
packages/addons/driver/sundtek/source/bin/sundtek.stop
Normal file
30
packages/addons/driver/sundtek/source/bin/sundtek.stop
Normal file
@ -0,0 +1,30 @@
|
||||
#!/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"
|
||||
|
||||
export LD_PRELOAD=$ADDON_DIR/lib/libmediaclient.so
|
||||
|
||||
logger -t Sundtek "### Sundtek manual stop ###"
|
||||
mediaclient --shutdown
|
197
packages/addons/driver/sundtek/source/bin/userspace-driver.sh
Normal file
197
packages/addons/driver/sundtek/source/bin/userspace-driver.sh
Normal file
@ -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
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="1000">General</string>
|
||||
<string id="1011">Auto update binary driver</string>
|
||||
<string id="1012">Analog TV</string>
|
||||
<string id="1013">Network tuner IP</string>
|
||||
<string id="1014">Extra settle time</string>
|
||||
<string id="1015">Run user script</string>
|
||||
</strings>
|
12
packages/addons/driver/sundtek/source/resources/settings.xml
Normal file
12
packages/addons/driver/sundtek/source/resources/settings.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<settings>
|
||||
<category label="1000">
|
||||
<setting label="1010" type="lsep" />
|
||||
<setting type="sep" />
|
||||
<setting id="AUTO_UPDATE" type="bool" label="1011" default="false" />
|
||||
<setting id="ANALOG_TV" type="bool" label="1012" default="false" enable="false" />
|
||||
<setting id="NETWORK_TUNER_IP" type="ipaddress" label="1013" default="0.0.0.0" />
|
||||
<setting id="SETTLE_TIME" type="number" label="1014" default="0" />
|
||||
<setting id="RUN_USER_SCRIPT" type="bool" label="1015" default="false" />
|
||||
</category>
|
||||
</settings>
|
@ -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
|
@ -1,3 +1,6 @@
|
||||
3.0.3
|
||||
- update to makemkv-1.7.10
|
||||
|
||||
3.0.2
|
||||
- update to makemkv-1.7.9
|
||||
|
||||
|
@ -19,8 +19,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="makemkv"
|
||||
PKG_VERSION="1.7.9"
|
||||
PKG_REV="2"
|
||||
PKG_VERSION="1.7.10"
|
||||
PKG_REV="3"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://www.makemkv.com/forum2/viewforum.php?f=3"
|
||||
|
@ -75,12 +75,6 @@ else
|
||||
TRANSMISSION_ARG="$TRANSMISSION_ARG -T"
|
||||
fi
|
||||
|
||||
if [ "$TRANSMISSION_UTP" = "true" ]; then
|
||||
TRANSMISSION_ARG="$TRANSMISSION_ARG --utp"
|
||||
else
|
||||
TRANSMISSION_ARG="$TRANSMISSION_ARG --no-utp"
|
||||
fi
|
||||
|
||||
if [ ! "$(pidof transmission-daemon)" ];then
|
||||
if [ -f "$LOCKDIR/$LOCKFILE" ] ; then
|
||||
rm -rf "$LOCKDIR/$LOCKFILE"
|
||||
@ -89,11 +83,6 @@ if [ ! "$(pidof transmission-daemon)" ];then
|
||||
if [ -f "$LOCKDIR/$LOCKFILE" ] ; then
|
||||
break
|
||||
fi
|
||||
# XXX: sysctls for uTP. we may remove this later
|
||||
if [ "$TRANSMISSION_UTP" = "true" ]; then
|
||||
sysctl -w net.core.wmem_max=1048576 > /dev/null 2>&1
|
||||
sysctl -w net.core.rmem_max=4194304 > /dev/null 2>&1
|
||||
fi
|
||||
EVENT_NOEPOLL=1 LD_LIBRARY_PATH="$ADDON_DIR/lib:$LD_LIBRARY_PATH" eval transmission-daemon -f $TRANSMISSION_ARG &>$LOG_FILE
|
||||
sleep 1
|
||||
done &
|
||||
|
@ -16,6 +16,5 @@
|
||||
|
||||
<string id="3110">Other</string>
|
||||
<string id="3121">Download Directory</string>
|
||||
<string id="3122">Enable uTP support</string>
|
||||
|
||||
</strings>
|
||||
|
@ -21,6 +21,5 @@
|
||||
<setting type="sep" />
|
||||
<setting label="3110" type="lsep"/>
|
||||
<setting id="TRANSMISSION_DL_DIR" type="folder" label="3121" value="" default="/storage/downloads" />
|
||||
<setting id="TRANSMISSION_UTP" type="bool" label="3122" default="false" />
|
||||
</category>
|
||||
</settings>
|
||||
|
@ -6,5 +6,4 @@
|
||||
<setting id="TRANSMISSION_LIMIT_GLOBAL" value="" />
|
||||
<setting id="TRANSMISSION_LIMIT_TORRENT" value="" />
|
||||
<setting id="TRANSMISSION_DL_DIR" value="/storage/downloads" />
|
||||
<setting id="TRANSMISSION_UTP" value="false" />
|
||||
</settings>
|
||||
|
@ -35,6 +35,7 @@ cd $PKG_BUILD
|
||||
--cpu=$TARGET_CPU \
|
||||
--cc=$TARGET_CC \
|
||||
--enable-timeshift \
|
||||
--disable-libav \
|
||||
--enable-bundle
|
||||
|
||||
make
|
||||
|
@ -1,9 +1,9 @@
|
||||
3.0.4
|
||||
- update to TVHeadend 3.3.402
|
||||
- update to TVHeadend 3.3.403
|
||||
|
||||
3.0.3
|
||||
- update to TVHeadend 3.3.328
|
||||
- add an option to preload capmt_ca.so library
|
||||
- add an option to preload capmt_ca.so library
|
||||
|
||||
3.0.2
|
||||
- update to TVHeadend 3.2.18
|
||||
|
@ -19,15 +19,15 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="tvheadend"
|
||||
PKG_VERSION="3.3.402"
|
||||
PKG_REV="3"
|
||||
PKG_VERSION="3.3.403"
|
||||
PKG_REV="4"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.lonelycoder.com/hts/tvheadend_overview.html"
|
||||
#PKG_URL="https://github.com/downloads/tvheadend/tvheadend/${PKG_NAME}-${PKG_VERSION}.tar.gz"
|
||||
PKG_URL="$DISTRO_SRC/${PKG_NAME}-${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS="$ICONV avahi openssl"
|
||||
PKG_BUILD_DEPENDS="toolchain $ICONV avahi openssl"
|
||||
PKG_DEPENDS="$ICONV avahi openssl curl"
|
||||
PKG_BUILD_DEPENDS="toolchain $ICONV avahi openssl curl"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="service/multimedia"
|
||||
PKG_SHORTDESC="tvheadend (Version: $PKG_VERSION): a TV streaming server for Linux supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, IPTV, and Analog video (V4L) as input sources."
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
12
packages/audio/speex/patches/speex-automake-1.13.patch
Normal file
12
packages/audio/speex/patches/speex-automake-1.13.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -Naur speex-1.2rc1/configure.ac speex-1.2rc1.patch/configure.ac
|
||||
--- speex-1.2rc1/configure.ac 2008-07-21 04:17:08.000000000 +0200
|
||||
+++ speex-1.2rc1.patch/configure.ac 2013-02-01 16:50:06.747570221 +0100
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
AC_INIT(libspeex/speex.c)
|
||||
|
||||
-AM_CONFIG_HEADER([config.h])
|
||||
+AC_CONFIG_HEADERS([config.h])
|
||||
|
||||
SPEEX_MAJOR_VERSION=1
|
||||
SPEEX_MINOR_VERSION=1
|
12
packages/devel/json-c/patches/json-c-automake-1.13.patch
Normal file
12
packages/devel/json-c/patches/json-c-automake-1.13.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -Naur json-c-0.9/configure.in json-c-0.9.patch/configure.in
|
||||
--- json-c-0.9/configure.in 2009-01-06 23:55:33.000000000 +0100
|
||||
+++ json-c-0.9.patch/configure.in 2013-02-01 16:45:09.890830041 +0100
|
||||
@@ -10,7 +10,7 @@
|
||||
# Checks for libraries.
|
||||
|
||||
# Checks for header files.
|
||||
-AM_CONFIG_HEADER(config.h)
|
||||
+AC_CONFIG_HEADERS(config.h)
|
||||
AC_HEADER_STDC
|
||||
AC_CHECK_HEADERS(fcntl.h limits.h strings.h syslog.h unistd.h [sys/param.h] stdarg.h)
|
||||
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="bcm2835-driver"
|
||||
PKG_VERSION="ce9dbf9"
|
||||
PKG_VERSION="73d99ed"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="nonfree"
|
||||
|
@ -373,7 +373,7 @@
|
||||
SPLASHIMAGE="/splash/splash.png"
|
||||
fi
|
||||
|
||||
ply-image $SPLASHIMAGE > /dev/null 2>&1 &
|
||||
ply-image $SPLASHIMAGE > /dev/null 2>&1
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -80,11 +80,11 @@ make -j1 CC="$TARGET_CC" \
|
||||
sed -e "s|^LIBDIR=.*|LIBDIR= $SYSROOT_PREFIX/usr/lib|" \
|
||||
-i $SYSROOT_PREFIX/usr/lib/python*/config/Makefile
|
||||
|
||||
EXCLUDE_DIRS="bsddb curses idlelib lib-tk lib2to3 msilib wsgiref"
|
||||
EXCLUDE_DIRS="bsddb curses idlelib lib-tk lib2to3 msilib"
|
||||
INCLUDE_DIRS="compiler ctypes ctypes/macholib distutils distutils/command email"
|
||||
INCLUDE_DIRS="$INCLUDE_DIRS email/mime encodings hotshot importlib json logging"
|
||||
INCLUDE_DIRS="$INCLUDE_DIRS multiprocessing plat-linux2 sqlite3 xml xml/dom xml/etree"
|
||||
INCLUDE_DIRS="$INCLUDE_DIRS xml/parsers xml/sax"
|
||||
INCLUDE_DIRS="$INCLUDE_DIRS xml/parsers xml/sax wsgiref"
|
||||
|
||||
mkdir -p ./Lib
|
||||
cp ../Lib/*.py ./Lib
|
||||
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="RTL8192CU"
|
||||
PKG_VERSION="v3.4.3_4369.20120622"
|
||||
PKG_VERSION="v3.4.4_4749.20121105"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -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 <linux/pci.h>
|
||||
#endif
|
||||
|
||||
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0))
|
||||
+ #include <linux/kthread.h>
|
||||
+#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
|
||||
+
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -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 <linux/smp_lock.h>
|
||||
@@ -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 <linux/smp_lock.h>
|
||||
@@ -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 <linux/smp_lock.h>
|
||||
@@ -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 <linux/smp_lock.h>
|
@ -1 +0,0 @@
|
||||
http://linuxtv.org/wiki/index.php/AVerMedia_AverTV_Hybrid_Volar_HX_(A827)
|
@ -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 <linux/version.h>
|
||||
+#include <linux/module.h>
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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
|
@ -22,7 +22,9 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
VER=`ls $BUILD/linux*/modules/lib/modules`
|
||||
cd $PKG_BUILD
|
||||
|
||||
mkdir -p $INSTALL/lib/modules/$VER/aver_h826d
|
||||
cp $PKG_BUILD/installer/src/*.ko $INSTALL/lib/modules/$VER/aver_h826d
|
||||
[ "$TARGET_ARCH" = "i386" ] && cd x86-32
|
||||
[ "$TARGET_ARCH" = "x86_64" ] && cd x86-64
|
||||
|
||||
KBUILD_NOPEDANTIC=1 make V=1 CC=$CC -C $(kernel_path) M=`pwd`
|
33
packages/linux-drivers/bcm_sta/install
Executable file
33
packages/linux-drivers/bcm_sta/install
Executable file
@ -0,0 +1,33 @@
|
||||
#!/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
|
||||
|
||||
VER=`ls $BUILD/linux*/modules/lib/modules`
|
||||
|
||||
mkdir -p $INSTALL/lib/modules/$VER/bcm_sta
|
||||
if [ "$TARGET_ARCH" = "i386" ]; then
|
||||
cp $PKG_BUILD/x86-32/wl.ko $INSTALL/lib/modules/$VER/bcm_sta
|
||||
fi
|
||||
if [ "$TARGET_ARCH" = "x86_64" ]; then
|
||||
cp $PKG_BUILD/x86-64/wl.ko $INSTALL/lib/modules/$VER/bcm_sta
|
||||
fi
|
@ -18,19 +18,22 @@
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="aver_h826d"
|
||||
PKG_VERSION="0.10"
|
||||
PKG_NAME="bcm_sta"
|
||||
PKG_VERSION="5.100.82.112"
|
||||
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_LICENSE="nonfree"
|
||||
PKG_SITE="http://www.broadcom.com/"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
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_SHORTDESC="bcm_sta: Broadcom's BCM4311-, BCM4312-, BCM4313-, BCM4321-, BCM4322-, BCM43224-, and BCM43225-based WLAN driver"
|
||||
PKG_LONGDESC="These packages contain Broadcom's IEEE 802.11a/b/g/n hybrid Linux® device driver for use with Broadcom's BCM4311-, BCM4312-, BCM4313-, BCM4321-, BCM4322-, BCM43224-, and BCM43225-based hardware. There are different tars for 32-bit and 64-bit x86 CPU architectures. Make sure that you download the appropriate tar because the hybrid binary file must be of the appropriate architecture type. The hybrid binary file is agnostic to the specific version of the Linux kernel because it is designed to perform all interactions with the operating system through operating-system-specific files and an operating system abstraction layer file. All Linux operating-system-specific code is provided in source form, making it possible to retarget to different kernel versions and fix operating system related issues."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
# Downloadlocation:
|
||||
# http://www.broadcom.com/support/802.11/linux_sta.php
|
32
packages/linux-drivers/bcm_sta/need_unpack
Executable file
32
packages/linux-drivers/bcm_sta/need_unpack
Executable file
@ -0,0 +1,32 @@
|
||||
#!/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
|
||||
|
||||
STAMP=$STAMPS/$1/unpack
|
||||
|
||||
test $PKG_DIR/config/linux.$TARGET_ARCH.conf -nt $STAMP -o \
|
||||
$PROJECT_DIR/$PROJECT/linux/linux.$TARGET_ARCH.conf -nt $STAMP -o \
|
||||
$PKG_DIR/url -nt $STAMP -o \
|
||||
$PKG_DIR/meta -nt $STAMP && rm -f $STAMP
|
||||
|
||||
exit 0
|
@ -0,0 +1,21 @@
|
||||
--- a/x86-32/src/wl/sys/wl_linux.c 2010-12-15 02:58:07.000000000 +0100
|
||||
+++ b/x86-32/src/wl/sys/wl_linux.c 2010-12-25 18:15:43.356676382 +0100
|
||||
@@ -240,6 +240,7 @@
|
||||
|
||||
static int nompc = 0;
|
||||
module_param(nompc, int, 0);
|
||||
+MODULE_LICENSE("Mixed/Proprietary");
|
||||
|
||||
#ifdef quote_str
|
||||
#undef quote_str
|
||||
--- a/x86-64/src/wl/sys/wl_linux.c 2010-12-15 02:58:07.000000000 +0100
|
||||
+++ b/x86-64/src/wl/sys/wl_linux.c 2010-12-25 18:15:43.356676382 +0100
|
||||
@@ -240,6 +240,7 @@
|
||||
|
||||
static int nompc = 0;
|
||||
module_param(nompc, int, 0);
|
||||
+MODULE_LICENSE("Mixed/Proprietary");
|
||||
|
||||
#ifdef quote_str
|
||||
#undef quote_str
|
||||
|
@ -0,0 +1,58 @@
|
||||
--- a/x86-32/src/wl/sys/wl_cfg80211.c 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-32/src/wl/sys/wl_cfg80211.c 2013-01-31 07:47:40.000000000 +0100
|
||||
@@ -1466,7 +1466,10 @@
|
||||
scb_val.val = 0;
|
||||
err = wl_dev_ioctl(dev, WLC_GET_RSSI, &scb_val, sizeof(scb_val_t));
|
||||
if (err) {
|
||||
- WL_ERR(("Could not get rssi (%d)\n", err));
|
||||
+ if (err != -EINVAL) {
|
||||
+ // Don't fill syslog with EINVAL error
|
||||
+ WL_ERR(("Could not get rssi (%d)\n", err));
|
||||
+ }
|
||||
return err;
|
||||
}
|
||||
rssi = dtoh32(scb_val.val);
|
||||
--- a/x86-32/src/wl/sys/wl_linux.c 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-32/src/wl/sys/wl_linux.c 2013-01-31 07:47:40.000000000 +0100
|
||||
@@ -1579,11 +1579,7 @@
|
||||
}
|
||||
|
||||
WL_LOCK(wl);
|
||||
- if (!capable(CAP_NET_ADMIN)) {
|
||||
- bcmerror = BCME_EPERM;
|
||||
- } else {
|
||||
- bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
|
||||
- }
|
||||
+ bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
|
||||
WL_UNLOCK(wl);
|
||||
|
||||
done1:
|
||||
--- a/x86-64/src/wl/sys/wl_cfg80211.c 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-64/src/wl/sys/wl_cfg80211.c 2013-01-31 07:49:06.000000000 +0100
|
||||
@@ -1466,7 +1466,10 @@
|
||||
scb_val.val = 0;
|
||||
err = wl_dev_ioctl(dev, WLC_GET_RSSI, &scb_val, sizeof(scb_val_t));
|
||||
if (err) {
|
||||
- WL_ERR(("Could not get rssi (%d)\n", err));
|
||||
+ if (err != -EINVAL) {
|
||||
+ // Don't fill syslog with EINVAL error
|
||||
+ WL_ERR(("Could not get rssi (%d)\n", err));
|
||||
+ }
|
||||
return err;
|
||||
}
|
||||
rssi = dtoh32(scb_val.val);
|
||||
--- a/x86-64/src/wl/sys/wl_linux.c 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-64/src/wl/sys/wl_linux.c 2013-01-31 07:50:03.000000000 +0100
|
||||
@@ -1579,11 +1579,7 @@
|
||||
}
|
||||
|
||||
WL_LOCK(wl);
|
||||
- if (!capable(CAP_NET_ADMIN)) {
|
||||
- bcmerror = BCME_EPERM;
|
||||
- } else {
|
||||
- bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
|
||||
- }
|
||||
+ bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
|
||||
WL_UNLOCK(wl);
|
||||
|
||||
done1:
|
@ -0,0 +1,162 @@
|
||||
--- a/x86-32/Makefile 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-32/Makefile 2013-01-31 10:00:10.000000000 +0100
|
||||
@@ -15,21 +15,9 @@
|
||||
|
||||
ifneq ($(KERNELRELEASE),)
|
||||
|
||||
- LINUXVER_GOODFOR_CFG80211:=$(strip $(shell \
|
||||
- if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "32" ]; then \
|
||||
- echo TRUE; \
|
||||
- else \
|
||||
- echo FALSE; \
|
||||
- fi \
|
||||
- ))
|
||||
-
|
||||
- LINUXVER_WEXT_ONLY:=$(strip $(shell \
|
||||
- if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "17" ]; then \
|
||||
- echo FALSE; \
|
||||
- else \
|
||||
- echo TRUE; \
|
||||
- fi \
|
||||
- ))
|
||||
+ LINUXVER_GOODFOR_CFG80211:=TRUE
|
||||
+
|
||||
+ LINUXVER_WEXT_ONLY:=FALSE
|
||||
|
||||
ifneq ($(API),)
|
||||
ifeq ($(API), CFG80211)
|
||||
--- a/x86-32/src/wl/sys/wl_cfg80211.c 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-32/src/wl/sys/wl_cfg80211.c 2013-01-31 10:00:10.000000000 +0100
|
||||
@@ -42,7 +42,7 @@
|
||||
enum nl80211_iftype type, u32 *flags, struct vif_params *params);
|
||||
static s32 __wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
|
||||
struct cfg80211_scan_request *request, struct cfg80211_ssid *this_ssid);
|
||||
-static s32 wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
|
||||
+static s32 wl_cfg80211_scan(struct wiphy *wiphy,
|
||||
struct cfg80211_scan_request *request);
|
||||
static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, u32 changed);
|
||||
static s32 wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev,
|
||||
@@ -570,10 +570,12 @@
|
||||
}
|
||||
|
||||
static s32
|
||||
-wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
|
||||
+wl_cfg80211_scan(struct wiphy *wiphy,
|
||||
struct cfg80211_scan_request *request)
|
||||
{
|
||||
s32 err = 0;
|
||||
+ struct wl_priv *wl = wiphy_to_wl(wiphy);
|
||||
+ struct net_device *ndev = wl_to_ndev(wl);
|
||||
|
||||
CHECK_SYS_UP();
|
||||
err = __wl_cfg80211_scan(wiphy, ndev, request, NULL);
|
||||
--- a/x86-32/src/wl/sys/wl_iw.h 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-32/src/wl/sys/wl_iw.h 2013-01-31 10:00:10.000000000 +0100
|
||||
@@ -15,6 +15,7 @@
|
||||
#ifndef _wl_iw_h_
|
||||
#define _wl_iw_h_
|
||||
|
||||
+#include <linux/semaphore.h>
|
||||
#include <linux/wireless.h>
|
||||
|
||||
#include <typedefs.h>
|
||||
--- a/x86-32/src/wl/sys/wl_linux.c 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-32/src/wl/sys/wl_linux.c 2013-01-31 10:00:10.000000000 +0100
|
||||
@@ -40,7 +40,6 @@
|
||||
#include <linux/pci_ids.h>
|
||||
#define WLC_MAXBSSCFG 1
|
||||
|
||||
-#include <asm/system.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/pgtable.h>
|
||||
@@ -385,7 +384,7 @@
|
||||
#endif
|
||||
.ndo_get_stats = wl_get_stats,
|
||||
.ndo_set_mac_address = wl_set_mac_address,
|
||||
- .ndo_set_multicast_list = wl_set_multicast_list,
|
||||
+ .ndo_set_rx_mode = wl_set_multicast_list,
|
||||
.ndo_do_ioctl = wl_ioctl
|
||||
};
|
||||
|
||||
--- a/x86-64/Makefile 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-64/Makefile 2013-01-31 10:06:20.000000000 +0100
|
||||
@@ -15,21 +15,9 @@
|
||||
|
||||
ifneq ($(KERNELRELEASE),)
|
||||
|
||||
- LINUXVER_GOODFOR_CFG80211:=$(strip $(shell \
|
||||
- if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "32" ]; then \
|
||||
- echo TRUE; \
|
||||
- else \
|
||||
- echo FALSE; \
|
||||
- fi \
|
||||
- ))
|
||||
-
|
||||
- LINUXVER_WEXT_ONLY:=$(strip $(shell \
|
||||
- if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "17" ]; then \
|
||||
- echo FALSE; \
|
||||
- else \
|
||||
- echo TRUE; \
|
||||
- fi \
|
||||
- ))
|
||||
+ LINUXVER_GOODFOR_CFG80211:=TRUE
|
||||
+
|
||||
+ LINUXVER_WEXT_ONLY:=FALSE
|
||||
|
||||
ifneq ($(API),)
|
||||
ifeq ($(API), CFG80211)
|
||||
--- a/x86-64/src/wl/sys/wl_cfg80211.c 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-64/src/wl/sys/wl_cfg80211.c 2013-01-31 10:07:35.000000000 +0100
|
||||
@@ -42,7 +42,7 @@
|
||||
enum nl80211_iftype type, u32 *flags, struct vif_params *params);
|
||||
static s32 __wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
|
||||
struct cfg80211_scan_request *request, struct cfg80211_ssid *this_ssid);
|
||||
-static s32 wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
|
||||
+static s32 wl_cfg80211_scan(struct wiphy *wiphy,
|
||||
struct cfg80211_scan_request *request);
|
||||
static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, u32 changed);
|
||||
static s32 wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev,
|
||||
@@ -570,10 +570,12 @@
|
||||
}
|
||||
|
||||
static s32
|
||||
-wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
|
||||
+wl_cfg80211_scan(struct wiphy *wiphy,
|
||||
struct cfg80211_scan_request *request)
|
||||
{
|
||||
s32 err = 0;
|
||||
+ struct wl_priv *wl = wiphy_to_wl(wiphy);
|
||||
+ struct net_device *ndev = wl_to_ndev(wl);
|
||||
|
||||
CHECK_SYS_UP();
|
||||
err = __wl_cfg80211_scan(wiphy, ndev, request, NULL);
|
||||
--- a/x86-64/src/wl/sys/wl_iw.h 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-64/src/wl/sys/wl_iw.h 2013-01-31 10:07:58.000000000 +0100
|
||||
@@ -15,6 +15,7 @@
|
||||
#ifndef _wl_iw_h_
|
||||
#define _wl_iw_h_
|
||||
|
||||
+#include <linux/semaphore.h>
|
||||
#include <linux/wireless.h>
|
||||
|
||||
#include <typedefs.h>
|
||||
--- a/x86-64/src/wl/sys/wl_linux.c 2013-01-25 13:59:21.000000000 +0100
|
||||
+++ b/x86-64/src/wl/sys/wl_linux.c 2013-01-31 10:08:30.000000000 +0100
|
||||
@@ -40,7 +40,6 @@
|
||||
#include <linux/pci_ids.h>
|
||||
#define WLC_MAXBSSCFG 1
|
||||
|
||||
-#include <asm/system.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/pgtable.h>
|
||||
@@ -385,7 +384,7 @@
|
||||
#endif
|
||||
.ndo_get_stats = wl_get_stats,
|
||||
.ndo_set_mac_address = wl_set_mac_address,
|
||||
- .ndo_set_multicast_list = wl_set_multicast_list,
|
||||
+ .ndo_set_rx_mode = wl_set_multicast_list,
|
||||
.ndo_do_ioctl = wl_ioctl
|
||||
};
|
||||
|
@ -0,0 +1,22 @@
|
||||
--- a/x86-32/src/wl/sys/wl_linux.c 2010-12-15 02:58:07.000000000 +0100
|
||||
+++ b/x86-32/src/wl/sys/wl_linux.c 2010-12-27 22:14:38.679428984 +0100
|
||||
@@ -251,7 +251,7 @@
|
||||
#define quote_str(s) to_str(s)
|
||||
|
||||
#ifndef BRCM_WLAN_IFNAME
|
||||
-#define BRCM_WLAN_IFNAME eth%d
|
||||
+#define BRCM_WLAN_IFNAME wlan%d
|
||||
#endif
|
||||
|
||||
static char name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME);
|
||||
--- a/x86-64/src/wl/sys/wl_linux.c 2010-12-15 03:01:09.000000000 +0100
|
||||
+++ b/x86-64/src/wl/sys/wl_linux.c 2010-12-27 22:15:18.273865927 +0100
|
||||
@@ -251,7 +251,7 @@
|
||||
#define quote_str(s) to_str(s)
|
||||
|
||||
#ifndef BRCM_WLAN_IFNAME
|
||||
-#define BRCM_WLAN_IFNAME eth%d
|
||||
+#define BRCM_WLAN_IFNAME wlan%d
|
||||
#endif
|
||||
|
||||
static char name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME);
|
@ -27,4 +27,6 @@ cd $BUILD/${PKG_NAME}-${PKG_VERSION}/linux-tbs-drivers
|
||||
[ "$TARGET_ARCH" = "i386" ] && ./v4l/tbs-x86_r3.sh
|
||||
[ "$TARGET_ARCH" = "x86_64" ] && ./v4l/tbs-x86_64.sh
|
||||
|
||||
LDFLAGS="" make DIR=$(kernel_path) prepare
|
||||
sed -i -e "s|^CONFIG_IR_LIRC_CODEC=.*$|# CONFIG_IR_LIRC_CODEC is not set|" v4l/.config
|
||||
LDFLAGS="" make DIR=$(kernel_path)
|
||||
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="dvb-firmware"
|
||||
PKG_VERSION="0.0.29"
|
||||
PKG_VERSION="0.0.30"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="Free-to-use"
|
||||
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="linux"
|
||||
PKG_VERSION="3.7.4"
|
||||
PKG_VERSION="3.7.6"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
266
packages/linux/patches/3.7.6/linux-990.01-hda_Add_workaround_for_conflicting_IEC958_controls.patch
vendored
Normal file
266
packages/linux/patches/3.7.6/linux-990.01-hda_Add_workaround_for_conflicting_IEC958_controls.patch
vendored
Normal file
@ -0,0 +1,266 @@
|
||||
From dcda5806165c155d90b9aa466a1602cf4726012b Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
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 <tiwai@suse.de>
|
||||
---
|
||||
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
|
||||
|
66
packages/linux/patches/3.7.6/linux-990.02-hda-Fix-default-multichannel-HDMI-mapping-regre.patch
vendored
Normal file
66
packages/linux/patches/3.7.6/linux-990.02-hda-Fix-default-multichannel-HDMI-mapping-regre.patch
vendored
Normal file
@ -0,0 +1,66 @@
|
||||
From b3ed803a1f4012a5067087674b8b1efad22d2bb0 Mon Sep 17 00:00:00 2001
|
||||
From: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
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 <pike@xbmc.org>
|
||||
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
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
|
||||
|
11
packages/linux/patches/3.7.6/linux-990.03-media-ds3000_firmware-01.patch
vendored
Normal file
11
packages/linux/patches/3.7.6/linux-990.03-media-ds3000_firmware-01.patch
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git;a=blobdiff_plain;f=drivers%2Fmedia%2Fdvb-frontends%2Fds3000.c;h=c84cd98a91504dcf2995a75a1e8d6e5013cf4f2d;hp=5b639087ce45623f7a2f1be7e1b6216c1bc686a8;hb=feadd7d3eca4da531b35b2af3623dd992f2d988d;hpb=6c17c24d384ce69893e191c94b500c97bd263c27
|
||||
|
||||
diff --git a/drivers/media/dvb-frontends/ds3000.c b/drivers/media/dvb-frontends/ds3000.c
|
||||
index 5b63908..c84cd98 100644
|
||||
--- a/drivers/media/dvb-frontends/ds3000.c
|
||||
+++ b/drivers/media/dvb-frontends/ds3000.c
|
||||
@@ -1316,3 +1316,4 @@ MODULE_DESCRIPTION("DVB Frontend module for Montage Technology "
|
||||
"DS3000/TS2020 hardware");
|
||||
MODULE_AUTHOR("Konstantin Dimitrov");
|
||||
MODULE_LICENSE("GPL");
|
||||
+MODULE_FIRMWARE(DS3000_DEFAULT_FIRMWARE);
|
87
packages/linux/patches/3.7.6/linux-990.03-media-ds3000_firmware-02.patch
vendored
Normal file
87
packages/linux/patches/3.7.6/linux-990.03-media-ds3000_firmware-02.patch
vendored
Normal file
@ -0,0 +1,87 @@
|
||||
From b41a536cf9806c3478b2fa68d59edafd0787e8aa Mon Sep 17 00:00:00 2001
|
||||
From: =?utf8?q?R=C3=A9mi=20Cardona?= <remi.cardona@smartjog.com>
|
||||
Date: Fri, 28 Sep 2012 08:59:27 -0300
|
||||
Subject: [PATCH] [media] ds3000: remove useless 'locking'
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=utf8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Since b9bf2eafaad9c1ef02fb3db38c74568be601a43a, the function
|
||||
ds3000_firmware_ondemand() is called only once during init. This
|
||||
locking scheme may have been useful when the firmware was loaded at
|
||||
each tune.
|
||||
Furthermore, it looks like this 'lock' was put in to prevent concurrent
|
||||
access (and not recursion as the comments suggest). However, this open-
|
||||
coded mechanism is anything but race-free and should have used a proper
|
||||
mutex.
|
||||
|
||||
Signed-off-by: Rémi Cardona <remi.cardona@smartjog.com>
|
||||
Reviewed-by: Antti Palosaari <crope@iki.fi>
|
||||
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||
---
|
||||
drivers/media/dvb-frontends/ds3000.c | 14 --------------
|
||||
1 files changed, 0 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/drivers/media/dvb-frontends/ds3000.c b/drivers/media/dvb-frontends/ds3000.c
|
||||
index c84cd98..60a529e 100644
|
||||
--- a/drivers/media/dvb-frontends/ds3000.c
|
||||
+++ b/drivers/media/dvb-frontends/ds3000.c
|
||||
@@ -30,7 +30,6 @@
|
||||
#include "ds3000.h"
|
||||
|
||||
static int debug;
|
||||
-static int force_fw_upload;
|
||||
|
||||
#define dprintk(args...) \
|
||||
do { \
|
||||
@@ -234,7 +233,6 @@ struct ds3000_state {
|
||||
struct i2c_adapter *i2c;
|
||||
const struct ds3000_config *config;
|
||||
struct dvb_frontend frontend;
|
||||
- u8 skip_fw_load;
|
||||
/* previous uncorrected block counter for DVB-S2 */
|
||||
u16 prevUCBS2;
|
||||
};
|
||||
@@ -397,9 +395,6 @@ static int ds3000_firmware_ondemand(struct dvb_frontend *fe)
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
- if (state->skip_fw_load || !force_fw_upload)
|
||||
- return 0; /* Firmware already uploaded, skipping */
|
||||
-
|
||||
/* Load firmware */
|
||||
/* request the firmware, this will block until someone uploads it */
|
||||
printk(KERN_INFO "%s: Waiting for firmware upload (%s)...\n", __func__,
|
||||
@@ -413,9 +408,6 @@ static int ds3000_firmware_ondemand(struct dvb_frontend *fe)
|
||||
return ret;
|
||||
}
|
||||
|
||||
- /* Make sure we don't recurse back through here during loading */
|
||||
- state->skip_fw_load = 1;
|
||||
-
|
||||
ret = ds3000_load_firmware(fe, fw);
|
||||
if (ret)
|
||||
printk("%s: Writing firmware to device failed\n", __func__);
|
||||
@@ -425,9 +417,6 @@ static int ds3000_firmware_ondemand(struct dvb_frontend *fe)
|
||||
dprintk("%s: Firmware upload %s\n", __func__,
|
||||
ret == 0 ? "complete" : "failed");
|
||||
|
||||
- /* Ensure firmware is always loaded if required */
|
||||
- state->skip_fw_load = 0;
|
||||
-
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -1309,9 +1298,6 @@ static struct dvb_frontend_ops ds3000_ops = {
|
||||
module_param(debug, int, 0644);
|
||||
MODULE_PARM_DESC(debug, "Activates frontend debugging (default:0)");
|
||||
|
||||
-module_param(force_fw_upload, int, 0644);
|
||||
-MODULE_PARM_DESC(force_fw_upload, "Force firmware upload (default:0)");
|
||||
-
|
||||
MODULE_DESCRIPTION("DVB Frontend module for Montage Technology "
|
||||
"DS3000/TS2020 hardware");
|
||||
MODULE_AUTHOR("Konstantin Dimitrov");
|
||||
--
|
||||
1.7.6.5
|
||||
|
11
packages/linux/patches/linux-059-remove_some_xpad_pids.patch
Normal file
11
packages/linux/patches/linux-059-remove_some_xpad_pids.patch
Normal file
@ -0,0 +1,11 @@
|
||||
diff -Naur linux-3.7.5/drivers/input/joystick/xpad.c linux-3.7.5.patch/drivers/input/joystick/xpad.c
|
||||
--- linux-3.7.5/drivers/input/joystick/xpad.c 2013-01-28 05:50:55.000000000 +0100
|
||||
+++ linux-3.7.5.patch/drivers/input/joystick/xpad.c 2013-01-30 05:14:21.434759231 +0100
|
||||
@@ -166,7 +166,6 @@
|
||||
{ 0x0f0d, 0x0016, "Hori Real Arcade Pro.EX", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
|
||||
{ 0x0f0d, 0x000d, "Hori Fighting Stick EX2", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
|
||||
{ 0x1689, 0xfd00, "Razer Onza Tournament Edition", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX360 },
|
||||
- { 0xffff, 0xffff, "Chinese-made Xbox Controller", 0, XTYPE_XBOX },
|
||||
{ 0x0000, 0x0000, "Generic X-Box pad", 0, XTYPE_UNKNOWN }
|
||||
};
|
||||
|
@ -50,13 +50,6 @@ sed -i -e "s|^CONFIG_INITRAMFS_SOURCE=.*$|CONFIG_INITRAMFS_SOURCE=\"$ROOT/$BUILD
|
||||
sed -i -e "s|^CONFIG_SWAP=.*$|# CONFIG_SWAP is not set|" $LINUX/.config
|
||||
fi
|
||||
|
||||
# dont install some debug stuff on release builds
|
||||
if [ ! "$DEVTOOLS" = yes ]; then
|
||||
sed -i -e "s|^CONFIG_DEBUG_FS=.*$|# CONFIG_DEBUG_FS is not set|" $LINUX/.config
|
||||
# sed -i -e "s|^CONFIG_NET_SCHED=.*$|# CONFIG_NET_SCHED is not set|" $LINUX/.config
|
||||
# sed -i -e "s|^CONFIG_NET_SCH_NETEM=.*$|# CONFIG_NET_SCH_NETEM is not set|" $LINUX/.config
|
||||
fi
|
||||
|
||||
# copy some extra firmware to linux tree
|
||||
cp -R $PKG_DIR/firmware/* $LINUX/firmware
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xbmc-theme-Confluence"
|
||||
PKG_VERSION="aea93c3"
|
||||
PKG_VERSION="12.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -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
|
||||
|
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<advancedsettings>
|
||||
<splash>false</splash>
|
||||
<showexitbutton>false</showexitbutton>
|
||||
<cputempcommand>cputemp</cputempcommand>
|
||||
<gputempcommand>gputemp</gputempcommand>
|
||||
|
@ -64,7 +64,7 @@ rm -rf $ROOT/$INSTALL/usr/share/xbmc/addons/visualization.milkdrop
|
||||
|
||||
# overriding Splash image
|
||||
mkdir -p $INSTALL/usr/share/xbmc/media
|
||||
rm -rf $INSTALL/usr/share/xbmc/media/Splash.png
|
||||
# rm -rf $INSTALL/usr/share/xbmc/media/Splash.png
|
||||
# if [ -f $PROJECT_DIR/$PROJECT/splash/splash.png ]; then
|
||||
# cp $PROJECT_DIR/$PROJECT/splash/splash.png $INSTALL/usr/share/xbmc/media/Splash.png
|
||||
# else
|
||||
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xbmc"
|
||||
PKG_VERSION="aea93c3"
|
||||
PKG_VERSION="12.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,24 +0,0 @@
|
||||
From 61faa9f05d3d78a68c8a317420391eb77ae0ef7a Mon Sep 17 00:00:00 2001
|
||||
From: xbmc <fernetmenta@online.de>
|
||||
Date: Thu, 17 Jan 2013 16:03:22 +0100
|
||||
Subject: [PATCH] X11: add keymapping for XF86XK_Sleep
|
||||
|
||||
---
|
||||
xbmc/windowing/WinEventsX11.cpp | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/xbmc/windowing/WinEventsX11.cpp b/xbmc/windowing/WinEventsX11.cpp
|
||||
index c31877e..ed31c04 100644
|
||||
--- a/xbmc/windowing/WinEventsX11.cpp
|
||||
+++ b/xbmc/windowing/WinEventsX11.cpp
|
||||
@@ -143,6 +143,7 @@
|
||||
, {XK_Break, XBMCK_BREAK}
|
||||
, {XK_Menu, XBMCK_MENU}
|
||||
, {XF86XK_PowerOff, XBMCK_POWER}
|
||||
+, {XF86XK_Sleep, XBMCK_SLEEP}
|
||||
, {XK_EcuSign, XBMCK_EURO}
|
||||
, {XK_Undo, XBMCK_UNDO}
|
||||
/* Media keys */
|
||||
--
|
||||
1.7.10
|
||||
|
@ -0,0 +1,276 @@
|
||||
From ac29de2eff8fe144fdbe0330dc38036cf546a372 Mon Sep 17 00:00:00 2001
|
||||
From: fritsch <peter.fruehberger@gmail.com>
|
||||
Date: Thu, 31 Jan 2013 21:27:56 +0100
|
||||
Subject: [PATCH 1/2] AE: make forced enumeration possible - this can be used
|
||||
to delay startup when now devices are present
|
||||
|
||||
---
|
||||
xbmc/cores/AudioEngine/AESinkFactory.cpp | 10 +++++-----
|
||||
xbmc/cores/AudioEngine/AESinkFactory.h | 2 +-
|
||||
xbmc/cores/AudioEngine/Engines/SoftAE/SoftAE.cpp | 11 +++++++++++
|
||||
xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 4 ++--
|
||||
xbmc/cores/AudioEngine/Sinks/AESinkALSA.h | 2 +-
|
||||
xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp | 2 +-
|
||||
xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.h | 2 +-
|
||||
xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp | 2 +-
|
||||
xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.h | 2 +-
|
||||
xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp | 2 +-
|
||||
xbmc/cores/AudioEngine/Sinks/AESinkOSS.h | 2 +-
|
||||
xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp | 2 +-
|
||||
xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h | 4 ++--
|
||||
13 files changed, 29 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/AudioEngine/AESinkFactory.cpp b/xbmc/cores/AudioEngine/AESinkFactory.cpp
|
||||
index b066ecd..9917f11 100644
|
||||
--- a/xbmc/cores/AudioEngine/AESinkFactory.cpp
|
||||
+++ b/xbmc/cores/AudioEngine/AESinkFactory.cpp
|
||||
@@ -129,15 +129,15 @@ IAESink *CAESinkFactory::Create(std::string &device, AEAudioFormat &desiredForma
|
||||
return NULL;
|
||||
}
|
||||
|
||||
-#define ENUMERATE_SINK(SINK) { \
|
||||
+#define ENUMERATE_SINK(SINK, force) { \
|
||||
AESinkInfo info; \
|
||||
info.m_sinkName = #SINK; \
|
||||
- CAESink ##SINK::EnumerateDevicesEx(info.m_deviceInfoList); \
|
||||
+ CAESink ##SINK::EnumerateDevicesEx(info.m_deviceInfoList, force); \
|
||||
if(!info.m_deviceInfoList.empty()) \
|
||||
list.push_back(info); \
|
||||
}
|
||||
|
||||
-void CAESinkFactory::EnumerateEx(AESinkInfoList &list)
|
||||
+void CAESinkFactory::EnumerateEx(AESinkInfoList &list, bool force)
|
||||
{
|
||||
#if defined(TARGET_WINDOWS)
|
||||
ENUMERATE_SINK(DirectSound);
|
||||
@@ -147,10 +147,10 @@ void CAESinkFactory::EnumerateEx(AESinkInfoList &list)
|
||||
ENUMERATE_SINK(AUDIOTRACK);
|
||||
#elif defined(TARGET_LINUX) || defined(TARGET_FREEBSD)
|
||||
#if defined(HAS_ALSA)
|
||||
- ENUMERATE_SINK(ALSA);
|
||||
+ ENUMERATE_SINK(ALSA, force);
|
||||
#endif
|
||||
|
||||
- ENUMERATE_SINK(OSS);
|
||||
+ ENUMERATE_SINK(OSS, force);
|
||||
#endif
|
||||
|
||||
}
|
||||
diff --git a/xbmc/cores/AudioEngine/AESinkFactory.h b/xbmc/cores/AudioEngine/AESinkFactory.h
|
||||
index 99c53f9..6f8a4e5 100644
|
||||
--- a/xbmc/cores/AudioEngine/AESinkFactory.h
|
||||
+++ b/xbmc/cores/AudioEngine/AESinkFactory.h
|
||||
@@ -40,6 +40,6 @@ class CAESinkFactory
|
||||
public:
|
||||
static void ParseDevice(std::string &device, std::string &driver);
|
||||
static IAESink *Create(std::string &device, AEAudioFormat &desiredFormat, bool rawPassthrough);
|
||||
- static void EnumerateEx(AESinkInfoList &list);
|
||||
+ static void EnumerateEx(AESinkInfoList &list, bool force = false);
|
||||
};
|
||||
|
||||
diff --git a/xbmc/cores/AudioEngine/Engines/SoftAE/SoftAE.cpp b/xbmc/cores/AudioEngine/Engines/SoftAE/SoftAE.cpp
|
||||
index 410e20c..8a19ac4 100644
|
||||
--- a/xbmc/cores/AudioEngine/Engines/SoftAE/SoftAE.cpp
|
||||
+++ b/xbmc/cores/AudioEngine/Engines/SoftAE/SoftAE.cpp
|
||||
@@ -39,6 +39,7 @@
|
||||
#include "Interfaces/AESink.h"
|
||||
#include "Utils/AEUtil.h"
|
||||
#include "Encoders/AEEncoderFFmpeg.h"
|
||||
+#include <unistd.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
@@ -74,7 +75,17 @@
|
||||
m_outputStageFn (NULL ),
|
||||
m_streamStageFn (NULL )
|
||||
{
|
||||
+ unsigned int c_retry = 5;
|
||||
CAESinkFactory::EnumerateEx(m_sinkInfoList);
|
||||
+ while(m_sinkInfoList.size() == 0 && c_retry > 0)
|
||||
+ {
|
||||
+ CLog::Log(LOGNOTICE, "No Devices found - retry: %d", c_retry);
|
||||
+ usleep(2000000);
|
||||
+ c_retry--;
|
||||
+ // retry the enumeration
|
||||
+ CAESinkFactory::EnumerateEx(m_sinkInfoList, true);
|
||||
+ }
|
||||
+ CLog::Log(LOGNOTICE, "Found %lu Lists of Devices", m_sinkInfoList.size());
|
||||
for (AESinkInfoList::iterator itt = m_sinkInfoList.begin(); itt != m_sinkInfoList.end(); ++itt)
|
||||
{
|
||||
CLog::Log(LOGNOTICE, "Enumerated %s devices:", itt->m_sinkName.c_str());
|
||||
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
index 91218a4..b0d6bb1 100644
|
||||
--- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
@@ -676,11 +676,11 @@ bool CAESinkALSA::OpenPCMDevice(const std::string &name, const std::string ¶
|
||||
return false;
|
||||
}
|
||||
|
||||
-void CAESinkALSA::EnumerateDevicesEx(AEDeviceInfoList &list)
|
||||
+void CAESinkALSA::EnumerateDevicesEx(AEDeviceInfoList &list, bool force)
|
||||
{
|
||||
/* ensure that ALSA has been initialized */
|
||||
snd_lib_error_set_handler(sndLibErrorHandler);
|
||||
- if(!snd_config)
|
||||
+ if(!snd_config || force)
|
||||
snd_config_update();
|
||||
|
||||
snd_config_t *config;
|
||||
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.h b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.h
|
||||
index db1ba80..c1b1c76 100644
|
||||
--- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.h
|
||||
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.h
|
||||
@@ -50,7 +50,7 @@ class CAESinkALSA : public IAESink
|
||||
virtual unsigned int AddPackets (uint8_t *data, unsigned int frames, bool hasAudio);
|
||||
virtual void Drain ();
|
||||
|
||||
- static void EnumerateDevicesEx(AEDeviceInfoList &list);
|
||||
+ static void EnumerateDevicesEx(AEDeviceInfoList &list, bool force = false);
|
||||
private:
|
||||
CAEChannelInfo GetChannelLayout(AEAudioFormat format);
|
||||
void GetAESParams(const AEAudioFormat format, std::string& params);
|
||||
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp
|
||||
index e8a7876..8f23b41 100644
|
||||
--- a/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp
|
||||
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp
|
||||
@@ -236,7 +236,7 @@ void CAESinkAUDIOTRACK::SetVolume(float volume)
|
||||
m_volume_changed = true;
|
||||
}
|
||||
|
||||
-void CAESinkAUDIOTRACK::EnumerateDevicesEx(AEDeviceInfoList &list)
|
||||
+void CAESinkAUDIOTRACK::EnumerateDevicesEx(AEDeviceInfoList &list, bool force)
|
||||
{
|
||||
m_info.m_channels.Reset();
|
||||
m_info.m_dataFormats.clear();
|
||||
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.h b/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.h
|
||||
index 46b3551..bbb7856 100644
|
||||
--- a/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.h
|
||||
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.h
|
||||
@@ -43,7 +43,7 @@ class CAESinkAUDIOTRACK : public CThread, public IAESink
|
||||
virtual void Drain ();
|
||||
virtual bool HasVolume ();
|
||||
virtual void SetVolume (float volume);
|
||||
- static void EnumerateDevicesEx(AEDeviceInfoList &list);
|
||||
+ static void EnumerateDevicesEx(AEDeviceInfoList &list, bool force = false);
|
||||
|
||||
private:
|
||||
virtual void Process();
|
||||
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp
|
||||
index 4d3d41e..c9680e7 100644
|
||||
--- a/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp
|
||||
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp
|
||||
@@ -464,7 +464,7 @@ double CAESinkDirectSound::GetCacheTotal()
|
||||
return (double)m_dwBufferLen / (double)m_AvgBytesPerSec;
|
||||
}
|
||||
|
||||
-void CAESinkDirectSound::EnumerateDevicesEx(AEDeviceInfoList &deviceInfoList)
|
||||
+void CAESinkDirectSound::EnumerateDevicesEx(AEDeviceInfoList &deviceInfoList, bool force)
|
||||
{
|
||||
CAEDeviceInfo deviceInfo;
|
||||
|
||||
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.h b/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.h
|
||||
index 9f54090..2e6209b 100644
|
||||
--- a/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.h
|
||||
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.h
|
||||
@@ -43,7 +43,7 @@ class CAESinkDirectSound : public IAESink
|
||||
virtual double GetCacheTime ();
|
||||
virtual double GetCacheTotal ();
|
||||
virtual unsigned int AddPackets (uint8_t *data, unsigned int frames, bool hasAudio);
|
||||
- static void EnumerateDevicesEx (AEDeviceInfoList &deviceInfoList);
|
||||
+ static void EnumerateDevicesEx (AEDeviceInfoList &deviceInfoList, bool force = false);
|
||||
private:
|
||||
void AEChannelsFromSpeakerMask(DWORD speakers);
|
||||
DWORD SpeakerMaskFromAEChannels(const CAEChannelInfo &channels);
|
||||
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp
|
||||
index 06b9a7f..970e236 100644
|
||||
--- a/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp
|
||||
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp
|
||||
@@ -427,7 +427,7 @@ void CAESinkOSS::Drain()
|
||||
// ???
|
||||
}
|
||||
|
||||
-void CAESinkOSS::EnumerateDevicesEx(AEDeviceInfoList &list)
|
||||
+void CAESinkOSS::EnumerateDevicesEx(AEDeviceInfoList &list, bool force)
|
||||
{
|
||||
int mixerfd;
|
||||
const char * mixerdev = "/dev/mixer";
|
||||
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkOSS.h b/xbmc/cores/AudioEngine/Sinks/AESinkOSS.h
|
||||
index aa8a9f8..7e2db8b 100644
|
||||
--- a/xbmc/cores/AudioEngine/Sinks/AESinkOSS.h
|
||||
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkOSS.h
|
||||
@@ -43,7 +43,7 @@ class CAESinkOSS : public IAESink
|
||||
virtual double GetCacheTotal () { return 0.0; } /* FIXME */
|
||||
virtual unsigned int AddPackets (uint8_t *data, unsigned int frames, bool hasAudio);
|
||||
virtual void Drain ();
|
||||
- static void EnumerateDevicesEx(AEDeviceInfoList &list);
|
||||
+ static void EnumerateDevicesEx(AEDeviceInfoList &list, bool force = false);
|
||||
private:
|
||||
int m_fd;
|
||||
std::string m_device;
|
||||
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp
|
||||
index 8475d60..f238d75 100644
|
||||
--- a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp
|
||||
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp
|
||||
@@ -559,7 +559,7 @@ bool CAESinkWASAPI::SoftResume()
|
||||
return false;
|
||||
}
|
||||
|
||||
-void CAESinkWASAPI::EnumerateDevicesEx(AEDeviceInfoList &deviceInfoList)
|
||||
+void CAESinkWASAPI::EnumerateDevicesEx(AEDeviceInfoList &deviceInfoList, bool force)
|
||||
{
|
||||
IMMDeviceEnumerator* pEnumerator = NULL;
|
||||
IMMDeviceCollection* pEnumDevices = NULL;
|
||||
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h
|
||||
index a0c567a..7111ea9 100644
|
||||
--- a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h
|
||||
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h
|
||||
@@ -45,7 +45,7 @@ class CAESinkWASAPI : public IAESink
|
||||
virtual unsigned int AddPackets (uint8_t *data, unsigned int frames, bool hasAudio);
|
||||
virtual bool SoftSuspend ();
|
||||
virtual bool SoftResume ();
|
||||
- static void EnumerateDevicesEx (AEDeviceInfoList &deviceInfoList);
|
||||
+ static void EnumerateDevicesEx (AEDeviceInfoList &deviceInfoList, bool force = false);
|
||||
private:
|
||||
bool InitializeExclusive(AEAudioFormat &format);
|
||||
void AEChannelsFromSpeakerMask(DWORD speakers);
|
||||
@@ -78,4 +78,4 @@ class CAESinkWASAPI : public IAESink
|
||||
unsigned int m_uiBufferLen; /* wasapi endpoint buffer size, in frames */
|
||||
double m_avgTimeWaiting; /* time between next buffer of data from SoftAE and driver call for data */
|
||||
double m_sinkLatency; /* time in seconds of total duration of the two WASAPI buffers */
|
||||
-};
|
||||
\ No newline at end of file
|
||||
+};
|
||||
--
|
||||
1.7.10
|
||||
|
||||
|
||||
From b236f0a78079f522f8f9743098820e6301e27625 Mon Sep 17 00:00:00 2001
|
||||
From: fritsch <peter.fruehberger@gmail.com>
|
||||
Date: Fri, 1 Feb 2013 13:05:24 +0100
|
||||
Subject: [PATCH 2/2] AE: recreate alsa source tree to find new devices
|
||||
|
||||
---
|
||||
xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
index b0d6bb1..61848a1 100644
|
||||
--- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
|
||||
@@ -681,7 +681,13 @@ void CAESinkALSA::EnumerateDevicesEx(AEDeviceInfoList &list, bool force)
|
||||
/* ensure that ALSA has been initialized */
|
||||
snd_lib_error_set_handler(sndLibErrorHandler);
|
||||
if(!snd_config || force)
|
||||
+ {
|
||||
+ if(force)
|
||||
+ snd_config_update_free_global();
|
||||
+
|
||||
snd_config_update();
|
||||
+ }
|
||||
+
|
||||
|
||||
snd_config_t *config;
|
||||
snd_config_copy(&config, snd_config);
|
||||
--
|
||||
1.7.10
|
||||
|
@ -1,107 +0,0 @@
|
||||
From ca0ddf0673dea966af5bf0bc562f9ff69a551cd9 Mon Sep 17 00:00:00 2001
|
||||
From: fritsch <peter.fruehberger@gmail.com>
|
||||
Date: Sat, 12 Jan 2013 13:03:50 +0100
|
||||
Subject: [PATCH] dvdplayer: Allow multithread decoding for hi10p content by
|
||||
default
|
||||
|
||||
This allows decoding of some hi10p material on e.g. AMD Fusion with
|
||||
both cores at the max. This introduces a new advancedsetting named
|
||||
disablehi10pmultithreading to disable hi10p decoded multithreaded.
|
||||
---
|
||||
.../DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 18 ++++++++++++++++--
|
||||
.../dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h | 1 +
|
||||
xbmc/settings/AdvancedSettings.cpp | 2 ++
|
||||
xbmc/settings/AdvancedSettings.h | 1 +
|
||||
4 files changed, 20 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
|
||||
index 8f81637..77ac6b1 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
|
||||
@@ -138,6 +138,7 @@ enum PixelFormat CDVDVideoCodecFFmpeg::GetFormat( struct AVCodecContext * avctx
|
||||
m_iScreenHeight = 0;
|
||||
m_iOrientation = 0;
|
||||
m_bSoftware = false;
|
||||
+ m_isHi10p = false;
|
||||
m_pHardware = NULL;
|
||||
m_iLastKeyframe = 0;
|
||||
m_dts = DVD_NOPTS_VALUE;
|
||||
@@ -187,7 +188,10 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options
|
||||
case FF_PROFILE_H264_HIGH_444_PREDICTIVE:
|
||||
case FF_PROFILE_H264_HIGH_444_INTRA:
|
||||
case FF_PROFILE_H264_CAVLC_444:
|
||||
+ // this is needed to not open the decoders
|
||||
m_bSoftware = true;
|
||||
+ // this we need to enable multithreading for hi10p via advancedsettings
|
||||
+ m_isHi10p = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -247,8 +251,18 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options
|
||||
m_pCodecContext->codec_tag = hints.codec_tag;
|
||||
/* Only allow slice threading, since frame threading is more
|
||||
* sensitive to changes in frame sizes, and it causes crashes
|
||||
- * during HW accell */
|
||||
- m_pCodecContext->thread_type = FF_THREAD_SLICE;
|
||||
+ * during HW accell - so we unset it in this case.
|
||||
+ *
|
||||
+ * When we detect Hi10p and user did not disable hi10pmultithreading
|
||||
+ * via advancedsettings.xml we keep the ffmpeg default thread type.
|
||||
+ * */
|
||||
+ if(m_isHi10p && !g_advancedSettings.m_videoDisableHi10pMultithreading)
|
||||
+ {
|
||||
+ CLog::Log(LOGDEBUG,"CDVDVideoCodecFFmpeg::Open() Keep default threading for Hi10p: %d",
|
||||
+ m_pCodecContext->thread_type);
|
||||
+ }
|
||||
+ else
|
||||
+ m_pCodecContext->thread_type = FF_THREAD_SLICE;
|
||||
|
||||
#if defined(TARGET_DARWIN_IOS)
|
||||
// ffmpeg with enabled neon will crash and burn if this is enabled
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h
|
||||
index 61d0305..827b2d9 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h
|
||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h
|
||||
@@ -114,6 +114,7 @@ class CDVDVideoCodecFFmpeg : public CDVDVideoCodec
|
||||
|
||||
std::string m_name;
|
||||
bool m_bSoftware;
|
||||
+ bool m_isHi10p;
|
||||
IHardwareDecoder *m_pHardware;
|
||||
int m_iLastKeyframe;
|
||||
double m_dts;
|
||||
diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp
|
||||
index 16800b7..1e0f3e0 100644
|
||||
--- a/xbmc/settings/AdvancedSettings.cpp
|
||||
+++ b/xbmc/settings/AdvancedSettings.cpp
|
||||
@@ -112,6 +112,7 @@ void CAdvancedSettings::Initialize()
|
||||
m_DXVANoDeintProcForProgressive = false;
|
||||
m_videoFpsDetect = 1;
|
||||
m_videoDefaultLatency = 0.0;
|
||||
+ m_videoDisableHi10pMultithreading = false;
|
||||
|
||||
m_musicUseTimeSeeking = true;
|
||||
m_musicTimeSeekForward = 10;
|
||||
@@ -498,6 +499,7 @@ void CAdvancedSettings::ParseSettingsFile(const CStdString &file)
|
||||
XMLUtils::GetBoolean(pElement,"enablehighqualityhwscalers", m_videoEnableHighQualityHwScalers);
|
||||
XMLUtils::GetFloat(pElement,"autoscalemaxfps",m_videoAutoScaleMaxFps, 0.0f, 1000.0f);
|
||||
XMLUtils::GetBoolean(pElement,"allowmpeg4vdpau",m_videoAllowMpeg4VDPAU);
|
||||
+ XMLUtils::GetBoolean(pElement,"disablehi10pmultithreading",m_videoDisableHi10pMultithreading);
|
||||
XMLUtils::GetBoolean(pElement,"allowmpeg4vaapi",m_videoAllowMpeg4VAAPI);
|
||||
XMLUtils::GetBoolean(pElement, "disablebackgrounddeinterlace", m_videoDisableBackgroundDeinterlace);
|
||||
XMLUtils::GetInt(pElement, "useocclusionquery", m_videoCaptureUseOcclusionQuery, -1, 1);
|
||||
diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h
|
||||
index 27887d4..fc05e41 100644
|
||||
--- a/xbmc/settings/AdvancedSettings.h
|
||||
+++ b/xbmc/settings/AdvancedSettings.h
|
||||
@@ -164,6 +164,7 @@ class CAdvancedSettings
|
||||
bool m_DXVAForceProcessorRenderer;
|
||||
bool m_DXVANoDeintProcForProgressive;
|
||||
int m_videoFpsDetect;
|
||||
+ bool m_videoDisableHi10pMultithreading;
|
||||
|
||||
CStdString m_videoDefaultPlayer;
|
||||
CStdString m_videoDefaultDVDPlayer;
|
||||
--
|
||||
1.7.10
|
||||
|
39
packages/mediacenter/xbmc/patches/xbmc-990.01-PR2158.patch
Normal file
39
packages/mediacenter/xbmc/patches/xbmc-990.01-PR2158.patch
Normal file
@ -0,0 +1,39 @@
|
||||
From ac86e23aa11861a4fa063fb2fa05f10cbc4eea19 Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
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
|
||||
|
91
packages/mediacenter/xbmc/patches/xbmc-990.02-PR2119.patch
Normal file
91
packages/mediacenter/xbmc/patches/xbmc-990.02-PR2119.patch
Normal file
@ -0,0 +1,91 @@
|
||||
From 5016973c68567e0691c9dc6c14d78de9e7d4558c Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
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
|
||||
|
@ -0,0 +1,26 @@
|
||||
From 5c61cc2c3ef7b047060742d736fd2a8cc037ae57 Mon Sep 17 00:00:00 2001
|
||||
From: Jim Carroll <thecarrolls@jiminger.com>
|
||||
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
|
||||
|
@ -22,17 +22,22 @@
|
||||
|
||||
. config/options
|
||||
|
||||
if [ "$ALSA_SUPPORT" = "yes" ]; then
|
||||
BLUEZ_ALSA="--enable-audio --enable-alsa"
|
||||
else
|
||||
BLUEZ_ALSA="--disable-audio --disable-alsa"
|
||||
fi
|
||||
|
||||
if [ "$DEBUG" = "yes" ]; then
|
||||
DEBUG_CONFIG="--enable-debug"
|
||||
else
|
||||
DEBUG_CONFIG="--disable-debug"
|
||||
fi
|
||||
|
||||
if [ "$DEVTOOLS" = "yes" ]; then
|
||||
DEVTOOLS_CONFIG="--enable-monitor --enable-test --enable-tools"
|
||||
DEVTOOLS_CONFIG="--enable-bccmd --enable-tools"
|
||||
else
|
||||
DEVTOOLS_CONFIG="--disable-monitor --disable-test --enable-tools"
|
||||
fi
|
||||
DEVTOOLS_CONFIG="--disable-bccmd --disable-tools"
|
||||
fi
|
||||
|
||||
cd $PKG_BUILD
|
||||
./configure --host=$TARGET_NAME \
|
||||
@ -45,18 +50,38 @@ cd $PKG_BUILD
|
||||
--disable-silent-rules \
|
||||
--enable-shared \
|
||||
--disable-static \
|
||||
--enable-library \
|
||||
--enable-optimization \
|
||||
--enable-fortify \
|
||||
--disable-pie \
|
||||
--enable-network \
|
||||
--disable-sap \
|
||||
--disable-proximity \
|
||||
--disable-serial \
|
||||
--enable-input \
|
||||
--enable-service \
|
||||
--enable-health \
|
||||
--disable-pnat \
|
||||
--disable-gstreamer \
|
||||
$BLUEZ_ALSA \
|
||||
--enable-usb \
|
||||
--enable-udev \
|
||||
--disable-cups \
|
||||
--disable-obex \
|
||||
--enable-client \
|
||||
--disable-systemd \
|
||||
--enable-datafiles \
|
||||
--disable-experimental \
|
||||
--enable-pcmcia \
|
||||
--enable-hid2hci \
|
||||
--enable-dfutool \
|
||||
--disable-hidd \
|
||||
--disable-pand \
|
||||
--disable-dund \
|
||||
--disable-cups \
|
||||
--enable-wiimote \
|
||||
--disable-maemo6 \
|
||||
--disable-dbusoob \
|
||||
--enable-thermometer \
|
||||
--disable-hal \
|
||||
--disable-capng \
|
||||
--with-gnu-ld \
|
||||
$DEBUG_CONFIG \
|
||||
$DEVTOOLS_CONFIG \
|
||||
--disable-test
|
||||
|
||||
make
|
||||
|
||||
|
66
packages/network/bluez/config/main.conf
Normal file
66
packages/network/bluez/config/main.conf
Normal file
@ -0,0 +1,66 @@
|
||||
[General]
|
||||
|
||||
# List of plugins that should not be loaded on bluetoothd startup
|
||||
DisablePlugins = input
|
||||
|
||||
# Default adaper name
|
||||
# %h - substituted for hostname
|
||||
# %d - substituted for adapter id
|
||||
Name = %h-%d
|
||||
|
||||
# Default device class. Only the major and minor device class bits are
|
||||
# considered.
|
||||
Class = 0x000100
|
||||
|
||||
# How long to stay in discoverable mode before going back to non-discoverable
|
||||
# The value is in seconds. Default is 180, i.e. 3 minutes.
|
||||
# 0 = disable timer, i.e. stay discoverable forever
|
||||
DiscoverableTimeout = 0
|
||||
|
||||
# How long to stay in pairable mode before going back to non-discoverable
|
||||
# The value is in seconds. Default is 0.
|
||||
# 0 = disable timer, i.e. stay pairable forever
|
||||
PairableTimeout = 0
|
||||
|
||||
# Use some other page timeout than the controller default one
|
||||
# which is 16384 (10 seconds).
|
||||
PageTimeout = 8192
|
||||
|
||||
# Discover scheduler interval used in Adapter.DiscoverDevices
|
||||
# The value is in seconds. Defaults is 30.
|
||||
DiscoverSchedulerInterval = 30
|
||||
|
||||
# What value should be assumed for the adapter Powered property when
|
||||
# SetProperty(Powered, ...) hasn't been called yet. Defaults to true
|
||||
InitiallyPowered = true
|
||||
|
||||
# Remember the previously stored Powered state when initializing adapters
|
||||
RememberPowered = true
|
||||
|
||||
# Use vendor, product and version information for DID profile support.
|
||||
# The values are separated by ":" and VID, PID and version.
|
||||
#DeviceID = 1234:5678:abcd
|
||||
|
||||
# Do reverse service discovery for previously unknown devices that connect to
|
||||
# us. This option is really only needed for qualification since the BITE tester
|
||||
# doesn't like us doing reverse SDP for some test cases (though there could in
|
||||
# theory be other useful purposes for this too). Defaults to true.
|
||||
ReverseServiceDiscovery = true
|
||||
|
||||
# Enable name resolving after inquiry. Set it to 'false' if you don't need
|
||||
# remote devices name and want shorter discovery cycle. Defaults to 'true'.
|
||||
NameResolving = true
|
||||
|
||||
# Enable runtime persistency of debug link keys. Default is false which
|
||||
# makes debug link keys valid only for the duration of the connection
|
||||
# that they were created for.
|
||||
DebugKeys = false
|
||||
|
||||
# Enable Low Energy support if the dongle supports. Default is false.
|
||||
# Enable/Disable interleave discovery and attribute server over LE.
|
||||
EnableLE = false
|
||||
|
||||
# Enable the GATT Attribute Server. Default is false, because it is only
|
||||
# useful for testing. Attribute server is not enabled over LE if EnableLE
|
||||
# is false.
|
||||
AttributeServer = false
|
@ -22,49 +22,59 @@
|
||||
|
||||
. config/options
|
||||
|
||||
PKG_DIR=`find $PACKAGES -type d -name $1`
|
||||
|
||||
mkdir -p $INSTALL/etc/bluetooth
|
||||
# cp $PKG_BUILD/src/main.conf $INSTALL/etc/bluetooth
|
||||
cp $PKG_DIR/config/main.conf $INSTALL/etc/bluetooth
|
||||
cp $PKG_BUILD/tools/rfcomm.conf $INSTALL/etc/bluetooth
|
||||
cp $PKG_BUILD/input/input.conf $INSTALL/etc/bluetooth
|
||||
|
||||
if [ "$ALSA_SUPPORT" = yes ]; then
|
||||
cp $PKG_BUILD/audio/audio.conf $INSTALL/etc/bluetooth
|
||||
fi
|
||||
|
||||
mkdir -p $INSTALL/etc/dbus-1/system.d
|
||||
cp $PKG_BUILD/src/bluetooth.conf $INSTALL/etc/dbus-1/system.d
|
||||
|
||||
mkdir -p $INSTALL/usr/lib/bluetooth
|
||||
cp $PKG_BUILD/src/bluetoothd $INSTALL/usr/lib/bluetooth
|
||||
cp $PKG_BUILD/obexd/src/obexd $INSTALL/usr/lib/bluetooth
|
||||
mkdir -p $INSTALL/lib/udev
|
||||
# not needed: cp $PKG_BUILD/scripts/bluetooth_serial $INSTALL/lib/udev
|
||||
# not needed: chmod +x $INSTALL/lib/udev/bluetooth_serial
|
||||
cp $PKG_BUILD/tools/hid2hci $INSTALL/lib/udev
|
||||
|
||||
mkdir -p $INSTALL/lib/udev/rules.d
|
||||
cp $PKG_BUILD/scripts/97-bluetooth.rules $INSTALL/lib/udev/rules.d
|
||||
# todo: cp $PKG_BUILD/scripts/97-bluetooth-hid2hci.rules $INSTALL/lib/udev/rules.d
|
||||
# not needed: cp $PKG_BUILD/scripts/97-bluetooth-serial.rules $INSTALL/lib/udev/rules.d
|
||||
|
||||
mkdir -p $INSTALL/usr/lib
|
||||
cp -P $PKG_BUILD/lib/.libs/libbluetooth.so* $INSTALL/usr/lib
|
||||
|
||||
# client
|
||||
if [ "$ALSA_SUPPORT" = yes ]; then
|
||||
mkdir -p $INSTALL/usr/lib/alsa
|
||||
cp $PKG_BUILD/audio/.libs/*.so $INSTALL/usr/lib/alsa
|
||||
fi
|
||||
|
||||
mkdir -p $INSTALL/usr/lib/bluetooth/plugins
|
||||
|
||||
mkdir -p $INSTALL/usr/sbin
|
||||
cp $PKG_BUILD/src/bluetoothd $INSTALL/usr/sbin
|
||||
|
||||
mkdir -p $INSTALL/usr/share/alsa
|
||||
cp $PKG_BUILD/audio/bluetooth.conf $INSTALL/usr/share/alsa
|
||||
|
||||
if [ "$DEVTOOLS" = "yes" ]; then
|
||||
mkdir -p $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/client/bluetoothctl $INSTALL/usr/bin
|
||||
|
||||
# tools
|
||||
mkdir -p $INSTALL/lib/udev
|
||||
cp $PKG_BUILD/tools/hid2hci $INSTALL/lib/udev
|
||||
|
||||
mkdir -p $INSTALL/lib/udev/rules.d
|
||||
cp $PKG_BUILD/tools/97-hid2hci.rules $INSTALL/lib/udev/rules.d
|
||||
|
||||
mkdir -p $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/tools/bccmd $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/tools/ciptool $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/tools/hciattach $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/tools/hciconfig $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/tools/hcidump $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/tools/dfutool $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/tools/hcitool $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/tools/l2ping $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/tools/l2test $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/tools/rctest $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/tools/rfcomm $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/tools/sdptool $INSTALL/usr/bin
|
||||
|
||||
# test
|
||||
|
||||
if [ "$DEVTOOLS" = "yes" ]; then
|
||||
# monitor
|
||||
mkdir -p $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/monitor/btmon $INSTALL/usr/bin
|
||||
|
||||
# test
|
||||
mkdir -p $INSTALL/usr/lib/bluez/test
|
||||
cp -P $PKG_BUILD/test/* $INSTALL/usr/lib/bluez/test
|
||||
chmod +x $INSTALL/usr/lib/bluez/test/*
|
||||
mkdir -p $INSTALL/usr/sbin
|
||||
cp $PKG_BUILD/tools/bccmd $INSTALL/usr/sbin # TODO
|
||||
cp $PKG_BUILD/tools/hciattach $INSTALL/usr/sbin
|
||||
cp $PKG_BUILD/tools/hciconfig $INSTALL/usr/sbin
|
||||
fi
|
||||
|
||||
|
@ -19,14 +19,14 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="bluez"
|
||||
PKG_VERSION="5.1"
|
||||
PKG_VERSION="4.99"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.bluez.org/"
|
||||
PKG_URL="http://www.kernel.org/pub/linux/bluetooth/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS="libusb-compat dbus glib systemd"
|
||||
PKG_BUILD_DEPENDS="toolchain libusb-compat dbus glib systemd readline"
|
||||
PKG_BUILD_DEPENDS="toolchain libusb-compat dbus glib systemd"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="network"
|
||||
PKG_SHORTDESC="bluez: Bluetooth Tools and System Daemons for Linux."
|
||||
|
@ -0,0 +1,12 @@
|
||||
diff -Naur bluez-4.101-old/configure.ac bluez-4.101-new/configure.ac
|
||||
--- bluez-4.101-old/configure.ac 2012-06-22 09:36:49.000000000 -0700
|
||||
+++ bluez-4.101-new/configure.ac 2012-12-29 08:49:05.000000000 -0800
|
||||
@@ -2,7 +2,7 @@
|
||||
AC_INIT(bluez, 4.101)
|
||||
|
||||
AM_INIT_AUTOMAKE([foreign subdir-objects color-tests])
|
||||
-AM_CONFIG_HEADER(config.h)
|
||||
+AC_CONFIG_HEADERS(config.h)
|
||||
|
||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||
|
15
packages/network/bluez/patches/bluez-4.99-systemd.patch
Normal file
15
packages/network/bluez/patches/bluez-4.99-systemd.patch
Normal file
@ -0,0 +1,15 @@
|
||||
X-Git-Url: http://git.kernel.org/?p=bluetooth%2Fbluez.git;a=blobdiff_plain;f=tools%2Fhid2hci.c;h=e3a5b2ef785a782bd3da4ae9c44704a32dc2f665;hp=45a3a3db8b29411ee193e480f5ce8a82a40103d1;hb=35beaaa5b39d50eabd54563804182bb01a5d7ff4;hpb=cc47dc79aac98f7b25bd2afccf1c10560e779d16
|
||||
|
||||
diff --git a/tools/hid2hci.c b/tools/hid2hci.c
|
||||
index 45a3a3d..e3a5b2e 100644
|
||||
--- a/tools/hid2hci.c
|
||||
+++ b/tools/hid2hci.c
|
||||
@@ -291,7 +291,7 @@ int main(int argc, char *argv[])
|
||||
if (udev == NULL)
|
||||
goto exit;
|
||||
|
||||
- snprintf(syspath, sizeof(syspath), "%s/%s", udev_get_sys_path(udev), devpath);
|
||||
+ snprintf(syspath, sizeof(syspath), "/sys/%s", devpath);
|
||||
udev_dev = udev_device_new_from_syspath(udev, syspath);
|
||||
if (udev_dev == NULL) {
|
||||
fprintf(stderr, "error: could not find '%s'\n", devpath);
|
@ -1,6 +1,6 @@
|
||||
ACTION!="add|change", GOTO="end"
|
||||
|
||||
KERNEL=="hci[0-9]*", SUBSYSTEM=="bluetooth", RUN+="/usr/bin/hciconfig %k up"
|
||||
KERNEL=="hci[0-9]*", SUBSYSTEM=="bluetooth", RUN+="/usr/bin/hciconfig %k lm master"
|
||||
KERNEL=="hci[0-9]*", SUBSYSTEM=="bluetooth", RUN+="/usr/sbin/hciconfig %k up"
|
||||
KERNEL=="hci[0-9]*", SUBSYSTEM=="bluetooth", RUN+="/usr/sbin/hciconfig %k lm master"
|
||||
|
||||
LABEL="end"
|
||||
|
@ -49,28 +49,29 @@ cd $PKG_BUILD
|
||||
--disable-gtk-doc \
|
||||
--disable-debug \
|
||||
--enable-threads \
|
||||
--enable-loopback=builtin \
|
||||
--enable-ethernet=builtin \
|
||||
--enable-wifi=builtin \
|
||||
--disable-bluetooth \
|
||||
--disable-hh2serial-gps \
|
||||
--disable-dundee \
|
||||
--disable-wispr \
|
||||
--disable-ofono \
|
||||
--disable-openconnect \
|
||||
$CONNMAN_OPENVPN \
|
||||
--disable-vpnc \
|
||||
--disable-l2tp \
|
||||
$CONNMAN_PPTP \
|
||||
--disable-tist \
|
||||
--disable-pacrunner \
|
||||
--disable-iwmx \
|
||||
--disable-iospm \
|
||||
--disable-tist \
|
||||
--disable-session-policy-local \
|
||||
--disable-test \
|
||||
--disable-nmcompat \
|
||||
--disable-polkit \
|
||||
--enable-client \
|
||||
--disable-selinux \
|
||||
--enable-loopback=builtin \
|
||||
--enable-ethernet=builtin \
|
||||
--enable-wifi=builtin \
|
||||
--disable-bluetooth \
|
||||
--disable-ofono \
|
||||
--disable-dundee \
|
||||
--disable-pacrunner \
|
||||
--disable-wispr \
|
||||
--disable-tools \
|
||||
--disable-test \
|
||||
--enable-client \
|
||||
--enable-datafiles \
|
||||
--disable-silent-rules \
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="connman"
|
||||
PKG_VERSION="1.10"
|
||||
PKG_VERSION="1.11"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -1,12 +0,0 @@
|
||||
diff -Naur connman-1.10/configure.ac connman-1.10.patch/configure.ac
|
||||
--- connman-1.10/configure.ac 2012-12-22 22:52:47.000000000 +0100
|
||||
+++ connman-1.10.patch/configure.ac 2013-01-12 00:54:04.975043201 +0100
|
||||
@@ -2,7 +2,7 @@
|
||||
AC_INIT(connman, 1.10)
|
||||
|
||||
AM_INIT_AUTOMAKE([foreign subdir-objects color-tests])
|
||||
-AM_CONFIG_HEADER(config.h)
|
||||
+AC_CONFIG_HEADERS(config.h)
|
||||
|
||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user