Merge branch 'master' of github.com:OpenELEC/OpenELEC.tv into openelec-3.2

This commit is contained in:
Stephan Raue 2013-07-07 19:30:15 +02:00
commit bf1304c5cb
161 changed files with 69917 additions and 89489 deletions

View File

@ -322,7 +322,6 @@ show_config() {
config_message="$config_message\n - Avahi (Zeroconf) support:\t\t $AVAHI_DAEMON"
config_message="$config_message\n - SAMBA server support:\t\t $SAMBA_SERVER"
config_message="$config_message\n - SFTP server support:\t\t\t $SFTP_SERVER"
config_message="$config_message\n - SSH Guard support:\t\t\t $SSHGUARD_SUPPORT"
config_message="$config_message\n - PPTP support:\t\t\t $PPTP_SUPPORT"
config_message="$config_message\n - OpenVPN support:\t\t\t $OPENVPN_SUPPORT"
config_message="$config_message\n - XBMC Airplay support:\t\t $AIRPLAY_SUPPORT"

View File

@ -1,3 +1,6 @@
3.1.2
- update to transmission-2.80
3.1.1
- rebuild for OpenELEC-3.2

View File

@ -19,12 +19,12 @@
################################################################################
PKG_NAME="transmission"
PKG_VERSION="2.77"
PKG_REV="1"
PKG_VERSION="2.80"
PKG_REV="2"
PKG_ARCH="any"
PKG_LICENSE="OSS"
PKG_SITE="http://www.transmissionbt.com/"
PKG_URL="http://download.transmissionbt.com/files/$PKG_NAME-$PKG_VERSION.tar.bz2"
PKG_URL="http://download.transmissionbt.com/files/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS="zlib $ICONV openssl curl libevent"
PKG_BUILD_DEPENDS="toolchain $ICONV zlib openssl curl libevent"
PKG_PRIORITY="optional"

View File

@ -40,7 +40,6 @@ cd $PKG_BUILD
--enable-shared \
--disable-python \
--disable-dependency-tracking \
--with-versioned=no \
sed -i 's/.*PKGLIBDIR.*/#define PKGLIBDIR ""/' include/config.h

View File

@ -19,12 +19,12 @@
################################################################################
PKG_NAME="zlib"
PKG_VERSION="1.2.7"
PKG_VERSION="1.2.8"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="OSS"
PKG_SITE="http://www.zlib.net"
PKG_URL="http://www.zlib.net/$PKG_NAME-$PKG_VERSION.tar.bz2"
PKG_URL="http://www.zlib.net/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="toolchain"
PKG_PRIORITY="optional"

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="gdb"
PKG_VERSION="7.5.1"
PKG_VERSION="7.6"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -1,44 +0,0 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
cd $PKG_BUILD
./configure --host=$TARGET_NAME \
--build=$HOST_NAME \
--prefix=/usr \
--exec-prefix=/usr \
--sysconfdir=/etc \
--datadir=/usr/share \
--without-python \
--without-tcl
make libnewt.a
mkdir -p $SYSROOT_PREFIX/usr/lib
cp libnewt.a $SYSROOT_PREFIX/usr/lib
mkdir -p $SYSROOT_PREFIX/usr/lib/pkgconfig
cp libnewt.pc $SYSROOT_PREFIX/usr/lib/pkgconfig
mkdir -p $SYSROOT_PREFIX/usr/include
cp newt.h $SYSROOT_PREFIX/usr/include

View File

@ -1,36 +0,0 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="newt"
PKG_VERSION="0.52.14"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="LGPL"
PKG_SITE="https://fedorahosted.org/newt/"
PKG_URL="https://fedorahosted.org/releases/n/e/newt/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="toolchain popt slang"
PKG_PRIORITY="optional"
PKG_SECTION="devel"
PKG_SHORTDESC="newt: library for color text mode, widget based user interfaces"
PKG_LONGDESC="Newt is a programming library for color text mode, widget based user interfaces. Newt can be used to add stacked windows, entry widgets, checkboxes, radio buttons, labels, plain text fields, scrollbars, etc., to text mode user interfaces. Newt is based on the S-Lang library."
PKG_IS_ADDON="no"
PKG_AUTORECONF="yes"

View File

@ -1,12 +0,0 @@
diff -Naur newt-0.52.14/Makefile.in newt-0.52.14.patch/Makefile.in
--- newt-0.52.14/Makefile.in 2011-11-11 12:00:15.000000000 +0100
+++ newt-0.52.14.patch/Makefile.in 2013-05-30 23:40:30.104284277 +0200
@@ -5,7 +5,7 @@
CPP = @CPP@
CFLAGS = @CFLAGS@
LDFLAGS = @LDFLAGS@
-CPPFLAGS = -D_GNU_SOURCE -I/usr/include/slang @CPPFLAGS@
+CPPFLAGS = -D_GNU_SOURCE @CPPFLAGS@
GNU_LD = @GNU_LD@
VERSION = @VERSION@

View File

@ -1,42 +0,0 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
#
# 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
MAKEFLAGS=-j1
cd $PKG_BUILD
./configure --host=$TARGET_NAME \
--build=$HOST_NAME \
--prefix=/usr \
--exec-prefix=/usr \
--sysconfdir=/etc \
--datadir=/usr/share \
--without-iconv \
--without-onig \
--without-pcre \
--without-png \
--without-z \
--without-x \
make -C src static
make DESTDIR="$SYSROOT_PREFIX" -C src install-static

View File

@ -1,36 +0,0 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2013 Dag Wieers (dag@wieers.com)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="slang"
PKG_VERSION="2.2.4"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="LGPL"
PKG_SITE="http://www.jedsoft.org/slang/"
PKG_URL="ftp://ftp.fu-berlin.de/pub/unix/misc/slang/v2.2/$PKG_NAME-$PKG_VERSION.tar.bz2"
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION="devel"
PKG_SHORTDESC="slang: library for the S-Lang extension language"
PKG_LONGDESC="S-Lang is an interpreted language and a programming library. The S-Lang language was designed so that it can be easily embedded into a program to provide the program with a powerful extension language. The S-Lang library, provided in this package, provides the S-Lang extension language. S-Lang's syntax resembles C, which makes it easy to recode S-Lang procedures in C if you need to."
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="Mesa"
PKG_VERSION="9.1.3"
PKG_VERSION="9.1.4"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="OSS"

View File

@ -19,11 +19,13 @@
################################################################################
PKG_NAME="RTL8188EU"
PKG_VERSION="20130425"
# realtek: PKG_VERSION="20130425"
PKG_VERSION="fb786d0"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PFid=48&Level=5&Conn=4&ProdID=274&DownTypeID=3&GetDown=false&Downloads=true"
# realtek: PKG_SITE="http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PFid=48&Level=5&Conn=4&ProdID=274&DownTypeID=3&GetDown=false&Downloads=true"
PKG_SITE="https://github.com/lwfinger/rtl8188eu"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="toolchain linux"

View File

@ -1,142 +0,0 @@
diff -Naur RTL8188EU-20130425/core/rtw_mp.c RTL8188EU-20130425.patch/core/rtw_mp.c
--- RTL8188EU-20130425/core/rtw_mp.c 2013-04-27 07:20:29.000000000 +0200
+++ RTL8188EU-20130425.patch/core/rtw_mp.c 2013-04-27 15:46:36.416055469 +0200
@@ -1219,7 +1219,8 @@
//3 6. start thread
#ifdef PLATFORM_LINUX
- pmp_priv->tx.PktTxThread = kernel_thread(mp_xmit_packet_thread, pmp_priv, CLONE_FS|CLONE_FILES);
+ if(!start_kthread(&pmp_priv->tx.PktTxThread, mp_xmit_packet_thread, pmp_priv, "8188eu-mp-xmit"))
+ DBG_871X("Create PktTx Thread Fail !!!!!\n");
#endif
#ifdef PLATFORM_FREEBSD
{
@@ -1228,9 +1229,9 @@
pmp_priv->tx.PktTxThread = kproc_kthread_add(mp_xmit_packet_thread, pmp_priv,
&p, &td, RFHIGHPID, 0, "MPXmitThread", "MPXmitThread");
}
+if (pmp_priv->tx.PktTxThread < 0)
+ DBG_871X("Create PktTx Thread Fail !!!!!\n");
#endif
- if (pmp_priv->tx.PktTxThread < 0)
- DBG_871X("Create PktTx Thread Fail !!!!!\n");
}
diff -Naur RTL8188EU-20130425/include/osdep_service.h RTL8188EU-20130425.patch/include/osdep_service.h
--- RTL8188EU-20130425/include/osdep_service.h 2013-04-27 07:20:29.000000000 +0200
+++ RTL8188EU-20130425.patch/include/osdep_service.h 2013-04-27 15:59:42.647641402 +0200
@@ -813,6 +813,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;
@@ -846,8 +849,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;
@@ -1394,7 +1401,7 @@
static __inline void thread_enter(char *name)
{
#ifdef PLATFORM_LINUX
- daemonize("%s", name);
+ //daemonize("%s", name);
allow_signal(SIGTERM);
#endif
#ifdef PLATFORM_FREEBSD
@@ -1677,4 +1684,8 @@
#endif
+#ifdef PLATFORM_LINUX
+extern int start_kthread(_thread_hdl_ *t_hdl, int (*threadfn)(void *data),
+ void *data, const char *name);
+#endif
diff -Naur RTL8188EU-20130425/include/rtw_recv.h RTL8188EU-20130425.patch/include/rtw_recv.h
--- RTL8188EU-20130425/include/rtw_recv.h 2013-04-27 07:20:29.000000000 +0200
+++ RTL8188EU-20130425.patch/include/rtw_recv.h 2013-04-27 16:01:59.026051453 +0200
@@ -658,7 +658,9 @@
//from any given member of recv_frame.
// rxmem indicates the any member/address in recv_frame
- return (union recv_frame*)(((SIZE_PTR)rxmem >> RXFRAME_ALIGN) << RXFRAME_ALIGN);
+ //return (union recv_frame*)(((uint)rxmem>>RXFRAME_ALIGN) <<RXFRAME_ALIGN) ;
+ //return (union recv_frame*)(((SIZE_PTR)rxmem >> RXFRAME_ALIGN) << RXFRAME_ALIGN);
+ return (union recv_frame*)(((ulong)rxmem>>RXFRAME_ALIGN) <<RXFRAME_ALIGN) ;
}
diff -Naur RTL8188EU-20130425/os_dep/linux/os_intfs.c RTL8188EU-20130425.patch/os_dep/linux/os_intfs.c
--- RTL8188EU-20130425/os_dep/linux/os_intfs.c 2013-04-27 07:20:29.000000000 +0200
+++ RTL8188EU-20130425.patch/os_dep/linux/os_intfs.c 2013-04-27 16:06:09.281030229 +0200
@@ -978,27 +978,23 @@
RT_TRACE(_module_os_intfs_c_,_drv_info_,("+rtw_start_drv_threads\n"));
#ifdef CONFIG_XMIT_THREAD_MODE
- 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, "8188eu-xmit"))
_status = _FAIL;
#endif
#ifdef CONFIG_RECV_THREAD_MODE
- padapter->recvThread = kernel_thread(rtw_recv_thread, padapter, CLONE_FS|CLONE_FILES);
- if(padapter->recvThread < 0)
+ if(!start_kthread(&padapter->recvThread, recv_thread, padapter, "8188eu-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, "8188eu-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, "8188eu-evt"))
_status = _FAIL;
#endif
diff -Naur RTL8188EU-20130425/os_dep/osdep_service.c RTL8188EU-20130425.patch/os_dep/osdep_service.c
--- RTL8188EU-20130425/os_dep/osdep_service.c 2013-04-27 07:20:29.000000000 +0200
+++ RTL8188EU-20130425.patch/os_dep/osdep_service.c 2013-04-27 15:38:15.965258008 +0200
@@ -1920,3 +1920,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
+

View File

