mirror of
https://github.com/LibreELEC/LibreELEC.tv
synced 2025-09-24 19:46:01 +07:00
Compare commits
143 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5278f57941 | ||
|
|
a4e3845b91 | ||
|
|
2d9fc82796 | ||
|
|
cf55b2e446 | ||
|
|
60be736d7c | ||
|
|
da48eab9b6 | ||
|
|
305789f7f5 | ||
|
|
18d70a1a36 | ||
|
|
f8519f839e | ||
|
|
3fcd79ce7c | ||
|
|
685134ffef | ||
|
|
6c38a52a25 | ||
|
|
8382c54f31 | ||
|
|
79d9ff1c67 | ||
|
|
8a0a88c45c | ||
|
|
84bd75d9bd | ||
|
|
40225b9ef9 | ||
|
|
521df499e1 | ||
|
|
37728af595 | ||
|
|
6c353d3142 | ||
|
|
20d60164cd | ||
|
|
bb1082c2bb | ||
|
|
6640f3dc8d | ||
|
|
99496f656c | ||
|
|
727692604a | ||
|
|
e651d993c5 | ||
|
|
02fbd280a5 | ||
|
|
9ee5b04b40 | ||
|
|
7f4b55a4a1 | ||
|
|
b228b408d5 | ||
|
|
920305961c | ||
|
|
670dcd611a | ||
|
|
f796f8bbdb | ||
|
|
73d6987c06 | ||
|
|
40201f49a3 | ||
|
|
db33a7a98d | ||
|
|
0013d42deb | ||
|
|
5f2d6bad75 | ||
|
|
2ac8b9cfe8 | ||
|
|
7fbfe11a5e | ||
|
|
d6f4ef6d85 | ||
|
|
6009676903 | ||
|
|
3ecbf910cc | ||
|
|
a7d2c2bf52 | ||
|
|
708b1c0be0 | ||
|
|
c07940e3bb | ||
|
|
66dff3776f | ||
|
|
d3fc839e8b | ||
|
|
a0d63b96be | ||
|
|
9cbd29574d | ||
|
|
b80e616268 | ||
|
|
89a9eea999 | ||
|
|
08f937ac87 | ||
|
|
9d86201373 | ||
|
|
5bb143cc2c | ||
|
|
b2ccdeb88f | ||
|
|
0d0d5d14ad | ||
|
|
1aac0e3e1f | ||
|
|
c29bb6edc9 | ||
|
|
189841c54b | ||
|
|
bddb577ede | ||
|
|
1aaa369786 | ||
|
|
e6aaa7b903 | ||
|
|
4cde019d1e | ||
|
|
6895e7ef43 | ||
|
|
b9cf818bce | ||
|
|
311350443e | ||
|
|
a06f3d0d30 | ||
|
|
1a1dd1fbe0 | ||
|
|
1f3b368b3d | ||
|
|
8e4e0be55a | ||
|
|
8b6b81ef45 | ||
|
|
3a0626aad5 | ||
|
|
37d3bde303 | ||
|
|
57ea8754b6 | ||
|
|
5a207ca188 | ||
|
|
895ebf578c | ||
|
|
915b15ca7d | ||
|
|
2d1585e8fe | ||
|
|
04484133aa | ||
|
|
5426ba5e9c | ||
|
|
9435a272a2 | ||
|
|
945c1cab95 | ||
|
|
7d9ea5f98d | ||
|
|
cd6f188dbd | ||
|
|
9ac640b3f3 | ||
|
|
93f0f86848 | ||
|
|
2cc4fe23e7 | ||
|
|
53c876f44a | ||
|
|
60c0006307 | ||
|
|
ebcb3e8d10 | ||
|
|
4a8d677218 | ||
|
|
2535fcd9f7 | ||
|
|
594a413820 | ||
|
|
aa13c0829d | ||
|
|
99af1e0038 | ||
|
|
5b8f39d581 | ||
|
|
33fd9dda82 | ||
|
|
3ccdbc2507 | ||
|
|
dfabbd188d | ||
|
|
f6fa495e35 | ||
|
|
67b7e7fae2 | ||
|
|
6fba93b85d | ||
|
|
2e427a5fc4 | ||
|
|
68d24ada1c | ||
|
|
e253a9a765 | ||
|
|
6184cb86b7 | ||
|
|
e76a2d73d3 | ||
|
|
1aa0f6a63a | ||
|
|
15e76e7de2 | ||
|
|
3bd9a030e7 | ||
|
|
27a962409b | ||
|
|
f986fb0c37 | ||
|
|
d8ab0b654b | ||
|
|
07592d1e8b | ||
|
|
feb31df3b4 | ||
|
|
c931a3510d | ||
|
|
1672676b87 | ||
|
|
21e21878d6 | ||
|
|
096ba5e26e | ||
|
|
27445b4f8a | ||
|
|
de94bf7c3b | ||
|
|
151d9918ff | ||
|
|
c57bf7318e | ||
|
|
1fb2681772 | ||
|
|
e814ca5972 | ||
|
|
8003914943 | ||
|
|
03f6db3269 | ||
|
|
448a0279be | ||
|
|
2a2e30d38d | ||
|
|
0e933bb5b4 | ||
|
|
e290fc492a | ||
|
|
669021932b | ||
|
|
473676705d | ||
|
|
e3a6fba417 | ||
|
|
9d5803fe1d | ||
|
|
5389274ed1 | ||
|
|
d21b436002 | ||
|
|
30ec9c2a11 | ||
|
|
2acd7d8021 | ||
|
|
340229b925 | ||
|
|
4efcf42da2 | ||
|
|
aefcbe0672 |
@@ -35,6 +35,12 @@ Feature requests are great, but they usually end up lying around the issue
|
|||||||
tracker indefinitely. Sending a pull request is a much better way of getting a
|
tracker indefinitely. Sending a pull request is a much better way of getting a
|
||||||
particular feature into OpenELEC.
|
particular feature into OpenELEC.
|
||||||
|
|
||||||
|
Please dont ask us to add 3rdparty drivers unless you are the maintainer/developer of the driver,
|
||||||
|
we have no manpower to support a non-mainlined kernel driver for your hardware.
|
||||||
|
However, OpenELEC comes with minimal set of kernel drivers enabled, if you are sure that your hardware
|
||||||
|
is supported in mainline kernel, feel free to send us a Pull Request to enable it in our
|
||||||
|
kernel defconfigs. We are always happy to support known-working hardware.
|
||||||
|
|
||||||
### Reporting build failures
|
### Reporting build failures
|
||||||
|
|
||||||
As buildsystem / core packages (toolchain) / random libraries change from time to time, it is required
|
As buildsystem / core packages (toolchain) / random libraries change from time to time, it is required
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<addon id="@PKG_ADDON_ID@"
|
<addon id="@PKG_ADDON_ID@"
|
||||||
name="@PKG_NAME@"
|
name="@ADDON_NAME@"
|
||||||
version="@ADDON_VERSION@"
|
version="@ADDON_VERSION@"
|
||||||
provider-name="@PROVIDER_NAME@">
|
provider-name="@PROVIDER_NAME@">
|
||||||
<requires>
|
<requires>
|
||||||
@@ -8,11 +8,8 @@
|
|||||||
<import addon="xbmc.python" version="2.1.0"/>
|
<import addon="xbmc.python" version="2.1.0"/>
|
||||||
@REQUIRES@
|
@REQUIRES@
|
||||||
</requires>
|
</requires>
|
||||||
<extension point="@PKG_ADDON_TYPE@"
|
<extension point="xbmc.python.module" library="lib/">
|
||||||
library="default.py">
|
|
||||||
<provides>executable</provides>
|
|
||||||
</extension>
|
</extension>
|
||||||
@EXTENSIONS@
|
|
||||||
<extension point="xbmc.addon.metadata">
|
<extension point="xbmc.addon.metadata">
|
||||||
<summary>@PKG_SHORTDESC@</summary>
|
<summary>@PKG_SHORTDESC@</summary>
|
||||||
<description>
|
<description>
|
||||||
24
config/addon/xbmc.python.script.xml
Normal file
24
config/addon/xbmc.python.script.xml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
|
<addon id="@PKG_ADDON_ID@"
|
||||||
|
name="@ADDON_NAME@"
|
||||||
|
version="@ADDON_VERSION@"
|
||||||
|
provider-name="@PROVIDER_NAME@">
|
||||||
|
<requires>
|
||||||
|
<import addon="os.openelec.tv" version="@OS_VERSION@"/>
|
||||||
|
<import addon="xbmc.python" version="2.1.0"/>
|
||||||
|
@REQUIRES@
|
||||||
|
</requires>
|
||||||
|
<extension point="xbmc.python.script" library="default.py">
|
||||||
|
<provides>executable</provides>
|
||||||
|
</extension>
|
||||||
|
<extension point="xbmc.addon.metadata">
|
||||||
|
<summary>@PKG_SHORTDESC@</summary>
|
||||||
|
<description>
|
||||||
|
@PKG_LONGDESC@
|
||||||
|
</description>
|
||||||
|
<disclaimer>
|
||||||
|
@PKG_DISCLAIMER@
|
||||||
|
</disclaimer>
|
||||||
|
<platform>all</platform>
|
||||||
|
</extension>
|
||||||
|
</addon>
|
||||||
24
config/addon/xbmc.service.xml
Normal file
24
config/addon/xbmc.service.xml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
|
<addon id="@PKG_ADDON_ID@"
|
||||||
|
name="@ADDON_NAME@"
|
||||||
|
version="@ADDON_VERSION@"
|
||||||
|
provider-name="@PROVIDER_NAME@">
|
||||||
|
<requires>
|
||||||
|
<import addon="os.openelec.tv" version="@OS_VERSION@"/>
|
||||||
|
<import addon="xbmc.python" version="2.1.0"/>
|
||||||
|
@REQUIRES@
|
||||||
|
</requires>
|
||||||
|
<extension point="xbmc.service" library="default.py">
|
||||||
|
<provides>executable</provides>
|
||||||
|
</extension>
|
||||||
|
<extension point="xbmc.addon.metadata">
|
||||||
|
<summary>@PKG_SHORTDESC@</summary>
|
||||||
|
<description>
|
||||||
|
@PKG_LONGDESC@
|
||||||
|
</description>
|
||||||
|
<disclaimer>
|
||||||
|
@PKG_DISCLAIMER@
|
||||||
|
</disclaimer>
|
||||||
|
<platform>all</platform>
|
||||||
|
</extension>
|
||||||
|
</addon>
|
||||||
@@ -65,7 +65,9 @@ LINUX_DEPENDS="$PROJECT_DIR/$PROJECT/linux/linux.$TARGET_ARCH.conf $ROOT/package
|
|||||||
# Concurrency make level (-j option)
|
# Concurrency make level (-j option)
|
||||||
# Try value 1 (default) to 4 on single CPU computer, or more on
|
# Try value 1 (default) to 4 on single CPU computer, or more on
|
||||||
# multi-processor computer (like hyperthreading SMP CPU)
|
# multi-processor computer (like hyperthreading SMP CPU)
|
||||||
CONCURRENCY_MAKE_LEVEL=`cat /proc/cpuinfo | grep -c '^processor[[:cntrl:]]*:'`
|
if test -z "${CONCURRENCY_MAKE_LEVEL}"; then
|
||||||
|
CONCURRENCY_MAKE_LEVEL=`cat /proc/cpuinfo | grep -c '^processor[[:cntrl:]]*:'`
|
||||||
|
fi
|
||||||
|
|
||||||
# cache size for ccache
|
# cache size for ccache
|
||||||
# Set the maximum size of the files stored in the cache. You can specify a
|
# Set the maximum size of the files stored in the cache. You can specify a
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# VERSION: set full version, use "devel" for development version
|
# VERSION: set full version, use "devel" for development version
|
||||||
OPENELEC_VERSION="4.95.2"
|
OPENELEC_VERSION="4.97.2"
|
||||||
|
|
||||||
# OS_VERSION: OS Version
|
# OS_VERSION: OS Version
|
||||||
OS_VERSION="5.0"
|
OS_VERSION="5.0"
|
||||||
|
|||||||
@@ -200,11 +200,6 @@
|
|||||||
# This adds support for parted and mkfs.ext3/4 to initramfs for OEM usage
|
# This adds support for parted and mkfs.ext3/4 to initramfs for OEM usage
|
||||||
INITRAMFS_PARTED_SUPPORT="no"
|
INITRAMFS_PARTED_SUPPORT="no"
|
||||||
|
|
||||||
# additional Firmware to use (dvb-firmware, misc-firmware, wlan-firmware)
|
|
||||||
# Space separated list is supported,
|
|
||||||
# e.g. FIRMWARE="dvb-firmware misc-firmware wlan-firmware"
|
|
||||||
FIRMWARE="misc-firmware wlan-firmware dvb-firmware"
|
|
||||||
|
|
||||||
# build with swap support (yes / no)
|
# build with swap support (yes / no)
|
||||||
SWAP_SUPPORT="no"
|
SWAP_SUPPORT="no"
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
4.3.2
|
||||||
|
allow running scripts from addon settings
|
||||||
4.3.1
|
4.3.1
|
||||||
rebuild for addon api bump
|
rebuild for addon api bump
|
||||||
4.3.0
|
4.3.0
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
PKG_NAME="hdhomerun"
|
PKG_NAME="hdhomerun"
|
||||||
PKG_VERSION="4.3"
|
PKG_VERSION="4.3"
|
||||||
PKG_REV="1"
|
PKG_REV="2"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
PKG_SITE="http://www.silicondust.com/products/hdhomerun/dvbt/"
|
PKG_SITE="http://www.silicondust.com/products/hdhomerun/dvbt/"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
# This file is part of OpenELEC - http://www.openelec.tv
|
# This file is part of OpenELEC - http://www.openelec.tv
|
||||||
# Copyright (C) 2009-2013 Stephan Raue (stephan@openelec.tv)
|
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||||
#
|
#
|
||||||
# OpenELEC is free software: you can redistribute it and/or modify
|
# OpenELEC is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
@@ -15,18 +15,3 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
import xbmcaddon
|
|
||||||
|
|
||||||
__settings__ = xbmcaddon.Addon(id = 'driver.dvb.hdhomerun')
|
|
||||||
__cwd__ = __settings__.getAddonInfo('path')
|
|
||||||
__resources_lib__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'lib'))
|
|
||||||
__settings_xml__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'settings.xml'))
|
|
||||||
|
|
||||||
if __name__ == "__main__" and len(sys.argv) == 2 and sys.argv[1] == 'refresh_tuners':
|
|
||||||
sys.path.append(__resources_lib__)
|
|
||||||
from functions import refresh_hdhomerun_tuners
|
|
||||||
refresh_hdhomerun_tuners(__settings_xml__)
|
|
||||||
__settings__.openSettings()
|
|
||||||
|
|||||||
32
packages/addons/driver/hdhomerun/source/resources/actions.py
Normal file
32
packages/addons/driver/hdhomerun/source/resources/actions.py
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
################################################################################
|
||||||
|
# This file is part of OpenELEC - http://www.openelec.tv
|
||||||
|
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||||
|
#
|
||||||
|
# OpenELEC 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 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# OpenELEC 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. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import xbmcaddon
|
||||||
|
|
||||||
|
__settings__ = xbmcaddon.Addon(id = 'driver.dvb.hdhomerun')
|
||||||
|
__cwd__ = __settings__.getAddonInfo('path')
|
||||||
|
__resources_lib__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'lib'))
|
||||||
|
__settings_xml__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'settings.xml'))
|
||||||
|
|
||||||
|
if len(sys.argv) == 2 and sys.argv[1] == 'refresh_tuners':
|
||||||
|
sys.path.append(__resources_lib__)
|
||||||
|
from functions import refresh_hdhomerun_tuners
|
||||||
|
refresh_hdhomerun_tuners(__settings_xml__)
|
||||||
|
__settings__.openSettings()
|
||||||
@@ -37,36 +37,39 @@ def _usage(this_file):
|
|||||||
return """SYNOPSIS: pretty print an XML document
|
return """SYNOPSIS: pretty print an XML document
|
||||||
USAGE: python %s <filename> \n""" % this_file
|
USAGE: python %s <filename> \n""" % this_file
|
||||||
|
|
||||||
def _pprint_line(indent_level, line, width=100, output=_sys.stdout):
|
def _pprint_line(indent_level, line, width=100, output=_sys.stdout, ignore_contents = False):
|
||||||
if line.strip():
|
if line.strip():
|
||||||
start = ""
|
start = ""
|
||||||
number_chars = 0
|
number_chars = 0
|
||||||
for l in range(indent_level):
|
for l in range(indent_level):
|
||||||
start = start + " "
|
start = start + " "
|
||||||
number_chars = number_chars + 1
|
number_chars = number_chars + 1
|
||||||
try:
|
if not ignore_contents:
|
||||||
elem_start = _re.findall("(\<\W{0,1}\w+:\w+) ?", line)[0]
|
try:
|
||||||
elem_finished = _re.findall("([?|\]\]/]*\>)", line)[0]
|
elem_start = _re.findall("(\<\W{0,1}\w+:\w+) ?", line)[0]
|
||||||
#should not have *
|
elem_finished = _re.findall("([?|\]\]/|\-\-]*\>)", line)[0]
|
||||||
attrs = _re.findall("(\S*?\=\".*?\")", line)
|
#should not have *
|
||||||
output.write(start + elem_start)
|
attrs = _re.findall("(\S*?\=\".*?\")", line)
|
||||||
number_chars = len(start + elem_start)
|
output.write(start + elem_start)
|
||||||
for attr in attrs:
|
number_chars = len(start + elem_start)
|
||||||
if (attrs.index(attr) + 1) == len(attrs):
|
for attr in attrs:
|
||||||
number_chars = number_chars + len(elem_finished)
|
if (attrs.index(attr) + 1) == len(attrs):
|
||||||
if (number_chars + len(attr) + 1) > width:
|
number_chars = number_chars + len(elem_finished)
|
||||||
output.write("\n")
|
if (number_chars + len(attr) + 1) > width:
|
||||||
for i in range(len(start + elem_start) + 1):
|
output.write("\n")
|
||||||
|
for i in range(len(start + elem_start) + 1):
|
||||||
|
output.write(" ")
|
||||||
|
number_chars = len(start + elem_start) + 1
|
||||||
|
else:
|
||||||
output.write(" ")
|
output.write(" ")
|
||||||
number_chars = len(start + elem_start) + 1
|
number_chars = number_chars + 1
|
||||||
else:
|
output.write(attr)
|
||||||
output.write(" ")
|
number_chars = number_chars + len(attr)
|
||||||
number_chars = number_chars + 1
|
output.write(elem_finished + "\n")
|
||||||
output.write(attr)
|
except IndexError:
|
||||||
number_chars = number_chars + len(attr)
|
#give up pretty print this line
|
||||||
output.write(elem_finished + "\n")
|
output.write(start + line + "\n")
|
||||||
except IndexError:
|
else:
|
||||||
#give up pretty print this line
|
|
||||||
output.write(start + line + "\n")
|
output.write(start + line + "\n")
|
||||||
|
|
||||||
|
|
||||||
@@ -80,7 +83,8 @@ def _get_next_elem(data):
|
|||||||
start_pos = data.find("<")
|
start_pos = data.find("<")
|
||||||
end_pos = data.find(">") + 1
|
end_pos = data.find(">") + 1
|
||||||
retval = data[start_pos:end_pos]
|
retval = data[start_pos:end_pos]
|
||||||
stopper = retval.rfind("/")
|
stopper = retval.rfind("/")
|
||||||
|
ignore_contents = False
|
||||||
if stopper < retval.rfind("\""):
|
if stopper < retval.rfind("\""):
|
||||||
stopper = -1
|
stopper = -1
|
||||||
single = (stopper > -1 and ((retval.find(">") - stopper) < (stopper - retval.find("<"))))
|
single = (stopper > -1 and ((retval.find(">") - stopper) < (stopper - retval.find("<"))))
|
||||||
@@ -89,11 +93,19 @@ def _get_next_elem(data):
|
|||||||
ignore_question = retval.find("<?") > -1
|
ignore_question = retval.find("<?") > -1
|
||||||
|
|
||||||
if ignore_excl:
|
if ignore_excl:
|
||||||
|
ignore_contents = True
|
||||||
cdata = retval.find("<![CDATA[") > -1
|
cdata = retval.find("<![CDATA[") > -1
|
||||||
if cdata:
|
if cdata:
|
||||||
end_pos = data.find("]]>")
|
end_pos = data.find("]]>")
|
||||||
if end_pos > -1:
|
if end_pos > -1:
|
||||||
end_pos = end_pos + len("]]>")
|
end_pos = end_pos + len("]]>")
|
||||||
|
stopper = end_pos
|
||||||
|
else:
|
||||||
|
end_pos = data.find("-->")
|
||||||
|
if end_pos > -1:
|
||||||
|
end_pos = end_pos + len("-->")
|
||||||
|
stopper = end_pos
|
||||||
|
retval = data[start_pos:end_pos]
|
||||||
|
|
||||||
elif ignore_question:
|
elif ignore_question:
|
||||||
end_pos = data.find("?>") + len("?>")
|
end_pos = data.find("?>") + len("?>")
|
||||||
@@ -101,11 +113,12 @@ def _get_next_elem(data):
|
|||||||
|
|
||||||
no_indent = ignore or single
|
no_indent = ignore or single
|
||||||
|
|
||||||
#print retval, end_pos, start_pos, stopper > -1, no_indent
|
|
||||||
return start_pos, \
|
return start_pos, \
|
||||||
end_pos, \
|
end_pos, \
|
||||||
stopper > -1, \
|
stopper > -1, \
|
||||||
no_indent
|
no_indent, \
|
||||||
|
ignore_contents
|
||||||
|
|
||||||
def get_pprint(xml, indent=4, width=80):
|
def get_pprint(xml, indent=4, width=80):
|
||||||
"""Returns the pretty printed xml """
|
"""Returns the pretty printed xml """
|
||||||
@@ -116,6 +129,8 @@ def get_pprint(xml, indent=4, width=80):
|
|||||||
self.output += string
|
self.output += string
|
||||||
out = out()
|
out = out()
|
||||||
pprint(xml, output=out, indent=indent, width=width)
|
pprint(xml, output=out, indent=indent, width=width)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return out.output
|
return out.output
|
||||||
|
|
||||||
@@ -126,7 +141,7 @@ def pprint(xml, output=_sys.stdout, indent=4, width=80):
|
|||||||
Use indent to select indentation level. Default is 4 """
|
Use indent to select indentation level. Default is 4 """
|
||||||
data = xml
|
data = xml
|
||||||
indent_level = 0
|
indent_level = 0
|
||||||
start_pos, end_pos, is_stop, no_indent = _get_next_elem(data)
|
start_pos, end_pos, is_stop, no_indent, ignore_contents = _get_next_elem(data)
|
||||||
while ((start_pos > -1 and end_pos > -1)):
|
while ((start_pos > -1 and end_pos > -1)):
|
||||||
_pprint_elem_content(indent_level, data[:start_pos].strip(),
|
_pprint_elem_content(indent_level, data[:start_pos].strip(),
|
||||||
output=output)
|
output=output)
|
||||||
@@ -136,7 +151,8 @@ def pprint(xml, output=_sys.stdout, indent=4, width=80):
|
|||||||
_pprint_line(indent_level,
|
_pprint_line(indent_level,
|
||||||
data[:end_pos - start_pos],
|
data[:end_pos - start_pos],
|
||||||
width=width,
|
width=width,
|
||||||
output=output)
|
output=output,
|
||||||
|
ignore_contents=ignore_contents)
|
||||||
data = data[end_pos - start_pos:]
|
data = data[end_pos - start_pos:]
|
||||||
if not is_stop and not no_indent :
|
if not is_stop and not no_indent :
|
||||||
indent_level = indent_level + indent
|
indent_level = indent_level + indent
|
||||||
@@ -144,7 +160,7 @@ def pprint(xml, output=_sys.stdout, indent=4, width=80):
|
|||||||
if not data:
|
if not data:
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
start_pos, end_pos, is_stop, no_indent = _get_next_elem(data)
|
start_pos, end_pos, is_stop, no_indent, ignore_contents = _get_next_elem(data)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
@@ -11,6 +11,6 @@
|
|||||||
<category label="9000">
|
<category label="9000">
|
||||||
<setting type="sep" />
|
<setting type="sep" />
|
||||||
<setting id="ENABLE_TUNER_TYPES" type="bool" label="9005" default="true" />
|
<setting id="ENABLE_TUNER_TYPES" type="bool" label="9005" default="true" />
|
||||||
<setting label="9010" option="close" type="action" action="RunScript($ID, refresh_tuners)" />
|
<setting label="9010" option="close" type="action" id="refresh_tuners" action="RunScript($CWD/resources/actions.py, refresh_tuners)" />
|
||||||
</category>
|
</category>
|
||||||
</settings>
|
</settings>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
4.3.4
|
4.3.4
|
||||||
fixed xbmc/kodi rebranding error
|
fixed xbmc/kodi rebranding error
|
||||||
removed driver update option (can't run script from addon settings anymore)
|
some fixes
|
||||||
4.3.3
|
4.3.3
|
||||||
addon transformed to service addon
|
addon transformed to service addon
|
||||||
new addon settings option to enable to check for new driver at boot
|
new addon settings option to enable to check for new driver at boot
|
||||||
|
|||||||
@@ -47,10 +47,17 @@ make_target() {
|
|||||||
INSTALLER_URL="http://sundtek.de/media/netinst/armsysvhf/installer.tar.gz"
|
INSTALLER_URL="http://sundtek.de/media/netinst/armsysvhf/installer.tar.gz"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
wget -O installer.tar.gz $INSTALLER_URL
|
wget -O installer.tar.gz $INSTALLER_URL
|
||||||
|
|
||||||
tar -xzf installer.tar.gz
|
tar -xzf installer.tar.gz
|
||||||
|
|
||||||
chmod -R 755 opt/ etc/
|
chmod -R 755 opt/ etc/
|
||||||
|
|
||||||
|
rm -f opt/bin/getinput.sh
|
||||||
|
rm -f opt/bin/lirc.sh
|
||||||
|
rm -fr opt/lib/pm/
|
||||||
|
|
||||||
wget -O version.used http://sundtek.de/media/latest.phtml
|
wget -O version.used http://sundtek.de/media/latest.phtml
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# This file is part of OpenELEC - http://www.openelec.tv
|
# This file is part of OpenELEC - http://www.openelec.tv
|
||||||
# Copyright (C) 2009-2013 Stephan Raue (stephan@openelec.tv)
|
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||||
#
|
#
|
||||||
# OpenELEC is free software: you can redistribute it and/or modify
|
# OpenELEC is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
@@ -78,7 +78,7 @@ if [ "$CHECK_BOOT" = "true" ]; then
|
|||||||
version_latest=$(cat version.latest)
|
version_latest=$(cat version.latest)
|
||||||
if [ "$version_used" != "$version_latest" ]; then
|
if [ "$version_used" != "$version_latest" ]; then
|
||||||
# new version exist
|
# new version exist
|
||||||
kodi-send -a "Notification(Sundtek, \"New driver version exist, update manually\", 7000, $SUNDTEK_ADDON_DIR/icon.png)"
|
kodi-send -a "Notification(Sundtek, \"New driver version exist, update manually\", 4000, $SUNDTEK_ADDON_DIR/icon.png)"
|
||||||
fi
|
fi
|
||||||
)&
|
)&
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# This file is part of OpenELEC - http://www.openelec.tv
|
# This file is part of OpenELEC - http://www.openelec.tv
|
||||||
# Copyright (C) 2009-2013 Stephan Raue (stephan@openelec.tv)
|
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||||
#
|
#
|
||||||
# OpenELEC is free software: you can redistribute it and/or modify
|
# OpenELEC is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -24,18 +24,35 @@ SUNDTEK_ADDON_DIR="$HOME/.kodi/addons/driver.dvb.sundtek-mediatv"
|
|||||||
SUNDTEK_ADDON_HOME="$HOME/.kodi/userdata/addon_data/driver.dvb.sundtek-mediatv"
|
SUNDTEK_ADDON_HOME="$HOME/.kodi/userdata/addon_data/driver.dvb.sundtek-mediatv"
|
||||||
SUNDTEK_ADDON_SETTINGS="$SUNDTEK_ADDON_HOME/settings.xml"
|
SUNDTEK_ADDON_SETTINGS="$SUNDTEK_ADDON_HOME/settings.xml"
|
||||||
|
|
||||||
logger -t Sundtek "### Starting updating driver ###"
|
trap_exit_install() {
|
||||||
kodi-send -a "Notification(Sundtek, Starting updating driver, 2000, $SUNDTEK_ADDON_DIR/icon.png)"
|
kodi-send -a "Notification(Sundtek, Something went wrong. Cleaning..., 8000, $SUNDTEK_ADDON_DIR/icon.png)"
|
||||||
|
cd "$SUNDTEK_ADDON_DIR"
|
||||||
|
rm -fr tmp
|
||||||
|
exit 5
|
||||||
|
}
|
||||||
|
|
||||||
|
# kill process
|
||||||
|
systemctl stop driver.dvb.sundtek-mediatv
|
||||||
|
killall -9 mediaclient &>/dev/null
|
||||||
|
killall -9 mediasrv &>/dev/null
|
||||||
|
|
||||||
|
# exit on errors
|
||||||
|
set -e
|
||||||
|
|
||||||
|
trap trap_exit_install EXIT
|
||||||
|
|
||||||
cd "$SUNDTEK_ADDON_DIR"
|
cd "$SUNDTEK_ADDON_DIR"
|
||||||
rm -fr tmp
|
rm -fr tmp
|
||||||
mkdir tmp
|
mkdir tmp
|
||||||
cd tmp
|
cd tmp
|
||||||
|
|
||||||
|
logger -t Sundtek "### Starting updating driver ###"
|
||||||
|
kodi-send -a "Notification(Sundtek, Starting updating driver, 2000, $SUNDTEK_ADDON_DIR/icon.png)"
|
||||||
|
|
||||||
wget -O ../version.used http://sundtek.de/media/latest.phtml
|
wget -O ../version.used http://sundtek.de/media/latest.phtml
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
logger -t Sundtek "### Can't get latest version ###"
|
logger -t Sundtek "### Can't get latest version ###"
|
||||||
kodi-send -a "Notification(Sundtek, Can't get latest version, 8000, $SUNDTEK_ADDON_DIR/icon.png)"
|
kodi-send -a "Notification(Sundtek, Cant get latest version, 8000, $SUNDTEK_ADDON_DIR/icon.png)"
|
||||||
cd ..
|
cd ..
|
||||||
rm -fr tmp/
|
rm -fr tmp/
|
||||||
exit 1
|
exit 1
|
||||||
@@ -66,6 +83,7 @@ if [ $? -ne 0 ]; then
|
|||||||
rm -fr tmp/
|
rm -fr tmp/
|
||||||
exit 3
|
exit 3
|
||||||
fi
|
fi
|
||||||
|
|
||||||
logger -t Sundtek "### Extracting archive ###"
|
logger -t Sundtek "### Extracting archive ###"
|
||||||
kodi-send -a "Notification(Sundtek, Extracting archive, 2000, $SUNDTEK_ADDON_DIR/icon.png)"
|
kodi-send -a "Notification(Sundtek, Extracting archive, 2000, $SUNDTEK_ADDON_DIR/icon.png)"
|
||||||
tar -xzf installer.tar.gz
|
tar -xzf installer.tar.gz
|
||||||
@@ -77,12 +95,12 @@ if [ $? -ne 0 ]; then
|
|||||||
exit 4
|
exit 4
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# fix permissions
|
||||||
chmod -R 755 opt/ etc/
|
chmod -R 755 opt/ etc/
|
||||||
|
|
||||||
killall -9 mediaclient &>/dev/null
|
rm -f opt/bin/getinput.sh
|
||||||
killall -9 mediasrv &>/dev/null
|
rm -f opt/bin/lirc.sh
|
||||||
|
rm -fr opt/lib/pm/
|
||||||
chmod 755 opt/bin/*
|
|
||||||
|
|
||||||
cp -Pa opt/bin/* ../bin/
|
cp -Pa opt/bin/* ../bin/
|
||||||
cp -Pa opt/lib/* ../lib/
|
cp -Pa opt/lib/* ../lib/
|
||||||
@@ -93,4 +111,9 @@ rm -fr tmp
|
|||||||
logger -t Sundtek "### Driver update finished ###"
|
logger -t Sundtek "### Driver update finished ###"
|
||||||
kodi-send -a "Notification(Sundtek, Driver update finished, 5000, $SUNDTEK_ADDON_DIR/icon.png)"
|
kodi-send -a "Notification(Sundtek, Driver update finished, 5000, $SUNDTEK_ADDON_DIR/icon.png)"
|
||||||
kodi-send -a "Notification(Sundtek, Please reboot, 5000, $SUNDTEK_ADDON_DIR/icon.png)"
|
kodi-send -a "Notification(Sundtek, Please reboot, 5000, $SUNDTEK_ADDON_DIR/icon.png)"
|
||||||
|
|
||||||
|
trap - EXIT
|
||||||
|
|
||||||
|
systemctl start driver.dvb.sundtek-mediatv
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# This file is part of OpenELEC - http://www.openelec.tv
|
# This file is part of OpenELEC - http://www.openelec.tv
|
||||||
# Copyright (C) 2009-2013 Stephan Raue (stephan@openelec.tv)
|
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||||
#
|
#
|
||||||
# OpenELEC is free software: you can redistribute it and/or modify
|
# OpenELEC is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -15,29 +15,3 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
import subprocess
|
|
||||||
import xbmcaddon
|
|
||||||
|
|
||||||
__settings__ = xbmcaddon.Addon(id = 'driver.dvb.sundtek-mediatv')
|
|
||||||
__cwd__ = __settings__.getAddonInfo('path')
|
|
||||||
__resources_lib__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'lib'))
|
|
||||||
__settings_xml__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'settings.xml'))
|
|
||||||
|
|
||||||
__mediaclient__ = xbmc.translatePath(os.path.join(__cwd__, 'bin', 'mediaclient'))
|
|
||||||
__mediaclient_e__ = __mediaclient__ + ' -e'
|
|
||||||
__update_sh__ = xbmc.translatePath(os.path.join(__cwd__, 'bin', 'sundtek-update-driver.sh'))
|
|
||||||
|
|
||||||
if __name__ == "__main__" and len(sys.argv) == 2:
|
|
||||||
if sys.argv[1] == 'refresh_tuners':
|
|
||||||
sys.path.append(__resources_lib__)
|
|
||||||
from functions import refresh_sundtek_tuners
|
|
||||||
refresh_sundtek_tuners(__settings_xml__, __mediaclient_e__)
|
|
||||||
__settings__.openSettings()
|
|
||||||
elif sys.argv[1] == 'update_driver':
|
|
||||||
proc = subprocess.Popen([__update_sh__], shell = True)
|
|
||||||
return_code = proc.wait()
|
|
||||||
print "sundtek update driver return value" + str(return_code)
|
|
||||||
__settings__.openSettings()
|
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
################################################################################
|
||||||
|
# This file is part of OpenELEC - http://www.openelec.tv
|
||||||
|
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||||
|
#
|
||||||
|
# OpenELEC 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 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# OpenELEC 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. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import subprocess
|
||||||
|
import xbmcaddon
|
||||||
|
|
||||||
|
__settings__ = xbmcaddon.Addon(id = 'driver.dvb.sundtek-mediatv')
|
||||||
|
__cwd__ = __settings__.getAddonInfo('path')
|
||||||
|
__resources_lib__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'lib'))
|
||||||
|
__settings_xml__ = xbmc.translatePath(os.path.join(__cwd__, 'resources', 'settings.xml'))
|
||||||
|
|
||||||
|
__mediaclient__ = xbmc.translatePath(os.path.join(__cwd__, 'bin', 'mediaclient'))
|
||||||
|
__mediaclient_e__ = __mediaclient__ + ' -e'
|
||||||
|
__update_sh__ = xbmc.translatePath(os.path.join(__cwd__, 'bin', 'sundtek-update-driver.sh'))
|
||||||
|
|
||||||
|
if len(sys.argv) == 2:
|
||||||
|
if sys.argv[1] == 'refresh_tuners':
|
||||||
|
print "sundtek refresh tuners"
|
||||||
|
sys.path.append(__resources_lib__)
|
||||||
|
from functions import refresh_sundtek_tuners
|
||||||
|
refresh_sundtek_tuners(__settings_xml__, __mediaclient_e__)
|
||||||
|
__settings__.openSettings()
|
||||||
|
elif sys.argv[1] == 'update_driver':
|
||||||
|
print "sundtek update driver"
|
||||||
|
proc = subprocess.Popen([__update_sh__], shell = True)
|
||||||
|
return_code = proc.wait()
|
||||||
|
print "sundtek update driver return value " + str(return_code)
|
||||||
|
__settings__.openSettings()
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
# This file is part of OpenELEC - http://www.openelec.tv
|
# This file is part of OpenELEC - http://www.openelec.tv
|
||||||
# Copyright (C) 2009-2013 Stephan Raue (stephan@openelec.tv)
|
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||||
#
|
#
|
||||||
# OpenELEC is free software: you can redistribute it and/or modify
|
# OpenELEC is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -37,36 +37,39 @@ def _usage(this_file):
|
|||||||
return """SYNOPSIS: pretty print an XML document
|
return """SYNOPSIS: pretty print an XML document
|
||||||
USAGE: python %s <filename> \n""" % this_file
|
USAGE: python %s <filename> \n""" % this_file
|
||||||
|
|
||||||
def _pprint_line(indent_level, line, width=100, output=_sys.stdout):
|
def _pprint_line(indent_level, line, width=100, output=_sys.stdout, ignore_contents = False):
|
||||||
if line.strip():
|
if line.strip():
|
||||||
start = ""
|
start = ""
|
||||||
number_chars = 0
|
number_chars = 0
|
||||||
for l in range(indent_level):
|
for l in range(indent_level):
|
||||||
start = start + " "
|
start = start + " "
|
||||||
number_chars = number_chars + 1
|
number_chars = number_chars + 1
|
||||||
try:
|
if not ignore_contents:
|
||||||
elem_start = _re.findall("(\<\W{0,1}\w+:\w+) ?", line)[0]
|
try:
|
||||||
elem_finished = _re.findall("([?|\]\]/]*\>)", line)[0]
|
elem_start = _re.findall("(\<\W{0,1}\w+:\w+) ?", line)[0]
|
||||||
#should not have *
|
elem_finished = _re.findall("([?|\]\]/|\-\-]*\>)", line)[0]
|
||||||
attrs = _re.findall("(\S*?\=\".*?\")", line)
|
#should not have *
|
||||||
output.write(start + elem_start)
|
attrs = _re.findall("(\S*?\=\".*?\")", line)
|
||||||
number_chars = len(start + elem_start)
|
output.write(start + elem_start)
|
||||||
for attr in attrs:
|
number_chars = len(start + elem_start)
|
||||||
if (attrs.index(attr) + 1) == len(attrs):
|
for attr in attrs:
|
||||||
number_chars = number_chars + len(elem_finished)
|
if (attrs.index(attr) + 1) == len(attrs):
|
||||||
if (number_chars + len(attr) + 1) > width:
|
number_chars = number_chars + len(elem_finished)
|
||||||
output.write("\n")
|
if (number_chars + len(attr) + 1) > width:
|
||||||
for i in range(len(start + elem_start) + 1):
|
output.write("\n")
|
||||||
|
for i in range(len(start + elem_start) + 1):
|
||||||
|
output.write(" ")
|
||||||
|
number_chars = len(start + elem_start) + 1
|
||||||
|
else:
|
||||||
output.write(" ")
|
output.write(" ")
|
||||||
number_chars = len(start + elem_start) + 1
|
number_chars = number_chars + 1
|
||||||
else:
|
output.write(attr)
|
||||||
output.write(" ")
|
number_chars = number_chars + len(attr)
|
||||||
number_chars = number_chars + 1
|
output.write(elem_finished + "\n")
|
||||||
output.write(attr)
|
except IndexError:
|
||||||
number_chars = number_chars + len(attr)
|
#give up pretty print this line
|
||||||
output.write(elem_finished + "\n")
|
output.write(start + line + "\n")
|
||||||
except IndexError:
|
else:
|
||||||
#give up pretty print this line
|
|
||||||
output.write(start + line + "\n")
|
output.write(start + line + "\n")
|
||||||
|
|
||||||
|
|
||||||
@@ -80,7 +83,8 @@ def _get_next_elem(data):
|
|||||||
start_pos = data.find("<")
|
start_pos = data.find("<")
|
||||||
end_pos = data.find(">") + 1
|
end_pos = data.find(">") + 1
|
||||||
retval = data[start_pos:end_pos]
|
retval = data[start_pos:end_pos]
|
||||||
stopper = retval.rfind("/")
|
stopper = retval.rfind("/")
|
||||||
|
ignore_contents = False
|
||||||
if stopper < retval.rfind("\""):
|
if stopper < retval.rfind("\""):
|
||||||
stopper = -1
|
stopper = -1
|
||||||
single = (stopper > -1 and ((retval.find(">") - stopper) < (stopper - retval.find("<"))))
|
single = (stopper > -1 and ((retval.find(">") - stopper) < (stopper - retval.find("<"))))
|
||||||
@@ -89,11 +93,19 @@ def _get_next_elem(data):
|
|||||||
ignore_question = retval.find("<?") > -1
|
ignore_question = retval.find("<?") > -1
|
||||||
|
|
||||||
if ignore_excl:
|
if ignore_excl:
|
||||||
|
ignore_contents = True
|
||||||
cdata = retval.find("<![CDATA[") > -1
|
cdata = retval.find("<![CDATA[") > -1
|
||||||
if cdata:
|
if cdata:
|
||||||
end_pos = data.find("]]>")
|
end_pos = data.find("]]>")
|
||||||
if end_pos > -1:
|
if end_pos > -1:
|
||||||
end_pos = end_pos + len("]]>")
|
end_pos = end_pos + len("]]>")
|
||||||
|
stopper = end_pos
|
||||||
|
else:
|
||||||
|
end_pos = data.find("-->")
|
||||||
|
if end_pos > -1:
|
||||||
|
end_pos = end_pos + len("-->")
|
||||||
|
stopper = end_pos
|
||||||
|
retval = data[start_pos:end_pos]
|
||||||
|
|
||||||
elif ignore_question:
|
elif ignore_question:
|
||||||
end_pos = data.find("?>") + len("?>")
|
end_pos = data.find("?>") + len("?>")
|
||||||
@@ -101,11 +113,12 @@ def _get_next_elem(data):
|
|||||||
|
|
||||||
no_indent = ignore or single
|
no_indent = ignore or single
|
||||||
|
|
||||||
#print retval, end_pos, start_pos, stopper > -1, no_indent
|
|
||||||
return start_pos, \
|
return start_pos, \
|
||||||
end_pos, \
|
end_pos, \
|
||||||
stopper > -1, \
|
stopper > -1, \
|
||||||
no_indent
|
no_indent, \
|
||||||
|
ignore_contents
|
||||||
|
|
||||||
def get_pprint(xml, indent=4, width=80):
|
def get_pprint(xml, indent=4, width=80):
|
||||||
"""Returns the pretty printed xml """
|
"""Returns the pretty printed xml """
|
||||||
@@ -116,6 +129,8 @@ def get_pprint(xml, indent=4, width=80):
|
|||||||
self.output += string
|
self.output += string
|
||||||
out = out()
|
out = out()
|
||||||
pprint(xml, output=out, indent=indent, width=width)
|
pprint(xml, output=out, indent=indent, width=width)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return out.output
|
return out.output
|
||||||
|
|
||||||
@@ -126,7 +141,7 @@ def pprint(xml, output=_sys.stdout, indent=4, width=80):
|
|||||||
Use indent to select indentation level. Default is 4 """
|
Use indent to select indentation level. Default is 4 """
|
||||||
data = xml
|
data = xml
|
||||||
indent_level = 0
|
indent_level = 0
|
||||||
start_pos, end_pos, is_stop, no_indent = _get_next_elem(data)
|
start_pos, end_pos, is_stop, no_indent, ignore_contents = _get_next_elem(data)
|
||||||
while ((start_pos > -1 and end_pos > -1)):
|
while ((start_pos > -1 and end_pos > -1)):
|
||||||
_pprint_elem_content(indent_level, data[:start_pos].strip(),
|
_pprint_elem_content(indent_level, data[:start_pos].strip(),
|
||||||
output=output)
|
output=output)
|
||||||
@@ -136,7 +151,8 @@ def pprint(xml, output=_sys.stdout, indent=4, width=80):
|
|||||||
_pprint_line(indent_level,
|
_pprint_line(indent_level,
|
||||||
data[:end_pos - start_pos],
|
data[:end_pos - start_pos],
|
||||||
width=width,
|
width=width,
|
||||||
output=output)
|
output=output,
|
||||||
|
ignore_contents=ignore_contents)
|
||||||
data = data[end_pos - start_pos:]
|
data = data[end_pos - start_pos:]
|
||||||
if not is_stop and not no_indent :
|
if not is_stop and not no_indent :
|
||||||
indent_level = indent_level + indent
|
indent_level = indent_level + indent
|
||||||
@@ -144,7 +160,7 @@ def pprint(xml, output=_sys.stdout, indent=4, width=80):
|
|||||||
if not data:
|
if not data:
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
start_pos, end_pos, is_stop, no_indent = _get_next_elem(data)
|
start_pos, end_pos, is_stop, no_indent, ignore_contents = _get_next_elem(data)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
@@ -27,13 +27,11 @@
|
|||||||
<category label="9000">
|
<category label="9000">
|
||||||
<setting type="sep" />
|
<setting type="sep" />
|
||||||
<setting id="ENABLE_TUNER_TYPES" type="bool" label="9005" default="true" />
|
<setting id="ENABLE_TUNER_TYPES" type="bool" label="9005" default="true" />
|
||||||
<setting label="9010" option="close" type="action" action="RunScript($ID, refresh_tuners)" />
|
<setting label="9010" option="close" type="action" id="refresh_tuners" action="RunScript($CWD/resources/actions.py, refresh_tuners)" />
|
||||||
</category>
|
</category>
|
||||||
<!--
|
|
||||||
<category label="3000">
|
<category label="3000">
|
||||||
<setting type="sep" />
|
<setting type="sep" />
|
||||||
<setting id="CHECK_BOOT" type="bool" label="3020" default="false" />
|
<setting id="CHECK_BOOT" type="bool" label="3020" default="false" />
|
||||||
<setting label="3010" option="close" type="action" action="RunScript($ID, update_driver)" />
|
<setting label="3010" option="close" type="action" id="update_driver" action="RunScript($CWD/resources/actions.py, update_driver)" />
|
||||||
</category>
|
</category>
|
||||||
-->
|
|
||||||
</settings>
|
</settings>
|
||||||
|
|||||||
@@ -1,3 +1,17 @@
|
|||||||
|
4.3.6
|
||||||
|
- fix tv_grab_file with --quiet (again!)
|
||||||
|
- fix crash on imx6
|
||||||
|
|
||||||
|
4.3.5
|
||||||
|
- fix crash on imx6
|
||||||
|
|
||||||
|
4.3.4
|
||||||
|
- update to tvheadend-3.9.2182
|
||||||
|
- fix xmltv grab issue
|
||||||
|
|
||||||
|
4.3.3
|
||||||
|
- update to tvheadend-3.9.2168
|
||||||
|
|
||||||
4.3.2
|
4.3.2
|
||||||
- update to kodi
|
- update to kodi
|
||||||
|
|
||||||
|
|||||||
@@ -17,12 +17,11 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="tvheadend"
|
PKG_NAME="tvheadend"
|
||||||
PKG_VERSION="3.9.1847"
|
PKG_VERSION="3.9.2182"
|
||||||
PKG_REV="2"
|
PKG_REV="6"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
PKG_SITE="http://www.lonelycoder.com/hts/tvheadend_overview.html"
|
PKG_SITE="http://www.tvheadend.org"
|
||||||
#PKG_URL="https://github.com/downloads/tvheadend/tvheadend/${PKG_NAME}-${PKG_VERSION}.tar.gz"
|
|
||||||
PKG_URL="$DISTRO_SRC/${PKG_NAME}-${PKG_VERSION}.tar.gz"
|
PKG_URL="$DISTRO_SRC/${PKG_NAME}-${PKG_VERSION}.tar.gz"
|
||||||
PKG_DEPENDS_TARGET="toolchain libressl curl"
|
PKG_DEPENDS_TARGET="toolchain libressl curl"
|
||||||
PKG_PRIORITY="optional"
|
PKG_PRIORITY="optional"
|
||||||
@@ -37,6 +36,10 @@ pre_build_target() {
|
|||||||
mkdir -p $PKG_BUILD/.$TARGET_NAME
|
mkdir -p $PKG_BUILD/.$TARGET_NAME
|
||||||
cp -RP $PKG_BUILD/* $PKG_BUILD/.$TARGET_NAME
|
cp -RP $PKG_BUILD/* $PKG_BUILD/.$TARGET_NAME
|
||||||
export CROSS_COMPILE=$TARGET_PREFIX
|
export CROSS_COMPILE=$TARGET_PREFIX
|
||||||
|
# meh imx6..
|
||||||
|
if [ "$TARGET_ARCH" == "arm" ] ; then
|
||||||
|
export CFLAGS="$CFLAGS -mno-unaligned-access"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
configure_target() {
|
configure_target() {
|
||||||
@@ -46,7 +49,6 @@ configure_target() {
|
|||||||
--cc=$TARGET_CC \
|
--cc=$TARGET_CC \
|
||||||
--enable-hdhomerun_client \
|
--enable-hdhomerun_client \
|
||||||
--enable-hdhomerun_static \
|
--enable-hdhomerun_static \
|
||||||
--enable-timeshift \
|
|
||||||
--disable-avahi \
|
--disable-avahi \
|
||||||
--disable-libav \
|
--disable-libav \
|
||||||
--enable-inotify \
|
--enable-inotify \
|
||||||
|
|||||||
@@ -27,58 +27,14 @@ XMLTV_LOCATION_FILE=`grep XMLTV_LOCATION_FILE $ADDON_SETTINGS | awk '{print $3 }
|
|||||||
XMLTV_LOCATION_WEB=`grep XMLTV_LOCATION_WEB $ADDON_SETTINGS | awk '{print $3 }' | sed -e "s,value=,," -e "s,\",,g"`
|
XMLTV_LOCATION_WEB=`grep XMLTV_LOCATION_WEB $ADDON_SETTINGS | awk '{print $3 }' | sed -e "s,value=,," -e "s,\",,g"`
|
||||||
XMLTV_LOCATION_SCRIPT=`grep XMLTV_LOCATION_SCRIPT $ADDON_SETTINGS | awk '{print $3 }' | sed -e "s,value=,," -e "s,\",,g"`
|
XMLTV_LOCATION_SCRIPT=`grep XMLTV_LOCATION_SCRIPT $ADDON_SETTINGS | awk '{print $3 }' | sed -e "s,value=,," -e "s,\",,g"`
|
||||||
|
|
||||||
dflag=
|
if [ "$XMLTV_TYPE" = "FILE" ]; then
|
||||||
vflag=
|
cat "$XMLTV_LOCATION_FILE"
|
||||||
cflag=
|
exit 0
|
||||||
|
elif [ "$XMLTV_TYPE" = "SCRIPT" ]; then
|
||||||
if [[ $# -lt 1 ]]; then
|
if [ -e "$XMLTV_LOCATION_SCRIPT" ] ; then
|
||||||
if [ "$XMLTV_TYPE" = "FILE" ]; then
|
exec "$XMLTV_LOCATION_SCRIPT"
|
||||||
cat "$XMLTV_LOCATION_FILE"
|
|
||||||
exit 0
|
|
||||||
elif [ "$XMLTV_TYPE" = "SCRIPT" ]; then
|
|
||||||
if [ -e "$XMLTV_LOCATION_SCRIPT" ] ; then
|
|
||||||
exec "$XMLTV_LOCATION_SCRIPT"
|
|
||||||
fi
|
|
||||||
elif [ "$XMLTV_TYPE" = "WEB" ]; then
|
|
||||||
wget -qO - "$XMLTV_LOCATION_WEB"
|
|
||||||
exit 0
|
|
||||||
fi
|
fi
|
||||||
fi
|
elif [ "$XMLTV_TYPE" = "WEB" ]; then
|
||||||
|
wget -qO - "$XMLTV_LOCATION_WEB"
|
||||||
for arg; do
|
exit 0
|
||||||
delim=""
|
|
||||||
case "$arg" in
|
|
||||||
#translate --gnu-long-options to -g (short options)
|
|
||||||
--description) args="${args}-d ";;
|
|
||||||
--version) args="${args}-v ";;
|
|
||||||
--capabilities) args="${args}-c ";;
|
|
||||||
#pass through anything else
|
|
||||||
*) [[ "${arg:0:1}" == "-" ]] || delim="\""
|
|
||||||
args="${args}${delim}${arg}${delim} ";;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
#Reset the positional parameters to the short options
|
|
||||||
eval set -- $args
|
|
||||||
|
|
||||||
while getopts "dvc" option; do
|
|
||||||
case $option in
|
|
||||||
d) dflag=1;;
|
|
||||||
v) vflag=1;;
|
|
||||||
c) cflag=1;;
|
|
||||||
\?) printf "unknown option: -%s\n" $OPTARG
|
|
||||||
printf "Usage: %s: [--description] [--version] [--capabilities] \n" $(basename $0)
|
|
||||||
exit 2
|
|
||||||
;;
|
|
||||||
esac >&2
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ "$dflag" ]; then
|
|
||||||
printf "tv_grab_file is a simple grabber that just read the local or web XMLTV formated file\n"
|
|
||||||
fi
|
|
||||||
if [ "$vflag" ]; then
|
|
||||||
printf "0.1\n"
|
|
||||||
fi
|
|
||||||
if [ "$cflag" ]; then
|
|
||||||
printf "baseline\n"
|
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="flac"
|
PKG_NAME="flac"
|
||||||
PKG_VERSION="1.3.0"
|
PKG_VERSION="1.3.1"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="LGPL"
|
PKG_LICENSE="LGPL"
|
||||||
@@ -51,6 +51,13 @@ else
|
|||||||
PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --disable-sse"
|
PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --disable-sse"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
pre_configure_target() {
|
||||||
|
# flac-1.3.1 dont build with LTO support
|
||||||
|
strip_lto
|
||||||
|
|
||||||
|
export CFLAGS="$CFLAGS -fPIC -DPIC"
|
||||||
|
}
|
||||||
|
|
||||||
post_makeinstall_target() {
|
post_makeinstall_target() {
|
||||||
rm -rf $INSTALL/usr/bin
|
rm -rf $INSTALL/usr/bin
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,8 +33,9 @@ PKG_IS_ADDON="no"
|
|||||||
PKG_AUTORECONF="yes"
|
PKG_AUTORECONF="yes"
|
||||||
|
|
||||||
# package specific configure options
|
# package specific configure options
|
||||||
|
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"
|
||||||
if [ $TARGET_ARCH == "x86_64" ] ; then
|
if [ $TARGET_ARCH == "x86_64" ] ; then
|
||||||
PKG_CONFIGURE_OPTS_TARGET="--enable-accuracy --enable-fpm=64bit"
|
PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --enable-accuracy --enable-fpm=64bit"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
post_makeinstall_target() {
|
post_makeinstall_target() {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="sqlite"
|
PKG_NAME="sqlite"
|
||||||
PKG_VERSION="autoconf-3080701"
|
PKG_VERSION="autoconf-3080704"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="PublicDomain"
|
PKG_LICENSE="PublicDomain"
|
||||||
|
|||||||
@@ -1,53 +0,0 @@
|
|||||||
################################################################################
|
|
||||||
# This file is part of OpenELEC - http://www.openelec.tv
|
|
||||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
|
||||||
#
|
|
||||||
# OpenELEC 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 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# OpenELEC 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. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
PKG_NAME="libpcap"
|
|
||||||
PKG_VERSION="1.6.2"
|
|
||||||
PKG_REV="1"
|
|
||||||
PKG_ARCH="any"
|
|
||||||
PKG_LICENSE="GPL"
|
|
||||||
PKG_SITE="http://www.tcpdump.org/"
|
|
||||||
PKG_URL="http://www.tcpdump.org/release/libpcap-${PKG_VERSION}.tar.gz"
|
|
||||||
PKG_DEPENDS_TARGET="toolchain libusb libnl"
|
|
||||||
PKG_PRIORITY="optional"
|
|
||||||
PKG_SECTION="devel"
|
|
||||||
PKG_SHORTDESC="system interface for user-level packet capture"
|
|
||||||
PKG_LONGDESC="libpcap (Packet CAPture) provides a portable framework for low-level network monitoring. Applications include network statistics collection, security monitoring, network debugging, etc."
|
|
||||||
|
|
||||||
PKG_IS_ADDON="no"
|
|
||||||
PKG_AUTORECONF="yes"
|
|
||||||
|
|
||||||
PKG_CONFIGURE_OPTS_TARGET="LIBS=-lpthread \
|
|
||||||
ac_cv_header_libusb_1_0_libusb_h=no \
|
|
||||||
--disable-shared \
|
|
||||||
--with-pcap=linux \
|
|
||||||
--disable-bluetooth \
|
|
||||||
--disable-can \
|
|
||||||
--disable-canusb"
|
|
||||||
|
|
||||||
pre_configure_target() {
|
|
||||||
# When cross-compiling, configure can't set linux version
|
|
||||||
# forcing it
|
|
||||||
sed -i -e 's/ac_cv_linux_vers=unknown/ac_cv_linux_vers=2/' ../configure
|
|
||||||
|
|
||||||
export CFLAGS="$CFLAGS -I$SYSROOT_PREFIX/usr/include/libnl3"
|
|
||||||
}
|
|
||||||
|
|
||||||
post_makeinstall_target() {
|
|
||||||
rm -rf $INSTALL/usr/bin
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
diff -Naur libpcap-1.6.2/configure.in libpcap-1.6.2.patch/configure.in
|
|
||||||
--- libpcap-1.6.2/configure.in 2014-07-19 15:21:09.000000000 +0200
|
|
||||||
+++ libpcap-1.6.2.patch/configure.in 2014-09-06 05:58:33.918837813 +0200
|
|
||||||
@@ -459,7 +459,6 @@
|
|
||||||
AC_DEFINE(HAVE_LIBNL_3_x,1,[if libnl exists and is version 3.x])
|
|
||||||
AC_DEFINE(HAVE_LIBNL_NLE,1,[libnl has NLE_FAILURE])
|
|
||||||
AC_DEFINE(HAVE_LIBNL_SOCKETS,1,[libnl has new-style socket api])
|
|
||||||
- V_INCLS="$V_INCLS -I/usr/include/libnl3"
|
|
||||||
have_any_nl="yes"
|
|
||||||
])
|
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="libtool"
|
PKG_NAME="libtool"
|
||||||
PKG_VERSION="2.4.2"
|
PKG_VERSION="2.4.4"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
@@ -34,3 +34,4 @@ PKG_IS_ADDON="no"
|
|||||||
PKG_AUTORECONF="no"
|
PKG_AUTORECONF="no"
|
||||||
|
|
||||||
PKG_CONFIGURE_OPTS_HOST="--enable-static --disable-shared"
|
PKG_CONFIGURE_OPTS_HOST="--enable-static --disable-shared"
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
When using sysroot we should append it to libdir which is helpful in cross builds
|
|
||||||
as the system is staged in the sysroot. For normal build i.e. when lt_sysroot is not
|
|
||||||
set it will still behave same and add -L/usr/lib to relink command
|
|
||||||
|
|
||||||
-Khem
|
|
||||||
|
|
||||||
Index: libtool-2.4/libltdl/config/ltmain.m4sh
|
|
||||||
===================================================================
|
|
||||||
--- libtool-2.4.orig/libltdl/config/ltmain.m4sh
|
|
||||||
+++ libtool-2.4/libltdl/config/ltmain.m4sh
|
|
||||||
@@ -6122,7 +6122,7 @@ func_mode_link ()
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# We cannot seem to hardcode it, guess we'll fake it.
|
|
||||||
- add_dir="-L$libdir"
|
|
||||||
+ #add_dir="-L$libdir"
|
|
||||||
# Try looking first in the location we're being installed to.
|
|
||||||
if test -n "$inst_prefix_dir"; then
|
|
||||||
case $libdir in
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
diff -Naur libtool-2.4-old/libltdl/m4/libtool.m4 libtool-2.4-new/libltdl/m4/libtool.m4
|
|
||||||
--- libtool-2.4-old/libltdl/m4/libtool.m4 2010-09-22 01:41:19.000000000 -0700
|
|
||||||
+++ libtool-2.4-new/libltdl/m4/libtool.m4 2010-09-23 20:25:25.000000000 -0700
|
|
||||||
@@ -6905,6 +6905,9 @@
|
|
||||||
*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
|
|
||||||
*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
|
|
||||||
esac
|
|
||||||
+case "$CC $CFLAGS " in #(
|
|
||||||
+*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
|
|
||||||
+esac
|
|
||||||
|
|
||||||
dnl Parse the compiler output and extract the necessary
|
|
||||||
dnl objects, libraries and library flags.
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
diff -Naur libtool-2.4-old/libltdl/config/ltmain.m4sh libtool-2.4-new/libltdl/config/ltmain.m4sh
|
|
||||||
--- libtool-2.4-old/libltdl/config/ltmain.m4sh 2010-09-22 13:16:41.000000000 -0700
|
|
||||||
+++ libtool-2.4-new/libltdl/config/ltmain.m4sh 2010-09-22 13:21:52.000000000 -0700
|
|
||||||
@@ -5051,7 +5051,7 @@
|
|
||||||
# -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
|
|
||||||
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
|
|
||||||
-t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
|
|
||||||
- -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
|
|
||||||
+ -O*|-flto*|-fwhopr*|-fuse-linker-plugin|-fuse-ld=*)
|
|
||||||
func_quote_for_eval "$arg"
|
|
||||||
arg="$func_quote_for_eval_result"
|
|
||||||
func_append compile_command " $arg"
|
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="Mesa"
|
PKG_NAME="Mesa"
|
||||||
PKG_VERSION="10.3.3"
|
PKG_VERSION="10.3.5"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="OSS"
|
PKG_LICENSE="OSS"
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="bcm2835-driver"
|
PKG_NAME="bcm2835-driver"
|
||||||
PKG_VERSION="778b370"
|
PKG_VERSION="5f1b910"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="nonfree"
|
PKG_LICENSE="nonfree"
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="libpng"
|
PKG_NAME="libpng"
|
||||||
PKG_VERSION="1.6.12"
|
PKG_VERSION="1.6.15"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="OSS"
|
PKG_LICENSE="OSS"
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
# http://www.broadcom.com/support/802.11/linux_sta.php
|
# http://www.broadcom.com/support/802.11/linux_sta.php
|
||||||
|
|
||||||
PKG_NAME="bcm_sta"
|
PKG_NAME="bcm_sta"
|
||||||
PKG_VERSION="6.20.155.1"
|
PKG_VERSION="6.30.223.248"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="i386 x86_64"
|
PKG_ARCH="i386 x86_64"
|
||||||
PKG_LICENSE="nonfree"
|
PKG_LICENSE="nonfree"
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
diff --git a/x86-32/Makefile b/x86-32/Makefile
|
|
||||||
index bf30b03..d835350 100644
|
|
||||||
--- a/x86-32/Makefile
|
|
||||||
+++ b/x86-32/Makefile
|
|
||||||
@@ -125,7 +125,7 @@ EXTRA_CFLAGS += -I$(src)/src/include
|
|
||||||
EXTRA_CFLAGS += -I$(src)/src/wl/sys -I$(src)/src/wl/clm/api -I$(src)/src/wl/phy
|
|
||||||
#EXTRA_CFLAGS += -DBCMDBG_ASSERT
|
|
||||||
|
|
||||||
-EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped
|
|
||||||
+EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped_$(BINARCH)
|
|
||||||
|
|
||||||
KBASE ?= /lib/modules/`uname -r`
|
|
||||||
KBUILD_DIR ?= $(KBASE)/build
|
|
||||||
diff --git a/x86-64/Makefile b/x86-64/Makefile
|
|
||||||
index bf30b03..d835350 100644
|
|
||||||
--- a/x86-64/Makefile
|
|
||||||
+++ b/x86-64/Makefile
|
|
||||||
@@ -125,7 +125,7 @@ EXTRA_CFLAGS += -I$(src)/src/include
|
|
||||||
EXTRA_CFLAGS += -I$(src)/src/wl/sys -I$(src)/src/wl/clm/api -I$(src)/src/wl/phy
|
|
||||||
#EXTRA_CFLAGS += -DBCMDBG_ASSERT
|
|
||||||
|
|
||||||
-EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped
|
|
||||||
+EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped_$(BINARCH)
|
|
||||||
|
|
||||||
KBASE ?= /lib/modules/`uname -r`
|
|
||||||
KBUILD_DIR ?= $(KBASE)/build
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
--- a/x86-32/src/wl/sys/wl_linux.c
|
|
||||||
+++ b/x86-32/src/wl/sys/wl_linux.c
|
|
||||||
@@ -99,6 +99,10 @@ static void wl_dpc_rxwork(struct wl_task *task);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifndef init_MUTEX
|
|
||||||
+#define init_MUTEX(sem) sema_init(sem, 1)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
static int wl_linux_watchdog(void *ctx);
|
|
||||||
static
|
|
||||||
int wl_found = 0;
|
|
||||||
|
|
||||||
--- a/x86-64/src/wl/sys/wl_linux.c
|
|
||||||
+++ b/x86-64/src/wl/sys/wl_linux.c
|
|
||||||
@@ -99,6 +99,10 @@ static void wl_dpc_rxwork(struct wl_task *task);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifndef init_MUTEX
|
|
||||||
+#define init_MUTEX(sem) sema_init(sem, 1)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
static int wl_linux_watchdog(void *ctx);
|
|
||||||
static
|
|
||||||
int wl_found = 0;
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
--- a/x86-32/src/wl/sys/wl_linux.c
|
|
||||||
+++ b/x86-32/src/wl/sys/wl_linux.c
|
|
||||||
@@ -385,7 +385,11 @@ static const struct net_device_ops wl_netdev_ops =
|
|
||||||
#endif
|
|
||||||
.ndo_get_stats = wl_get_stats,
|
|
||||||
.ndo_set_mac_address = wl_set_mac_address,
|
|
||||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 2, 0)
|
|
||||||
.ndo_set_multicast_list = wl_set_multicast_list,
|
|
||||||
+#else
|
|
||||||
+ .ndo_set_rx_mode = wl_set_multicast_list,
|
|
||||||
+#endif
|
|
||||||
.ndo_do_ioctl = wl_ioctl
|
|
||||||
};
|
|
||||||
|
|
||||||
--- a/x86-64/src/wl/sys/wl_linux.c
|
|
||||||
+++ b/x86-64/src/wl/sys/wl_linux.c
|
|
||||||
@@ -385,7 +385,11 @@ static const struct net_device_ops wl_netdev_ops =
|
|
||||||
#endif
|
|
||||||
.ndo_get_stats = wl_get_stats,
|
|
||||||
.ndo_set_mac_address = wl_set_mac_address,
|
|
||||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 2, 0)
|
|
||||||
.ndo_set_multicast_list = wl_set_multicast_list,
|
|
||||||
+#else
|
|
||||||
+ .ndo_set_rx_mode = wl_set_multicast_list,
|
|
||||||
+#endif
|
|
||||||
.ndo_do_ioctl = wl_ioctl
|
|
||||||
};
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
--- a/x86-32/src/wl/sys/wl_linux.c
|
|
||||||
+++ b/x86-32/src/wl/sys/wl_linux.c
|
|
||||||
@@ -40,7 +40,9 @@
|
|
||||||
#include <linux/pci_ids.h>
|
|
||||||
#define WLC_MAXBSSCFG 1
|
|
||||||
|
|
||||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 4, 0)
|
|
||||||
#include <asm/system.h>
|
|
||||||
+#endif
|
|
||||||
#include <asm/io.h>
|
|
||||||
#include <asm/irq.h>
|
|
||||||
#include <asm/pgtable.h>
|
|
||||||
|
|
||||||
--- a/x86-64/src/wl/sys/wl_linux.c
|
|
||||||
+++ b/x86-64/src/wl/sys/wl_linux.c
|
|
||||||
@@ -40,7 +40,9 @@
|
|
||||||
#include <linux/pci_ids.h>
|
|
||||||
#define WLC_MAXBSSCFG 1
|
|
||||||
|
|
||||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 4, 0)
|
|
||||||
#include <asm/system.h>
|
|
||||||
+#endif
|
|
||||||
#include <asm/io.h>
|
|
||||||
#include <asm/irq.h>
|
|
||||||
#include <asm/pgtable.h>
|
|
||||||
@@ -1,133 +0,0 @@
|
|||||||
--- a/x86-32/src/include/bcmutils.h
|
|
||||||
+++ b/x86-32/src/include/bcmutils.h
|
|
||||||
@@ -214,7 +214,11 @@ typedef struct bcm_tlv {
|
|
||||||
extern int bcm_format_flags(const bcm_bit_desc_t *bd, uint32 flags, char* buf, int len);
|
|
||||||
extern int bcm_format_hex(char *str, const void *bytes, int len);
|
|
||||||
#endif
|
|
||||||
+#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
|
|
||||||
|
|
||||||
typedef uint32 mbool;
|
|
||||||
|
|
||||||
--- a/x86-32/src/wl/sys/wl_cfg80211.c
|
|
||||||
+++ b/x86-32/src/wl/sys/wl_cfg80211.c
|
|
||||||
@@ -702,7 +702,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) {
|
|
||||||
@@ -1957,9 +1961,14 @@ static s32 wl_update_bss_info(struct wl_cfg80211_priv *wl)
|
|
||||||
struct wlc_ssid *ssid;
|
|
||||||
struct bcm_tlv *tim;
|
|
||||||
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,
|
|
||||||
@@ -1988,8 +1997,22 @@ static s32 wl_update_bss_info(struct wl_cfg80211_priv *wl)
|
|
||||||
ie_len = bi->ie_length;
|
|
||||||
} 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
|
|
||||||
cfg80211_put_bss(bss);
|
|
||||||
}
|
|
||||||
|
|
||||||
--- a/x86-64/src/include/bcmutils.h
|
|
||||||
+++ b/x86-64/src/include/bcmutils.h
|
|
||||||
@@ -214,7 +214,11 @@ typedef struct bcm_tlv {
|
|
||||||
extern int bcm_format_flags(const bcm_bit_desc_t *bd, uint32 flags, char* buf, int len);
|
|
||||||
extern int bcm_format_hex(char *str, const void *bytes, int len);
|
|
||||||
#endif
|
|
||||||
+#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
|
|
||||||
|
|
||||||
typedef uint32 mbool;
|
|
||||||
|
|
||||||
--- a/x86-64/src/wl/sys/wl_cfg80211.c
|
|
||||||
+++ b/x86-64/src/wl/sys/wl_cfg80211.c
|
|
||||||
@@ -702,7 +702,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) {
|
|
||||||
@@ -1957,9 +1961,14 @@ static s32 wl_update_bss_info(struct wl_cfg80211_priv *wl)
|
|
||||||
struct wlc_ssid *ssid;
|
|
||||||
struct bcm_tlv *tim;
|
|
||||||
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,
|
|
||||||
@@ -1988,8 +1997,22 @@ static s32 wl_update_bss_info(struct wl_cfg80211_priv *wl)
|
|
||||||
ie_len = bi->ie_length;
|
|
||||||
} 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
|
|
||||||
cfg80211_put_bss(bss);
|
|
||||||
}
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
--- a/x86-32/src/wl/sys/wl_cfg80211.c 2013-03-29 18:12:43.447176381 +0100
|
|
||||||
+++ b/x86-32/src/wl/sys/wl_cfg80211.c 2013-03-29 18:12:56.595176453 +0100
|
|
||||||
@@ -2013,8 +2013,12 @@
|
|
||||||
ie_len = (size_t)(ies->len);
|
|
||||||
rcu_read_unlock();
|
|
||||||
#endif
|
|
||||||
- cfg80211_put_bss(bss);
|
|
||||||
- }
|
|
||||||
+#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);
|
|
||||||
if (tim) {
|
|
||||||
|
|
||||||
--- a/x86-64/src/wl/sys/wl_cfg80211.c 2013-03-29 18:12:43.447176381 +0100
|
|
||||||
+++ a/x86-64/src/wl/sys/wl_cfg80211.c 2013-03-29 18:12:56.595176453 +0100
|
|
||||||
@@ -2013,8 +2013,12 @@
|
|
||||||
ie_len = (size_t)(ies->len);
|
|
||||||
rcu_read_unlock();
|
|
||||||
#endif
|
|
||||||
- cfg80211_put_bss(bss);
|
|
||||||
- }
|
|
||||||
+#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);
|
|
||||||
if (tim) {
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
--- a/x86-32/src/wl/sys/wl_cfg80211.c
|
|
||||||
+++ b/x86-32/src/wl/sys/wl_cfg80211.c
|
|
||||||
@@ -46,7 +46,10 @@ u32 wl_dbg_level = WL_DBG_ERR | WL_DBG_INFO;
|
|
||||||
|
|
||||||
static s32 wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev,
|
|
||||||
enum nl80211_iftype type, u32 *flags, struct vif_params *params);
|
|
||||||
-static s32 wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
|
|
||||||
+static s32 wl_cfg80211_scan(struct wiphy *wiphy,
|
|
||||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 6, 0)
|
|
||||||
+ struct net_device *ndev,
|
|
||||||
+#endif
|
|
||||||
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,
|
|
||||||
@@ -482,9 +485,15 @@ wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev,
|
|
||||||
}
|
|
||||||
|
|
||||||
static s32
|
|
||||||
-wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
|
|
||||||
+wl_cfg80211_scan(struct wiphy *wiphy,
|
|
||||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 6, 0)
|
|
||||||
+ struct net_device *ndev,
|
|
||||||
+#endif
|
|
||||||
struct cfg80211_scan_request *request)
|
|
||||||
{
|
|
||||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)
|
|
||||||
+ struct net_device *ndev = request->wdev->netdev;
|
|
||||||
+#endif
|
|
||||||
struct wl_cfg80211_priv *wl = ndev_to_wl(ndev);
|
|
||||||
struct cfg80211_ssid *ssids;
|
|
||||||
struct wl_cfg80211_scan_req *sr = wl_to_sr(wl);
|
|
||||||
|
|
||||||
--- a/x86-64/src/wl/sys/wl_cfg80211.c
|
|
||||||
+++ b/x86-64/src/wl/sys/wl_cfg80211.c
|
|
||||||
@@ -46,7 +46,10 @@ u32 wl_dbg_level = WL_DBG_ERR | WL_DBG_INFO;
|
|
||||||
|
|
||||||
static s32 wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev,
|
|
||||||
enum nl80211_iftype type, u32 *flags, struct vif_params *params);
|
|
||||||
-static s32 wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
|
|
||||||
+static s32 wl_cfg80211_scan(struct wiphy *wiphy,
|
|
||||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 6, 0)
|
|
||||||
+ struct net_device *ndev,
|
|
||||||
+#endif
|
|
||||||
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,
|
|
||||||
@@ -482,9 +485,15 @@ wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev,
|
|
||||||
}
|
|
||||||
|
|
||||||
static s32
|
|
||||||
-wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
|
|
||||||
+wl_cfg80211_scan(struct wiphy *wiphy,
|
|
||||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 6, 0)
|
|
||||||
+ struct net_device *ndev,
|
|
||||||
+#endif
|
|
||||||
struct cfg80211_scan_request *request)
|
|
||||||
{
|
|
||||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)
|
|
||||||
+ struct net_device *ndev = request->wdev->netdev;
|
|
||||||
+#endif
|
|
||||||
struct wl_cfg80211_priv *wl = ndev_to_wl(ndev);
|
|
||||||
struct cfg80211_ssid *ssids;
|
|
||||||
struct wl_cfg80211_scan_req *sr = wl_to_sr(wl);
|
|
||||||
|
|
||||||
@@ -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);
|
|
||||||
@@ -1,228 +0,0 @@
|
|||||||
diff -Naur bcm_sta-6.20.155.1/x86-32/src/wl/sys/wl_linux.c bcm_sta-6.20.155.1.patch/x86-32/src/wl/sys/wl_linux.c
|
|
||||||
--- bcm_sta-6.20.155.1/x86-32/src/wl/sys/wl_linux.c 2013-04-14 23:10:38.000000000 +0200
|
|
||||||
+++ bcm_sta-6.20.155.1.patch/x86-32/src/wl/sys/wl_linux.c 2014-05-14 21:47:59.249976234 +0200
|
|
||||||
@@ -2681,7 +2681,7 @@
|
|
||||||
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) {
|
|
||||||
@@ -2843,6 +2843,7 @@
|
|
||||||
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)
|
|
||||||
{
|
|
||||||
@@ -2897,18 +2898,89 @@
|
|
||||||
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 -Naur bcm_sta-6.20.155.1/x86-64/src/wl/sys/wl_linux.c bcm_sta-6.20.155.1.patch/x86-64/src/wl/sys/wl_linux.c
|
|
||||||
--- bcm_sta-6.20.155.1/x86-64/src/wl/sys/wl_linux.c 2013-04-14 23:10:38.000000000 +0200
|
|
||||||
+++ bcm_sta-6.20.155.1.patch/x86-64/src/wl/sys/wl_linux.c 2014-05-14 21:48:16.002975186 +0200
|
|
||||||
@@ -2681,7 +2681,7 @@
|
|
||||||
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) {
|
|
||||||
@@ -2843,6 +2843,7 @@
|
|
||||||
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)
|
|
||||||
{
|
|
||||||
@@ -2897,18 +2898,89 @@
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
--- a/x86-32/src/wl/sys/wl_linux.c
|
|
||||||
+++ b/x86-32/src/wl/sys/wl_linux.c
|
|
||||||
@@ -1773,8 +1773,8 @@
|
|
||||||
void
|
|
||||||
wl_dump_ver(wl_info_t *wl, struct bcmstrbuf *b)
|
|
||||||
{
|
|
||||||
- bcm_bprintf(b, "wl%d: %s %s version %s\n", wl->pub->unit,
|
|
||||||
- __DATE__, __TIME__, EPI_VERSION_STR);
|
|
||||||
+ bcm_bprintf(b, "wl%d: version %s\n", wl->pub->unit,
|
|
||||||
+ EPI_VERSION_STR);
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(BCMDBG)
|
|
||||||
|
|
||||||
--- a/x86-64/src/wl/sys/wl_linux.c
|
|
||||||
+++b/x86-64/src/wl/sys/wl_linux.c
|
|
||||||
@@ -1773,8 +1773,8 @@
|
|
||||||
void
|
|
||||||
wl_dump_ver(wl_info_t *wl, struct bcmstrbuf *b)
|
|
||||||
{
|
|
||||||
- bcm_bprintf(b, "wl%d: %s %s version %s\n", wl->pub->unit,
|
|
||||||
- __DATE__, __TIME__, EPI_VERSION_STR);
|
|
||||||
+ bcm_bprintf(b, "wl%d: version %s\n", wl->pub->unit,
|
|
||||||
+ EPI_VERSION_STR);
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(BCMDBG)
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
diff -Naur bcm_sta-6.20.155.1/x86-32/src/wl/sys/wl_cfg80211.c bcm_sta-6.20.155.1.patch/x86-32/src/wl/sys/wl_cfg80211.c
|
|
||||||
--- bcm_sta-6.20.155.1/x86-32/src/wl/sys/wl_cfg80211.c 2013-04-14 23:10:38.000000000 +0200
|
|
||||||
+++ bcm_sta-6.20.155.1.patch/x86-32/src/wl/sys/wl_cfg80211.c 2014-05-14 21:50:23.219067311 +0200
|
|
||||||
@@ -1792,7 +1792,26 @@
|
|
||||||
wl_get_assoc_ies(wl);
|
|
||||||
memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
|
|
||||||
wl_update_bss_info(wl);
|
|
||||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
|
|
||||||
+ {
|
|
||||||
+ struct wl_bss_info *bi;
|
|
||||||
+ u16 bss_info_channel;
|
|
||||||
+ struct ieee80211_channel *channel;
|
|
||||||
+ u32 freq;
|
|
||||||
+
|
|
||||||
+ bi = (struct wl_bss_info *)(wl->extra_buf + 4);
|
|
||||||
+ bss_info_channel = bi->ctl_ch ? bi->ctl_ch : CHSPEC_CHANNEL(bi->chanspec);
|
|
||||||
+
|
|
||||||
+ freq = ieee80211_channel_to_frequency(bss_info_channel,
|
|
||||||
+ (bss_info_channel <= CH_MAX_2G_CHANNEL) ?
|
|
||||||
+ IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
|
|
||||||
+
|
|
||||||
+ channel = ieee80211_get_channel(wl_to_wiphy(wl), freq);
|
|
||||||
+ cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL);
|
|
||||||
+ }
|
|
||||||
+#else
|
|
||||||
cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
|
|
||||||
+#endif
|
|
||||||
set_bit(WL_STATUS_CONNECTED, &wl->status);
|
|
||||||
wl->profile->active = true;
|
|
||||||
}
|
|
||||||
diff -Naur bcm_sta-6.20.155.1/x86-64/src/wl/sys/wl_cfg80211.c bcm_sta-6.20.155.1.patch/x86-64/src/wl/sys/wl_cfg80211.c
|
|
||||||
--- bcm_sta-6.20.155.1/x86-64/src/wl/sys/wl_cfg80211.c 2013-04-14 23:10:38.000000000 +0200
|
|
||||||
+++ bcm_sta-6.20.155.1.patch/x86-64/src/wl/sys/wl_cfg80211.c 2014-05-14 21:50:45.102092217 +0200
|
|
||||||
@@ -1792,7 +1792,26 @@
|
|
||||||
wl_get_assoc_ies(wl);
|
|
||||||
memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
|
|
||||||
wl_update_bss_info(wl);
|
|
||||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
|
|
||||||
+ {
|
|
||||||
+ struct wl_bss_info *bi;
|
|
||||||
+ u16 bss_info_channel;
|
|
||||||
+ struct ieee80211_channel *channel;
|
|
||||||
+ u32 freq;
|
|
||||||
+
|
|
||||||
+ bi = (struct wl_bss_info *)(wl->extra_buf + 4);
|
|
||||||
+ bss_info_channel = bi->ctl_ch ? bi->ctl_ch : CHSPEC_CHANNEL(bi->chanspec);
|
|
||||||
+
|
|
||||||
+ freq = ieee80211_channel_to_frequency(bss_info_channel,
|
|
||||||
+ (bss_info_channel <= CH_MAX_2G_CHANNEL) ?
|
|
||||||
+ IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
|
|
||||||
+
|
|
||||||
+ channel = ieee80211_get_channel(wl_to_wiphy(wl), freq);
|
|
||||||
+ cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL);
|
|
||||||
+ }
|
|
||||||
+#else
|
|
||||||
cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
|
|
||||||
+#endif
|
|
||||||
set_bit(WL_STATUS_CONNECTED, &wl->status);
|
|
||||||
wl->profile->active = true;
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
--- a/x86-32/Makefile 2014-06-26 10:42:08.000000000 +0000
|
||||||
|
+++ b/x86-32/Makefile 2014-07-17 22:44:01.662297228 +0000
|
||||||
|
@@ -126,6 +126,8 @@
|
||||||
|
EXTRA_CFLAGS += -I$(src)/src/shared/bcmwifi/include
|
||||||
|
#EXTRA_CFLAGS += -DBCMDBG_ASSERT -DBCMDBG_ERR
|
||||||
|
|
||||||
|
+EXTRA_CFLAGS += -Wno-date-time
|
||||||
|
+
|
||||||
|
EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped
|
||||||
|
|
||||||
|
KBASE ?= /lib/modules/`uname -r`
|
||||||
|
--- a/x86-64/Makefile 2014-06-26 10:42:08.000000000 +0000
|
||||||
|
+++ b/x86-64/Makefile 2014-07-17 22:44:01.662297228 +0000
|
||||||
|
@@ -126,6 +126,8 @@
|
||||||
|
EXTRA_CFLAGS += -I$(src)/src/shared/bcmwifi/include
|
||||||
|
#EXTRA_CFLAGS += -DBCMDBG_ASSERT -DBCMDBG_ERR
|
||||||
|
|
||||||
|
+EXTRA_CFLAGS += -Wno-date-time
|
||||||
|
+
|
||||||
|
EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped
|
||||||
|
|
||||||
|
KBASE ?= /lib/modules/`uname -r`
|
||||||
|
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
--- a/x86-32/src/wl/sys/wl_linux.c 2014-06-26 14:42:08.000000000 +0400
|
||||||
|
+++ b/x86-32/src/wl/sys/wl_linux.c 2014-10-23 06:28:36.987479544 +0400
|
||||||
|
@@ -215,7 +217,7 @@
|
||||||
|
#define to_str(s) #s
|
||||||
|
#define quote_str(s) to_str(s)
|
||||||
|
|
||||||
|
-#define BRCM_WLAN_IFNAME eth%d
|
||||||
|
+#define BRCM_WLAN_IFNAME wlan%d
|
||||||
|
|
||||||
|
static char intf_name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME);
|
||||||
|
|
||||||
|
--- a/x86-64/src/wl/sys/wl_linux.c 2014-06-26 14:42:08.000000000 +0400
|
||||||
|
+++ b/x86-64/src/wl/sys/wl_linux.c 2014-10-23 06:28:36.987479544 +0400
|
||||||
|
@@ -215,7 +217,7 @@
|
||||||
|
#define to_str(s) #s
|
||||||
|
#define quote_str(s) to_str(s)
|
||||||
|
|
||||||
|
-#define BRCM_WLAN_IFNAME eth%d
|
||||||
|
+#define BRCM_WLAN_IFNAME wlan%d
|
||||||
|
|
||||||
|
static char intf_name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME);
|
||||||
@@ -0,0 +1,102 @@
|
|||||||
|
--- a/x86-32/src/wl/sys/wl_cfg80211_hybrid.c 2014-06-26 12:42:08.000000000 +0200
|
||||||
|
+++ b/x86-32/src/wl/sys/wl_cfg80211_hybrid.c 2014-10-08 18:47:07.549476082 +0200
|
||||||
|
@@ -2071,7 +2071,22 @@
|
||||||
|
wl_get_assoc_ies(wl);
|
||||||
|
memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
|
||||||
|
wl_update_bss_info(wl);
|
||||||
|
- cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
|
||||||
|
+ {
|
||||||
|
+ struct wl_bss_info *bi;
|
||||||
|
+ u16 bss_info_channel;
|
||||||
|
+ struct ieee80211_channel *channel;
|
||||||
|
+ u32 freq;
|
||||||
|
+
|
||||||
|
+ bi = (struct wl_bss_info *)(wl->extra_buf + 4);
|
||||||
|
+ bss_info_channel = bi->ctl_ch ? bi->ctl_ch : CHSPEC_CHANNEL(bi->chanspec);
|
||||||
|
+
|
||||||
|
+ freq = ieee80211_channel_to_frequency(bss_info_channel,
|
||||||
|
+ (bss_info_channel <= CH_MAX_2G_CHANNEL) ?
|
||||||
|
+ IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
|
||||||
|
+
|
||||||
|
+ channel = ieee80211_get_channel(wl_to_wiphy(wl), freq);
|
||||||
|
+ cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL);
|
||||||
|
+ }
|
||||||
|
set_bit(WL_STATUS_CONNECTED, &wl->status);
|
||||||
|
wl->profile->active = true;
|
||||||
|
}
|
||||||
|
--- a/x86-32/src/wl/sys/wl_linux.c 2014-06-26 12:42:08.000000000 +0200
|
||||||
|
+++ b/x86-32/src/wl/sys/wl_linux.c 2014-10-08 18:47:19.526693719 +0200
|
||||||
|
@@ -878,7 +878,7 @@
|
||||||
|
static SIMPLE_DEV_PM_OPS(wl_pm_ops, wl_suspend, wl_resume);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-static struct pci_driver wl_pci_driver = {
|
||||||
|
+static struct pci_driver wl_pci_driver __refdata = {
|
||||||
|
.name = "wl",
|
||||||
|
.probe = wl_pci_probe,
|
||||||
|
.remove = __devexit_p(wl_remove),
|
||||||
|
@@ -1307,7 +1307,12 @@
|
||||||
|
dev->priv = priv_link;
|
||||||
|
#else
|
||||||
|
|
||||||
|
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0))
|
||||||
|
dev = alloc_netdev(sizeof(priv_link_t), intf_name, ether_setup);
|
||||||
|
+#else
|
||||||
|
+ dev = alloc_netdev(sizeof(priv_link_t), intf_name, NET_NAME_UNKNOWN,
|
||||||
|
+ ether_setup);
|
||||||
|
+#endif
|
||||||
|
if (!dev) {
|
||||||
|
WL_ERROR(("wl%d: %s: alloc_netdev failed\n",
|
||||||
|
(wl->pub)?wl->pub->unit:wlif->subunit, __FUNCTION__));
|
||||||
|
|
||||||
|
--- a/x86-64/src/wl/sys/wl_cfg80211_hybrid.c 2014-06-26 12:42:08.000000000 +0200
|
||||||
|
+++ b/x86-64/src/wl/sys/wl_cfg80211_hybrid.c 2014-10-08 18:47:07.549476082 +0200
|
||||||
|
@@ -2071,7 +2071,22 @@
|
||||||
|
wl_get_assoc_ies(wl);
|
||||||
|
memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
|
||||||
|
wl_update_bss_info(wl);
|
||||||
|
- cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
|
||||||
|
+ {
|
||||||
|
+ struct wl_bss_info *bi;
|
||||||
|
+ u16 bss_info_channel;
|
||||||
|
+ struct ieee80211_channel *channel;
|
||||||
|
+ u32 freq;
|
||||||
|
+
|
||||||
|
+ bi = (struct wl_bss_info *)(wl->extra_buf + 4);
|
||||||
|
+ bss_info_channel = bi->ctl_ch ? bi->ctl_ch : CHSPEC_CHANNEL(bi->chanspec);
|
||||||
|
+
|
||||||
|
+ freq = ieee80211_channel_to_frequency(bss_info_channel,
|
||||||
|
+ (bss_info_channel <= CH_MAX_2G_CHANNEL) ?
|
||||||
|
+ IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
|
||||||
|
+
|
||||||
|
+ channel = ieee80211_get_channel(wl_to_wiphy(wl), freq);
|
||||||
|
+ cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL);
|
||||||
|
+ }
|
||||||
|
set_bit(WL_STATUS_CONNECTED, &wl->status);
|
||||||
|
wl->profile->active = true;
|
||||||
|
}
|
||||||
|
--- a/x86-64/src/wl/sys/wl_linux.c 2014-06-26 12:42:08.000000000 +0200
|
||||||
|
+++ b/x86-64/src/wl/sys/wl_linux.c 2014-10-08 18:47:19.526693719 +0200
|
||||||
|
@@ -878,7 +878,7 @@
|
||||||
|
static SIMPLE_DEV_PM_OPS(wl_pm_ops, wl_suspend, wl_resume);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-static struct pci_driver wl_pci_driver = {
|
||||||
|
+static struct pci_driver wl_pci_driver __refdata = {
|
||||||
|
.name = "wl",
|
||||||
|
.probe = wl_pci_probe,
|
||||||
|
.remove = __devexit_p(wl_remove),
|
||||||
|
@@ -1307,7 +1307,12 @@
|
||||||
|
dev->priv = priv_link;
|
||||||
|
#else
|
||||||
|
|
||||||
|
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0))
|
||||||
|
dev = alloc_netdev(sizeof(priv_link_t), intf_name, ether_setup);
|
||||||
|
+#else
|
||||||
|
+ dev = alloc_netdev(sizeof(priv_link_t), intf_name, NET_NAME_UNKNOWN,
|
||||||
|
+ ether_setup);
|
||||||
|
+#endif
|
||||||
|
if (!dev) {
|
||||||
|
WL_ERROR(("wl%d: %s: alloc_netdev failed\n",
|
||||||
|
(wl->pub)?wl->pub->unit:wlif->subunit, __FUNCTION__));
|
||||||
|
|
||||||
34
packages/linux-firmware/brcmfmac_sdio-firmware/package.mk
Normal file
34
packages/linux-firmware/brcmfmac_sdio-firmware/package.mk
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
################################################################################
|
||||||
|
# This file is part of OpenELEC - http://www.openelec.tv
|
||||||
|
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||||
|
#
|
||||||
|
# OpenELEC 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 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# OpenELEC 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. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
PKG_NAME="brcmfmac_sdio-firmware"
|
||||||
|
PKG_VERSION="0.1"
|
||||||
|
PKG_REV="1"
|
||||||
|
PKG_ARCH="any"
|
||||||
|
PKG_LICENSE="GPL"
|
||||||
|
PKG_SITE="https://github.com/OpenELEC/OpenELEC.tv"
|
||||||
|
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||||
|
PKG_DEPENDS_TARGET="toolchain"
|
||||||
|
PKG_PRIORITY="optional"
|
||||||
|
PKG_SECTION="firmware"
|
||||||
|
PKG_SHORTDESC="brcmfmac_sdio-firmware: firmware for brcm bluetooth devices"
|
||||||
|
PKG_LONGDESC="Firmware for Broadcom Bluetooth devices and brcm-patchram-plus that downloads a patchram files in the HCD format to the Bluetooth based silicon and combo chips and other utility functions."
|
||||||
|
|
||||||
|
PKG_IS_ADDON="no"
|
||||||
|
PKG_AUTORECONF="no"
|
||||||
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Broadcom sdio firmware update for %I
|
||||||
|
ConditionPathExists=/dev/ttymxc3
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
RemainAfterExit=yes
|
||||||
|
ExecStart=/usr/bin/brcm_patchram_plus --patchram /lib/firmware/brcm/%I.hcd --baudrate 3000000 --use_baudrate_for_download /dev/ttymxc3 --enable_hci --no2bytes --tosleep=50000
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
################################################################################
|
||||||
|
# udev rules file for loading brcmfmac_sdio-firmware
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
ACTION!="add", GOTO="end"
|
||||||
|
SUBSYSTEMS=="sdio", ATTRS{vendor}=="0x02d0", ATTRS{device}=="0x4329", GOTO="begin"
|
||||||
|
SUBSYSTEMS=="sdio", ATTRS{vendor}=="0x02d0", ATTRS{device}=="0x4330", GOTO="begin"
|
||||||
|
GOTO="end"
|
||||||
|
LABEL="begin"
|
||||||
|
### Brodcom bcm4330 bluetooth device
|
||||||
|
ATTRS{vendor}=="0x02d0", ATTRS{device}=="0x4330", \
|
||||||
|
ENV{brcm_device}="bcm4330"
|
||||||
|
### Brodcom bcm4329 bluetooth device
|
||||||
|
ATTRS{vendor}=="0x02d0", ATTRS{device}=="0x4329", \
|
||||||
|
ENV{brcm_device}="bcm4329"
|
||||||
|
|
||||||
|
ENV{brcm_device}=="?*", ACTION=="add", \
|
||||||
|
TAG+="systemd", ENV{SYSTEMD_WANTS}+="brcmfmac_sdio-firmware@$env{brcm_device}.service"
|
||||||
|
LABEL="end"
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="dvb-firmware"
|
PKG_NAME="dvb-firmware"
|
||||||
PKG_VERSION="0.0.46"
|
PKG_VERSION="0.0.47"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="Free-to-use"
|
PKG_LICENSE="Free-to-use"
|
||||||
|
|||||||
41
packages/linux-firmware/iwlwifi-firmware/package.mk
Normal file
41
packages/linux-firmware/iwlwifi-firmware/package.mk
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
################################################################################
|
||||||
|
# This file is part of OpenELEC - http://www.openelec.tv
|
||||||
|
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||||
|
#
|
||||||
|
# OpenELEC 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 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# OpenELEC 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. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
PKG_NAME="iwlwifi-firmware"
|
||||||
|
PKG_VERSION="0.0.1"
|
||||||
|
PKG_REV="1"
|
||||||
|
PKG_ARCH="any"
|
||||||
|
PKG_LICENSE="Free-to-use"
|
||||||
|
PKG_SITE="https://github.com/OpenELEC/iwlwifi-firmware"
|
||||||
|
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||||
|
PKG_DEPENDS_TARGET="toolchain"
|
||||||
|
PKG_PRIORITY="optional"
|
||||||
|
PKG_SECTION="firmware"
|
||||||
|
PKG_SHORTDESC="iwlwifi-firmware: firmwares for various Intel WLAN drivers"
|
||||||
|
PKG_LONGDESC="iwlwifi-firmware: firmwares for various Intel WLAN drivers"
|
||||||
|
|
||||||
|
PKG_IS_ADDON="no"
|
||||||
|
PKG_AUTORECONF="no"
|
||||||
|
|
||||||
|
make_target() {
|
||||||
|
: # nothing todo
|
||||||
|
}
|
||||||
|
|
||||||
|
makeinstall_target() {
|
||||||
|
DESTDIR=$INSTALL ./install
|
||||||
|
}
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="misc-firmware"
|
PKG_NAME="misc-firmware"
|
||||||
PKG_VERSION="0.0.12"
|
PKG_VERSION="0.0.13"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="Free-to-use"
|
PKG_LICENSE="Free-to-use"
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="wlan-firmware"
|
PKG_NAME="wlan-firmware"
|
||||||
PKG_VERSION="0.0.25"
|
PKG_VERSION="0.0.27"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="Free-to-use"
|
PKG_LICENSE="Free-to-use"
|
||||||
|
|||||||
BIN
packages/linux/firmware/radeon/bonaire_ce.bin
Normal file
BIN
packages/linux/firmware/radeon/bonaire_ce.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/bonaire_mc.bin
Normal file
BIN
packages/linux/firmware/radeon/bonaire_mc.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/bonaire_me.bin
Normal file
BIN
packages/linux/firmware/radeon/bonaire_me.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/bonaire_mec.bin
Normal file
BIN
packages/linux/firmware/radeon/bonaire_mec.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/bonaire_pfp.bin
Normal file
BIN
packages/linux/firmware/radeon/bonaire_pfp.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/bonaire_rlc.bin
Normal file
BIN
packages/linux/firmware/radeon/bonaire_rlc.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/bonaire_sdma.bin
Normal file
BIN
packages/linux/firmware/radeon/bonaire_sdma.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/bonaire_smc.bin
Normal file
BIN
packages/linux/firmware/radeon/bonaire_smc.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/hainan_ce.bin
Normal file
BIN
packages/linux/firmware/radeon/hainan_ce.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/hainan_mc.bin
Normal file
BIN
packages/linux/firmware/radeon/hainan_mc.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/hainan_me.bin
Normal file
BIN
packages/linux/firmware/radeon/hainan_me.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/hainan_pfp.bin
Normal file
BIN
packages/linux/firmware/radeon/hainan_pfp.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/hainan_rlc.bin
Normal file
BIN
packages/linux/firmware/radeon/hainan_rlc.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/hainan_smc.bin
Normal file
BIN
packages/linux/firmware/radeon/hainan_smc.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/hawaii_ce.bin
Normal file
BIN
packages/linux/firmware/radeon/hawaii_ce.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/hawaii_mc.bin
Normal file
BIN
packages/linux/firmware/radeon/hawaii_mc.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/hawaii_me.bin
Normal file
BIN
packages/linux/firmware/radeon/hawaii_me.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/hawaii_mec.bin
Normal file
BIN
packages/linux/firmware/radeon/hawaii_mec.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/hawaii_pfp.bin
Normal file
BIN
packages/linux/firmware/radeon/hawaii_pfp.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/hawaii_rlc.bin
Normal file
BIN
packages/linux/firmware/radeon/hawaii_rlc.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/hawaii_sdma.bin
Normal file
BIN
packages/linux/firmware/radeon/hawaii_sdma.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/hawaii_smc.bin
Normal file
BIN
packages/linux/firmware/radeon/hawaii_smc.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/kabini_ce.bin
Normal file
BIN
packages/linux/firmware/radeon/kabini_ce.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/kabini_me.bin
Normal file
BIN
packages/linux/firmware/radeon/kabini_me.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/kabini_mec.bin
Normal file
BIN
packages/linux/firmware/radeon/kabini_mec.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/kabini_pfp.bin
Normal file
BIN
packages/linux/firmware/radeon/kabini_pfp.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/kabini_rlc.bin
Normal file
BIN
packages/linux/firmware/radeon/kabini_rlc.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/kabini_sdma.bin
Normal file
BIN
packages/linux/firmware/radeon/kabini_sdma.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/kaveri_ce.bin
Normal file
BIN
packages/linux/firmware/radeon/kaveri_ce.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/kaveri_me.bin
Normal file
BIN
packages/linux/firmware/radeon/kaveri_me.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/kaveri_mec.bin
Normal file
BIN
packages/linux/firmware/radeon/kaveri_mec.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/kaveri_mec2.bin
Normal file
BIN
packages/linux/firmware/radeon/kaveri_mec2.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/kaveri_pfp.bin
Normal file
BIN
packages/linux/firmware/radeon/kaveri_pfp.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/kaveri_rlc.bin
Normal file
BIN
packages/linux/firmware/radeon/kaveri_rlc.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/kaveri_sdma.bin
Normal file
BIN
packages/linux/firmware/radeon/kaveri_sdma.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/mullins_ce.bin
Normal file
BIN
packages/linux/firmware/radeon/mullins_ce.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/mullins_me.bin
Normal file
BIN
packages/linux/firmware/radeon/mullins_me.bin
Normal file
Binary file not shown.
BIN
packages/linux/firmware/radeon/mullins_mec.bin
Normal file
BIN
packages/linux/firmware/radeon/mullins_mec.bin
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user