require openplugins.inc
+SRC_URI += "file://openwebif_8001_8002.patch;patch=1;pnum=1"
+
# Just a quick hack to "compile" it
do_compile() {
cheetah-compile -R --nobackup ${S}/plugin
--- /dev/null
+diff --git a/plugin/controllers/models/stream.py b/plugin/controllers/models/stream.py
+index fe4ddd4..71b1eaa 100644
+--- a/plugin/controllers/models/stream.py
++++ b/plugin/controllers/models/stream.py
+@@ -25,11 +25,21 @@ def getStream(session, request, m3ufile):
+ if "name" in request.args:
+ name = request.args["name"][0]
+ # #EXTINF:-1,%s\n remove not compatiple with old api
+- if sRef != '':
++
++ if "device" in request.args :
++ if request.args["device"][0] == "phone" :
++ portNumber = 8002;
++ else :
++ portNumber = config.OpenWebif.streamport.value
++ else :
++ portNumber = config.OpenWebif.streamport.value
++
++ if sRef != '' :
+ progopt="#EXTVLCOPT:program=%d\n" % (int(sRef.split(':')[3],16))
+ else:
+ progopt=""
+- response = "#EXTM3U \n#EXTVLCOPT--http-reconnect=true \n%shttp://%s:%s/%s\n" % (progopt,request.getRequestHostname(),config.OpenWebif.streamport.value, sRef)
++ response = "#EXTM3U \n#EXTVLCOPT--http-reconnect=true \n%shttp://%s:%s/%s\n" % (progopt,request.getRequestHostname(), portNumber, sRef)
++
+ request.setHeader('Content-Type', 'application/text')
+ return response
+
+diff --git a/plugin/controllers/views/ajax/channels.tmpl b/plugin/controllers/views/ajax/channels.tmpl
+index 5975ce8..2915c5b 100755
+--- a/plugin/controllers/views/ajax/channels.tmpl
++++ b/plugin/controllers/views/ajax/channels.tmpl
+@@ -12,9 +12,12 @@
+ <a href="#" onclick="open_epg_pop('$channel.ref')">
+ <img src="../images/ico_epg.png" title="Show EPG for $channel.name" border="0">
+ </a>
+- <a target="_blank" href='/web/stream.m3u?ref=$channel.ref&name=$channel.name'>
++ <a href="#" onclick="jumper8001('$channel.ref', '$channel.name');">
+ <img align="top" src="../images/ico_stream.png" title="Stream $channel.name" border="0">
+ </a>
++ <a href="#" onclick="jumper8002('$channel.ref', '$channel.name');">
++ <img align="top" src="../images/ico_stream.png" title="Stream Port 8002 $channel.name" border="0">
++ </a>
+ </div>
+
+ #if $channel.has_key('now_title')
+diff --git a/plugin/controllers/views/main.tmpl b/plugin/controllers/views/main.tmpl
+index 1844226..6dcfb66 100755
+--- a/plugin/controllers/views/main.tmpl
++++ b/plugin/controllers/views/main.tmpl
+@@ -9,6 +9,79 @@
+ <script type="text/javascript" src="/js/jquery-ui-1.8.18.custom.min.js"></script>\r
+ <script type="text/javascript" src="/js/openwebif.js"></script>\r
+ \r
++<script>\r
++\r
++ // VuPlus Port Jumper \r
++ // 2012.12.10\r
++\r
++ function getWinSize(win) { \r
++ if(!win) win = window; \r
++ var s = {}; \r
++ \r
++ if(typeof win.innerWidth != "undefined") {\r
++ s.screenWidth = win.screen.width; \r
++ s.screenHeight = win.screen.height; \r
++ } else {\r
++ s.screenWidth = 0; \r
++ s.screenHeight = 0; \r
++ } \r
++\r
++ return s; \r
++ }\r
++\r
++ function getDeviceType() {\r
++ var ss = getWinSize(); \r
++ var screenLen = 0;\r
++\r
++ // alert( ss.screenHeight ); \r
++ // alert( ss.screenWidth ); \r
++\r
++ if( ss.screenHeight > ss.screenWdith ) { \r
++ screenLen = ss.screenHeight; \r
++ } else { \r
++ screenLen = ss.screenWidth; \r
++ } \r
++\r
++ if( screenLen < 500 ) { \r
++ return "phone"; \r
++ } else {\r
++ return "tab"; }\r
++ }\r
++\r
++ function getOSType() {\r
++ var agentStr = navigator.userAgent;\r
++ \r
++ if(agentStr.indexOf("iPod") > -1 || agentStr.indexOf("iPhone") > -1) \r
++ return "ios"; \r
++ else if(agentStr.indexOf("Android") > -1) \r
++ return "android"; \r
++ else \r
++ return "unknown";\r
++ }\r
++\r
++ function jumper8002( sref, sname ) {\r
++ var deviceType = getDeviceType();\r
++\r
++ document.portForm.ref.value = sref;\r
++ document.portForm.name.value = sname;\r
++\r
++ document.portForm.device.value = "phone";\r
++ document.portForm.submit();\r
++ }\r
++\r
++ function jumper8001( sref, sname ) {\r
++ var deviceType = getDeviceType();\r
++\r
++ document.portForm.ref.value = sref;\r
++ document.portForm.name.value = sname;\r
++\r
++ document.portForm.device.value = "etc";\r
++ document.portForm.submit();\r
++ }\r
++\r
++</script>\r
++\r
++\r
+ <title>Open Webif</title>\r
+ </head>\r
+ \r
+@@ -195,5 +268,12 @@
+ <div id="footer"><h3> <a href="https://github.com/E2OpenPlugins">E2OpenPlugins</a> | <a href="http://www.vuplus-community.net">Black Hole</a> | <a href="http://openpli.org">OpenPli</a> | <a href="http://forum.sifteam.eu">Sif</a> | <a href="http://www.vuplus-support.org">Vti</a></h3></div>\r
+ </div>\r
+ </div>\r
++ \r
++ <form name="portForm" action="/web/stream.m3u" method="GET" target="_blank">\r
++ <input type="hidden" name="ref">\r
++ <input type="hidden" name="name">\r
++ <input type="hidden" name="device">\r
++ </form>\r
++ \r
+ </body>\r
+ </html>\r
--- /dev/null
+DESCRIPTION = "streamproxy manages streaming data to a Mobile device using enigma2"
+
+SRCDATE = "20101014"
+PV = "1.0cvs${SRCDATE}"
+
+SRC_URI = "cvs://anonymous@cvs.schwerkraft.elitedvb.net/cvsroot/streamproxy;module=enigma2-streamproxy;method=pserver \
+ file://transcoding.patch;patch=1;pnum=1 \
+ "
+
+
+inherit autotools
+
+S = "${WORKDIR}/enigma2-streamproxy"
+
+do_install() {
+ install -d ${D}/usr/bin
+ install -m 0755 ${S}/src/streamproxy ${D}/usr/bin/transtreamproxy
+}
+
--- /dev/null
+diff --git a/src/streamproxy.c b/src/streamproxy.c
+index 03d1fac..60ddddc 100644
+--- a/src/streamproxy.c
++++ b/src/streamproxy.c
+@@ -8,6 +8,7 @@
+ #include <sys/ioctl.h>
+ #include <linux/dvb/dmx.h>
+ #include <linux/dvb/version.h>
++#include <errno.h>
+
+ #define MAX_PIDS 32
+ #define MAX_LINE_LENGTH 512
+@@ -41,6 +42,25 @@ char *reason = "";
+
+ int active_pids[MAX_PIDS];
+
++int g_video_pid = 0;
++int g_audio_pid = 0;
++int g_pcr_pid = 0;
++int g_pmt_pid = 0;
++
++struct proc_dmx_pid
++{
++ char *proc_path;
++ char *str_match;
++ int pid;
++};
++
++struct proc_dmx_pid proc_dmx_setup[] = {
++ {"/proc/stb/encoder/0/video_pid", "video", 0},
++ {"/proc/stb/encoder/0/audio_pid", "audio", 0},
++ {"/proc/stb/encoder/0/pcr_pid", "pcr", 0},
++ {"/proc/stb/encoder/0/pmt_pid", "pmt", 0},
++};
++
+ int handle_upstream(void);
+ int handle_upstream_line(void);
+
+@@ -70,7 +90,8 @@ int main(int argc, char **argv)
+ int i;
+ for (i=0; i<MAX_PIDS; ++i)
+ active_pids[i] = -1;
+-
++
++
+ while (1)
+ {
+ char option[MAX_LINE_LENGTH];
+@@ -102,9 +123,14 @@ int main(int argc, char **argv)
+ goto bad_gateway;
+ }
+
++ memset(upstream_request, 0, 256);
++
+ snprintf(upstream_request, sizeof(upstream_request), "GET /web/stream?StreamService=%s HTTP/1.0\r\n%s\r\n", service_ref, authorization);
++
++
+ if (write(upstream, upstream_request, strlen(upstream_request)) != strlen(upstream_request))
+ goto bad_gateway;
++
+
+ while (1)
+ {
+@@ -116,22 +142,30 @@ int main(int argc, char **argv)
+ FD_SET(demux_fd, &r);
+
+ if (select(5, &r, 0, 0, 0) < 0)
++ {
+ break;
++ }
+
+ if (FD_ISSET(0, &r)) /* check for client disconnect */
+ if (read(0, request, sizeof(request)) <= 0)
++ {
+ break;
++ }
+
+ /* handle enigma responses */
+ if (FD_ISSET(upstream, &r))
+ if (handle_upstream())
++ {
+ break;
++ }
+ if (demux_fd > 0 && FD_ISSET(demux_fd, &r))
+ {
+ static unsigned char buffer[BSIZE];
+ int r = read(demux_fd, buffer, BSIZE);
+- if (r < 0)
++ if (r < 0 )
++ {
+ break;
++ }
+ write(1, buffer, r);
+ }
+ }
+@@ -153,6 +187,7 @@ bad_gateway:
+ int handle_upstream(void)
+ {
+ char buffer[MAX_LINE_LENGTH];
++ memset(buffer, 0, MAX_LINE_LENGTH);
+ int n = read(upstream, buffer, MAX_LINE_LENGTH);
+ if (n == 0)
+ return 1;
+@@ -165,6 +200,7 @@ int handle_upstream(void)
+
+ char *c = buffer;
+
++
+ while (n)
+ {
+ char *next_line;
+@@ -203,6 +239,9 @@ int handle_upstream(void)
+
+ int handle_upstream_line(void)
+ {
++ int i;
++ const char *str;
++
+ switch (upstream_state)
+ {
+ case 0:
+@@ -229,104 +268,137 @@ int handle_upstream_line(void)
+ if (response_line[0] == '+') {
+ /* parse (and possibly open) demux */
+ int demux = atoi(response_line + 1);
+-
++ {
++ FILE *f = fopen("/proc/stb/encoder/0/demux", "w");
++ if(f)
++ {
++ fprintf(f, "%d\n", demux);
++ fclose(f);
++ }
++ }
+
+- /* parse new pids */
+- const char *p = strchr(response_line, ':');
+- int old_active_pids[MAX_PIDS];
+-
+- memcpy(old_active_pids, active_pids, sizeof(active_pids));
+-
+- int nr_pids = 0, i, j;
+- while (p)
++ for(i = 0 ; i < sizeof(proc_dmx_setup)/sizeof(proc_dmx_setup[0]) ; i++)
+ {
+- ++p;
+- int pid = strtoul(p, 0, 0x10);
+- p = strchr(p, ',');
++ str = strstr(response_line, proc_dmx_setup[i].str_match);
++ if(str)
++ {
++ while(*str != ',') str--;
++ proc_dmx_setup[i].pid = strtoul(str+1, 0, 0x10);
++ FILE *f = fopen(proc_dmx_setup[i].proc_path, "w");
++ if(f)
++ {
++ fprintf(f, "%d\n", proc_dmx_setup[i].pid);
++ fclose(f);
++ }
++ }
+
+- /* do not add pids twice */
+- for (i = 0; i < nr_pids; ++i)
+- if (active_pids[i] == pid)
+- break;
++ }
+
+- if (i != nr_pids)
+- continue;
+
+- active_pids[nr_pids++] = pid;
++ if(proc_dmx_setup[3].pid && ( (g_video_pid != proc_dmx_setup[0].pid) || (g_audio_pid != proc_dmx_setup[1].pid) || (g_pcr_pid != proc_dmx_setup[2].pid)) )
++ {
++ g_video_pid = proc_dmx_setup[0].pid;
++ g_audio_pid = proc_dmx_setup[1].pid;
++ g_pcr_pid = proc_dmx_setup[2].pid;
++
++
++ /* parse new pids */
++ const char *p = strchr(response_line, ':');
++ int old_active_pids[MAX_PIDS];
+
+- if (nr_pids == MAX_PIDS)
+- break;
+- }
+-
+- for (i = nr_pids; i < MAX_PIDS; ++i)
+- active_pids[i] = -1;
++ memcpy(old_active_pids, active_pids, sizeof(active_pids));
+
+- /* check for added pids */
+- for (i = 0; i < nr_pids; ++i)
+- {
+- for (j = 0; j < MAX_PIDS; ++j)
+- if (active_pids[i] == old_active_pids[j])
++ int nr_pids = 0, i, j;
++ while (p)
++ {
++ ++p;
++ int pid = strtoul(p, 0, 0x10);
++ p = strchr(p, ',');
++
++ /* do not add pids twice */
++ for (i = 0; i < nr_pids; ++i)
++ if (active_pids[i] == pid)
++ break;
++
++ if (i != nr_pids)
++ continue;
++
++ active_pids[nr_pids++] = pid;
++
++ if (nr_pids == MAX_PIDS)
+ break;
+- if (j == MAX_PIDS) {
+- if (demux_fd < 0) {
+- struct dmx_pes_filter_params flt;
+- char demuxfn[32];
+- sprintf(demuxfn, "/dev/dvb/adapter0/demux%d", demux);
+- demux_fd = open(demuxfn, O_RDWR | O_NONBLOCK);
++ }
++
++ for (i = nr_pids; i < MAX_PIDS; ++i)
++ active_pids[i] = -1;
++
++ /* check for added pids */
++ for (i = 0; i < nr_pids; ++i)
++ {
++ for (j = 0; j < MAX_PIDS; ++j)
++ if (active_pids[i] == old_active_pids[j])
++ break;
++ if (j == MAX_PIDS) {
+ if (demux_fd < 0) {
+- reason = "DEMUX OPEN FAILED";
+- return 2;
+- }
++ struct dmx_pes_filter_params flt;
++ char demuxfn[32];
++ sprintf(demuxfn, "/dev/dvb/adapter0/demux%d", demux);
++ demux_fd = open(demuxfn, O_RDWR | O_NONBLOCK);
++ if (demux_fd < 0) {
++ reason = "DEMUX OPEN FAILED";
++ return 2;
++ }
+
+- ioctl(demux_fd, DMX_SET_BUFFER_SIZE, 1024*1024);
++ ioctl(demux_fd, DMX_SET_BUFFER_SIZE, 1024*1024);
+
+- flt.pid = active_pids[i];
+- flt.input = DMX_IN_FRONTEND;
++ flt.pid = active_pids[i];
++ flt.input = DMX_IN_FRONTEND;
+ #if DVB_API_VERSION > 3
+- flt.output = DMX_OUT_TSDEMUX_TAP;
+- flt.pes_type = DMX_PES_OTHER;
++ flt.output = DMX_OUT_TSDEMUX_TAP;
++ flt.pes_type = DMX_PES_OTHER;
+ #else
+- flt.output = DMX_OUT_TAP;
+- flt.pes_type = DMX_TAP_TS;
++ flt.output = DMX_OUT_TAP;
++ flt.pes_type = DMX_TAP_TS;
+ #endif
+- flt.flags = DMX_IMMEDIATE_START;
++ flt.flags = DMX_IMMEDIATE_START;
+
+- if (ioctl(demux_fd, DMX_SET_PES_FILTER, &flt) < 0) {
+- reason = "DEMUX PES FILTER SET FAILED";
+- return 2;
++ if (ioctl(demux_fd, DMX_SET_PES_FILTER, &flt) < 0) {
++ reason = "DEMUX PES FILTER SET FAILED";
++ return 2;
++ }
+ }
+- }
+- else {
+- uint16_t pid = active_pids[i];
+- int ret;
++ else {
++ uint16_t pid = active_pids[i];
++ int ret;
+ #if DVB_API_VERSION > 3
+- ret = ioctl(demux_fd, DMX_ADD_PID, &pid);
++ ret = ioctl(demux_fd, DMX_ADD_PID, &pid);
+ #else
+- ret = ioctl(demux_fd, DMX_ADD_PID, pid);
++ ret = ioctl(demux_fd, DMX_ADD_PID, pid);
+ #endif
+- if (ret < 0) {
+- reason = "DMX_ADD_PID FAILED";
+- return 2;
++ if (ret < 0) {
++ reason = "DMX_ADD_PID FAILED";
++ return 2;
++ }
+ }
+ }
+ }
+- }
+-
+- /* check for removed pids */
+- for (i = 0; i < MAX_PIDS; ++i)
+- {
+- if (old_active_pids[i] == -1)
+- continue;
+- for (j = 0; j < nr_pids; ++j)
+- if (old_active_pids[i] == active_pids[j])
+- break;
+- if (j == nr_pids) {
++
++ /* check for removed pids */
++ for (i = 0; i < MAX_PIDS; ++i)
++ {
++ if (old_active_pids[i] == -1)
++ continue;
++ for (j = 0; j < nr_pids; ++j)
++ if (old_active_pids[i] == active_pids[j])
++ break;
++ if (j == nr_pids) {
+ #if DVB_API_VERSION > 3
+- uint16_t pid = old_active_pids[i];
+- ioctl(demux_fd, DMX_REMOVE_PID, &pid);
++ uint16_t pid = old_active_pids[i];
++ ioctl(demux_fd, DMX_REMOVE_PID, &pid);
+ #else
+- ioctl(demux_fd, DMX_REMOVE_PID, old_active_pids[i]);
++ ioctl(demux_fd, DMX_REMOVE_PID, old_active_pids[i]);
+ #endif
++ }
+ }
+ }
+ if (upstream_state == 2) {
RDEPENDS_enigma2-plugin-systemplugins-devicemanager = "util-linux-ng-blkid ntfs-3g dosfstools"
PN = "enigma2"
-PR = "r62"
+PR = "r63"
SRCDATE = "20110922"
SRCREV = "5e19a3f8a5e8ce8a4e2cb2b601a1b8ef3554e4be"
CONFIG_SYS_SUPPORTS_SMP=y
CONFIG_NR_CPUS=2
CONFIG_TICK_ONESHOT=y
-# CONFIG_NO_HZ is not set
+CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
# CONFIG_HZ_48 is not set
# CONFIG_RCU_TRACE is not set
CONFIG_RCU_FANOUT=32
# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_RCU_FAST_NO_HZ is not set
# CONFIG_TREE_RCU_TRACE is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_LOCKUP_DETECTOR is not set
# CONFIG_HARDLOCKUP_DETECTOR is not set
# CONFIG_DETECT_HUNG_TASK is not set
-# CONFIG_SCHED_DEBUG is not set
+CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
# CONFIG_DEBUG_OBJECTS is not set
DESCRIPTION = "Linux kernel for vuplus solo2"
LICENSE = "GPL"
-KV = "2.6.37"
+KV = "3.3.6"
-PR = "r3"
+PR = "r4"
SRCREV = ""
-MODULE = "linux-2.6.37"
+MODULE = "linux-3.3.6"
SRC_URI += "http://archive.vuplus.com/download/kernel/stblinux-3.3.6-1.2.tar.bz2 \
file://brcm_3.3.patch;patch=1;pnum=1 \
file://fix_cpu_proc.patch;patch=1;pnum=1 \
file://brcm_mtd_mac.patch;patch=1;pnum=1 \
file://dvb_core_5.5.patch;patch=1;pnum=1 \
+ file://brcm_remove_entire_mtd.patch;patch=1;pnum=1 \
file://${MACHINE}_defconfig \
"
--- /dev/null
+# /etc/inetd.conf: see inetd(8) for further informations.
+#
+# Internet server configuration database
+#
+# If you want to disable an entry so it isn't touched during
+# package updates just comment it out with a single '#' character.
+#
+# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
+#
+#:INTERNAL: Internal services
+#echo stream tcp nowait root internal
+#echo dgram udp wait root internal
+#chargen stream tcp nowait root internal
+#chargen dgram udp wait root internal
+#discard stream tcp nowait root internal
+#discard dgram udp wait root internal
+#daytime stream tcp nowait root internal
+#daytime dgram udp wait root internal
+#time stream tcp nowait root internal
+#time dgram udp wait root internal
+ftp stream tcp nowait root /usr/sbin/vsftpd vsftpd
+telnet stream tcp nowait root /usr/sbin/telnetd telnetd
+31335 stream tcp nowait root /usr/sbin/streamsec streamsec
+31337 stream tcp nowait root /usr/sbin/streamts streamts -ps
+31338 stream tcp nowait root /usr/sbin/streampes streampes
+31339 stream tcp nowait root /usr/sbin/streamts streamts -ts
+31340 stream tcp nowait root /usr/sbin/udpstreampes udpstreampes
+31341 stream udp nowait root /usr/sbin/udpstreampes udpstreampes
+31342 stream tcp nowait root /usr/sbin/streamts streamts -tsfile
+31343 stream tcp nowait root /usr/sbin/streampes streames
+8001 stream tcp nowait root /usr/bin/streamproxy streamproxy
+8002 stream tcp nowait root /usr/bin/transtreamproxy transtreamproxy
--- /dev/null
+# /etc/inetd.conf: see inetd(8) for further informations.
+#
+# Internet server configuration database
+#
+# If you want to disable an entry so it isn't touched during
+# package updates just comment it out with a single '#' character.
+#
+# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
+#
+#:INTERNAL: Internal services
+#echo stream tcp nowait root internal
+#echo dgram udp wait root internal
+#chargen stream tcp nowait root internal
+#chargen dgram udp wait root internal
+#discard stream tcp nowait root internal
+#discard dgram udp wait root internal
+#daytime stream tcp nowait root internal
+#daytime dgram udp wait root internal
+#time stream tcp nowait root internal
+#time dgram udp wait root internal
+ftp stream tcp nowait root /usr/sbin/vsftpd vsftpd
+telnet stream tcp nowait root /usr/sbin/telnetd telnetd
+31335 stream tcp nowait root /usr/sbin/streamsec streamsec
+31337 stream tcp nowait root /usr/sbin/streamts streamts -ps
+31338 stream tcp nowait root /usr/sbin/streampes streampes
+31339 stream tcp nowait root /usr/sbin/streamts streamts -ts
+31340 stream tcp nowait root /usr/sbin/udpstreampes udpstreampes
+31341 stream udp nowait root /usr/sbin/udpstreampes udpstreampes
+31342 stream tcp nowait root /usr/sbin/streamts streamts -tsfile
+31343 stream tcp nowait root /usr/sbin/streampes streames
+8001 stream tcp nowait root /usr/bin/streamproxy streamproxy
+8002 stream tcp nowait root /usr/bin/transtreamproxy transtreamproxy
SECTION = "base"
DESCRIPTION = "netkit-base includes the inetd daemon."
LICENSE = "BSD"
-PR = "r1"
+PR = "r2"
SRC_URI = "ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/netkit-base-${PV}.tar.gz \
file://configure.patch;patch=1 \
vuplus-blindscan-utils \
enigma2-plugin-systemplugins-firmwareupgrade \
enigma2-plugin-systemplugins-manualfancontrol \
+ enigma2-plugin-systemplugins-autoshutdown \
+ enigma2-plugin-systemplugins-transcodingsetup \
+ enigma2-transtreamproxy \
"
RDEPENDS_task-vuplus-enigma2_append_vusolo2 = "\
enigma2-plugin-systemplugins-firmwareupgrade \
enigma2-plugin-systemplugins-manualfancontrol \
enigma2-plugin-systemplugins-autoshutdown \
+ enigma2-plugin-systemplugins-transcodingsetup \
+ enigma2-transtreamproxy \
"
RDEPENDS_task-vuplus-enigma2_append_vuuno = "\
SRCDATE_vuuno = "20121025"
SRCDATE_vuultimo = "20121025"
SRCDATE_vuduo2 = "20121116"
-SRCDATE_vusolo2 = "20121109"
+SRCDATE_vusolo2 = "20121217"
MODULES_NAME_bm750 = "procmk\ndvb-bcm7335\nbrcmfb"
MODULES_NAME_vusolo = "procmk\ndvb-bcm7325\nbrcmfb"
RDEPENDS_append_vuplus = " module-init-tools-depmod"
SRC_URI = "http://archive.vuplus.com/download/drivers/vuplus-dvb-modules-${MACHINE}-${PV}-${PREFERRED_GCC_VERSION}-${SRCDATE}.tar.gz "
-SRC_URI_vusolo2 = "http://archive.vuplus.com/download/drivers/beta/private/vuplus-dvb-modules-${MACHINE}-${PV}-${PREFERRED_GCC_VERSION}-${SRCDATE}.tar.gz "
SRC_URI_vuduo2 = "http://archive.vuplus.com/download/drivers/beta/private/vuplus-dvb-modules-${MACHINE}-${PV}-${PREFERRED_GCC_VERSION}-${SRCDATE}.tar.gz "
S = "${WORKDIR}"