@ -0,0 +1,285 @@
From 0bb2e327dd12e44fbd67ff169217fa1f7f0c609b Mon Sep 17 00:00:00 2001
From: kolasa <kkolasa@winsoft.pl>
Date: Sun, 12 May 2013 21:21:46 +0200
Subject: [PATCH] switching to proc_create ( /proc for read/write is not yet
usable )
---
.../os_dep/linux/os_intfs.c | 105 ++++++++++++++++++++-
1 file changed, 100 insertions(+), 5 deletions(-)
diff --git a/os_dep/linux/os_intfs.c b/os_dep/linux/os_intfs.c
index 4d057a6..17f46f6 100644
--- a/os_dep/linux/os_intfs.c
+++ b/os_dep/linux/os_intfs.c
@@ -275,14 +275,22 @@ void rtw_proc_init_one(struct net_device *dev)
#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
rtw_proc=create_proc_entry(rtw_proc_name, S_IFDIR, proc_net);
#else
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
rtw_proc=create_proc_entry(rtw_proc_name, S_IFDIR, init_net.proc_net);
+#else
+ rtw_proc=proc_mkdir(rtw_proc_name, init_net.proc_net);
+#endif
#endif
if (rtw_proc == NULL) {
DBG_8192C(KERN_ERR "Unable to create rtw_proc directory\n");
return;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("ver_info", S_IFREG | S_IRUGO, rtw_proc, proc_get_drv_version, dev);
+#else
+ entry = proc_create_data("ver_info", S_IFREG | S_IRUGO, rtw_proc, proc_get_drv_version, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
@@ -293,10 +301,13 @@ void rtw_proc_init_one(struct net_device *dev)
if(padapter->dir_dev == NULL)
{
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
padapter->dir_dev = create_proc_entry(dev->name,
S_IFDIR | S_IRUGO | S_IXUGO,
rtw_proc);
-
+#else
+ padapter->dir_dev = proc_mkdir(dev->name,rtw_proc);
+#endif
dir_dev = padapter->dir_dev;
if(dir_dev==NULL)
@@ -324,84 +335,136 @@ void rtw_proc_init_one(struct net_device *dev)
rtw_proc_cnt++;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("write_reg", S_IFREG | S_IRUGO,
dir_dev, proc_get_write_reg, dev);
+#else
+ entry = proc_create_data("write_reg", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_write_reg, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry->write_proc = proc_set_write_reg;
entry = create_proc_read_entry("read_reg", S_IFREG | S_IRUGO,
dir_dev, proc_get_read_reg, dev);
+#else
+ entry = proc_create_data("read_reg", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_read_reg, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry->write_proc = proc_set_read_reg;
-
entry = create_proc_read_entry("fwstate", S_IFREG | S_IRUGO,
dir_dev, proc_get_fwstate, dev);
+#else
+ entry = proc_create_data("fwstate", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_fwstate, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
-
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("sec_info", S_IFREG | S_IRUGO,
dir_dev, proc_get_sec_info, dev);
+#else
+ entry = proc_create_data("sec_info", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_sec_info, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("mlmext_state", S_IFREG | S_IRUGO,
dir_dev, proc_get_mlmext_state, dev);
+#else
+ entry = proc_create_data("mlmext_state", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_mlmext_state, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
-
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("qos_option", S_IFREG | S_IRUGO,
dir_dev, proc_get_qos_option, dev);
+#else
+ entry = proc_create_data("qos_option", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_qos_option, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("ht_option", S_IFREG | S_IRUGO,
dir_dev, proc_get_ht_option, dev);
+#else
+ entry = proc_create_data("ht_option", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_ht_option, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("rf_info", S_IFREG | S_IRUGO,
dir_dev, proc_get_rf_info, dev);
+#else
+ entry = proc_create_data("rf_info", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_rf_info, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("ap_info", S_IFREG | S_IRUGO,
dir_dev, proc_get_ap_info, dev);
+#else
+ entry = proc_create_data("ap_info", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_ap_info, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("adapter_state", S_IFREG | S_IRUGO,
dir_dev, proc_get_adapter_state, dev);
+#else
+ entry = proc_create_data("adapter_state", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_adapter_state, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("trx_info", S_IFREG | S_IRUGO,
dir_dev, proc_get_trx_info, dev);
+#else
+ entry = proc_create_data("trx_info", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_trx_info, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
@@ -409,8 +472,13 @@ void rtw_proc_init_one(struct net_device *dev)
#ifdef CONFIG_AP_MODE
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("all_sta_info", S_IFREG | S_IRUGO,
dir_dev, proc_get_all_sta_info, dev);
+#else
+ entry = proc_create_data("all_sta_info", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_all_sta_info, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
@@ -418,8 +486,13 @@ void rtw_proc_init_one(struct net_device *dev)
#endif
#ifdef DBG_MEMORY_LEAK
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("_malloc_cnt", S_IFREG | S_IRUGO,
dir_dev, proc_get_malloc_cnt, dev);
+#else
+ entry = proc_create_data("_malloc_cnt", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_malloc_cnt, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
@@ -427,38 +500,60 @@ void rtw_proc_init_one(struct net_device *dev)
#endif
#ifdef CONFIG_FIND_BEST_CHANNEL
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("best_channel", S_IFREG | S_IRUGO,
dir_dev, proc_get_best_channel, dev);
+#else
+ entry = proc_create_data("best_channel", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_best_channel, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
#endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("rx_signal", S_IFREG | S_IRUGO,
dir_dev, proc_get_rx_signal, dev);
+#else
+ entry = proc_create_data("rx_signal", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_rx_signal, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry->write_proc = proc_set_rx_signal;
entry = create_proc_read_entry("ampdu_enable", S_IFREG | S_IRUGO,
dir_dev, proc_get_ampdu_enable, dev);
+#else
+ entry = proc_create_data("ampdu_enable", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_ampdu_enable, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry->write_proc = proc_set_ampdu_enable;
entry = create_proc_read_entry("rssi_disp", S_IFREG | S_IRUGO,
dir_dev, proc_get_rssi_disp, dev);
+#else
+ entry = proc_create_data("rssi_disp", S_IFREG | S_IRUGO,
+ dir_dev, proc_get_rssi_disp, dev);
+#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
return;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry->write_proc = proc_set_rssi_disp;
-
+#endif
}
void rtw_proc_remove_one(struct net_device *dev)
--
1.8.1.6

View File

@ -0,0 +1,92 @@
From e30a6db935752679770b31668e899a7b77e1fec4 Mon Sep 17 00:00:00 2001
From: kolasa <kkolasa@winsoft.pl>
Date: Mon, 13 May 2013 11:43:03 +0200
Subject: [PATCH] Usable /proc/net/rtl819xC/ver_info
---
.../core/rtw_debug.c | 9 +++++++++
.../include/rtw_debug.h | 5 ++++-
.../os_dep/linux/os_intfs.c | 14 +++++++++++++-
3 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/core/rtw_debug.c b/core/rtw_debug.c
index 04e472d..018fe48 100644
--- a/core/rtw_debug.c
+++ b/core/rtw_debug.c
@@ -62,6 +62,7 @@
#ifdef CONFIG_PROC_DEBUG
#include <rtw_version.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
int proc_get_drv_version(char *page, char **start,
off_t offset, int count,
int *eof, void *data)
@@ -75,6 +76,14 @@ int proc_get_drv_version(char *page, char **start,
*eof = 1;
return len;
}
+#else
+int proc_get_drv_version(struct seq_file *m, void* data)
+{
+ struct net_device *dev = data;
+
+ return seq_printf(m, "%s\n", DRIVERVERSION);
+}
+#endif
int proc_get_write_reg(char *page, char **start,
off_t offset, int count,
diff --git a/include/rtw_debug.h b/include/rtw_debug.h
index eca6692..5b3e5cc 100644
--- a/include/rtw_debug.h
+++ b/include/rtw_debug.h
@@ -285,10 +285,13 @@
#ifdef CONFIG_PROC_DEBUG
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
int proc_get_drv_version(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
-
+#else
+ int proc_get_drv_version(struct seq_file *m, void *data);
+#endif
int proc_get_write_reg(char *page, char **start,
off_t offset, int count,
int *eof, void *data);
diff --git a/os_dep/linux/os_intfs.c b/os_dep/linux/os_intfs.c
index 99a5a1c..0e61bf9 100644
--- a/os_dep/linux/os_intfs.c
+++ b/os_dep/linux/os_intfs.c
@@ -255,6 +255,18 @@
static struct proc_dir_entry *rtw_proc = NULL;
static int rtw_proc_cnt = 0;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
+static int drv_version_proc_open(struct inode *inode, struct file *file){
+ return single_open(file, proc_get_drv_version, NULL);
+}
+
+static const struct file_operations drv_version_fops = {
+ .open = drv_version_proc_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+};
+#endif
+
void rtw_proc_init_one(struct net_device *dev)
{
struct proc_dir_entry *dir_dev = NULL;
@@ -289,7 +301,7 @@ void rtw_proc_init_one(struct net_device *dev)
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
entry = create_proc_read_entry("ver_info", S_IFREG | S_IRUGO, rtw_proc, proc_get_drv_version, dev);
#else
- entry = proc_create_data("ver_info", S_IFREG | S_IRUGO, rtw_proc, proc_get_drv_version, dev);
+ entry = proc_create_data("ver_info", S_IFREG | S_IRUGO, rtw_proc, &drv_version_fops, dev);
#endif
if (!entry) {
DBG_871X("Unable to create_proc_read_entry!\n");
--
1.8.1.6

View File

@ -1,21 +0,0 @@
--- 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

View File

@ -1,58 +0,0 @@
--- 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:

View File

@ -1,162 +0,0 @@
--- 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
};

View File

@ -1,22 +0,0 @@
--- 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);

View File

@ -1,158 +0,0 @@
From 00da4982e9175921cfb26d1377bf49ece3bb41cb Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Tue, 26 Mar 2013 23:10:17 +0200
Subject: [PATCH] linux 3.8 support
---
x86-32/src/include/bcmutils.h | 5 +++++
x86-32/src/wl/sys/wl_cfg80211.c | 25 ++++++++++++++++++++++++-
x86-64/src/include/bcmutils.h | 4 ++++
x86-64/src/wl/sys/wl_cfg80211.c | 25 ++++++++++++++++++++++++-
4 files changed, 57 insertions(+), 2 deletions(-)
diff --git a/x86-32/src/include/bcmutils.h b/x86-32/src/include/bcmutils.h
index fa6df04..9a8cab4 100644
--- a/x86-32/src/include/bcmutils.h
+++ b/x86-32/src/include/bcmutils.h
@@ -555,7 +555,12 @@ extern void printbig(char *buf);
extern void prhex(const char *msg, uchar *buf, uint len);
extern bcm_tlv_t *BCMROMFN(bcm_next_tlv)(bcm_tlv_t *elt, int *buflen);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
extern bcm_tlv_t *BCMROMFN(bcm_parse_tlvs)(void *buf, int buflen, uint key);
+#else
+extern bcm_tlv_t *BCMROMFN(bcm_parse_tlvs)(const void *buf, int buflen, uint key);
+#endif
+
extern bcm_tlv_t *BCMROMFN(bcm_parse_ordered_tlvs)(void *buf, int buflen, uint key);
extern const char *bcmerrorstr(int bcmerror);
diff --git a/x86-32/src/wl/sys/wl_cfg80211.c b/x86-32/src/wl/sys/wl_cfg80211.c
index 09d04ed..698b004 100644
--- a/x86-32/src/wl/sys/wl_cfg80211.c
+++ b/x86-32/src/wl/sys/wl_cfg80211.c
@@ -744,7 +744,11 @@ wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev,
else
memset(&join_params.params.bssid, 0, ETHER_ADDR_LEN);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
wl_ch_to_chanspec(params->channel, &join_params, &join_params_size);
+#else
+ wl_ch_to_chanspec(params->chandef.chan, &join_params, &join_params_size);
+#endif
err = wl_dev_ioctl(dev, WLC_SET_SSID, &join_params, join_params_size);
if (err) {
@@ -2047,9 +2051,14 @@ static s32 wl_update_bss_info(struct wl_priv *wl)
struct bcm_tlv *tim;
u16 beacon_interval;
s32 dtim_period;
+ s32 err = 0;
size_t ie_len;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
u8 *ie;
- s32 err = 0;
+#else
+ const u8 *ie;
+ const struct cfg80211_bss_ies *ies;
+#endif
ssid = &wl->profile->ssid;
bss = cfg80211_get_bss(wl_to_wiphy(wl), NULL, (s8 *)&wl->bssid,
@@ -2079,8 +2088,22 @@ static s32 wl_update_bss_info(struct wl_priv *wl)
beacon_interval = cpu_to_le16(bi->beacon_period);
} else {
WL_DBG(("Found the AP in the list - BSSID %pM\n", bss->bssid));
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
ie = bss->information_elements;
ie_len = bss->len_information_elements;
+#else
+ rcu_read_lock();
+ ies = (const struct cfg80211_bss_ies*)rcu_dereference(bss->ies);
+ if (!ies) {
+ /* This should never happen */
+ rcu_read_unlock();
+ err = -EIO;
+ goto update_bss_info_out;
+ }
+ ie = ies->data;
+ ie_len = (size_t)(ies->len);
+ rcu_read_unlock();
+#endif
beacon_interval = bss->beacon_interval;
cfg80211_put_bss(bss);
}
diff --git a/x86-64/src/include/bcmutils.h b/x86-64/src/include/bcmutils.h
index fa6df04..1200bf0 100644
--- a/x86-64/src/include/bcmutils.h
+++ b/x86-64/src/include/bcmutils.h
@@ -555,7 +555,11 @@ extern void printbig(char *buf);
extern void prhex(const char *msg, uchar *buf, uint len);
extern bcm_tlv_t *BCMROMFN(bcm_next_tlv)(bcm_tlv_t *elt, int *buflen);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
extern bcm_tlv_t *BCMROMFN(bcm_parse_tlvs)(void *buf, int buflen, uint key);
+#else
+extern bcm_tlv_t *BCMROMFN(bcm_parse_tlvs)(const void *buf, int buflen, uint key);
+#endif
extern bcm_tlv_t *BCMROMFN(bcm_parse_ordered_tlvs)(void *buf, int buflen, uint key);
extern const char *bcmerrorstr(int bcmerror);
diff --git a/x86-64/src/wl/sys/wl_cfg80211.c b/x86-64/src/wl/sys/wl_cfg80211.c
index 94aac25..244243f 100644
--- a/x86-64/src/wl/sys/wl_cfg80211.c
+++ b/x86-64/src/wl/sys/wl_cfg80211.c
@@ -744,7 +744,11 @@ wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev,
else
memset(&join_params.params.bssid, 0, ETHER_ADDR_LEN);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
wl_ch_to_chanspec(params->channel, &join_params, &join_params_size);
+#else
+ wl_ch_to_chanspec(params->chandef.chan, &join_params, &join_params_size);
+#endif
err = wl_dev_ioctl(dev, WLC_SET_SSID, &join_params, join_params_size);
if (err) {
@@ -2047,9 +2051,14 @@ static s32 wl_update_bss_info(struct wl_priv *wl)
struct bcm_tlv *tim;
u16 beacon_interval;
s32 dtim_period;
+ s32 err = 0;
size_t ie_len;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
u8 *ie;
- s32 err = 0;
+#else
+ const u8 *ie;
+ const struct cfg80211_bss_ies *ies;
+#endif
ssid = &wl->profile->ssid;
bss = cfg80211_get_bss(wl_to_wiphy(wl), NULL, (s8 *)&wl->bssid,
@@ -2079,8 +2088,22 @@ static s32 wl_update_bss_info(struct wl_priv *wl)
beacon_interval = cpu_to_le16(bi->beacon_period);
} else {
WL_DBG(("Found the AP in the list - BSSID %pM\n", bss->bssid));
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
ie = bss->information_elements;
ie_len = bss->len_information_elements;
+#else
+ rcu_read_lock();
+ ies = (const struct cfg80211_bss_ies*)rcu_dereference(bss->ies);
+ if (!ies) {
+ /* This should never happen */
+ rcu_read_unlock();
+ err = -EIO;
+ goto update_bss_info_out;
+ }
+ ie = ies->data;
+ ie_len = (size_t)(ies->len);
+ rcu_read_unlock();
+#endif
beacon_interval = bss->beacon_interval;
cfg80211_put_bss(bss);
}
--
1.7.2.5

View File

@ -1,30 +0,0 @@
diff -Naur bcm_sta-5.100.82.112/x86-32/src/wl/sys/wl_cfg80211.c bcm_sta-5.100.82.112.patch/x86-32/src/wl/sys/wl_cfg80211.c
--- bcm_sta-5.100.82.112/x86-32/src/wl/sys/wl_cfg80211.c 2011-10-22 18:55:54.000000000 +0200
+++ bcm_sta-5.100.82.112.patch/x86-32/src/wl/sys/wl_cfg80211.c 2013-05-06 07:03:19.146764181 +0200
@@ -2077,7 +2077,11 @@
ie = bss->information_elements;
ie_len = bss->len_information_elements;
beacon_interval = bss->beacon_interval;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0)
cfg80211_put_bss(bss);
+#else
+ cfg80211_put_bss(wl_to_wiphy(wl), bss);
+#endif
}
tim = bcm_parse_tlvs(ie, ie_len, WLAN_EID_TIM);
diff -Naur bcm_sta-5.100.82.112/x86-64/src/wl/sys/wl_cfg80211.c bcm_sta-5.100.82.112.patch/x86-64/src/wl/sys/wl_cfg80211.c
--- bcm_sta-5.100.82.112/x86-64/src/wl/sys/wl_cfg80211.c 2011-10-22 18:56:55.000000000 +0200
+++ bcm_sta-5.100.82.112.patch/x86-64/src/wl/sys/wl_cfg80211.c 2013-05-06 07:03:55.443652962 +0200
@@ -2077,7 +2077,11 @@
ie = bss->information_elements;
ie_len = bss->len_information_elements;
beacon_interval = bss->beacon_interval;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0)
cfg80211_put_bss(bss);
+#else
+ cfg80211_put_bss(wl_to_wiphy(wl), bss);
+#endif
}
tim = bcm_parse_tlvs(ie, ie_len, WLAN_EID_TIM);

View File

@ -0,0 +1,256 @@
diff --git a/x86-32/src/wl/sys/wl_linux.c b/x86-32/src/wl/sys/wl_linux.c
index 9ee69e1..409bda7 100644
--- a/x86-32/src/wl/sys/wl_linux.c
+++ b/x86-32/src/wl/sys/wl_linux.c
@@ -2693,7 +2693,7 @@ wl_tkip_keyset(wl_info_t *wl, wsec_key_t *key)
void
wl_tkip_printstats(wl_info_t *wl, bool group_key)
{
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
char debug_buf[512];
int idx;
if (wl->tkipmodops) {
@@ -2855,6 +2855,7 @@ wl_linux_watchdog(void *ctx)
return 0;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
static int
wl_proc_read(char *buffer, char **start, off_t offset, int length, int *eof, void *data)
{
@@ -2909,18 +2910,89 @@ wl_proc_write(struct file *filp, const char *buff, unsigned long length, void *d
return length;
}
+#else
+
+static int
+wl_proc_read(struct seq_file *seq, void *offset)
+{
+ wl_info_t * wl = (wl_info_t *)seq->private;
+ int bcmerror, to_user;
+
+ WL_LOCK(wl);
+ bcmerror = wlc_ioctl(wl->wlc, WLC_GET_MONITOR, &to_user, sizeof(int), NULL);
+ WL_UNLOCK(wl);
+
+ seq_printf(seq, "%d\n", to_user);
+ return bcmerror;
+}
+
+static ssize_t wl_proc_write(struct file *file, const char __user *buff,
+ size_t length, loff_t *ppos)
+{
+ struct seq_file *seq = file->private_data;
+ wl_info_t * wl = (wl_info_t *)seq->private;
+ int bcmerror, from_user = 0;
+
+ if (length != 1) {
+ WL_ERROR(("%s: Invalid data length\n", __FUNCTION__));
+ return -EIO;
+ }
+
+ if (copy_from_user(&from_user, buff, 1)) {
+ WL_ERROR(("%s: copy from user failed\n", __FUNCTION__));
+ return -EFAULT;
+ }
+
+ if (from_user >= 0x30)
+ from_user -= 0x30;
+
+ WL_LOCK(wl);
+ bcmerror = wlc_ioctl(wl->wlc, WLC_SET_MONITOR, &from_user, sizeof(int), NULL);
+ WL_UNLOCK(wl);
+
+ if (bcmerror < 0) {
+ WL_ERROR(("%s: SET_MONITOR failed with %d\n", __FUNCTION__, bcmerror));
+ return -EIO;
+ }
+ *ppos += length;
+ return length;
+}
+
+static int wl_proc_open(struct inode *inode, struct file *file)
+{
+ return single_open(file, wl_proc_read, PDE_DATA(inode));
+}
+
+static const struct file_operations wl_proc_fops = {
+ .owner = THIS_MODULE,
+ .open = wl_proc_open,
+ .read = seq_read,
+ .write = wl_proc_write,
+ .llseek = seq_lseek,
+ .release = single_release,
+};
+#endif
+
static int
wl_reg_proc_entry(wl_info_t *wl)
{
char tmp[32];
sprintf(tmp, "%s%d", HYBRID_PROC, wl->pub->unit);
- if ((wl->proc_entry = create_proc_entry(tmp, 0644, NULL)) == NULL) {
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+ wl->proc_entry = create_proc_entry(tmp, 0644, NULL);
+ if (wl->proc_entry) {
+ wl->proc_entry->read_proc = wl_proc_read;
+ wl->proc_entry->write_proc = wl_proc_write;
+ wl->proc_entry->data = wl;
+ }
+#else
+ wl->proc_entry = proc_create_data(tmp, 0644, NULL, &wl_proc_fops, wl);
+#endif
+ if (!wl->proc_entry) {
WL_ERROR(("%s: create_proc_entry %s failed\n", __FUNCTION__, tmp));
ASSERT(0);
return -1;
}
- wl->proc_entry->read_proc = wl_proc_read;
- wl->proc_entry->write_proc = wl_proc_write;
- wl->proc_entry->data = wl;
return 0;
}
diff --git a/x86-32/src/wl/sys/wl_linux.c.orig b/x86-32/src/wl/sys/wl_linux.c.orig
index 38206ab..9ee69e1 100644
--- a/x86-32/src/wl/sys/wl_linux.c.orig
+++ b/x86-32/src/wl/sys/wl_linux.c.orig
@@ -219,7 +219,7 @@ module_param(nompc, int, 0);
#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 intf_name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME);
diff --git a/x86-64/src/wl/sys/wl_linux.c b/x86-64/src/wl/sys/wl_linux.c
index 9ee69e1..409bda7 100644
--- a/x86-64/src/wl/sys/wl_linux.c
+++ b/x86-64/src/wl/sys/wl_linux.c
@@ -2693,7 +2693,7 @@ wl_tkip_keyset(wl_info_t *wl, wsec_key_t *key)
void
wl_tkip_printstats(wl_info_t *wl, bool group_key)
{
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
char debug_buf[512];
int idx;
if (wl->tkipmodops) {
@@ -2855,6 +2855,7 @@ wl_linux_watchdog(void *ctx)
return 0;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
static int
wl_proc_read(char *buffer, char **start, off_t offset, int length, int *eof, void *data)
{
@@ -2909,18 +2910,89 @@ wl_proc_write(struct file *filp, const char *buff, unsigned long length, void *d
return length;
}
+#else
+
+static int
+wl_proc_read(struct seq_file *seq, void *offset)
+{
+ wl_info_t * wl = (wl_info_t *)seq->private;
+ int bcmerror, to_user;
+
+ WL_LOCK(wl);
+ bcmerror = wlc_ioctl(wl->wlc, WLC_GET_MONITOR, &to_user, sizeof(int), NULL);
+ WL_UNLOCK(wl);
+
+ seq_printf(seq, "%d\n", to_user);
+ return bcmerror;
+}
+
+static ssize_t wl_proc_write(struct file *file, const char __user *buff,
+ size_t length, loff_t *ppos)
+{
+ struct seq_file *seq = file->private_data;
+ wl_info_t * wl = (wl_info_t *)seq->private;
+ int bcmerror, from_user = 0;
+
+ if (length != 1) {
+ WL_ERROR(("%s: Invalid data length\n", __FUNCTION__));
+ return -EIO;
+ }
+
+ if (copy_from_user(&from_user, buff, 1)) {
+ WL_ERROR(("%s: copy from user failed\n", __FUNCTION__));
+ return -EFAULT;
+ }
+
+ if (from_user >= 0x30)
+ from_user -= 0x30;
+
+ WL_LOCK(wl);
+ bcmerror = wlc_ioctl(wl->wlc, WLC_SET_MONITOR, &from_user, sizeof(int), NULL);
+ WL_UNLOCK(wl);
+
+ if (bcmerror < 0) {
+ WL_ERROR(("%s: SET_MONITOR failed with %d\n", __FUNCTION__, bcmerror));
+ return -EIO;
+ }
+ *ppos += length;
+ return length;
+}
+
+static int wl_proc_open(struct inode *inode, struct file *file)
+{
+ return single_open(file, wl_proc_read, PDE_DATA(inode));
+}
+
+static const struct file_operations wl_proc_fops = {
+ .owner = THIS_MODULE,
+ .open = wl_proc_open,
+ .read = seq_read,
+ .write = wl_proc_write,
+ .llseek = seq_lseek,
+ .release = single_release,
+};
+#endif
+
static int
wl_reg_proc_entry(wl_info_t *wl)
{
char tmp[32];
sprintf(tmp, "%s%d", HYBRID_PROC, wl->pub->unit);
- if ((wl->proc_entry = create_proc_entry(tmp, 0644, NULL)) == NULL) {
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+ wl->proc_entry = create_proc_entry(tmp, 0644, NULL);
+ if (wl->proc_entry) {
+ wl->proc_entry->read_proc = wl_proc_read;
+ wl->proc_entry->write_proc = wl_proc_write;
+ wl->proc_entry->data = wl;
+ }
+#else
+ wl->proc_entry = proc_create_data(tmp, 0644, NULL, &wl_proc_fops, wl);
+#endif
+ if (!wl->proc_entry) {
WL_ERROR(("%s: create_proc_entry %s failed\n", __FUNCTION__, tmp));
ASSERT(0);
return -1;
}
- wl->proc_entry->read_proc = wl_proc_read;
- wl->proc_entry->write_proc = wl_proc_write;
- wl->proc_entry->data = wl;
return 0;
}
diff --git a/x86-64/src/wl/sys/wl_linux.c.orig b/x86-64/src/wl/sys/wl_linux.c.orig
index 38206ab..9ee69e1 100644
--- a/x86-64/src/wl/sys/wl_linux.c.orig
+++ b/x86-64/src/wl/sys/wl_linux.c.orig
@@ -219,7 +219,7 @@ module_param(nompc, int, 0);
#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 intf_name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME);

View File

@ -19,13 +19,13 @@
################################################################################
PKG_NAME="dvbhdhomerun"
PKG_VERSION="0.0.15"
PKG_VERSION="20130704"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://sourceforge.net/projects/dvbhdhomerun/"
# PKG_URL="${DISTRO_SRC}/${PKG_NAME}-${PKG_VERSION}.tar.xz"
PKG_URL="$SOURCEFORGE_SRC/project/dvbhdhomerun/${PKG_NAME}_${PKG_VERSION}.tar.gz"
PKG_URL="${DISTRO_SRC}/${PKG_NAME}-${PKG_VERSION}.tar.xz"
# PKG_URL="$SOURCEFORGE_SRC/project/dvbhdhomerun/${PKG_NAME}_${PKG_VERSION}.tar.gz"
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="toolchain linux libhdhomerun"
PKG_PRIORITY="optional"

View File

@ -70,6 +70,7 @@ if [ "$PERF_SUPPORT" = "yes" -a "$DEVTOOLS" = "yes" ]; then
NO_LIBPYTHON=false \
PYTHON=$SYSROOT_PREFIX/usr/bin/python \
WERROR=0 \
NO_SLANG=1 \
)
fi

View File

@ -34,7 +34,7 @@ case "$LINUX" in
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.bz2"
;;
*)
PKG_VERSION="3.9.8"
PKG_VERSION="3.10"
PKG_URL="http://www.kernel.org/pub/linux/kernel/v3.x/$PKG_NAME-$PKG_VERSION.tar.xz"
;;
esac
@ -55,5 +55,5 @@ PKG_AUTORECONF="no"
if [ "$DEVTOOLS" = "yes" ]; then
PKG_DEPENDS="$PKG_DEPENDS Python"
PKG_BUILD_DEPENDS="$PKG_BUILD_DEPENDS newt slang elfutils Python"
PKG_BUILD_DEPENDS="$PKG_BUILD_DEPENDS elfutils Python"
fi

View File

@ -1,12 +1,13 @@
diff -Naur linux-2.6.34-rc7/init/main.c linux-2.6.34-rc7.patch/init/main.c
--- linux-2.6.34-rc7/init/main.c 2010-05-10 03:36:28.000000000 +0200
+++ linux-2.6.34-rc7.patch/init/main.c 2010-05-15 12:28:34.767241760 +0200
@@ -886,8 +886,14 @@
diff --git a/init/main.c b/init/main.c
index 9484f4b..db55edd 100644
--- a/init/main.c
+++ b/init/main.c
@@ -880,8 +880,14 @@ static noinline void __init kernel_init_freeable(void)
do_basic_setup();
/* Open the /dev/console on the rootfs, this should never fail */
- if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
- printk(KERN_WARNING "Warning: unable to open an initial console.\n");
- pr_err("Warning: unable to open an initial console.\n");
+ char *console = "/dev_console";
+
+ if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0) {

View File

@ -0,0 +1,18 @@
diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index b0f164b..ecb1af6 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -687,12 +687,10 @@ ifndef NO_LIBAUDIT
endif
ifndef NO_SLANG
- FLAGS_SLANG=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -I/usr/include/slang -lslang
+ FLAGS_SLANG=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -lslang
ifneq ($(call try-cc,$(SOURCE_SLANG),$(FLAGS_SLANG),libslang),y)
msg := $(warning slang not found, disables TUI support. Please install slang-devel or libslang-dev);
else
- # Fedora has /usr/include/slang/slang.h, but ubuntu /usr/include/slang.h
- BASIC_CFLAGS += -I/usr/include/slang
BASIC_CFLAGS += -DSLANG_SUPPORT
EXTLIBS += -lslang
LIB_OBJS += $(OUTPUT)ui/browser.o

View File

@ -1,7 +1,62 @@
diff -Naur linux-3.9.8/drivers/hid/hid-core.c linux-3.9.8.patch/drivers/hid/hid-core.c
--- linux-3.9.8/drivers/hid/hid-core.c 2013-06-27 19:41:32.000000000 +0200
+++ linux-3.9.8.patch/drivers/hid/hid-core.c 2013-06-29 14:25:21.160976576 +0200
@@ -1697,6 +1697,8 @@
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
index 427b759..22d320e 100644
--- a/drivers/hid/Kconfig
+++ b/drivers/hid/Kconfig
@@ -561,15 +561,6 @@ config HID_PRIMAX
Support for Primax devices that are not fully compliant with the
HID standard.
-config HID_PS3REMOTE
- tristate "Sony PS3 BD Remote Control"
- depends on HID
- ---help---
- Support for the Sony PS3 Blue-ray Disk Remote Control and Logitech
- Harmony Adapter for PS3, which connect over Bluetooth.
-
- Support for the 6-axis controllers is provided by HID_SONY.
-
config HID_ROCCAT
tristate "Roccat device support"
depends on USB_HID
@@ -594,12 +585,17 @@ config HID_SAMSUNG
Support for Samsung InfraRed remote control or keyboards.
config HID_SONY
- tristate "Sony PS3 controller"
+ tristate "Sony PS2/3 accessories"
depends on USB_HID
+ depends on NEW_LEDS
+ depends on LEDS_CLASS
---help---
- Support for Sony PS3 6-axis controllers.
-
- Support for the Sony PS3 BD Remote is provided by HID_PS3REMOTE.
+ Support for
+
+ * Sony PS3 6-axis controllers
+ * Buzz controllers
+ * Sony PS3 Blue-ray Disk Remote Control (Bluetooth)
+ * Logitech Harmony adapter for Sony Playstation 3 (Bluetooth)
config HID_SPEEDLINK
tristate "Speedlink VAD Cezanne mouse support"
diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
index b545124..419b7ca 100644
--- a/drivers/hid/Makefile
+++ b/drivers/hid/Makefile
@@ -92,7 +92,6 @@ hid-picolcd-y += hid-picolcd_debugfs.o
endif
obj-$(CONFIG_HID_PRIMAX) += hid-primax.o
-obj-$(CONFIG_HID_PS3REMOTE) += hid-ps3remote.o
obj-$(CONFIG_HID_ROCCAT) += hid-roccat.o hid-roccat-common.o \
hid-roccat-arvo.o hid-roccat-isku.o hid-roccat-kone.o \
hid-roccat-koneplus.o hid-roccat-konepure.o hid-roccat-kovaplus.o \
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index b885a28..37e35c0 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1683,6 +1683,8 @@ static const struct hid_device_id hid_have_special_driver[] = {
{ HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_IR_REMOTE) },
{ HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE) },
{ HID_USB_DEVICE(USB_VENDOR_ID_SKYCABLE, USB_DEVICE_ID_SKYCABLE_WIRELESS_PRESENTER) },
@ -10,10 +65,11 @@ diff -Naur linux-3.9.8/drivers/hid/hid-core.c linux-3.9.8.patch/drivers/hid/hid-
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS3_BDREMOTE) },
{ HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS3_CONTROLLER) },
{ HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_NAVIGATION_CONTROLLER) },
diff -Naur linux-3.9.8/drivers/hid/hid-ids.h linux-3.9.8.patch/drivers/hid/hid-ids.h
--- linux-3.9.8/drivers/hid/hid-ids.h 2013-06-27 19:41:32.000000000 +0200
+++ linux-3.9.8.patch/drivers/hid/hid-ids.h 2013-06-29 14:25:21.161976575 +0200
@@ -727,6 +727,8 @@
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 56b224e..c11cca1 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -737,6 +737,8 @@
#define USB_DEVICE_ID_SONY_PS3_BDREMOTE 0x0306
#define USB_DEVICE_ID_SONY_PS3_CONTROLLER 0x0268
#define USB_DEVICE_ID_SONY_NAVIGATION_CONTROLLER 0x042f
@ -22,9 +78,11 @@ diff -Naur linux-3.9.8/drivers/hid/hid-ids.h linux-3.9.8.patch/drivers/hid/hid-i
#define USB_VENDOR_ID_SOUNDGRAPH 0x15c2
#define USB_DEVICE_ID_SOUNDGRAPH_IMON_FIRST 0x0034
diff -Naur linux-3.9.8/drivers/hid/hid-ps3remote.c linux-3.9.8.patch/drivers/hid/hid-ps3remote.c
--- linux-3.9.8/drivers/hid/hid-ps3remote.c 2013-06-27 19:41:32.000000000 +0200
+++ linux-3.9.8.patch/drivers/hid/hid-ps3remote.c 1970-01-01 01:00:00.000000000 +0100
diff --git a/drivers/hid/hid-ps3remote.c b/drivers/hid/hid-ps3remote.c
deleted file mode 100644
index f1239d3..0000000
--- a/drivers/hid/hid-ps3remote.c
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * HID driver for Sony PS3 BD Remote Control
@ -230,9 +288,10 @@ diff -Naur linux-3.9.8/drivers/hid/hid-ps3remote.c linux-3.9.8.patch/drivers/hid
-
-MODULE_LICENSE("GPL");
-MODULE_AUTHOR("David Dillow <dave@thedillows.org>, Antonio Ospite <ospite@studenti.unina.it>");
diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-sony.c
--- linux-3.9.8/drivers/hid/hid-sony.c 2013-06-27 19:41:32.000000000 +0200
+++ linux-3.9.8.patch/drivers/hid/hid-sony.c 2013-06-29 14:26:02.738933634 +0200
diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c
index 312098e..83f9629 100644
--- a/drivers/hid/hid-sony.c
+++ b/drivers/hid/hid-sony.c
@@ -1,11 +1,13 @@
/*
- * HID driver for some sony "special" devices
@ -278,7 +337,7 @@ diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-
static const u8 sixaxis_rdesc_fixup[] = {
0x95, 0x13, 0x09, 0x01, 0x81, 0x02, 0x95, 0x0C,
@@ -55,10 +68,214 @@
@@ -55,10 +68,214 @@ static const u8 sixaxis_rdesc_fixup2[] = {
0xb1, 0x02, 0xc0, 0xc0,
};
@ -441,13 +500,13 @@ diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-
unsigned long quirks;
+
+ void *extra;
+};
+
};
+struct buzz_extra {
+ int led_state;
+ struct led_classdev *leds[4];
};
+};
+
+static __u8 *ps3remote_fixup(struct hid_device *hdev, __u8 *rdesc,
+ unsigned int *rsize)
+{
@ -493,7 +552,7 @@ diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-
/* Sony Vaio VGX has wrongly mouse pointer declared as constant */
static __u8 *sony_report_fixup(struct hid_device *hdev, __u8 *rdesc,
unsigned int *rsize)
@@ -95,6 +312,10 @@
@@ -95,6 +312,10 @@ static __u8 *sony_report_fixup(struct hid_device *hdev, __u8 *rdesc,
*rsize = sizeof(sixaxis_rdesc_fixup2);
memcpy(rdesc, &sixaxis_rdesc_fixup2, *rsize);
}
@ -504,7 +563,7 @@ diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-
return rdesc;
}
@@ -117,6 +338,41 @@
@@ -117,6 +338,41 @@ static int sony_raw_event(struct hid_device *hdev, struct hid_report *report,
return 0;
}
@ -546,7 +605,7 @@ diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-
/*
* The Sony Sixaxis does not handle HID Output Reports on the Interrupt EP
* like it should according to usbhid/hid-core.c::usbhid_output_raw_report()
@@ -192,11 +448,181 @@
@@ -192,11 +448,181 @@ static int sixaxis_set_operational_bt(struct hid_device *hdev)
return hdev->hid_output_raw_report(hdev, buf, sizeof(buf), HID_FEATURE_REPORT);
}
@ -565,7 +624,7 @@ diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-
+ value[4] = (leds & 8) ? 0xff : 0x00;
+ value[5] = 0x00;
+ value[6] = 0x00;
+ usbhid_submit_report(hdev, report, USB_DIR_OUT);
+ hid_hw_request(hdev, report, HID_REQ_SET_REPORT);
+}
+
+static void buzz_led_set_brightness(struct led_classdev *led,
@ -728,7 +787,7 @@ diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-
sc = kzalloc(sizeof(*sc), GFP_KERNEL);
if (sc == NULL) {
@@ -213,8 +639,14 @@
@@ -213,8 +639,14 @@ static int sony_probe(struct hid_device *hdev, const struct hid_device_id *id)
goto err_free;
}
@ -745,7 +804,7 @@ diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-
if (ret) {
hid_err(hdev, "hw start failed\n");
goto err_free;
@@ -226,6 +658,8 @@
@@ -226,6 +658,8 @@ static int sony_probe(struct hid_device *hdev, const struct hid_device_id *id)
}
else if (sc->quirks & SIXAXIS_CONTROLLER_BT)
ret = sixaxis_set_operational_bt(hdev);
@ -754,7 +813,7 @@ diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-
else
ret = 0;
@@ -242,8 +676,13 @@
@@ -242,8 +676,13 @@ err_free:
static void sony_remove(struct hid_device *hdev)
{
@ -769,7 +828,7 @@ diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-
}
static const struct hid_device_id sony_devices[] = {
@@ -257,17 +696,30 @@
@@ -257,17 +696,30 @@ static const struct hid_device_id sony_devices[] = {
.driver_data = VAIO_RDESC_CONSTANT },
{ HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_VAIO_VGP_MOUSE),
.driver_data = VAIO_RDESC_CONSTANT },
@ -806,55 +865,3 @@ diff -Naur linux-3.9.8/drivers/hid/hid-sony.c linux-3.9.8.patch/drivers/hid/hid-
};
module_hid_driver(sony_driver);
diff -Naur linux-3.9.8/drivers/hid/Kconfig linux-3.9.8.patch/drivers/hid/Kconfig
--- linux-3.9.8/drivers/hid/Kconfig 2013-06-27 19:41:32.000000000 +0200
+++ linux-3.9.8.patch/drivers/hid/Kconfig 2013-06-29 14:25:21.173976563 +0200
@@ -550,15 +550,6 @@
Support for Primax devices that are not fully compliant with the
HID standard.
-config HID_PS3REMOTE
- tristate "Sony PS3 BD Remote Control"
- depends on BT_HIDP
- ---help---
- Support for the Sony PS3 Blue-ray Disk Remote Control and Logitech
- Harmony Adapter for PS3, which connect over Bluetooth.
-
- Support for the 6-axis controllers is provided by HID_SONY.
-
config HID_ROCCAT
tristate "Roccat device support"
depends on USB_HID
@@ -583,12 +574,17 @@
Support for Samsung InfraRed remote control or keyboards.
config HID_SONY
- tristate "Sony PS3 controller"
+ tristate "Sony PS2/3 accessories"
depends on USB_HID
+ depends on NEW_LEDS
+ depends on LEDS_CLASS
---help---
- Support for Sony PS3 6-axis controllers.
-
- Support for the Sony PS3 BD Remote is provided by HID_PS3REMOTE.
+ Support for
+
+ * Sony PS3 6-axis controllers
+ * Buzz controllers
+ * Sony PS3 Blue-ray Disk Remote Control (Bluetooth)
+ * Logitech Harmony adapter for Sony Playstation 3 (Bluetooth)
config HID_SPEEDLINK
tristate "Speedlink VAD Cezanne mouse support"
diff -Naur linux-3.9.8/drivers/hid/Makefile linux-3.9.8.patch/drivers/hid/Makefile
--- linux-3.9.8/drivers/hid/Makefile 2013-06-27 19:41:32.000000000 +0200
+++ linux-3.9.8.patch/drivers/hid/Makefile 2013-06-29 14:25:21.174976562 +0200
@@ -91,7 +91,6 @@
endif
obj-$(CONFIG_HID_PRIMAX) += hid-primax.o
-obj-$(CONFIG_HID_PS3REMOTE) += hid-ps3remote.o
obj-$(CONFIG_HID_ROCCAT) += hid-roccat.o hid-roccat-common.o \
hid-roccat-arvo.o hid-roccat-isku.o hid-roccat-kone.o \
hid-roccat-koneplus.o hid-roccat-kovaplus.o hid-roccat-lua.o \

View File

@ -0,0 +1,14 @@
diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
index 2cc8ec7..985fa11 100644
--- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
+++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
@@ -1408,6 +1408,9 @@ static const struct usb_device_id rtl28xxu_id_table[] = {
&rtl2832u_props, "Compro VideoMate U620F", NULL) },
{ DVB_USB_DEVICE(USB_VID_KWORLD_2, 0xd394,
&rtl2832u_props, "MaxMedia HU394-T", NULL) },
+ { DVB_USB_DEVICE(USB_VID_GTEK, 0xa803,
+ &rtl2832u_props, "Realtek RTL2832U reference design", NULL) },
+
{ }
};
MODULE_DEVICE_TABLE(usb, rtl28xxu_id_table);

View File

@ -4757,8 +4757,8 @@ diff -urN a/drivers/media/pci/cx23885/cx23885-dvb.c b/drivers/media/pci/cx23885/
#include "mt2063.h"
-#include "stv090x.h"
-#include "stb6100.h"
+#include "stv090x.h"
+#include "stb6100.h"
+#include "stv090x.h"
+#include "stb6100.h"
#include "stb6100_cfg.h"
#include "tda10071.h"
#include "a8293.h"
@ -4882,40 +4882,40 @@ diff -urN a/drivers/media/pci/cx23885/cx23885-dvb.c b/drivers/media/pci/cx23885/
+ .ts_mode = 3,
+};
+
+static struct stv090x_config prof_8000_stv090x_config = {
+ .device = STV0903,
+ .demod_mode = STV090x_SINGLE,
+ .clk_mode = STV090x_CLK_EXT,
+ .xtal = 27000000,
+ .address = 0x6A,
+ .ts1_mode = STV090x_TSMODE_PARALLEL_PUNCTURED,
+ .repeater_level = STV090x_RPTLEVEL_64,
+ .adc1_range = STV090x_ADC_2Vpp,
+ .diseqc_envelope_mode = false,
+
+ .tuner_get_frequency = stb6100_get_frequency,
+ .tuner_set_frequency = stb6100_set_frequency,
+ .tuner_set_bandwidth = stb6100_set_bandwidth,
+ .tuner_get_bandwidth = stb6100_get_bandwidth,
+};
+
+static struct stb6100_config prof_8000_stb6100_config = {
+ .tuner_address = 0x60,
+ .refclock = 27000000,
+};
+
+static int p8000_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
+{
+ struct cx23885_tsport *port = fe->dvb->priv;
+ struct cx23885_dev *dev = port->dev;
+
+ if (voltage == SEC_VOLTAGE_18)
+ cx_write(MC417_RWD, 0x00001e00);
+ else if (voltage == SEC_VOLTAGE_13)
+ cx_write(MC417_RWD, 0x00001a00);
+ else
+ cx_write(MC417_RWD, 0x00001800);
+ return 0;
+static struct stv090x_config prof_8000_stv090x_config = {
+ .device = STV0903,
+ .demod_mode = STV090x_SINGLE,
+ .clk_mode = STV090x_CLK_EXT,
+ .xtal = 27000000,
+ .address = 0x6A,
+ .ts1_mode = STV090x_TSMODE_PARALLEL_PUNCTURED,
+ .repeater_level = STV090x_RPTLEVEL_64,
+ .adc1_range = STV090x_ADC_2Vpp,
+ .diseqc_envelope_mode = false,
+
+ .tuner_get_frequency = stb6100_get_frequency,
+ .tuner_set_frequency = stb6100_set_frequency,
+ .tuner_set_bandwidth = stb6100_set_bandwidth,
+ .tuner_get_bandwidth = stb6100_get_bandwidth,
+};
+
+static struct stb6100_config prof_8000_stb6100_config = {
+ .tuner_address = 0x60,
+ .refclock = 27000000,
+};
+
+static int p8000_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
+{
+ struct cx23885_tsport *port = fe->dvb->priv;
+ struct cx23885_dev *dev = port->dev;
+
+ if (voltage == SEC_VOLTAGE_18)
+ cx_write(MC417_RWD, 0x00001e00);
+ else if (voltage == SEC_VOLTAGE_13)
+ cx_write(MC417_RWD, 0x00001a00);
+ else
+ cx_write(MC417_RWD, 0x00001800);
+ return 0;
+}
+
static int cx23885_dvb_set_frontend(struct dvb_frontend *fe)
@ -4994,22 +4994,22 @@ diff -urN a/drivers/media/pci/cx23885/cx23885-dvb.c b/drivers/media/pci/cx23885/
}
break;
+
+ case CX23885_BOARD_PROF_8000:
+ i2c_bus = &dev->i2c_bus[0];
+
+ fe0->dvb.frontend = dvb_attach(stv090x_attach,
+ &prof_8000_stv090x_config,
+ &i2c_bus->i2c_adap,
+ STV090x_DEMODULATOR_0);
+ if (fe0->dvb.frontend != NULL) {
+ if (!dvb_attach(stb6100_attach,
+ fe0->dvb.frontend,
+ &prof_8000_stb6100_config,
+ &i2c_bus->i2c_adap))
+ goto frontend_detach;
+
+ fe0->dvb.frontend->ops.set_voltage = p8000_set_voltage;
+ }
+ case CX23885_BOARD_PROF_8000:
+ i2c_bus = &dev->i2c_bus[0];
+
+ fe0->dvb.frontend = dvb_attach(stv090x_attach,
+ &prof_8000_stv090x_config,
+ &i2c_bus->i2c_adap,
+ STV090x_DEMODULATOR_0);
+ if (fe0->dvb.frontend != NULL) {
+ if (!dvb_attach(stb6100_attach,
+ fe0->dvb.frontend,
+ &prof_8000_stb6100_config,
+ &i2c_bus->i2c_adap))
+ goto frontend_detach;
+
+ fe0->dvb.frontend->ops.set_voltage = p8000_set_voltage;
+ }
+ break;
case CX23885_BOARD_HAUPPAUGE_HVR4400:
i2c_bus = &dev->i2c_bus[0];

View File

@ -0,0 +1,78 @@
commit aad0b407edfef6e2527a9bb877ce754e1efb7b10
Author: Stefan Saraev <stefan@saraev.ca>
Date: Mon Jul 1 13:06:10 2013 +0300
ALSA: hda - Avoid outputting HDMI audio before prepare() and after close()
adapted to 3.10
From a6024295fd3290a8c9c5519a03316081ee82378a Mon Sep 17 00:00:00 2001
From: Anssi Hannula <anssi.hannula@iki.fi>
Date: Sat, 16 Feb 2013 17:42:46 +0200
Subject: [PATCH] ALSA: hda - Avoid outputting HDMI audio before prepare() and
after close()
Some HDMI codecs (at least NVIDIA 0x10de000b:0x10de0101:0x100100) start
transmitting an empty audio stream as soon as PIN_OUT and AC_DIG1_ENABLE
are enabled.
Since commit 6169b673618bf0b2518ce413b54925782a603f06 ("ALSA: hda -
Always turn on pins for HDMI/DP") this happens at first open() time, and
will continue even after close().
Additionally, some codecs (at least Intel PantherPoint HDMI) currently
continue transmitting HDMI audio even after close() in case some actual
audio was output after open() (this happens regardless of PIN_OUT).
Empty HDMI audio transmission when not intended has the effect that a
possible HDMI audio sink/receiver may prefer the empty HDMI audio stream
over an actual audio stream on its S/PDIF inputs.
To avoid the issue before first prepare(), set stream format to 0 on
codec initialization. 0 is not a valid format value for HDMI and will
prevent the audio stream from being output.
Additionally, at close() time, make sure that the stream is cleaned up.
This will ensure that the format is reset to 0 at that time, preventing
audio from being output in that case.
Thanks to OpenELEC developers and users for their help in investigating
this issue on the affected NVIDIA "ION2" hardware. Testing of the final
version on NVIDIA ION2 was done by OpenELEC user "MrXIII". Testing on
Intel PantherPoint was done by myself.
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Cc: stable@vger.kernel.org
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index e12f7a0..9bfdd51 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -1360,6 +1360,14 @@ static int hdmi_add_cvt(struct hda_codec *codec, hda_nid_t cvt_nid)
if (err < 0)
return err;
+ /*
+ * Some HDMI codecs (at least NVIDIA 0x10de000b:0x10de0101:0x100100)
+ * start transmitting an empty audio stream as soon as PIN_OUT and
+ * AC_DIG1_ENABLE are enabled, which happens at open() time.
+ * To avoid that, set format to 0, which is not valid for HDMI.
+ */
+ snd_hda_codec_write(codec, cvt_nid, 0, AC_VERB_SET_STREAM_FORMAT, 0);
+
if (spec->num_cvts < ARRAY_SIZE(spec->cvt_nids))
spec->cvt_nids[spec->num_cvts] = cvt_nid;
spec->num_cvts++;
@@ -1474,6 +1482,12 @@ static int hdmi_pcm_close(struct hda_pcm_stream *hinfo,
struct hdmi_spec_per_pin *per_pin;
if (hinfo->nid) {
+ /*
+ * Make sure no empty audio is output after this point by
+ * setting stream format to 0, which is not valid for HDMI.
+ */
+ __snd_hda_codec_cleanup_stream(codec, hinfo->nid, 1);
+
cvt_idx = cvt_nid_to_cvt_index(spec, hinfo->nid);
if (snd_BUG_ON(cvt_idx < 0))
return -EINVAL;

View File

@ -84,7 +84,7 @@ diff -NurEbBw --strip-trailing-cr linux-3.4-r1/drivers/media/common/b2c2/flexcop
+ fc->dev_type = FC_SKYS2_REV33;
+ fc->fc_i2c_adap[2].no_base_addr = 1;
+ if ( (dvb_attach(isl6421_attach, fc->fe,
+ &fc->fc_i2c_adap[2].i2c_adap, 0x08, 0, 0) == NULL) ) {
+ &fc->fc_i2c_adap[2].i2c_adap, 0x08, 0, 0, false) == NULL) ) {
+ err("ISL6421 could NOT be attached!");
+ return 0;
+ }

View File

@ -1,17 +0,0 @@
diff -Naur linux-3.9.4/tools/perf/Makefile linux-3.9.4.patch/tools/perf/Makefile
--- linux-3.9.4/tools/perf/Makefile 2013-05-24 20:45:59.000000000 +0200
+++ linux-3.9.4.patch/tools/perf/Makefile 2013-05-30 23:57:04.135031372 +0200
@@ -668,12 +668,10 @@
endif
ifndef NO_NEWT
- FLAGS_NEWT=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -lnewt
+ FLAGS_NEWT=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -lnewt -lslang
ifneq ($(call try-cc,$(SOURCE_NEWT),$(FLAGS_NEWT),libnewt),y)
msg := $(warning newt not found, disables TUI support. Please install newt-devel or libnewt-dev);
else
- # Fedora has /usr/include/slang/slang.h, but ubuntu /usr/include/slang.h
- BASIC_CFLAGS += -I/usr/include/slang
BASIC_CFLAGS += -DNEWT_SUPPORT
EXTLIBS += -lnewt -lslang
LIB_OBJS += $(OUTPUT)ui/browser.o

View File

@ -1,12 +0,0 @@
diff -Naur linux-3.9.5/drivers/media/usb/dvb-usb-v2/rtl28xxu.c linux-3.9.5.patch/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
--- linux-3.9.5/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2013-06-07 21:54:00.000000000 +0200
+++ linux-3.9.5.patch/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2013-06-13 14:48:38.110705193 +0200
@@ -1372,6 +1372,8 @@
&rtl2832u_props, "Digivox Micro Hd", NULL) },
{ DVB_USB_DEVICE(USB_VID_COMPRO, 0x0620,
&rtl2832u_props, "Compro VideoMate U620F", NULL) },
+ { DVB_USB_DEVICE(USB_VID_GTEK, 0xa803,
+ &rtl2832u_props, "Realtek RTL2832U reference design", NULL) },
{ }
};
MODULE_DEVICE_TABLE(usb, rtl28xxu_id_table);

View File

@ -1,53 +0,0 @@
diff -Naur linux-3.7.2/drivers/media/usb/dvb-usb/dw2102.c linux-3.7.2.patch/drivers/media/usb/dvb-usb/dw2102.c
--- linux-3.7.2/drivers/media/usb/dvb-usb/dw2102.c 2013-01-11 18:19:28.000000000 +0100
+++ linux-3.7.2.patch/drivers/media/usb/dvb-usb/dw2102.c 2013-01-16 10:35:01.131342123 +0100
@@ -1179,6 +1179,13 @@
u8 ibuf[] = { 0 };
if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0)
+ err("command 0x0e transfer failed.");
+
+ obuf[0] = 0xe;
+ obuf[1] = 0x02;
+ obuf[2] = 1;
+
+ if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0)
err("command 0x0e transfer failed.");
obuf[0] = 0xe;
@@ -1444,6 +1451,7 @@
PROF_7500,
GENIATECH_SU3000,
TERRATEC_CINERGY_S2,
+ TERRATEC_CINERGY_S2_R2,
TEVII_S480_1,
TEVII_S480_2,
X3M_SPC1400HD,
@@ -1462,6 +1470,7 @@
[PROF_7500] = {USB_DEVICE(0x3034, 0x7500)},
[GENIATECH_SU3000] = {USB_DEVICE(0x1f4d, 0x3000)},
[TERRATEC_CINERGY_S2] = {USB_DEVICE(USB_VID_TERRATEC, 0x00a8)},
+ [TERRATEC_CINERGY_S2_R2] = {USB_DEVICE(USB_VID_TERRATEC, 0x00b0)},
[TEVII_S480_1] = {USB_DEVICE(0x9022, USB_PID_TEVII_S480_1)},
[TEVII_S480_2] = {USB_DEVICE(0x9022, USB_PID_TEVII_S480_2)},
[X3M_SPC1400HD] = {USB_DEVICE(0x1f4d, 0x3100)},
@@ -1853,7 +1862,7 @@
}},
}
},
- .num_device_descs = 3,
+ .num_device_descs = 4,
.devices = {
{ "SU3000HD DVB-S USB2.0",
{ &dw2102_table[GENIATECH_SU3000], NULL },
@@ -1867,6 +1876,10 @@
{ &dw2102_table[X3M_SPC1400HD], NULL },
{ NULL },
},
+ { "Terratec Cinergy S2 USB HD Rev.2",
+ { &dw2102_table[TERRATEC_CINERGY_S2_R2], NULL },
+ { NULL },
+ },
}
};

View File

@ -1,76 +0,0 @@
From a6024295fd3290a8c9c5519a03316081ee82378a Mon Sep 17 00:00:00 2001
From: Anssi Hannula <anssi.hannula@iki.fi>
Date: Sat, 16 Feb 2013 17:42:46 +0200
Subject: [PATCH] ALSA: hda - Avoid outputting HDMI audio before prepare() and
after close()
Some HDMI codecs (at least NVIDIA 0x10de000b:0x10de0101:0x100100) start
transmitting an empty audio stream as soon as PIN_OUT and AC_DIG1_ENABLE
are enabled.
Since commit 6169b673618bf0b2518ce413b54925782a603f06 ("ALSA: hda -
Always turn on pins for HDMI/DP") this happens at first open() time, and
will continue even after close().
Additionally, some codecs (at least Intel PantherPoint HDMI) currently
continue transmitting HDMI audio even after close() in case some actual
audio was output after open() (this happens regardless of PIN_OUT).
Empty HDMI audio transmission when not intended has the effect that a
possible HDMI audio sink/receiver may prefer the empty HDMI audio stream
over an actual audio stream on its S/PDIF inputs.
To avoid the issue before first prepare(), set stream format to 0 on
codec initialization. 0 is not a valid format value for HDMI and will
prevent the audio stream from being output.
Additionally, at close() time, make sure that the stream is cleaned up.
This will ensure that the format is reset to 0 at that time, preventing
audio from being output in that case.
Thanks to OpenELEC developers and users for their help in investigating
this issue on the affected NVIDIA "ION2" hardware. Testing of the final
version on NVIDIA ION2 was done by OpenELEC user "MrXIII". Testing on
Intel PantherPoint was done by myself.
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Cc: stable@vger.kernel.org
---
sound/pci/hda/patch_hdmi.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index 807a2aa..bcb83c7 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -1253,6 +1253,14 @@ static int hdmi_add_cvt(struct hda_codec *codec, hda_nid_t cvt_nid)
if (err < 0)
return err;
+ /*
+ * Some HDMI codecs (at least NVIDIA 0x10de000b:0x10de0101:0x100100)
+ * start transmitting an empty audio stream as soon as PIN_OUT and
+ * AC_DIG1_ENABLE are enabled, which happens at open() time.
+ * To avoid that, set format to 0, which is not valid for HDMI.
+ */
+ snd_hda_codec_write(codec, cvt_nid, 0, AC_VERB_SET_STREAM_FORMAT, 0);
+
spec->num_cvts++;
return 0;
@@ -1372,6 +1380,12 @@ static int hdmi_pcm_close(struct hda_pcm_stream *hinfo,
struct hdmi_spec_per_pin *per_pin;
if (hinfo->nid) {
+ /*
+ * Make sure no empty audio is output after this point by
+ * setting stream format to 0, which is not valid for HDMI.
+ */
+ __snd_hda_codec_cleanup_stream(codec, hinfo->nid, 1);
+
cvt_idx = cvt_nid_to_cvt_index(spec, hinfo->nid);
if (snd_BUG_ON(cvt_idx < 0))
return -EINVAL;
--
1.7.10

View File

@ -45,7 +45,7 @@ get_target() {
}
# hard reset
if [ -f /storage/.cache/reset_oe ] ; then
if [ -f $CONFIG_CACHE/reset_oe ] ; then
get_target
if [ ! -z $target ] ; then
echo "hard resetting..."
@ -62,7 +62,7 @@ if [ -f /storage/.cache/reset_oe ] ; then
fi
# soft reset
if [ -f /storage/.cache/reset_xbmc ] ; then
if [ -f $CONFIG_CACHE/reset_xbmc ] ; then
get_target
if [ ! -z $target ] ; then
echo "soft resetting..."

View File

@ -31,7 +31,7 @@ if [ -e "$BACKUP_FILE" ] ; then
echo OK
echo -en "restoring.. this may take long time to complete, please wait.. "
rm -rf /storage/.xbmc &>/dev/null
rm -rf /storage/.cache &>/dev/null
rm -rf $CONFIG_CACHE &>/dev/null
rm -rf /storage/.config &>/dev/null
tar xf $BACKUP_FILE -C / &>/dev/null
rm -f $BACKUP_FILE &>/dev/null

View File

@ -0,0 +1,345 @@
commit f014d5dcc803d705355148efe2ec720217880d0a
Author: Stefan Saraev <stefan@saraev.ca>
Date: Mon Jul 1 19:57:33 2013 +0300
backport latest changes
added latest changes up to https://github.com/afedchin/xbmc-addon-iptvsimple/commit/a716cdc3cdf44
all credit goes to Anton Fedchin <afedchin@ruswizards.com>
diff --git a/addons/pvr.iptvsimple/addon/addon.xml.in b/addons/pvr.iptvsimple/addon/addon.xml.in
index 185c3ab..d4692f8 100644
--- a/addons/pvr.iptvsimple/addon/addon.xml.in
+++ b/addons/pvr.iptvsimple/addon/addon.xml.in
@@ -6,7 +6,7 @@
provider-name="nightik">
<requires>
<c-pluff version="0.1"/>
- <import addon="xbmc.pvr" version="1.6.0"/>
+ <import addon="xbmc.pvr" version="1.6.1"/>
</requires>
<extension
point="xbmc.pvrclient"
diff --git a/addons/pvr.iptvsimple/addon/resources/language/English/strings.po b/addons/pvr.iptvsimple/addon/resources/language/English/strings.po
index d676f4d..98763a4 100644
--- a/addons/pvr.iptvsimple/addon/resources/language/English/strings.po
+++ b/addons/pvr.iptvsimple/addon/resources/language/English/strings.po
@@ -32,7 +32,7 @@ msgid "Remote Path (Internet address)"
msgstr ""
msgctxt "#30010"
-msgid "Play List Settings"
+msgid "General"
msgstr ""
msgctxt "#30011"
@@ -43,6 +43,10 @@ msgctxt "#30012"
msgid "M3U Play List URL"
msgstr ""
+msgctxt "#30013"
+msgid "Numbering channels starts at"
+msgstr ""
+
msgctxt "#30020"
msgid "EPG Settings"
msgstr ""
diff --git a/addons/pvr.iptvsimple/addon/resources/language/French/strings.po b/addons/pvr.iptvsimple/addon/resources/language/French/strings.po
index 73663c6..08f9342 100644
--- a/addons/pvr.iptvsimple/addon/resources/language/French/strings.po
+++ b/addons/pvr.iptvsimple/addon/resources/language/French/strings.po
@@ -31,8 +31,8 @@ msgid "Remote Path (Internet address)"
msgstr "Chemin d'accès (adresse internet)"
msgctxt "#30010"
-msgid "Play List Settings"
-msgstr "Paramètres de la Playlist"
+msgid "General"
+msgstr "General"
msgctxt "#30011"
msgid "M3U Play List Path"
@@ -42,6 +42,10 @@ msgctxt "#30012"
msgid "M3U Play List URL"
msgstr "URL de la playlist M3U"
+msgctxt "#30013"
+msgid "Numbering channels starts at"
+msgstr "Numbering channels starts at"
+
msgctxt "#30020"
msgid "EPG Settings"
msgstr "Paramètres EPG"
diff --git a/addons/pvr.iptvsimple/addon/resources/language/Russian/strings.po b/addons/pvr.iptvsimple/addon/resources/language/Russian/strings.po
index a7f577f..fe15e49 100644
--- a/addons/pvr.iptvsimple/addon/resources/language/Russian/strings.po
+++ b/addons/pvr.iptvsimple/addon/resources/language/Russian/strings.po
@@ -30,8 +30,8 @@ msgid "Remote Path (Internet address)"
msgstr "Удалённый путь (сеть Интернет)"
msgctxt "#30010"
-msgid "Play List Settings"
-msgstr "Установки плейлиста"
+msgid "General"
+msgstr "Основные"
msgctxt "#30011"
msgid "M3U Play List Path"
@@ -41,6 +41,10 @@ msgctxt "#30012"
msgid "M3U Play List URL"
msgstr "Ссылка на M3U"
+msgctxt "#30013"
+msgid "Numbering channels starts at"
+msgstr "Начинать нумерацию каналов с"
+
msgctxt "#30020"
msgid "EPG Settings"
msgstr "Установки EPG"
diff --git a/addons/pvr.iptvsimple/addon/resources/settings.xml b/addons/pvr.iptvsimple/addon/resources/settings.xml
index 63d42a6..845572f 100644
--- a/addons/pvr.iptvsimple/addon/resources/settings.xml
+++ b/addons/pvr.iptvsimple/addon/resources/settings.xml
@@ -1,18 +1,28 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<settings>
- <setting id="sep1" label="30010" type="lsep"/>
- <setting id="m3uPathType" type="enum" label="30000" lvalues="30001|30002" default="1" />
- <setting id="m3uPath" type="file" label="30011" default="" visible="eq(-1,0)"/>
- <setting id="m3uUrl" type="text" label="30012" default="" visible="eq(-2,1)"/>
+ <!-- M3U -->
+ <category label="30010">
+ <setting id="sep1" label="30010" type="lsep"/>
+ <setting id="m3uPathType" type="enum" label="30000" lvalues="30001|30002" default="1" />
+ <setting id="m3uPath" type="file" label="30011" default="" visible="eq(-1,0)"/>
+ <setting id="m3uUrl" type="text" label="30012" default="" visible="eq(-2,1)"/>
+ <setting id="startNum" type="number" label="30013" default="1" />
+ </category>
- <setting id="sep2" label="30020" type="lsep"/>
- <setting id="epgPathType" type="enum" label="30000" lvalues="30001|30002" default="1" />
- <setting id="epgPath" type="file" label="30021" default="" visible="eq(-1,0)"/>
- <setting id="epgUrl" type="text" label="30022" default="" visible="eq(-2,1)"/>
-<!-- <setting id="epgTimeShift" type="slider" label="30024" default="0" range="-12,.5,12" option="float"/>-->
- <setting id="epgTimeShift_" type="enum" label="30024" default="12" values="-12|-11|-10|-9|-8|-7|-6|-5|-4|-3|-2|-1|0|+1|+2|+3|+4|+5|+6|+7|+8|+9|+10|+11|+12"/>-->
- <setting id="epgTSOverride" type="bool" label="30023" default="false"/>
+ <!-- EPG -->
+ <category label="30020">
+ <setting id="sep2" label="30020" type="lsep"/>
+ <setting id="epgPathType" type="enum" label="30000" lvalues="30001|30002" default="1" />
+ <setting id="epgPath" type="file" label="30021" default="" visible="eq(-1,0)"/>
+ <setting id="epgUrl" type="text" label="30022" default="" visible="eq(-2,1)"/>
+<!-- <setting id="epgTimeShift" type="slider" label="30024" default="0" range="-12,.5,12" option="float"/>-->
+ <setting id="epgTimeShift_" type="enum" label="30024" default="12" values="-12|-11|-10|-9|-8|-7|-6|-5|-4|-3|-2|-1|0|+1|+2|+3|+4|+5|+6|+7|+8|+9|+10|+11|+12"/>-->
+ <setting id="epgTSOverride" type="bool" label="30023" default="false"/>
+ </category>
- <setting id="sep3" label="30030" type="lsep"/>
- <setting id="logoPath" type="folder" label="30031" default="" />
+ <!-- Logos -->
+ <category label="30030">
+ <setting id="sep3" label="30030" type="lsep"/>
+ <setting id="logoPath" type="folder" label="30031" default="" />
+ </category>
</settings>
diff --git a/addons/pvr.iptvsimple/src/PVRIptvData.cpp b/addons/pvr.iptvsimple/src/PVRIptvData.cpp
index 4ca5265..24e3cee 100644
--- a/addons/pvr.iptvsimple/src/PVRIptvData.cpp
+++ b/addons/pvr.iptvsimple/src/PVRIptvData.cpp
@@ -155,16 +155,20 @@ bool PVRIptvData::LoadEPG(time_t iStart, time_t iEnd)
if (buffer[0] != '\x3C' || buffer[1] != '\x3F' || buffer[2] != '\x78' ||
buffer[3] != '\x6D' || buffer[4] != '\x6C')
{
- // check for tar archive
- if (strcmp(buffer + 0x101, "ustar") || strcmp(buffer + 0x101, "GNUtar"))
+ // check for BOM
+ if (buffer[0] != '\xEF' || buffer[1] != '\xBB' || buffer[2] != '\xBF')
{
- buffer += 0x200; // RECORDSIZE = 512
- }
- else
- {
- XBMC->Log(LOG_ERROR, "Invalid EPG file '%s': unable to decompress file.", m_strXMLTVUrl.c_str());
- m_bEGPLoaded = true;
- return false;
+ // check for tar archive
+ if (strcmp(buffer + 0x101, "ustar") || strcmp(buffer + 0x101, "GNUtar"))
+ {
+ buffer += 0x200; // RECORDSIZE = 512
+ }
+ else
+ {
+ XBMC->Log(LOG_ERROR, "Invalid EPG file '%s': unable to parse file.", m_strXMLTVUrl.c_str());
+ m_bEGPLoaded = true;
+ return false;
+ }
}
}
@@ -321,10 +325,10 @@ bool PVRIptvData::LoadPlayList(void)
/* load channels */
bool bFirst = true;
- int iUniqueChannelId = 0;
+ int iChannelIndex = 0;
int iUniqueGroupId = 0;
int iCurrentGroupId = 0;
- int iChannelNum = 0;
+ int iChannelNum = g_iStartNumber;
int iEPGTimeShift = 0;
PVRIptvChannel tmpChannel;
@@ -446,8 +450,8 @@ bool PVRIptvData::LoadPlayList(void)
else if (strLine[0] != '#')
{
PVRIptvChannel channel;
- channel.iUniqueId = ++iUniqueChannelId;
- channel.iChannelNumber = ++iChannelNum;
+ channel.iUniqueId = GetChannelId(tmpChannel.strChannelName.c_str(), strLine);
+ channel.iChannelNumber = iChannelNum++;
channel.strTvgId = tmpChannel.strTvgId;
channel.strChannelName = tmpChannel.strChannelName;
channel.strTvgName = tmpChannel.strTvgName;
@@ -460,10 +464,11 @@ bool PVRIptvData::LoadPlayList(void)
if (iCurrentGroupId > 0)
{
channel.bRadio = m_groups.at(iCurrentGroupId - 1).bRadio;
- m_groups.at(iCurrentGroupId - 1).members.push_back(channel.iChannelNumber);
+ m_groups.at(iCurrentGroupId - 1).members.push_back(iChannelIndex);
}
m_channels.push_back(channel);
+ iChannelIndex++;
tmpChannel.strTvgId = "";
tmpChannel.strChannelName = "";
@@ -568,26 +573,24 @@ PVR_ERROR PVRIptvData::GetChannelGroups(ADDON_HANDLE handle, bool bRadio)
PVR_ERROR PVRIptvData::GetChannelGroupMembers(ADDON_HANDLE handle, const PVR_CHANNEL_GROUP &group)
{
- for (unsigned int iGroupPtr = 0; iGroupPtr < m_groups.size(); iGroupPtr++)
+ PVRIptvChannelGroup *myGroup;
+ if ((myGroup = FindGroup(group.strGroupName)) != NULL)
{
- PVRIptvChannelGroup &myGroup = m_groups.at(iGroupPtr);
- if (!strcmp(myGroup.strGroupName.c_str(),group.strGroupName))
+ for (unsigned int iPtr = 0; iPtr < myGroup->members.size(); iPtr++)
{
- for (unsigned int iChannelPtr = 0; iChannelPtr < myGroup.members.size(); iChannelPtr++)
- {
- int iId = myGroup.members.at(iChannelPtr) - 1;
- if (iId < 0 || iId > (int)m_channels.size() - 1)
- continue;
- PVRIptvChannel &channel = m_channels.at(iId);
- PVR_CHANNEL_GROUP_MEMBER xbmcGroupMember;
- memset(&xbmcGroupMember, 0, sizeof(PVR_CHANNEL_GROUP_MEMBER));
-
- strncpy(xbmcGroupMember.strGroupName, group.strGroupName, sizeof(xbmcGroupMember.strGroupName) - 1);
- xbmcGroupMember.iChannelUniqueId = channel.iUniqueId;
- xbmcGroupMember.iChannelNumber = channel.iChannelNumber;
-
- PVR->TransferChannelGroupMember(handle, &xbmcGroupMember);
- }
+ int iIndex = myGroup->members.at(iPtr);
+ if (iIndex < 0 || iIndex >= (int) m_channels.size())
+ continue;
+
+ PVRIptvChannel &channel = m_channels.at(iIndex);
+ PVR_CHANNEL_GROUP_MEMBER xbmcGroupMember;
+ memset(&xbmcGroupMember, 0, sizeof(PVR_CHANNEL_GROUP_MEMBER));
+
+ strncpy(xbmcGroupMember.strGroupName, group.strGroupName, sizeof(xbmcGroupMember.strGroupName) - 1);
+ xbmcGroupMember.iChannelUniqueId = channel.iUniqueId;
+ xbmcGroupMember.iChannelNumber = channel.iChannelNumber;
+
+ PVR->TransferChannelGroupMember(handle, &xbmcGroupMember);
}
}
@@ -891,9 +894,7 @@ int PVRIptvData::GetCachedFileContents(const std::string &strCachedName, const s
void PVRIptvData::ApplyChannelsLogos()
{
if (m_strLogoPath.IsEmpty())
- {
return;
- }
vector<PVRIptvChannel>::iterator channel;
for(channel = m_channels.begin(); channel < m_channels.end(); channel++)
@@ -975,3 +976,17 @@ CStdString PVRIptvData::ReadMarkerValue(std::string &strLine, const char* strMar
return std::string("");
}
+
+int PVRIptvData::GetChannelId(const char * strChannelName, const char * strStreamUrl)
+{
+ std::string concat(strChannelName);
+ concat.append(strStreamUrl);
+
+ const char* strString = concat.c_str();
+ int iId = 0;
+ int c;
+ while (c = *strString++)
+ iId = ((iId << 5) + iId) + c; /* iId * 33 + c */
+
+ return abs(iId);
+}
\ No newline at end of file
diff --git a/addons/pvr.iptvsimple/src/PVRIptvData.h b/addons/pvr.iptvsimple/src/PVRIptvData.h
index 944a734..c49b0cc 100644
--- a/addons/pvr.iptvsimple/src/PVRIptvData.h
+++ b/addons/pvr.iptvsimple/src/PVRIptvData.h
@@ -103,6 +103,7 @@ protected:
virtual int GetCachedFileContents(const std::string &strCachedName, const std::string &strFilePath, std::string &strContent);
virtual void ApplyChannelsLogos();
virtual CStdString ReadMarkerValue(std::string &strLine, const char * strMarkerName);
+ virtual int GetChannelId(const char * strChannelName, const char * strStreamUrl);
protected:
virtual void *Process(void);
diff --git a/addons/pvr.iptvsimple/src/client.cpp b/addons/pvr.iptvsimple/src/client.cpp
index b80f483..b8c55b4 100644
--- a/addons/pvr.iptvsimple/src/client.cpp
+++ b/addons/pvr.iptvsimple/src/client.cpp
@@ -54,6 +54,7 @@ std::string g_strTvgPath = "";
std::string g_strM3UPath = "";
std::string g_strLogoPath = "";
int g_iEPGTimeShift = 0;
+int g_iStartNumber = 1;
bool g_bTSOverride = true;
extern std::string PathCombine(const std::string &strPath, const std::string &strFileName)
@@ -102,7 +103,10 @@ void ADDON_ReadSettings(void)
{
g_strM3UPath = GetClientFilePath(M3U_FILE_NAME);
}
-
+ if (!XBMC->GetSetting("startNum", &g_iStartNumber))
+ {
+ g_iStartNumber = 1;
+ }
if (!XBMC->GetSetting("epgPathType", &iPathType))
{
iPathType = 1;
diff --git a/addons/pvr.iptvsimple/src/client.h b/addons/pvr.iptvsimple/src/client.h
index bc81eeb..89500f1 100644
--- a/addons/pvr.iptvsimple/src/client.h
+++ b/addons/pvr.iptvsimple/src/client.h
@@ -27,7 +27,7 @@
#include "libXBMC_pvr.h"
#include "libXBMC_gui.h"
-#define PVR_CLIENT_VERSION "0.1.3"
+#define PVR_CLIENT_VERSION "1.8.1"
#define M3U_FILE_NAME "iptv.m3u.cache"
#define TVG_FILE_NAME "xmltv.xml.cache"
@@ -47,6 +47,7 @@ extern std::string g_strM3UPath;
extern std::string g_strTvgPath;
extern std::string g_strLogoPath;
extern int g_iEPGTimeShift;
+extern int g_iStartNumber;
extern bool g_bTSOverride;
extern std::string PathCombine(const std::string &strPath, const std::string &strFileName);

View File

@ -22,6 +22,42 @@
#
# runlevels: openelec
# prevent restrating XBMC at reboot or shutdown
LOCKDIR="/var/lock/"
LOCKFILE="xbmc.disabled"
[ -f "$LOCKDIR/$LOCKFILE" ] && rm -f "$LOCKDIR/$LOCKFILE" &
# needed functions
add_omit_pids() {
omit_pids="$omit_pids -o $1"
}
safe_shutdown () {
touch "$LOCKDIR/$LOCKFILE"
SHUTDOWN="/storage/.config/shutdown.sh"
if [ -f $SHUTDOWN ]; then
echo '!!! SHUTDOWN script detected !!!' | logger -t shutdown.sh $1
cat "$SHUTDOWN" | logger -t shutdown.sh
echo '!!! -End of shutdown script- !!!' | logger -t shutdown.sh $1
sh $SHUTDOWN $1
fi
add_omit_pids $(pidof connmand)
add_omit_pids $(pidof dbus-daemon)
killall5 -15 $omit_pids
for seq in `seq 1 10` ; do
usleep 500000
clear > /dev/tty1
killall5 -18 $omit_pids || break
done
sync
umount -a >/dev/null 2>&1
if [ $1 = "reboot" ]; then
reboot
elif [ $1 = "poweroff" ]; then
poweroff -f
fi
}
LIRCDEV="/var/run/lirc/lircd"
[ -e /var/run/lirc/lircd.irtrans ] && LIRCDEV="/var/run/lirc/lircd.irtrans"
XBMC_ARGS="--standalone -fs --lircdev $LIRCDEV"
@ -42,6 +78,15 @@ fi
-i /storage/.xbmc/userdata/RssFeeds.xml
fi
# wait for dbus to start
wait_for_dbus
# wait for network
wait_for_inet_addr
# wait for udevadm settle to finish
wait_for_udevadm_settle
# starting autostart script (will be removed later again, dont use it!!!)
AUTOSTART="/storage/.config/autostart.sh"
if [ -f $AUTOSTART ]; then
@ -52,21 +97,9 @@ fi
sh $AUTOSTART
fi
wait_for_dbus
# waiting for Xorg to start
wait_for_xorg
# wait for network
wait_for_inet_addr
# wait for udevadm settle to finish
wait_for_udevadm_settle
# prevent restrating XBMC at reboot or shutdown
LOCKDIR="/var/lock/"
LOCKFILE="xbmc.disabled"
[ -f "$LOCKDIR/$LOCKFILE" ] && rm -f "$LOCKDIR/$LOCKFILE" &
# starting XBMC
usleep $XBMC_STARTDELAY
@ -81,25 +114,13 @@ fi
case "$RET" in
0)
if [ ! $(pidof console-kit-daemon) ]; then
touch "$LOCKDIR/$LOCKFILE"
_safe_shutdown
poweroff -f
fi
safe_shutdown poweroff
;;
64)
if [ ! $(pidof console-kit-daemon) ]; then
touch "$LOCKDIR/$LOCKFILE"
_safe_shutdown
poweroff -f
fi
safe_shutdown poweroff
;;
66)
if [ ! $(pidof console-kit-daemon) ]; then
touch "$LOCKDIR/$LOCKFILE"
_safe_shutdown
reboot
fi
safe_shutdown reboot
;;
255)
echo "Abnormal Exit. Exited with code $RET"

View File

@ -27,7 +27,6 @@ PYTHON_LIBDIR="`ls -d $INSTALL/usr/lib/python*`"
mkdir -p $INSTALL/usr/bin
cp $PKG_DIR/scripts/cputemp $INSTALL/usr/bin
cp $PKG_DIR/scripts/gputemp $INSTALL/usr/bin
cp $PKG_DIR/scripts/wait_on_xbmc_exit $INSTALL/usr/bin
cp $PKG_BUILD/tools/EventClients/Clients/XBMC\ Send/xbmc-send.py $INSTALL/usr/bin/xbmc-send
cp $PKG_DIR/scripts/setwakeup.sh $INSTALL/usr/bin

View File

@ -0,0 +1,29 @@
From 86a63c5040e307dcb633a5934ab1b3f9114009f5 Mon Sep 17 00:00:00 2001
From: arnova <arnova@void.org>
Date: Sun, 23 Jun 2013 23:16:55 +0200
Subject: [PATCH] changed: Make more obvious we're passing a CFileItem
---
xbmc/music/infoscanner/MusicInfoScanner.cpp | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/xbmc/music/infoscanner/MusicInfoScanner.cpp b/xbmc/music/infoscanner/MusicInfoScanner.cpp
index 84a155c..f93d613 100644
--- a/xbmc/music/infoscanner/MusicInfoScanner.cpp
+++ b/xbmc/music/infoscanner/MusicInfoScanner.cpp
@@ -1009,8 +1009,10 @@ void CMusicInfoScanner::FindArtForAlbums(VECALBUMS &albums, const CStdString &pa
}
}
if (albums.size() == 1 && !albumArt.empty())
- { // assign to folder thumb as well
- CMusicThumbLoader::SetCachedImage(path, "thumb", albumArt);
+ {
+ // assign to folder thumb as well
+ CFileItem albumItem(path, true);
+ CMusicThumbLoader::SetCachedImage(albumItem, "thumb", albumArt);
}
}
--
1.8.1.6

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
diff -Naur xbmc-12.2.0/xbmc/powermanagement/linux/UPowerSyscall.cpp xbmc-12.2.0.patch/xbmc/powermanagement/linux/UPowerSyscall.cpp
--- xbmc-12.2.0/xbmc/powermanagement/linux/UPowerSyscall.cpp 2013-05-02 17:00:05.000000000 +0200
+++ xbmc-12.2.0.patch/xbmc/powermanagement/linux/UPowerSyscall.cpp 2013-07-07 17:05:46.921656229 +0200
@@ -85,8 +85,8 @@
m_connection = NULL;
}
- m_CanPowerdown = false;
- m_CanReboot = false;
+ m_CanPowerdown = true;
+ m_CanReboot = true;
UpdateCapabilities();

View File

@ -0,0 +1,30 @@
################################################################################
# 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
################################################################################
# Mediacenter environment variables.
#
# This file contains non-OpenELEC evironment variables as well as OpenELEC
# evironment variables that are not user defined.
################################################################################
XBMC_HOME="/usr/share/xbmc"
XBMC_USER_HOME="$HOME/.xbmc"
export XBMC_HOME
export XBMC_USER_HOME

View File

@ -23,10 +23,8 @@
# evironment variables that are not user defined.
################################################################################
PATH="/bin:/sbin:/usr/bin:/usr/sbin"
# hack: add addons to $PATH
for addon in /storage/.xbmc/addons/*/bin; do
for addon in $XBMC_USER_HOME/addons/*/bin; do
if [ -d "$addon" ] ; then
PATH="$PATH:$addon"
fi

View File

@ -1,5 +1,3 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
@ -19,11 +17,12 @@
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
# Mediacenter environment variables.
#
# This file contains non-OpenELEC evironment variables as well as OpenELEC
# evironment variables that are not user defined.
################################################################################
count=0
while [ $(pidof xbmc.bin) -a $count -le 20 ]; do
usleep 250000
logger -t wait_on_xbmc_exit "### Waiting for XBMC to Exit - $count ###"
count=$((count+1))
done
if [ -z "$XBMC_STARTDELAY" ]; then
XBMC_STARTDELAY="1000000"
fi

View File

@ -23,14 +23,6 @@
# evironment variables that are not user defined.
################################################################################
if [ -z "$XBMC_STARTDELAY" ]; then
XBMC_STARTDELAY="1000000"
fi
XBMC_HOME="/usr/share/xbmc"
export XBMC_HOME
GPUTYPE="OTHER"
if [ -x /usr/bin/lspci ]; then

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="bluez"
PKG_VERSION="5.6"
PKG_VERSION="5.7"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -48,7 +48,6 @@ cd $PKG_BUILD
--enable-shared \
--disable-gtk-doc \
--disable-debug \
--enable-threads \
--disable-hh2serial-gps \
--disable-openconnect \
$CONNMAN_OPENVPN \

View File

@ -22,7 +22,7 @@
#
# runlevels: openelec, textmode
mkdir -p /storage/.cache/connman
mkdir -p $CONFIG_CACHE/connman
mkdir -p /storage/.config/vpn-config
mkdir -p /run/connman
@ -36,15 +36,15 @@ fi
# creating initial settings file
progress "creating initial connman settings file"
if [ ! -f /storage/.cache/connman/settings ]; then
cp /usr/share/connman/settings /storage/.cache/connman
if [ ! -f $CONFIG_CACHE/connman/settings ]; then
cp /usr/share/connman/settings $CONFIG_CACHE/connman
fi
(
# setup hostname
if [ -f /storage/.cache/hostname ] ; then
if [ -f $CONFIG_CACHE/hostname ] ; then
progress "Setup hostname"
cat /storage/.cache/hostname > /proc/sys/kernel/hostname
cat $CONFIG_CACHE/hostname > /proc/sys/kernel/hostname
fi
# starting Connection manager

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="connman"
PKG_VERSION="3ddffce"
PKG_VERSION="df37290"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -0,0 +1,48 @@
commit 0f41818097e3ada58c21a3a84af86ec3762294ce
Author: Stefan Saraev <stefan@saraev.ca>
Date: Thu Jul 4 18:42:29 2013 +0300
do not touch nat table before enabling tethering
TODO: remove when upstream does a better fix
diff --git a/src/connman.h b/src/connman.h
index 96f8466..c94d854 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -910,6 +910,8 @@ int __connman_nat_enable(const char *name, const char *address,
unsigned char prefixlen);
void __connman_nat_disable(const char *name);
+static connman_bool_t nat_enabled = FALSE;
+
struct firewall_context;
struct firewall_context *__connman_firewall_create(void);
diff --git a/src/firewall.c b/src/firewall.c
index c235d86..1e7dfa9 100644
--- a/src/firewall.c
+++ b/src/firewall.c
@@ -421,7 +421,8 @@ static void flush_all_tables(void)
flush_table("filter");
flush_table("mangle");
- flush_table("nat");
+ if (nat_enabled)
+ flush_table("nat");
}
int __connman_firewall_init(void)
diff --git a/src/nat.c b/src/nat.c
index 5447eb7..d5ceffd 100644
--- a/src/nat.c
+++ b/src/nat.c
@@ -78,6 +78,8 @@ static int enable_nat(struct connman_nat *nat)
if (err < 0)
return err;
+ nat_enabled = TRUE;
+
return __connman_iptables_commit("nat");
}

View File

@ -0,0 +1,22 @@
commit 7b130774c0a0a31879218eedb680ed732a1ee94a
Author: Stefan Saraev <stefan@saraev.ca>
Date: Thu Jul 4 22:43:17 2013 +0300
ipv6 disabled by default
diff --git a/src/ipconfig.c b/src/ipconfig.c
index a97a6f3..2b43935 100644
--- a/src/ipconfig.c
+++ b/src/ipconfig.c
@@ -1118,10 +1118,7 @@ static struct connman_ipconfig *create_ipv6config(int index)
ipv6config->enabled = FALSE;
ipv6config->type = CONNMAN_IPCONFIG_TYPE_IPV6;
- if (is_ipv6_supported == FALSE)
- ipv6config->method = CONNMAN_IPCONFIG_METHOD_OFF;
- else
- ipv6config->method = CONNMAN_IPCONFIG_METHOD_AUTO;
+ ipv6config->method = CONNMAN_IPCONFIG_METHOD_OFF;
ipdevice = g_hash_table_lookup(ipdevice_hash, GINT_TO_POINTER(index));
if (ipdevice != NULL)

View File

@ -1,29 +0,0 @@
Betreff:
[PATCH 1/5] tethering: Add debug print so we know when restarting
Von:
Jukka Rissanen <jukka.rissanen@linux.intel.com>
Datum:
25.06.2013 14:58
An:
connman@connman.net
---
src/tethering.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/tethering.c b/src/tethering.c
index 223873b..eb05056 100644
--- a/src/tethering.c
+++ b/src/tethering.c
@@ -176,6 +176,7 @@ static void dhcp_server_stop(GDHCPServer *server)
static void tethering_restart(struct connman_ippool *pool, void *user_data)
{
+ DBG("pool %p", pool);
__connman_tethering_set_disabled();
__connman_tethering_set_enabled();
}
--
1.7.11.7

View File

@ -1,77 +0,0 @@
Betreff:
[PATCH 2/5] tethering: Use the prefix lenght from ippool instead of hard coded value
Von:
Jukka Rissanen <jukka.rissanen@linux.intel.com>
Datum:
25.06.2013 14:58
An:
connman@connman.net
We were always using prefix length 24 instead of the correct
value from ippool.
---
src/bridge.c | 8 ++++----
src/connman.h | 4 ++--
src/tethering.c | 4 +++-
3 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/src/bridge.c b/src/bridge.c
index e46cdda..1610f96 100644
--- a/src/bridge.c
+++ b/src/bridge.c
@@ -111,8 +111,8 @@ int __connman_bridge_remove(const char *name)
return 0;
}
-int __connman_bridge_enable(const char *name, const char *gateway,
- const char *broadcast)
+int __connman_bridge_enable(const char *name, const char *ip_address,
+ int prefix_len, const char *broadcast)
{
int err, index;
@@ -121,8 +121,8 @@ int __connman_bridge_enable(const char *name, const char *gateway,
return index;
err = __connman_inet_modify_address(RTM_NEWADDR,
- NLM_F_REPLACE | NLM_F_ACK, index, AF_INET,
- gateway, NULL, 24, broadcast);
+ NLM_F_REPLACE | NLM_F_ACK, index, AF_INET,
+ ip_address, NULL, prefix_len, broadcast);
if (err < 0)
return err;
diff --git a/src/connman.h b/src/connman.h
index 11dbc35..96f8466 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -899,8 +899,8 @@ void __connman_ippool_deladdr(int index, const char *address,
int __connman_bridge_create(const char *name);
int __connman_bridge_remove(const char *name);
-int __connman_bridge_enable(const char *name, const char *gateway,
- const char *broadcast);
+int __connman_bridge_enable(const char *name, const char *ip_address,
+ int prefix_len, const char *broadcast);
int __connman_bridge_disable(const char *name);
int __connman_nat_init(void);
diff --git a/src/tethering.c b/src/tethering.c
index eb05056..0b373b9 100644
--- a/src/tethering.c
+++ b/src/tethering.c
@@ -221,7 +221,9 @@ void __connman_tethering_set_enabled(void)
start_ip = __connman_ippool_get_start_ip(dhcp_ippool);
end_ip = __connman_ippool_get_end_ip(dhcp_ippool);
- err = __connman_bridge_enable(BRIDGE_NAME, gateway, broadcast);
+ err = __connman_bridge_enable(BRIDGE_NAME, gateway,
+ __connman_ipaddress_netmask_prefix_len(subnet_mask),
+ broadcast);
if (err < 0 && err != -EALREADY) {
__connman_ippool_unref(dhcp_ippool);
__connman_bridge_remove(BRIDGE_NAME);
--
1.7.11.7

View File

@ -1,57 +0,0 @@
Betreff:
[PATCH 3/5] connection: Use netlink functions to set default gateway
Von:
Jukka Rissanen <jukka.rissanen@linux.intel.com>
Datum:
25.06.2013 14:58
An:
connman@connman.net
We were using earlier the ioctl() to set the default gateway.
In some cases that could fail because the desired interface
was not set when calling the ioctl().
This happened with tethering with following scenario:
* Ethernet cable (uplink connection) is not connected
* Wifi tethering is started with address 192.168.1.1
* Ethernet cable is connected, uplink address is 192.168.1.0/24
* There is now a conflict, ippool resolves that in __connman_ippool_newaddr()
and calls tethering_restart() which stops and then starts tethering
* Because of the problems when calling the SIOCADDRT (we do not know
to what interface the default route was added to), the default route
of uplink connection was added to tethering interface (tether) instead
of uplink interface (eth0). This caused the default route to disappear
when tether interface was taken down.
* Solution was to use the netlink interface to set the default gateway
as we can unambiguously set the desired default route to be via the
uplink interface
Thanks for Stephan Raue for reporting this issue.
---
src/connection.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/connection.c b/src/connection.c
index c7b1f62..c0fdaf8 100644
--- a/src/connection.c
+++ b/src/connection.c
@@ -479,12 +479,12 @@ static void set_default_gateway(struct gateway_data *data,
}
if (do_ipv6 == TRUE && data->ipv6_gateway != NULL)
- status6 = connman_inet_set_ipv6_gateway_address(index,
- data->ipv6_gateway->gateway);
+ status6 = __connman_inet_add_default_to_table(RT_TABLE_MAIN,
+ index, data->ipv6_gateway->gateway);
if (do_ipv4 == TRUE && data->ipv4_gateway != NULL)
- status4 = connman_inet_set_gateway_address(index,
- data->ipv4_gateway->gateway);
+ status4 = __connman_inet_add_default_to_table(RT_TABLE_MAIN,
+ index, data->ipv4_gateway->gateway);
if (status4 < 0 || status6 < 0)
return;
--
1.7.11.7

View File

@ -1,156 +0,0 @@
Betreff:
[PATCH 4/5] inet: Remove unused gateway setting functions
Von:
Jukka Rissanen <jukka.rissanen@linux.intel.com>
Datum:
25.06.2013 14:58
An:
connman@connman.net
No need for these functions any more as we are using the netlink
variants to set the default gateway.
---
include/inet.h | 2 --
src/inet.c | 98 ----------------------------------------------------------
2 files changed, 100 deletions(-)
diff --git a/include/inet.h b/include/inet.h
index 8f7a35c..10d9dae 100644
--- a/include/inet.h
+++ b/include/inet.h
@@ -50,7 +50,6 @@ int connman_inet_del_host_route(int index, const char *host);
int connman_inet_add_network_route(int index, const char *host, const char *gateway,
const char *netmask);
int connman_inet_del_network_route(int index, const char *host);
-int connman_inet_set_gateway_address(int index, const char *gateway);
int connman_inet_clear_gateway_address(int index, const char *gateway);
int connman_inet_set_gateway_interface(int index);
int connman_inet_clear_gateway_interface(int index);
@@ -66,7 +65,6 @@ int connman_inet_add_ipv6_host_route(int index, const char *host,
int connman_inet_del_ipv6_network_route(int index, const char *host,
unsigned char prefix_len);
int connman_inet_del_ipv6_host_route(int index, const char *host);
-int connman_inet_set_ipv6_gateway_address(int index, const char *gateway);
int connman_inet_clear_ipv6_gateway_address(int index, const char *gateway);
int connman_inet_set_ipv6_gateway_interface(int index);
int connman_inet_clear_ipv6_gateway_interface(int index);
diff --git a/src/inet.c b/src/inet.c
index ed98dd5..840f9b1 100644
--- a/src/inet.c
+++ b/src/inet.c
@@ -727,47 +727,6 @@ int connman_inet_add_ipv6_host_route(int index, const char *host,
return connman_inet_add_ipv6_network_route(index, host, gateway, 128);
}
-int connman_inet_set_ipv6_gateway_address(int index, const char *gateway)
-{
- struct in6_rtmsg rt;
- int sk, err = 0;
-
- DBG("index %d gateway %s", index, gateway);
-
- if (gateway == NULL)
- return -EINVAL;
-
- memset(&rt, 0, sizeof(rt));
-
- if (inet_pton(AF_INET6, gateway, &rt.rtmsg_gateway) < 0) {
- err = -errno;
- goto out;
- }
-
- rt.rtmsg_flags = RTF_UP | RTF_GATEWAY;
- rt.rtmsg_metric = 1;
- rt.rtmsg_dst_len = 0;
- rt.rtmsg_ifindex = index;
-
- sk = socket(AF_INET6, SOCK_DGRAM | SOCK_CLOEXEC, 0);
- if (sk < 0) {
- err = -errno;
- goto out;
- }
-
- if (ioctl(sk, SIOCADDRT, &rt) < 0 && errno != EEXIST)
- err = -errno;
-
- close(sk);
-
-out:
- if (err < 0)
- connman_error("Set default IPv6 gateway error (%s)",
- strerror(-err));
-
- return err;
-}
-
int connman_inet_clear_ipv6_gateway_address(int index, const char *gateway)
{
struct in6_rtmsg rt;
@@ -809,63 +768,6 @@ out:
return err;
}
-int connman_inet_set_gateway_address(int index, const char *gateway)
-{
- struct ifreq ifr;
- struct rtentry rt;
- struct sockaddr_in addr;
- int sk, err = 0;
-
- DBG("index %d gateway %s", index, gateway);
-
- sk = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
- if (sk < 0) {
- err = -errno;
- goto out;
- }
-
- memset(&ifr, 0, sizeof(ifr));
- ifr.ifr_ifindex = index;
-
- if (ioctl(sk, SIOCGIFNAME, &ifr) < 0) {
- err = -errno;
- close(sk);
- goto out;
- }
-
- DBG("ifname %s", ifr.ifr_name);
-
- memset(&rt, 0, sizeof(rt));
- rt.rt_flags = RTF_UP | RTF_GATEWAY;
-
- memset(&addr, 0, sizeof(addr));
- addr.sin_family = AF_INET;
- addr.sin_addr.s_addr = INADDR_ANY;
- memcpy(&rt.rt_dst, &addr, sizeof(rt.rt_dst));
-
- memset(&addr, 0, sizeof(addr));
- addr.sin_family = AF_INET;
- addr.sin_addr.s_addr = inet_addr(gateway);
- memcpy(&rt.rt_gateway, &addr, sizeof(rt.rt_gateway));
-
- memset(&addr, 0, sizeof(addr));
- addr.sin_family = AF_INET;
- addr.sin_addr.s_addr = INADDR_ANY;
- memcpy(&rt.rt_genmask, &addr, sizeof(rt.rt_genmask));
-
- if (ioctl(sk, SIOCADDRT, &rt) < 0 && errno != EEXIST)
- err = -errno;
-
- close(sk);
-
-out:
- if (err < 0)
- connman_error("Setting default gateway route failed (%s)",
- strerror(-err));
-
- return err;
-}
-
int connman_inet_set_gateway_interface(int index)
{
struct ifreq ifr;
--
1.7.11.7

View File

@ -1,36 +0,0 @@
Betreff:
[PATCH] tethering: Cleanup tethering when connman is shutting down
Von:
Jukka Rissanen <jukka.rissanen@linux.intel.com>
Datum:
26.06.2013 09:40
An:
connman@connman.net
We do not want to leave the tether interface and bridge hanging
around after shutdown.
---
src/tethering.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/tethering.c b/src/tethering.c
index 0b373b9..03ed02a 100644
--- a/src/tethering.c
+++ b/src/tethering.c
@@ -532,10 +532,10 @@ int __connman_tethering_init(void)
void __connman_tethering_cleanup(void)
{
- DBG("");
+ DBG("enabled %d", tethering_enabled);
__sync_synchronize();
- if (tethering_enabled == 0) {
+ if (tethering_enabled > 0) {
if (tethering_dhcp_server)
dhcp_server_stop(tethering_dhcp_server);
__connman_bridge_disable(BRIDGE_NAME);
--
1.7.11.7

View File

@ -19,8 +19,8 @@
################################################################################
wait_for_inet_addr () {
if [ -f /storage/.cache/openelec/network_wait ]; then
. /storage/.cache/openelec/network_wait
if [ -f $CONFIG_CACHE/openelec/network_wait ]; then
. $CONFIG_CACHE/openelec/network_wait
if [ "$WAIT_NETWORK" = "true" ] ; then
progress "Wait for network"

View File

@ -35,9 +35,9 @@
OPTIONS="-o 'PasswordAuthentication no'"
fi
RSA1_KEY="/storage/.cache/ssh/ssh_host_key"
RSA2_KEY="/storage/.cache/ssh/ssh_host_rsa_key"
DSA2_KEY="/storage/.cache/ssh/ssh_host_dsa_key"
RSA1_KEY="$CONFIG_CACHE/ssh/ssh_host_key"
RSA2_KEY="$CONFIG_CACHE/ssh/ssh_host_rsa_key"
DSA2_KEY="$CONFIG_CACHE/ssh/ssh_host_dsa_key"
KEYGEN="/usr/bin/ssh-keygen"
SSHD="/usr/sbin/sshd"
@ -51,7 +51,7 @@
if [ ! -s $RSA1_KEY ] ; then
progress "SSH: generating SSH1 RSA key"
mkdir -p /storage/.cache/ssh
mkdir -p $CONFIG_CACHE/ssh
$KEYGEN -q -t rsa1 -f $RSA1_KEY -C '' -N '' >&/dev/null
chmod 600 $RSA1_KEY
fi
@ -60,7 +60,7 @@
if [ ! -s $RSA2_KEY ] ; then
progress "SSH: generating SSH2 RSA key"
mkdir -p /storage/.cache/ssh
mkdir -p $CONFIG_CACHE/ssh
$KEYGEN -q -t rsa -f $RSA2_KEY -C '' -N '' >&/dev/null
chmod 600 $RSA2_KEY
fi
@ -69,7 +69,7 @@
if [ ! -s $DSA2_KEY ] ; then
progress "SSH: generating SSH2 DSA key"
mkdir -p /storage/.cache/ssh
mkdir -p $CONFIG_CACHE/ssh
$KEYGEN -q -t dsa -f $DSA2_KEY -C '' -N '' >&/dev/null
chmod 600 $DSA2_KEY
fi

View File

@ -35,7 +35,3 @@ PKG_IS_ADDON="no"
PKG_AUTORECONF="yes"
if [ "$SSHGUARD_SUPPORT" = yes ]; then
PKG_DEPENDS="$PKG_DEPENDS sshguard"
fi

View File

@ -1,36 +0,0 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
cd $PKG_BUILD
ac_cv_func_malloc_0_nonnull=yes \
./configure --host=$TARGET_NAME \
--build=$HOST_NAME \
--prefix=/usr \
--sysconfdir=/etc \
--datadir=/usr/share \
--localstatedir=/var \
--with-firewall="iptables" \
--with-iptables="/usr/sbin/iptables" \
make

View File

@ -1,26 +0,0 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
mkdir -p $INSTALL/usr/sbin
cp -P $PKG_BUILD/src/sshguard $INSTALL/usr/sbin

View File

@ -1,36 +0,0 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="sshguard"
PKG_VERSION="1.5"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="BSD"
PKG_SITE="http://www.sshguard.net/"
PKG_URL="$SOURCEFORGE_SRC/project/sshguard/sshguard/$PKG_NAME-$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.bz2"
PKG_DEPENDS="iptables"
PKG_BUILD_DEPENDS="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION="security"
PKG_SHORTDESC="sshguard: monitors servers from their logging activity."
PKG_LONGDESC="Sshguard monitors servers from their logging activity. When logs convey that someone is doing a Bad Thing, sshguard reacts by blocking he/she/it for a bit. Sshguard has a touchy personality: when a naughty tyke insists disturbing your host, it reacts firmer and firmer."
PKG_IS_ADDON="no"
PKG_AUTORECONF="yes"

View File

@ -1,12 +0,0 @@
diff -Naur sshguard-1.5/configure.ac sshguard-1.5.patch/configure.ac
--- sshguard-1.5/configure.ac 2011-02-09 13:01:47.000000000 +0100
+++ sshguard-1.5.patch/configure.ac 2013-01-12 01:13:22.735102536 +0100
@@ -5,7 +5,7 @@
AC_INIT(sshguard, 1.5, mij@sshguard.net)
AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([src/simclist.c])
-AM_CONFIG_HEADER([src/config.h])
+AC_CONFIG_HEADERS([src/config.h])
# test if we are on Solaris, which requires outstanding practices
AC_CANONICAL_BUILD
AS_CASE([$build_os],

View File

@ -1,41 +0,0 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
cd $PKG_BUILD
./configure --host=$TARGET_NAME \
--build=$HOST_NAME \
--prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/bin \
--sysconfdir=/etc \
--libexecdir=/usr/lib/ConsoleKit \
--localstatedir=/var \
--disable-static \
--enable-shared \
--disable-pam-module \
--disable-docbook-docs \
make
$MAKEINSTALL

View File

@ -1,67 +0,0 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
mkdir -p $INSTALL/etc/ConsoleKit/run-seat.d
mkdir -p $INSTALL/etc/ConsoleKit/run-session.d
mkdir -p $INSTALL/etc/ConsoleKit/seats.d
cp -P $PKG_BUILD/data/00-primary.seat $INSTALL/etc/ConsoleKit/seats.d
mkdir -p $INSTALL/etc/dbus-1/system.d
cp -P $PKG_BUILD/data/ConsoleKit.conf $INSTALL/etc/dbus-1/system.d
mkdir -p $INSTALL/usr/bin
cp -P $PKG_BUILD/tools/ck-log-system-restart $INSTALL/usr/bin
cp -P $PKG_BUILD/tools/ck-log-system-start $INSTALL/usr/bin
cp -P $PKG_BUILD/tools/ck-log-system-stop $INSTALL/usr/bin
cp -P $PKG_BUILD/src/console-kit-daemon $INSTALL/usr/bin
cp -P $PKG_BUILD/tools/.libs/ck-launch-session $INSTALL/usr/bin
cp -P $PKG_BUILD/tools/ck-list-sessions $INSTALL/usr/bin
cp -P $PKG_BUILD/tools/ck-history $INSTALL/usr/bin
mkdir -p $INSTALL/usr/lib
cp -P $PKG_BUILD/libck-connector/.libs/*.so* $INSTALL/usr/lib
mkdir -p $INSTALL/usr/lib/ConsoleKit
cp -P $PKG_BUILD/tools/ck-collect-session-info $INSTALL/usr/lib/ConsoleKit
cp -P $PKG_BUILD/tools/ck-get-x11-display-device $INSTALL/usr/lib/ConsoleKit
cp -P $PKG_BUILD/tools/ck-get-x11-server-pid $INSTALL/usr/lib/ConsoleKit
mkdir -p $INSTALL/usr/lib/ConsoleKit/run-seat.d
mkdir -p $INSTALL/usr/lib/ConsoleKit/run-session.d
mkdir -p $INSTALL/usr/lib/ConsoleKit/scripts
# cp -P $PKG_BUILD/tools/linux/ck-system-restart $INSTALL/usr/lib/ConsoleKit/scripts
# cp -P $PKG_BUILD/tools/linux/ck-system-stop $INSTALL/usr/lib/ConsoleKit/scripts
cp -P $PKG_DIR/scripts/ck-system-restart $INSTALL/usr/lib/ConsoleKit/scripts
cp -P $PKG_DIR/scripts/ck-system-stop $INSTALL/usr/lib/ConsoleKit/scripts
mkdir -p $INSTALL/usr/share/dbus-1/interfaces
cp -P $PKG_BUILD/src/org.freedesktop.ConsoleKit.Manager.xml $INSTALL/usr/share/dbus-1/interfaces
cp -P $PKG_BUILD/src/org.freedesktop.ConsoleKit.Seat.xml $INSTALL/usr/share/dbus-1/interfaces
cp -P $PKG_BUILD/src/org.freedesktop.ConsoleKit.Session.xml $INSTALL/usr/share/dbus-1/interfaces
mkdir -p $INSTALL/usr/share/dbus-1/system-services
cp -P $PKG_BUILD/data/org.freedesktop.ConsoleKit.service $INSTALL/usr/share/dbus-1/system-services
mkdir -p $INSTALL/usr/share/polkit-1/actions
cp -P $PKG_BUILD/data/org.freedesktop.consolekit.policy $INSTALL/usr/share/polkit-1/actions

View File

@ -1,36 +0,0 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="ConsoleKit"
PKG_VERSION="0.4.5"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.freedesktop.org/wiki/Software/ConsoleKit"
PKG_URL="http://www.freedesktop.org/software/ConsoleKit/dist/$PKG_NAME-$PKG_VERSION.tar.bz2"
PKG_DEPENDS="dbus polkit libX11"
PKG_BUILD_DEPENDS="toolchain dbus dbus-glib polkit libX11"
PKG_PRIORITY="optional"
PKG_SECTION="system"
PKG_SHORTDESC="ConsoleKit: a framework for defining and tracking users, login sessions, and seats."
PKG_LONGDESC="ConsoleKit is a framework for defining and tracking users, login sessions, and seats."
PKG_IS_ADDON="no"
PKG_AUTORECONF="yes"

View File

@ -1,25 +0,0 @@
From e8d8a3dadcaa32eeb9f2f27f9774e52e5ec70dde Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Sat, 8 Jun 2013 22:21:41 +0300
Subject: [PATCH] do not spawn too much threads
---
src/ck-sysdeps-linux.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/ck-sysdeps-linux.c b/src/ck-sysdeps-linux.c
index a95272e..264fe22 100644
--- a/src/ck-sysdeps-linux.c
+++ b/src/ck-sysdeps-linux.c
@@ -687,7 +687,7 @@ gboolean
ck_get_max_num_consoles (guint *num)
{
if (num != NULL) {
- *num = MAX_NR_CONSOLES;
+ *num = 1;
}
return TRUE;
--
1.7.2.5

View File

@ -1,31 +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.d/safe-shutdown.conf
LOCKDIR="/var/lock/"
LOCKFILE="xbmc.disabled"
touch "$LOCKDIR/$LOCKFILE"
wait_on_xbmc_exit
killall sshd
_safe_shutdown
reboot

View File

@ -1,31 +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.d/safe-shutdown.conf
LOCKDIR="/var/lock/"
LOCKFILE="xbmc.disabled"
touch "$LOCKDIR/$LOCKFILE"
wait_on_xbmc_exit
killall sshd
_safe_shutdown
poweroff

View File

@ -26,8 +26,8 @@
(
progress "Starting Syslog daemon"
if [ -e /storage/.cache/syslog/remote ] ; then
source /storage/.cache/syslog/remote
if [ -e $CONFIG_CACHE/syslog/remote ] ; then
source $CONFIG_CACHE/syslog/remote
fi
SYSLOGD_OPTIONS="-L"

Some files were not shown because too many files have changed in this diff Show More