Merge pull request #4566 from HiassofT/le10-bye-bye-slice
RPi: remove Slice and Slice3 devices
@ -1,9 +0,0 @@
|
|||||||
102
|
|
||||||
- Fix rew pattern not working
|
|
||||||
- Change logging to use LOGDEBUG
|
|
||||||
|
|
||||||
101
|
|
||||||
- Fix sleep.png so all LED's turn off
|
|
||||||
|
|
||||||
100
|
|
||||||
- Initial release
|
|
Before Width: | Height: | Size: 24 KiB |
@ -1,28 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0
|
|
||||||
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
|
|
||||||
|
|
||||||
PKG_NAME="slice"
|
|
||||||
PKG_VERSION="0"
|
|
||||||
PKG_REV="102"
|
|
||||||
PKG_ARCH="any"
|
|
||||||
PKG_LICENSE="GPL"
|
|
||||||
PKG_SITE=""
|
|
||||||
PKG_URL=""
|
|
||||||
PKG_DEPENDS_TARGET="toolchain"
|
|
||||||
PKG_SECTION="service"
|
|
||||||
PKG_SHORTDESC="Provides the ability to change the led lights on the Slice box via Kodi actions"
|
|
||||||
PKG_LONGDESC="Provides the ability to change the led lights on the Slice box via Kodi actions"
|
|
||||||
PKG_TOOLCHAIN="manual"
|
|
||||||
|
|
||||||
PKG_IS_ADDON="embedded"
|
|
||||||
PKG_ADDON_NAME="Slice"
|
|
||||||
PKG_ADDON_PROJECTS="Slice Slice3"
|
|
||||||
PKG_ADDON_TYPE="xbmc.service"
|
|
||||||
|
|
||||||
makeinstall_target() {
|
|
||||||
install_addon_files "${INSTALL}/usr/share/kodi/addons/${PKG_SECTION}.${PKG_NAME}"
|
|
||||||
}
|
|
||||||
|
|
||||||
addon() {
|
|
||||||
:
|
|
||||||
}
|
|
@ -1,234 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0
|
|
||||||
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
|
|
||||||
|
|
||||||
from PIL import Image
|
|
||||||
|
|
||||||
import os
|
|
||||||
import threading
|
|
||||||
import time
|
|
||||||
import Queue
|
|
||||||
import xbmc
|
|
||||||
import xbmcaddon
|
|
||||||
|
|
||||||
'''
|
|
||||||
ffwd.png
|
|
||||||
pause.png
|
|
||||||
play.png
|
|
||||||
quit.png
|
|
||||||
rew.png
|
|
||||||
shutdown.png
|
|
||||||
skipf.png
|
|
||||||
skipr.png
|
|
||||||
sleep.png
|
|
||||||
startup.png
|
|
||||||
stop.png
|
|
||||||
wake.png
|
|
||||||
'''
|
|
||||||
|
|
||||||
__addon__ = xbmcaddon.Addon()
|
|
||||||
__path__ = __addon__.getAddonInfo('path')
|
|
||||||
|
|
||||||
class PNGPatternPlayer(threading.Thread):
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
threading.Thread.__init__(self)
|
|
||||||
self.path = __path__ + "/resources/media/ledpatterns"
|
|
||||||
self.patterns = Queue.Queue()
|
|
||||||
self.responses = Queue.Queue()
|
|
||||||
self.stopped = False
|
|
||||||
self.memo = {}
|
|
||||||
self.start()
|
|
||||||
|
|
||||||
def setPath(self, path):
|
|
||||||
if self.path != path:
|
|
||||||
self.path = path
|
|
||||||
self.memo = {}
|
|
||||||
|
|
||||||
def clearPattern(self):
|
|
||||||
with open('/dev/ws2812', 'wb') as f:
|
|
||||||
'write null multiple times as the LEDs can get locked up with fast operations'
|
|
||||||
for n in range(5):
|
|
||||||
f.write(bytearray(25))
|
|
||||||
|
|
||||||
def playPattern(self, file, delay):
|
|
||||||
xbmc.log('playing pattern: %s' % file, xbmc.LOGDEBUG)
|
|
||||||
|
|
||||||
'get pixel data from a cache if available, otherwise load and calculate'
|
|
||||||
if file not in self.memo:
|
|
||||||
image = Image.open(file)
|
|
||||||
pixels = image.load()
|
|
||||||
width, height = image.size
|
|
||||||
data = []
|
|
||||||
|
|
||||||
for y in range(height):
|
|
||||||
x_pixels = []
|
|
||||||
for x in range(width):
|
|
||||||
pixel = []
|
|
||||||
r, g, b, a = pixels[x, y]
|
|
||||||
pixel.append(hex(r)[2:].zfill(2))
|
|
||||||
pixel.append(hex(g)[2:].zfill(2))
|
|
||||||
pixel.append(hex(b)[2:].zfill(2))
|
|
||||||
pixel.append(hex(a)[2:].zfill(2))
|
|
||||||
x_pixels.append(''.join(str(e) for e in pixel))
|
|
||||||
data.append(' '.join(str(e) for e in x_pixels))
|
|
||||||
|
|
||||||
self.memo[file] = data
|
|
||||||
|
|
||||||
for hexline in self.memo[file]:
|
|
||||||
if not self.stopped:
|
|
||||||
with open('/dev/ws2812', 'wb') as f:
|
|
||||||
f.write(bytearray.fromhex(hexline))
|
|
||||||
time.sleep(delay)
|
|
||||||
else:
|
|
||||||
break
|
|
||||||
|
|
||||||
def play(self, file, repeat=False, delay=0.030, wait=None):
|
|
||||||
self.stopped = True
|
|
||||||
|
|
||||||
if wait is not None:
|
|
||||||
# wait up to specified time if this pattern is to be processed synchronously
|
|
||||||
self.patterns.put((file, repeat, delay, True))
|
|
||||||
try:
|
|
||||||
result = self.responses.get(block=True, timeout=wait)
|
|
||||||
except Queue.Empty:
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
self.patterns.put((file, repeat, delay, False))
|
|
||||||
|
|
||||||
def stop(self, wait=None):
|
|
||||||
self.play(None, wait=wait)
|
|
||||||
|
|
||||||
def run(self):
|
|
||||||
repeat = False
|
|
||||||
|
|
||||||
while True:
|
|
||||||
try:
|
|
||||||
(file, repeat, delay, wait) = self.patterns.get(block=True, timeout=0 if repeat and not self.stopped else None)
|
|
||||||
|
|
||||||
self.stopped = False
|
|
||||||
|
|
||||||
if file is not None:
|
|
||||||
self.playPattern("%s/%s.png" % (self.path, file), delay)
|
|
||||||
else:
|
|
||||||
self.clearPattern()
|
|
||||||
|
|
||||||
if wait:
|
|
||||||
self.responses.put(True)
|
|
||||||
|
|
||||||
# Queue will be empty if we're repeating the last pattern and there is no new work
|
|
||||||
except Queue.Empty:
|
|
||||||
self.playPattern("%s/%s.png" % (self.path, file), delay)
|
|
||||||
|
|
||||||
class SlicePlayer(xbmc.Player):
|
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
xbmc.Player.__init__(self)
|
|
||||||
|
|
||||||
'maps kodi player speed to delay in seconds'
|
|
||||||
self.speed_map = {-32: 0.015,
|
|
||||||
-16: 0.025,
|
|
||||||
-8: 0.030,
|
|
||||||
-4: 0.035,
|
|
||||||
-2: 0.040,
|
|
||||||
-1: 0.060,
|
|
||||||
0: 0.000,
|
|
||||||
1: 0.060,
|
|
||||||
2: 0.040,
|
|
||||||
4: 0.035,
|
|
||||||
8: 0.030,
|
|
||||||
16: 0.025,
|
|
||||||
32: 0.015,
|
|
||||||
}
|
|
||||||
|
|
||||||
self.speed = 1
|
|
||||||
patterns.play('startup', False, 0.02)
|
|
||||||
xbmc.log('service.slice add-on started', xbmc.LOGINFO)
|
|
||||||
|
|
||||||
def onPlayBackEnded(self):
|
|
||||||
'Will be called when Kodi stops playing a file'
|
|
||||||
|
|
||||||
patterns.play('stop')
|
|
||||||
|
|
||||||
def onPlayBackPaused(self):
|
|
||||||
'Will be called when user pauses a playing file'
|
|
||||||
|
|
||||||
patterns.play('pause')
|
|
||||||
|
|
||||||
def onPlayBackResumed(self):
|
|
||||||
'Will be called when user resumes a paused file'
|
|
||||||
|
|
||||||
patterns.play('play')
|
|
||||||
|
|
||||||
def onPlayBackSeek(self, iTime, seekOffset):
|
|
||||||
'Will be called when user seeks to a time'
|
|
||||||
|
|
||||||
# todo: not working
|
|
||||||
|
|
||||||
xbmc.log('time offset: %d' % iTime, xbmc.LOGDEBUG)
|
|
||||||
xbmc.log('seek offset: %d' % seekOffset, xbmc.LOGDEBUG)
|
|
||||||
|
|
||||||
if seekOffset > 0:
|
|
||||||
patterns.play('skipf')
|
|
||||||
else:
|
|
||||||
patterns.play('skipr')
|
|
||||||
|
|
||||||
def onPlayBackSeekChapter(self, chapter):
|
|
||||||
'Will be called when user performs a chapter seek'
|
|
||||||
pass
|
|
||||||
|
|
||||||
def onPlayBackSpeedChanged(self, speed):
|
|
||||||
'Will be called when players speed changes. (eg. user FF/RW)'
|
|
||||||
|
|
||||||
xbmc.log('seek speed: %d' % speed, xbmc.LOGDEBUG)
|
|
||||||
|
|
||||||
self.speed = speed
|
|
||||||
|
|
||||||
if self.speed != 1:
|
|
||||||
if self.speed < 0:
|
|
||||||
patterns.play('rew', True, self.speed_map[self.speed])
|
|
||||||
elif self.speed > 0:
|
|
||||||
patterns.play('ffwd', True, self.speed_map[self.speed])
|
|
||||||
else:
|
|
||||||
patterns.stop()
|
|
||||||
|
|
||||||
def onPlayBackStarted(self):
|
|
||||||
'Will be called when Kodi starts playing a file'
|
|
||||||
|
|
||||||
patterns.play('play')
|
|
||||||
|
|
||||||
def onPlayBackStopped(self):
|
|
||||||
'Will be called when user stops Kodi playing a file'
|
|
||||||
|
|
||||||
patterns.play('stop')
|
|
||||||
|
|
||||||
class SliceMonitor(xbmc.Monitor):
|
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
xbmc.Monitor.__init__(self)
|
|
||||||
|
|
||||||
def onScreensaverActivated(self):
|
|
||||||
'Will be called when screensaver kicks in'
|
|
||||||
|
|
||||||
patterns.play('sleep')
|
|
||||||
|
|
||||||
def onScreensaverDeactivated(self):
|
|
||||||
'Will be called when screensaver goes off'
|
|
||||||
|
|
||||||
patterns.play('wake')
|
|
||||||
|
|
||||||
def onSettingsChanged(self):
|
|
||||||
'Will be called when addon settings are changed'
|
|
||||||
|
|
||||||
# meh
|
|
||||||
|
|
||||||
if (__name__ == "__main__"):
|
|
||||||
patterns = PNGPatternPlayer()
|
|
||||||
player = SlicePlayer()
|
|
||||||
monitor = SliceMonitor()
|
|
||||||
|
|
||||||
monitor.waitForAbort()
|
|
||||||
patterns.play('shutdown', wait=5.0)
|
|
||||||
|
|
||||||
del SliceMonitor
|
|
||||||
del SlicePlayer
|
|
||||||
del PNGPatternPlayer
|
|
Before Width: | Height: | Size: 235 B |
Before Width: | Height: | Size: 247 B |
Before Width: | Height: | Size: 250 B |
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 242 B |
Before Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 229 B |
Before Width: | Height: | Size: 228 B |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 2.5 KiB |
@ -1,32 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0
|
|
||||||
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
|
|
||||||
|
|
||||||
PKG_NAME="slice-drivers"
|
|
||||||
PKG_VERSION="8c84fb06f3d66e879bb1d02c5a6d436d31ed6306"
|
|
||||||
PKG_SHA256="ddc9c97c1ad40cc8fbebf3c501c2bb5cfa2ea22e8fe9af2cb56242c2c72ae202"
|
|
||||||
PKG_ARCH="arm"
|
|
||||||
PKG_LICENSE="GPL"
|
|
||||||
PKG_SITE="https://github.com/LibreELEC/slice-drivers"
|
|
||||||
PKG_URL="https://github.com/LibreELEC/slice-drivers/archive/$PKG_VERSION.tar.gz"
|
|
||||||
PKG_LONGDESC="linux kernel modules for the Slice box"
|
|
||||||
PKG_IS_KERNEL_PKG="yes"
|
|
||||||
|
|
||||||
pre_make_target() {
|
|
||||||
unset LDFLAGS
|
|
||||||
}
|
|
||||||
|
|
||||||
make_target() {
|
|
||||||
local kdir=$(kernel_path)
|
|
||||||
local dtc=${kdir}/scripts/dtc/dtc
|
|
||||||
local dtcflags="-@ -O dtb -Wno-unit_address_vs_reg"
|
|
||||||
kernel_make KDIR=${kdir}
|
|
||||||
${dtc} ${dtcflags} -o slice.dtbo slice-overlay.dts
|
|
||||||
${dtc} ${dtcflags} -o ws2812.dtbo ws2812-overlay.dts
|
|
||||||
}
|
|
||||||
|
|
||||||
makeinstall_target() {
|
|
||||||
mkdir -p $INSTALL/$(get_full_module_dir)/$PKG_NAME
|
|
||||||
cp *.ko $INSTALL/$(get_full_module_dir)/$PKG_NAME
|
|
||||||
mkdir -p $INSTALL/usr/share/bootloader/overlays
|
|
||||||
cp *.dtbo $INSTALL/usr/share/bootloader/overlays
|
|
||||||
}
|
|
@ -1,26 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0
|
|
||||||
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
|
|
||||||
|
|
||||||
PKG_NAME="slice-firmware"
|
|
||||||
PKG_VERSION="0f463cc"
|
|
||||||
PKG_SHA256="27e8bac75d5639ca75d683bb2c9b10398c5d7f54f2cf3337ede6abf98e42f751"
|
|
||||||
PKG_ARCH="arm"
|
|
||||||
PKG_LICENSE="GPL"
|
|
||||||
PKG_SITE="https://github.com/FiveNinjas/slice-firmware"
|
|
||||||
PKG_URL="https://github.com/libreelec/slice-firmware/archive/$PKG_VERSION.tar.gz"
|
|
||||||
PKG_DEPENDS_TARGET="toolchain linux"
|
|
||||||
PKG_LONGDESC="BCM270x firmware related stuff for Slice"
|
|
||||||
PKG_TOOLCHAIN="manual"
|
|
||||||
|
|
||||||
make_target() {
|
|
||||||
if [ "$DEVICE" = "Slice3" ]; then
|
|
||||||
$(kernel_path)/scripts/dtc/dtc -O dtb -I dts -o dt-blob.bin slice3-dt-blob.dts
|
|
||||||
elif [ "$DEVICE" = "Slice" ]; then
|
|
||||||
$(kernel_path)/scripts/dtc/dtc -O dtb -I dts -o dt-blob.bin slice-dt-blob.dts
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
makeinstall_target() {
|
|
||||||
mkdir -p $INSTALL/usr/share/bootloader/
|
|
||||||
cp -a $PKG_BUILD/dt-blob.bin $INSTALL/usr/share/bootloader/
|
|
||||||
}
|
|
@ -169,10 +169,6 @@ configure_package() {
|
|||||||
KODI_ARCH="-DWITH_ARCH=$TARGET_ARCH"
|
KODI_ARCH="-DWITH_ARCH=$TARGET_ARCH"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$DEVICE" = "Slice" -o "$DEVICE" = "Slice3" ]; then
|
|
||||||
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET led_tools"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! "$KODIPLAYER_DRIVER" = default ]; then
|
if [ ! "$KODIPLAYER_DRIVER" = default ]; then
|
||||||
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET $KODIPLAYER_DRIVER libinput libxkbcommon"
|
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET $KODIPLAYER_DRIVER libinput libxkbcommon"
|
||||||
if [ "$OPENGLES_SUPPORT" = yes -a "$KODIPLAYER_DRIVER" = "$OPENGLES" ]; then
|
if [ "$OPENGLES_SUPPORT" = yes -a "$KODIPLAYER_DRIVER" = "$OPENGLES" ]; then
|
||||||
@ -317,10 +313,6 @@ post_makeinstall_target() {
|
|||||||
xmlstarlet ed -L --subnode "/addons" -t elem -n "addon" -v "script.program.driverselect" $ADDON_MANIFEST
|
xmlstarlet ed -L --subnode "/addons" -t elem -n "addon" -v "script.program.driverselect" $ADDON_MANIFEST
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$DEVICE" = "Slice" -o "$DEVICE" = "Slice3" ]; then
|
|
||||||
xmlstarlet ed -L --subnode "/addons" -t elem -n "addon" -v "service.slice" $ADDON_MANIFEST
|
|
||||||
fi
|
|
||||||
|
|
||||||
# more binaddons cross compile badness meh
|
# more binaddons cross compile badness meh
|
||||||
sed -e "s:INCLUDE_DIR /usr/include/kodi:INCLUDE_DIR $SYSROOT_PREFIX/usr/include/kodi:g" \
|
sed -e "s:INCLUDE_DIR /usr/include/kodi:INCLUDE_DIR $SYSROOT_PREFIX/usr/include/kodi:g" \
|
||||||
-e "s:CMAKE_MODULE_PATH /usr/lib/kodi /usr/share/kodi/cmake:CMAKE_MODULE_PATH $SYSROOT_PREFIX/usr/share/kodi/cmake:g" \
|
-e "s:CMAKE_MODULE_PATH /usr/lib/kodi /usr/share/kodi/cmake:CMAKE_MODULE_PATH $SYSROOT_PREFIX/usr/share/kodi/cmake:g" \
|
||||||
|
@ -25,8 +25,6 @@ makeinstall_target() {
|
|||||||
cp -PRv start_x.elf $INSTALL/usr/share/bootloader/start.elf
|
cp -PRv start_x.elf $INSTALL/usr/share/bootloader/start.elf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
find_file_path config/dt-blob.bin && cp -PRv $FOUND_PATH $INSTALL/usr/share/bootloader
|
|
||||||
|
|
||||||
find_file_path bootloader/update.sh && cp -PRv $FOUND_PATH $INSTALL/usr/share/bootloader
|
find_file_path bootloader/update.sh && cp -PRv $FOUND_PATH $INSTALL/usr/share/bootloader
|
||||||
find_file_path bootloader/canupdate.sh && cp -PRv $FOUND_PATH $INSTALL/usr/share/bootloader
|
find_file_path bootloader/canupdate.sh && cp -PRv $FOUND_PATH $INSTALL/usr/share/bootloader
|
||||||
|
|
||||||
|
@ -9,9 +9,6 @@ mkdir -p $RELEASE_DIR/3rdparty/bootloader
|
|||||||
cp -PR $INSTALL/usr/share/bootloader/bootcode.bin $RELEASE_DIR/3rdparty/bootloader/
|
cp -PR $INSTALL/usr/share/bootloader/bootcode.bin $RELEASE_DIR/3rdparty/bootloader/
|
||||||
cp -PR $INSTALL/usr/share/bootloader/fixup.dat $RELEASE_DIR/3rdparty/bootloader/
|
cp -PR $INSTALL/usr/share/bootloader/fixup.dat $RELEASE_DIR/3rdparty/bootloader/
|
||||||
cp -PR $INSTALL/usr/share/bootloader/start.elf $RELEASE_DIR/3rdparty/bootloader/
|
cp -PR $INSTALL/usr/share/bootloader/start.elf $RELEASE_DIR/3rdparty/bootloader/
|
||||||
if [ -f $(get_build_dir slice-firmware)/dt-blob.bin ]; then
|
|
||||||
cp -PR $(get_build_dir slice-firmware)/dt-blob.bin $RELEASE_DIR/3rdparty/bootloader/
|
|
||||||
fi
|
|
||||||
cp -PR $INSTALL/usr/share/bootloader/*.dtb $RELEASE_DIR/3rdparty/bootloader/
|
cp -PR $INSTALL/usr/share/bootloader/*.dtb $RELEASE_DIR/3rdparty/bootloader/
|
||||||
cp -PR $INSTALL/usr/share/bootloader/overlays $RELEASE_DIR/3rdparty/bootloader/
|
cp -PR $INSTALL/usr/share/bootloader/overlays $RELEASE_DIR/3rdparty/bootloader/
|
||||||
|
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
# Copyright (C) 2014 Gordon Hollingworth (gordon@fiveninjas.com)
|
|
||||||
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
|
|
||||||
|
|
||||||
PKG_NAME="led_tools"
|
|
||||||
PKG_VERSION="0.1"
|
|
||||||
PKG_SHA256="0484b4a2da9d586accef87ba7dd18595baae1d602c1b1bd9e0a8565ab50419a2"
|
|
||||||
PKG_LICENSE="GPL"
|
|
||||||
PKG_SITE="http://www.fiveninjas.com"
|
|
||||||
PKG_URL="http://updates.fiveninjas.com/src/$PKG_NAME-$PKG_VERSION.tar.gz"
|
|
||||||
PKG_DEPENDS_HOST="toolchain:host"
|
|
||||||
PKG_DEPENDS_TARGET="toolchain zlib libpng slice"
|
|
||||||
PKG_LONGDESC="LED tools, these are a set of tools to control the LEDs on Slice"
|
|
||||||
|
|
||||||
make_target() {
|
|
||||||
make CC="$CC" \
|
|
||||||
CFLAGS="$CFLAGS" \
|
|
||||||
LDFLAGS="$LDFLAGS"
|
|
||||||
}
|
|
||||||
|
|
||||||
makeinstall_target() {
|
|
||||||
mkdir -p $INSTALL/usr/bin
|
|
||||||
cp led_png $INSTALL/usr/bin
|
|
||||||
}
|
|
@ -17,7 +17,6 @@ cp -p $SYSTEM_ROOT/usr/share/bootloader/LICENCE* $BOOT_ROOT
|
|||||||
cp -p $SYSTEM_ROOT/usr/share/bootloader/bootcode.bin $BOOT_ROOT
|
cp -p $SYSTEM_ROOT/usr/share/bootloader/bootcode.bin $BOOT_ROOT
|
||||||
cp -p $SYSTEM_ROOT/usr/share/bootloader/fixup.dat $BOOT_ROOT
|
cp -p $SYSTEM_ROOT/usr/share/bootloader/fixup.dat $BOOT_ROOT
|
||||||
cp -p $SYSTEM_ROOT/usr/share/bootloader/start.elf $BOOT_ROOT
|
cp -p $SYSTEM_ROOT/usr/share/bootloader/start.elf $BOOT_ROOT
|
||||||
[ -f $SYSTEM_ROOT/usr/share/bootloader/dt-blob.bin ] && cp -p $SYSTEM_ROOT/usr/share/bootloader/dt-blob.bin $BOOT_ROOT
|
|
||||||
|
|
||||||
rm -f $BOOT_ROOT/bcm283*.dtb # cleanup excess dtb's used by upstream kernels (ie. not LE)
|
rm -f $BOOT_ROOT/bcm283*.dtb # cleanup excess dtb's used by upstream kernels (ie. not LE)
|
||||||
cp -p $SYSTEM_ROOT/usr/share/bootloader/*.dtb $BOOT_ROOT
|
cp -p $SYSTEM_ROOT/usr/share/bootloader/*.dtb $BOOT_ROOT
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0
|
|
||||||
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
|
|
||||||
|
|
||||||
# WARNING: DO NOT EDIT THIS FILE - IT WILL BE OVERWRITTEN WHEN UPGRADING!
|
|
||||||
dtoverlay=vc4-kms-v3d,cma-128
|
|
||||||
disable_overscan=1
|
|
||||||
dtoverlay=slice
|
|
||||||
dtoverlay=ws2812
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
hdparm -S60 /dev/sda
|
|
@ -1,19 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
LEDDIR="/usr/share/kodi/addons/service.slice/resources/media/ledpatterns"
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
halt)
|
|
||||||
hdparm -y /dev/sda
|
|
||||||
led_png $LEDDIR/shutdown.png
|
|
||||||
;;
|
|
||||||
poweroff)
|
|
||||||
hdparm -y /dev/sda
|
|
||||||
led_png $LEDDIR/shutdown.png
|
|
||||||
;;
|
|
||||||
reboot)
|
|
||||||
led_png $LEDDIR/shutdown.png
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
;;
|
|
||||||
esac
|
|
@ -1,25 +0,0 @@
|
|||||||
<confdir:pcm/iec958.conf>
|
|
||||||
|
|
||||||
snd_slice.pcm.iec958.0 {
|
|
||||||
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
||||||
@args.CARD {
|
|
||||||
type string
|
|
||||||
}
|
|
||||||
@args.AES0 {
|
|
||||||
type integer
|
|
||||||
}
|
|
||||||
@args.AES1 {
|
|
||||||
type integer
|
|
||||||
}
|
|
||||||
@args.AES2 {
|
|
||||||
type integer
|
|
||||||
}
|
|
||||||
@args.AES3 {
|
|
||||||
type integer
|
|
||||||
}
|
|
||||||
type hooks
|
|
||||||
slave.pcm {
|
|
||||||
type hw
|
|
||||||
card $CARD
|
|
||||||
}
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
../RPi/linux
|
|
@ -1,18 +0,0 @@
|
|||||||
################################################################################
|
|
||||||
# Device defaults
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
# NOOBS supported hex versions (legacy)
|
|
||||||
NOOBS_HEX="2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,0092,0093"
|
|
||||||
|
|
||||||
# NOOBS supported model versions
|
|
||||||
NOOBS_SUPPORTED_MODELS='"Pi Model","Pi Compute Module","Pi Zero"'
|
|
||||||
|
|
||||||
# Additional Firmware
|
|
||||||
FIRMWARE="${FIRMWARE} slice-firmware"
|
|
||||||
|
|
||||||
# Additional drivers
|
|
||||||
ADDITIONAL_DRIVERS="${ADDITIONAL_DRIVERS} slice-drivers"
|
|
||||||
|
|
||||||
# set the addon project
|
|
||||||
ADDON_PROJECT="RPi"
|
|
@ -1,45 +0,0 @@
|
|||||||
--- a/system/keymaps/keyboard.xml 2016-09-17 16:35:20.000000000 +0100
|
|
||||||
+++ b/system/keymaps/keyboard.xml 2016-10-01 19:31:07.928719606 +0100
|
|
||||||
@@ -56,7 +56,7 @@
|
|
||||||
<menu mod="longpress">Menu</menu>
|
|
||||||
<c>ContextMenu</c>
|
|
||||||
<c mod="longpress">Menu</c>
|
|
||||||
- <space>Pause</space>
|
|
||||||
+ <space>PlayPause</space>
|
|
||||||
<x>Stop</x>
|
|
||||||
<period>SkipNext</period>
|
|
||||||
<comma>SkipPrevious</comma>
|
|
||||||
@@ -321,8 +321,8 @@
|
|
||||||
<l>NextSubtitle</l>
|
|
||||||
<left>StepBack</left>
|
|
||||||
<right>StepForward</right>
|
|
||||||
- <up>ChapterOrBigStepForward</up>
|
|
||||||
- <down>ChapterOrBigStepBack</down>
|
|
||||||
+ <up>VolumeUp</up>
|
|
||||||
+ <down>VolumeDown</down>
|
|
||||||
<up mod="longpress">AudioNextLanguage</up>
|
|
||||||
<down mod="longpress">NextSubtitle</down>
|
|
||||||
<a>AudioDelay</a>
|
|
||||||
@@ -425,8 +425,8 @@
|
|
||||||
<right>StepForward</right>
|
|
||||||
<left mod="longpress">Rewind</left>
|
|
||||||
<right mod="longpress">FastForward</right>
|
|
||||||
- <up>SkipNext</up>
|
|
||||||
- <down>SkipPrevious</down>
|
|
||||||
+ <up>VolumeUp</up>
|
|
||||||
+ <down>VolumeDown</down>
|
|
||||||
<o>PlayerProcessInfo</o>
|
|
||||||
<l>LockPreset</l>
|
|
||||||
<escape>FullScreen</escape>
|
|
||||||
@@ -632,8 +632,8 @@
|
|
||||||
<keyboard>
|
|
||||||
<left>StepBack</left>
|
|
||||||
<right>StepForward</right>
|
|
||||||
- <up>Up</up>
|
|
||||||
- <down>Down</down>
|
|
||||||
+ <up>VolumeUp</up>
|
|
||||||
+ <down>VolumeDown</down>
|
|
||||||
<return>OSD</return>
|
|
||||||
<enter>OSD</enter>
|
|
||||||
<return mod="longpress">ActivateWindow(PVROSDChannels)</return>
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
|||||||
--- linux-4.4-rc7-old/sound/soc/codecs/cs4265.c 2016-01-13 20:56:05.637652775 +0000
|
|
||||||
+++ linux-4.4-rc7/sound/soc/codecs/cs4265.c 2016-01-17 11:21:16.977652775 +0000
|
|
||||||
@@ -199,8 +199,6 @@
|
|
||||||
SND_SOC_NOPM, 0, 0),
|
|
||||||
SND_SOC_DAPM_AIF_IN("DIN2", NULL, 0,
|
|
||||||
SND_SOC_NOPM, 0, 0),
|
|
||||||
- SND_SOC_DAPM_AIF_IN("TXIN", NULL, 0,
|
|
||||||
- CS4265_SPDIF_CTL2, 5, 1),
|
|
||||||
|
|
||||||
SND_SOC_DAPM_OUTPUT("LINEOUTL"),
|
|
||||||
SND_SOC_DAPM_OUTPUT("LINEOUTR"),
|
|
@ -1,13 +0,0 @@
|
|||||||
--- a/arch/arm/boot/dts/bcm270x-rpi.dtsi 2020-04-29 05:31:07.000000000 -0400
|
|
||||||
+++ b/arch/arm/boot/dts/bcm270x-rpi.dtsi 2020-05-08 09:07:16.487587235 -0400
|
|
||||||
@@ -16,8 +16,8 @@
|
|
||||||
uart1 = &uart1;
|
|
||||||
sdhost = &sdhost;
|
|
||||||
mmc = &mmc;
|
|
||||||
- mmc1 = &mmc;
|
|
||||||
- mmc0 = &sdhost;
|
|
||||||
+ mmc1 = &sdhost;
|
|
||||||
+ mmc0 = &mmc;
|
|
||||||
i2s = &i2s;
|
|
||||||
i2c0 = &i2c0;
|
|
||||||
i2c1 = &i2c1;
|
|
@ -1,10 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0
|
|
||||||
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
|
|
||||||
|
|
||||||
# WARNING: DO NOT EDIT THIS FILE - IT WILL BE OVERWRITTEN WHEN UPGRADING!
|
|
||||||
|
|
||||||
dtoverlay=vc4-kms-v3d
|
|
||||||
disable_overscan=1
|
|
||||||
dtoverlay=slice
|
|
||||||
dtoverlay=ws2812
|
|
||||||
dtoverlay=mmc
|
|
@ -1,2 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
hdparm -S60 /dev/sda
|
|
@ -1,19 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
LEDDIR="/usr/share/kodi/addons/service.slice/resources/media/ledpatterns"
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
halt)
|
|
||||||
hdparm -y /dev/sda
|
|
||||||
led_png $LEDDIR/shutdown.png
|
|
||||||
;;
|
|
||||||
poweroff)
|
|
||||||
hdparm -y /dev/sda
|
|
||||||
led_png $LEDDIR/shutdown.png
|
|
||||||
;;
|
|
||||||
reboot)
|
|
||||||
led_png $LEDDIR/shutdown.png
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
;;
|
|
||||||
esac
|
|
@ -1,25 +0,0 @@
|
|||||||
<confdir:pcm/iec958.conf>
|
|
||||||
|
|
||||||
snd_slice.pcm.iec958.0 {
|
|
||||||
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
||||||
@args.CARD {
|
|
||||||
type string
|
|
||||||
}
|
|
||||||
@args.AES0 {
|
|
||||||
type integer
|
|
||||||
}
|
|
||||||
@args.AES1 {
|
|
||||||
type integer
|
|
||||||
}
|
|
||||||
@args.AES2 {
|
|
||||||
type integer
|
|
||||||
}
|
|
||||||
@args.AES3 {
|
|
||||||
type integer
|
|
||||||
}
|
|
||||||
type hooks
|
|
||||||
slave.pcm {
|
|
||||||
type hw
|
|
||||||
card $CARD
|
|
||||||
}
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
../RPi2/linux
|
|
@ -1,18 +0,0 @@
|
|||||||
################################################################################
|
|
||||||
# Device defaults
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
# NOOBS supported hex versions (legacy)
|
|
||||||
NOOBS_HEX="1040,1041,2082"
|
|
||||||
|
|
||||||
# NOOBS supported model versions
|
|
||||||
NOOBS_SUPPORTED_MODELS='"Pi 2","Pi 3"'
|
|
||||||
|
|
||||||
# Additional Firmware
|
|
||||||
FIRMWARE="${FIRMWARE} slice-firmware"
|
|
||||||
|
|
||||||
# Additional drivers
|
|
||||||
ADDITIONAL_DRIVERS="${ADDITIONAL_DRIVERS} slice-drivers"
|
|
||||||
|
|
||||||
# set the addon project
|
|
||||||
ADDON_PROJECT="RPi2"
|
|
@ -1,45 +0,0 @@
|
|||||||
--- a/system/keymaps/keyboard.xml 2016-09-17 16:35:20.000000000 +0100
|
|
||||||
+++ b/system/keymaps/keyboard.xml 2016-10-01 19:31:07.928719606 +0100
|
|
||||||
@@ -56,7 +56,7 @@
|
|
||||||
<menu mod="longpress">Menu</menu>
|
|
||||||
<c>ContextMenu</c>
|
|
||||||
<c mod="longpress">Menu</c>
|
|
||||||
- <space>Pause</space>
|
|
||||||
+ <space>PlayPause</space>
|
|
||||||
<x>Stop</x>
|
|
||||||
<period>SkipNext</period>
|
|
||||||
<comma>SkipPrevious</comma>
|
|
||||||
@@ -321,8 +321,8 @@
|
|
||||||
<l>NextSubtitle</l>
|
|
||||||
<left>StepBack</left>
|
|
||||||
<right>StepForward</right>
|
|
||||||
- <up>ChapterOrBigStepForward</up>
|
|
||||||
- <down>ChapterOrBigStepBack</down>
|
|
||||||
+ <up>VolumeUp</up>
|
|
||||||
+ <down>VolumeDown</down>
|
|
||||||
<up mod="longpress">AudioNextLanguage</up>
|
|
||||||
<down mod="longpress">NextSubtitle</down>
|
|
||||||
<a>AudioDelay</a>
|
|
||||||
@@ -425,8 +425,8 @@
|
|
||||||
<right>StepForward</right>
|
|
||||||
<left mod="longpress">Rewind</left>
|
|
||||||
<right mod="longpress">FastForward</right>
|
|
||||||
- <up>SkipNext</up>
|
|
||||||
- <down>SkipPrevious</down>
|
|
||||||
+ <up>VolumeUp</up>
|
|
||||||
+ <down>VolumeDown</down>
|
|
||||||
<o>PlayerProcessInfo</o>
|
|
||||||
<l>LockPreset</l>
|
|
||||||
<escape>FullScreen</escape>
|
|
||||||
@@ -632,8 +632,8 @@
|
|
||||||
<keyboard>
|
|
||||||
<left>StepBack</left>
|
|
||||||
<right>StepForward</right>
|
|
||||||
- <up>Up</up>
|
|
||||||
- <down>Down</down>
|
|
||||||
+ <up>VolumeUp</up>
|
|
||||||
+ <down>VolumeDown</down>
|
|
||||||
<return>OSD</return>
|
|
||||||
<enter>OSD</enter>
|
|
||||||
<return mod="longpress">ActivateWindow(PVROSDChannels)</return>
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
|||||||
--- linux-4.4-rc7-old/sound/soc/codecs/cs4265.c 2016-01-13 20:56:05.637652775 +0000
|
|
||||||
+++ linux-4.4-rc7/sound/soc/codecs/cs4265.c 2016-01-17 11:21:16.977652775 +0000
|
|
||||||
@@ -199,8 +199,6 @@
|
|
||||||
SND_SOC_NOPM, 0, 0),
|
|
||||||
SND_SOC_DAPM_AIF_IN("DIN2", NULL, 0,
|
|
||||||
SND_SOC_NOPM, 0, 0),
|
|
||||||
- SND_SOC_DAPM_AIF_IN("TXIN", NULL, 0,
|
|
||||||
- CS4265_SPDIF_CTL2, 5, 1),
|
|
||||||
|
|
||||||
SND_SOC_DAPM_OUTPUT("LINEOUTL"),
|
|
||||||
SND_SOC_DAPM_OUTPUT("LINEOUTR"),
|
|
@ -1,13 +0,0 @@
|
|||||||
--- a/arch/arm/boot/dts/bcm270x-rpi.dtsi 2020-04-29 05:31:07.000000000 -0400
|
|
||||||
+++ b/arch/arm/boot/dts/bcm270x-rpi.dtsi 2020-05-08 09:07:16.487587235 -0400
|
|
||||||
@@ -16,8 +16,8 @@
|
|
||||||
uart1 = &uart1;
|
|
||||||
sdhost = &sdhost;
|
|
||||||
mmc = &mmc;
|
|
||||||
- mmc1 = &mmc;
|
|
||||||
- mmc0 = &sdhost;
|
|
||||||
+ mmc1 = &sdhost;
|
|
||||||
+ mmc0 = &mmc;
|
|
||||||
i2s = &i2s;
|
|
||||||
i2c0 = &i2c0;
|
|
||||||
i2c1 = &i2c1;
|
|
@ -8,9 +8,9 @@
|
|||||||
arm)
|
arm)
|
||||||
# Valid TARGET_CPU for Raspberry Pi based devices are:
|
# Valid TARGET_CPU for Raspberry Pi based devices are:
|
||||||
# arm1176jzf-s cortex-a7 cortex-a53
|
# arm1176jzf-s cortex-a7 cortex-a53
|
||||||
if [ "$DEVICE" = "RPi" -o "$DEVICE" = "Slice" ]; then
|
if [ "$DEVICE" = "RPi" ]; then
|
||||||
TARGET_CPU="arm1176jzf-s"
|
TARGET_CPU="arm1176jzf-s"
|
||||||
elif [ "$DEVICE" = "RPi2" -o "$DEVICE" = "Slice3" ]; then
|
elif [ "$DEVICE" = "RPi2" ]; then
|
||||||
TARGET_CPU="cortex-a7"
|
TARGET_CPU="cortex-a7"
|
||||||
elif [ "$DEVICE" = "RPi4" ]; then
|
elif [ "$DEVICE" = "RPi4" ]; then
|
||||||
TARGET_CPU="cortex-a53"
|
TARGET_CPU="cortex-a53"
|
||||||
@ -26,9 +26,9 @@
|
|||||||
# This specifies what floating point hardware (or hardware emulation) is
|
# This specifies what floating point hardware (or hardware emulation) is
|
||||||
# available on the target. Permissible names are:
|
# available on the target. Permissible names are:
|
||||||
# vfp neon-vfpv4 neon-fp-armv8
|
# vfp neon-vfpv4 neon-fp-armv8
|
||||||
if [ "$DEVICE" = "RPi" -o "$DEVICE" = "Slice" ]; then
|
if [ "$DEVICE" = "RPi" ]; then
|
||||||
TARGET_FPU="vfp"
|
TARGET_FPU="vfp"
|
||||||
elif [ "$DEVICE" = "RPi2" -o "$DEVICE" = "Slice3" ]; then
|
elif [ "$DEVICE" = "RPi2" ]; then
|
||||||
TARGET_FPU="neon-vfpv4"
|
TARGET_FPU="neon-vfpv4"
|
||||||
elif [ "$DEVICE" = "RPi4" ]; then
|
elif [ "$DEVICE" = "RPi4" ]; then
|
||||||
TARGET_FPU="neon-fp-armv8"
|
TARGET_FPU="neon-fp-armv8"
|
||||||
|
@ -407,7 +407,6 @@ if [ "${1}" = "release" -o "${1}" = "mkimage" -o "${1}" = "noobs" ]; then
|
|||||||
cp -PR ${INSTALL}/usr/share/bootloader/bootcode.bin ${RELEASE_DIR}/${NOOBS_DISTRO}/System/
|
cp -PR ${INSTALL}/usr/share/bootloader/bootcode.bin ${RELEASE_DIR}/${NOOBS_DISTRO}/System/
|
||||||
cp -PR ${INSTALL}/usr/share/bootloader/fixup.dat ${RELEASE_DIR}/${NOOBS_DISTRO}/System/
|
cp -PR ${INSTALL}/usr/share/bootloader/fixup.dat ${RELEASE_DIR}/${NOOBS_DISTRO}/System/
|
||||||
cp -PR ${INSTALL}/usr/share/bootloader/start.elf ${RELEASE_DIR}/${NOOBS_DISTRO}/System/
|
cp -PR ${INSTALL}/usr/share/bootloader/start.elf ${RELEASE_DIR}/${NOOBS_DISTRO}/System/
|
||||||
[ -f ${INSTALL}/usr/share/bootloader/dt-blob.bin ] && cp -PR ${INSTALL}/usr/share/bootloader/dt-blob.bin ${RELEASE_DIR}/${NOOBS_DISTRO}/System/dt-blob.bin
|
|
||||||
|
|
||||||
# Copy system files
|
# Copy system files
|
||||||
cp ${TARGET_IMG}/${IMAGE_NAME}.system ${RELEASE_DIR}/${NOOBS_DISTRO}/System/SYSTEM
|
cp ${TARGET_IMG}/${IMAGE_NAME}.system ${RELEASE_DIR}/${NOOBS_DISTRO}/System/SYSTEM
|
||||||
|
@ -198,10 +198,6 @@ EOF
|
|||||||
mcopy "${RELEASE_DIR}/3rdparty/bootloader/config.txt" ::
|
mcopy "${RELEASE_DIR}/3rdparty/bootloader/config.txt" ::
|
||||||
mcopy "${RELEASE_DIR}/3rdparty/bootloader/distroconfig.txt" ::
|
mcopy "${RELEASE_DIR}/3rdparty/bootloader/distroconfig.txt" ::
|
||||||
|
|
||||||
if [ -f "${RELEASE_DIR}/3rdparty/bootloader/dt-blob.bin" ]; then
|
|
||||||
mcopy "${RELEASE_DIR}/3rdparty/bootloader/dt-blob.bin" ::
|
|
||||||
fi
|
|
||||||
|
|
||||||
for dtb in "${RELEASE_DIR}/3rdparty/bootloader/"*.dtb ; do
|
for dtb in "${RELEASE_DIR}/3rdparty/bootloader/"*.dtb ; do
|
||||||
if [ -f "${dtb}" ]; then
|
if [ -f "${dtb}" ]; then
|
||||||
mcopy "${dtb}" ::/$(basename "${dtb}")
|
mcopy "${dtb}" ::/$(basename "${dtb}")
|
||||||
|