mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-29 13:46:49 +00:00
Merge pull request #3597 from HiassofT/le10-rpi4
add support for Raspberry Pi 4
This commit is contained in:
commit
26c5f767e6
@ -107,7 +107,7 @@ get_graphicdrivers() {
|
||||
fi
|
||||
|
||||
if listcontains "${GRAPHIC_DRIVERS}" "vc4"; then
|
||||
GALLIUM_DRIVERS+=" vc4"
|
||||
GALLIUM_DRIVERS+=" vc4 v3d kmsro"
|
||||
V4L2_SUPPORT="yes"
|
||||
VAAPI_SUPPORT="no"
|
||||
VDPAU_SUPPORT="no"
|
||||
|
@ -6,6 +6,6 @@
|
||||
"description": "@DESCRIPTION@",
|
||||
"username": "root",
|
||||
"password": "@ROOT_PASSWORD@",
|
||||
"supported_models": [@NOOBS_SUPPORTED_MODELS@],
|
||||
"supported_hex_revisions": "@NOOBS_HEX@"
|
||||
"supported_hex_revisions": "@NOOBS_HEX@",
|
||||
"supported_models": [@NOOBS_SUPPORTED_MODELS@]
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ PKG_CMAKE_OPTS_TARGET="-DBUILD_SHARED_LIBS=1 \
|
||||
-DHAVE_AOCEC_API=0 -DHAVE_AMLOGIC_API=0 \
|
||||
-DHAVE_GIT_BIN=0"
|
||||
|
||||
if [ "$KODIPLAYER_DRIVER" = "bcm2835-driver" ]; then
|
||||
if [ "$PROJECT" = "RPi" ]; then
|
||||
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET bcm2835-driver"
|
||||
fi
|
||||
|
||||
@ -34,7 +34,7 @@ if [ "$CEC_FRAMEWORK_SUPPORT" = "yes" ]; then
|
||||
fi
|
||||
|
||||
pre_configure_target() {
|
||||
if [ "$KODIPLAYER_DRIVER" = "bcm2835-driver" ]; then
|
||||
if [ "$PROJECT" = "RPi" ]; then
|
||||
# detecting RPi support fails without -lvchiq_arm
|
||||
export LDFLAGS="$LDFLAGS -lvchiq_arm"
|
||||
fi
|
||||
|
@ -22,15 +22,31 @@ fi
|
||||
make_target() {
|
||||
# Install vendor header files
|
||||
mkdir -p ${SYSROOT_PREFIX}/usr/include
|
||||
if [ "${OPENGLES}" = "bcm2835-driver" ]; then
|
||||
cp -PRv ${PKG_FLOAT}/opt/vc/include/* ${SYSROOT_PREFIX}/usr/include
|
||||
else
|
||||
for f in $(cd ${PKG_FLOAT}/opt/vc/include; ls | grep -v "GL"); do
|
||||
cp -PRv ${PKG_FLOAT}/opt/vc/include/$f ${SYSROOT_PREFIX}/usr/include
|
||||
done
|
||||
fi
|
||||
|
||||
# Install EGL, OpenGL ES, Open VG, etc. vendor libs & pkgconfigs
|
||||
mkdir -p ${SYSROOT_PREFIX}/usr/lib
|
||||
if [ "${OPENGLES}" = "bcm2835-driver" ]; then
|
||||
cp -PRv ${PKG_FLOAT}/opt/vc/lib/*.so ${SYSROOT_PREFIX}/usr/lib
|
||||
ln -sf ${SYSROOT_PREFIX}/usr/lib/libbrcmEGL.so ${SYSROOT_PREFIX}/usr/lib/libEGL.so
|
||||
ln -sf ${SYSROOT_PREFIX}/usr/lib/libbrcmGLESv2.so ${SYSROOT_PREFIX}/usr/lib/libGLESv2.so
|
||||
cp -PRv ${PKG_FLOAT}/opt/vc/lib/*.a ${SYSROOT_PREFIX}/usr/lib
|
||||
cp -PRv ${PKG_FLOAT}/opt/vc/lib/pkgconfig ${SYSROOT_PREFIX}/usr/lib
|
||||
else
|
||||
for f in $(cd ${PKG_FLOAT}/opt/vc/lib; ls *.so *.a | grep -Ev "^lib(EGL|GL)"); do
|
||||
cp -PRv ${PKG_FLOAT}/opt/vc/lib/$f ${SYSROOT_PREFIX}/usr/lib
|
||||
done
|
||||
mkdir -p ${SYSROOT_PREFIX}/usr/lib/pkgconfig
|
||||
for f in $(cd ${PKG_FLOAT}/opt/vc/lib/pkgconfig; ls | grep -v "gl"); do
|
||||
cp -PRv ${PKG_FLOAT}/opt/vc/lib/pkgconfig/$f ${SYSROOT_PREFIX}/usr/lib/pkgconfig
|
||||
done
|
||||
fi
|
||||
|
||||
# Update prefix in vendor pkgconfig files
|
||||
for PKG_CONFIGS in $(find "${SYSROOT_PREFIX}/usr/lib" -type f -name "*.pc" 2>/dev/null); do
|
||||
@ -46,11 +62,17 @@ make_target() {
|
||||
makeinstall_target() {
|
||||
# Install EGL, OpenGL ES and other vendor libs
|
||||
mkdir -p ${INSTALL}/usr/lib
|
||||
if [ "${OPENGLES}" = "bcm2835-driver" ]; then
|
||||
cp -PRv ${PKG_FLOAT}/opt/vc/lib/*.so ${INSTALL}/usr/lib
|
||||
ln -sf /usr/lib/libbrcmEGL.so ${INSTALL}/usr/lib/libEGL.so
|
||||
ln -sf /usr/lib/libbrcmEGL.so ${INSTALL}/usr/lib/libEGL.so.1
|
||||
ln -sf /usr/lib/libbrcmGLESv2.so ${INSTALL}/usr/lib/libGLESv2.so
|
||||
ln -sf /usr/lib/libbrcmGLESv2.so ${INSTALL}/usr/lib/libGLESv2.so.2
|
||||
else
|
||||
for f in $(cd ${PKG_FLOAT}/opt/vc/lib; ls *.so | grep -Ev "^lib(EGL|GL)"); do
|
||||
cp -PRv ${PKG_FLOAT}/opt/vc/lib/$f ${INSTALL}/usr/lib
|
||||
done
|
||||
fi
|
||||
|
||||
# Install useful tools
|
||||
mkdir -p ${INSTALL}/usr/bin
|
||||
@ -68,5 +90,7 @@ makeinstall_target() {
|
||||
|
||||
post_install() {
|
||||
# unbind Framebuffer console
|
||||
if [ "${OPENGLES}" = "bcm2835-driver" ]; then
|
||||
enable_service unbind-console.service
|
||||
fi
|
||||
}
|
||||
|
@ -3,8 +3,8 @@
|
||||
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="brcmfmac_sdio-firmware-rpi"
|
||||
PKG_VERSION="cda3df85ecbf1bf3ed756bc7c3cbd6ef4cce7c1d"
|
||||
PKG_SHA256="866006c141c4dfb0e75cad3ea6136653659bc95f966cb66f1a7cf1db6167ed4a"
|
||||
PKG_VERSION="688531da4bcf802a814d9cb0c8b6d62e3b8a3327"
|
||||
PKG_SHA256="51a33d23127300dffd6ac088f372b83ab862053f5e4dc7130676ebaaa824e626"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/LibreELEC/LibreELEC.tv"
|
||||
PKG_URL="https://github.com/LibreELEC/$PKG_NAME/archive/$PKG_VERSION.tar.gz"
|
||||
|
@ -17,8 +17,13 @@ makeinstall_target() {
|
||||
mkdir -p $INSTALL/usr/share/bootloader
|
||||
cp -PRv LICENCE* $INSTALL/usr/share/bootloader
|
||||
cp -PRv bootcode.bin $INSTALL/usr/share/bootloader
|
||||
if [ "$DEVICE" = "RPi4" ]; then
|
||||
cp -PRv fixup4x.dat $INSTALL/usr/share/bootloader/fixup.dat
|
||||
cp -PRv start4x.elf $INSTALL/usr/share/bootloader/start.elf
|
||||
else
|
||||
cp -PRv fixup_x.dat $INSTALL/usr/share/bootloader/fixup.dat
|
||||
cp -PRv start_x.elf $INSTALL/usr/share/bootloader/start.elf
|
||||
fi
|
||||
|
||||
find_file_path config/dt-blob.bin && cp -PRv $FOUND_PATH $INSTALL/usr/share/bootloader
|
||||
|
||||
|
@ -5,10 +5,10 @@
|
||||
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
mkdir -p $RELEASE_DIR/3rdparty/bootloader
|
||||
cp -PR $BUILD/bcm2835-bootloader-*/LICENCE* $RELEASE_DIR/3rdparty/bootloader/
|
||||
cp -PR $BUILD/bcm2835-bootloader-*/bootcode.bin $RELEASE_DIR/3rdparty/bootloader/
|
||||
cp -PR $BUILD/bcm2835-bootloader-*/fixup_x.dat $RELEASE_DIR/3rdparty/bootloader/fixup.dat
|
||||
cp -PR $BUILD/bcm2835-bootloader-*/start_x.elf $RELEASE_DIR/3rdparty/bootloader/start.elf
|
||||
cp -PR $INSTALL/usr/share/bootloader/LICENCE* $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/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
|
||||
|
@ -2,8 +2,8 @@
|
||||
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="bcmstat"
|
||||
PKG_VERSION="0.5.1"
|
||||
PKG_SHA256="88b3b189170e7d0eee83a233565d9ef0fb323489dc1161ef2392fca50e9637d6"
|
||||
PKG_VERSION="0.5.2"
|
||||
PKG_SHA256="55dec681b8dddb3b4d98e339644fa68ff3d0f05d287b09037cbad4d450df7a3a"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/MilhouseVH/bcmstat"
|
||||
PKG_URL="https://github.com/MilhouseVH/$PKG_NAME/archive/$PKG_VERSION.tar.gz"
|
||||
|
38
projects/RPi/devices/RPi4/config/config.txt
Normal file
38
projects/RPi/devices/RPi4/config/config.txt
Normal file
@ -0,0 +1,38 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
|
||||
################################################################################
|
||||
# Bootloader configuration - config.txt
|
||||
################################################################################
|
||||
|
||||
################################################################################
|
||||
# Memory (System/GPU configuration )
|
||||
################################################################################
|
||||
|
||||
# Default GPU memory split - at least 288M is needed for some 4k HEVC files
|
||||
gpu_mem=320
|
||||
|
||||
################################################################################
|
||||
# For overclocking and various other settings, see:
|
||||
# https://www.raspberrypi.org/documentation/configuration/config-txt.md
|
||||
################################################################################
|
||||
# Set 'force_turbo=1' to disable dynamic overclocking and enable overclocking always.
|
||||
force_turbo=0
|
||||
|
||||
# Force HDMI even if unplugged or powered off
|
||||
# hdmi_force_hotplug=1
|
||||
|
||||
# Doesn't sent initial active source message.
|
||||
# Avoids bringing CEC (enabled TV) out of standby and channel switch when
|
||||
# rebooting.
|
||||
hdmi_ignore_cec_init=1
|
||||
|
||||
################################################################################
|
||||
# End of default configuration
|
||||
################################################################################
|
||||
|
||||
################################################################################
|
||||
# Include distribution specific config file if it exists.
|
||||
################################################################################
|
||||
[all]
|
||||
include distroconfig.txt
|
7
projects/RPi/devices/RPi4/config/distroconfig.txt
Normal file
7
projects/RPi/devices/RPi4/config/distroconfig.txt
Normal file
@ -0,0 +1,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
# WARNING: DO NOT EDIT THIS FILE - IT WILL BE OVERWRITTEN WHEN UPGRADING!
|
||||
dtoverlay=vc4-fkms-v3d
|
||||
disable_overscan=1
|
||||
dtparam=audio=on
|
5506
projects/RPi/devices/RPi4/linux/linux.arm.conf
Normal file
5506
projects/RPi/devices/RPi4/linux/linux.arm.conf
Normal file
File diff suppressed because it is too large
Load Diff
14
projects/RPi/devices/RPi4/options
Normal file
14
projects/RPi/devices/RPi4/options
Normal file
@ -0,0 +1,14 @@
|
||||
################################################################################
|
||||
# Device defaults
|
||||
################################################################################
|
||||
|
||||
# NOOBS supported hex versions (legacy) is not relevant for RPi4
|
||||
unset NOOBS_HEX
|
||||
|
||||
# NOOBS supported model versions
|
||||
NOOBS_SUPPORTED_MODELS='"Pi 4"'
|
||||
|
||||
OPENGLES="mesa"
|
||||
GRAPHIC_DRIVERS="vc4"
|
||||
KODIPLAYER_DRIVER="mesa"
|
||||
unset KODI_VENDOR
|
@ -0,0 +1,37 @@
|
||||
<confdir:pcm/iec958.conf>
|
||||
bcm2835_alsa.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
|
||||
device 1
|
||||
}
|
||||
hooks.0 {
|
||||
type ctl_elems
|
||||
hook_args [
|
||||
{
|
||||
interface PCM
|
||||
name "IEC958 Playback Default"
|
||||
lock true
|
||||
preserve true
|
||||
value [ $AES0 $AES1 $AES2 $AES3 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@ -12,6 +12,9 @@
|
||||
TARGET_CPU="arm1176jzf-s"
|
||||
elif [ "$DEVICE" = "RPi2" -o "$DEVICE" = "Slice3" ]; then
|
||||
TARGET_CPU="cortex-a7"
|
||||
elif [ "$DEVICE" = "RPi4" ]; then
|
||||
TARGET_CPU="cortex-a53"
|
||||
TARGET_CPU_FLAGS="+crc"
|
||||
fi
|
||||
|
||||
# TARGET_FLOAT:
|
||||
@ -27,6 +30,8 @@
|
||||
TARGET_FPU="vfp"
|
||||
elif [ "$DEVICE" = "RPi2" -o "$DEVICE" = "Slice3" ]; then
|
||||
TARGET_FPU="neon-vfpv4"
|
||||
elif [ "$DEVICE" = "RPi4" ]; then
|
||||
TARGET_FPU="neon-fp-armv8"
|
||||
fi
|
||||
TARGET_FEATURES="32bit"
|
||||
;;
|
||||
@ -110,7 +115,7 @@
|
||||
# for a list of additional drivers see packages/linux-drivers
|
||||
# Space separated list is supported,
|
||||
# e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2"
|
||||
ADDITIONAL_DRIVERS="$ADDITIONAL_DRIVERS rpi-cirrus-config"
|
||||
ADDITIONAL_DRIVERS="$ADDITIONAL_DRIVERS rpi-cirrus-config bcm2835-driver"
|
||||
|
||||
# build and install driver addons (yes / no)
|
||||
DRIVER_ADDONS_SUPPORT="yes"
|
||||
|
@ -363,6 +363,14 @@ if [ "${1}" = "release" -o "${1}" = "mkimage" -o "${1}" = "noobs" ]; then
|
||||
cp ${ROOT}/README* ${RELEASE_DIR}/${NOOBS_DISTRO}
|
||||
cp ${ROOT}/CHANGELOG ${RELEASE_DIR}/${NOOBS_DISTRO}/release_notes.txt
|
||||
|
||||
if [ -n "${NOOBS_HEX}" ]; then
|
||||
sed -e "s%@NOOBS_HEX@%${NOOBS_HEX}%g" \
|
||||
-i ${RELEASE_DIR}/${NOOBS_DISTRO}/os.json
|
||||
else
|
||||
sed -e "/@NOOBS_HEX@/d" \
|
||||
-i ${RELEASE_DIR}/${NOOBS_DISTRO}/os.json
|
||||
fi
|
||||
|
||||
sed -e "s%@DISTRONAME@%${DISTRONAME}%g" \
|
||||
-e "s%@PROJECT@%${DEVICE:-${PROJECT}}%g" \
|
||||
-e "s%@LIBREELEC_VERSION@%${LIBREELEC_VERSION}%g" \
|
||||
@ -371,7 +379,6 @@ if [ "${1}" = "release" -o "${1}" = "mkimage" -o "${1}" = "noobs" ]; then
|
||||
-e "s%@DESCRIPTION@%${DESCRIPTION}%g" \
|
||||
-e "s%@ROOT_PASSWORD@%${ROOT_PASSWORD}%g" \
|
||||
-e "s%@NOOBS_SUPPORTED_MODELS@%${NOOBS_SUPPORTED_MODELS}%g" \
|
||||
-e "s%@NOOBS_HEX@%${NOOBS_HEX}%g" \
|
||||
-i ${RELEASE_DIR}/${NOOBS_DISTRO}/os.json
|
||||
|
||||
sed -e "s%@DISTRONAME@%${DISTRONAME}%g" \
|
||||
@ -382,17 +389,14 @@ if [ "${1}" = "release" -o "${1}" = "mkimage" -o "${1}" = "noobs" ]; then
|
||||
# Create System dir
|
||||
mkdir -p ${RELEASE_DIR}/${NOOBS_DISTRO}/System
|
||||
|
||||
BOOTLOADER_DIR="$(get_pkg_directory "${BOOTLOADER}")"
|
||||
if [ -d ${BOOTLOADER_DIR}/files/3rdparty/bootloader/ ]; then
|
||||
cp -PR ${BOOTLOADER_DIR}/files/3rdparty/bootloader/* ${RELEASE_DIR}/${NOOBS_DISTRO}/System
|
||||
fi
|
||||
|
||||
# Copy Bootloader
|
||||
cp -PR ${BUILD}/bcm2835-bootloader-*/LICENCE* ${RELEASE_DIR}/${NOOBS_DISTRO}/System/
|
||||
cp -PR ${BUILD}/bcm2835-bootloader-*/bootcode.bin ${RELEASE_DIR}/${NOOBS_DISTRO}/System/
|
||||
cp -PR ${BUILD}/bcm2835-bootloader-*/fixup_x.dat ${RELEASE_DIR}/${NOOBS_DISTRO}/System/fixup.dat
|
||||
cp -PR ${BUILD}/bcm2835-bootloader-*/start_x.elf ${RELEASE_DIR}/${NOOBS_DISTRO}/System/start.elf
|
||||
[ -f ${BUILD}/bcm2835-bootloader-*/dt-blob.bin ] && cp -PR ${BUILD}/bcm2835-bootloader-*/dt-blob.bin ${RELEASE_DIR}/${NOOBS_DISTRO}/System/dt-blob.bin
|
||||
cp -PR ${INSTALL}/usr/share/bootloader/config.txt ${RELEASE_DIR}/${NOOBS_DISTRO}/System/
|
||||
cp -PR ${INSTALL}/usr/share/bootloader/distroconfig.txt ${RELEASE_DIR}/${NOOBS_DISTRO}/System/
|
||||
cp -PR ${INSTALL}/usr/share/bootloader/LICENCE* ${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/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
|
||||
cp ${TARGET_IMG}/${IMAGE_NAME}.system ${RELEASE_DIR}/${NOOBS_DISTRO}/System/SYSTEM
|
||||
@ -429,8 +433,8 @@ if [ "${1}" = "release" -o "${1}" = "mkimage" -o "${1}" = "noobs" ]; then
|
||||
rm -rf ${RELEASE_DIR}/${NOOBS_DISTRO}/Storage.tar.xz
|
||||
|
||||
# Create filesystem tarballs
|
||||
tar cJf ${RELEASE_DIR}/${NOOBS_DISTRO}/System.tar.xz -C ${RELEASE_DIR}/${NOOBS_DISTRO}/System/ .
|
||||
tar cJf ${RELEASE_DIR}/${NOOBS_DISTRO}/Storage.tar.xz -C ${RELEASE_DIR}/${NOOBS_DISTRO}/Storage/ .
|
||||
${TOOLCHAIN}/bin/fakeroot tar cJf ${RELEASE_DIR}/${NOOBS_DISTRO}/System.tar.xz -C ${RELEASE_DIR}/${NOOBS_DISTRO}/System/ .
|
||||
${TOOLCHAIN}/bin/fakeroot tar cJf ${RELEASE_DIR}/${NOOBS_DISTRO}/Storage.tar.xz -C ${RELEASE_DIR}/${NOOBS_DISTRO}/Storage/ .
|
||||
|
||||
# Remove filesystem dirs
|
||||
rm -rf ${RELEASE_DIR}/${NOOBS_DISTRO}/System
|
||||
|
Loading…
x
Reference in New Issue
Block a user