diff --git a/README.md b/README.md index 478ebb3172..6f7325778c 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,15 @@ -# LibreELEC +# LudOS -LibreELEC is a 'Just enough OS' Linux distribution for running the award-winning [Kodi](https://kodi.tv) software on popular mediacentre hardware. LibreELEC is a conservative fork of the popular [OpenELEC](http://openelec.tv) project with a stronger focus on pre-release testing and post-release change management. Further information on the project can be found on the [LibreELEC website](https://libreelec.tv). +LudOS is a 'Just enough OS' Linux distribution for running [Ludo](https://ludo.libretro.com) on hardware like PC or the Raspberry Pi. LudOS is based on [LibreELEC](https://libreelec.tv) 9.0 with a few minor changes. -**Issues & Support** +## Installation -Please report issues via the [LibreELEC forum: Bug Reports](https://forum.libreelec.tv/forum-35.html). Please ask support questions in the [LibreELEC forum: Help & Support](https://forum.libreelec.tv/forum-3.html) or ask a member of project staff in the #libreelec IRC channel on Freenode. +To install LudOS, you can download the latest release and flash it on a bootable media like a USB drive or an SD card. Flashing can be done using `dd` or [Etcher](https://www.balena.io/etcher/). Just like you would install LibreELEC or Lakka. Installing LudOS will wipe all previous data on your disk. -**Donations** +## Support -Contributions towards current project funding goals can be sent via PayPal to donations@libreelec.tv +LudOS is not ready for production and contains bugs. However, you can get some help on our [Discord](https://discordapp.com/invite/YXYSEQD). -**License** +## License -LibreELEC original code is released under [GPLv2](https://www.gnu.org/licenses/gpl-2.0.html). - -**Copyright** - -As LibreELEC includes code from many upstream projects it includes many copyright owners. LibreELEC makes NO claim of copyright on any upstream code. However all original LibreELEC authored code is copyright LibreELEC.tv. Patches to upstream code have the same license as the upstream project, unless specified otherwise. For a complete copyright list please checkout the source code to examine license headers. Unless expressly stated otherwise all code submitted to the LibreELEC project (in any form) is licensed under [GPLv2](https://www.gnu.org/licenses/gpl-2.0.html) and copyright is donated to LibreELEC.tv. This approach allows the project to stay manageable in the long term by giving us freedom to maintain the code as part of the whole without the management overhead of preserving contact with every submitter, e.g. GPLv3. You are absolutely free to retain copyright. To retain copyright simply add a copyright header to each submitted code page. If you submit code that is not your own work it is your responsibility to place a header stating the copyright. +The license of LudOS is the same as the one of LibreELEC, but adds some packages like Snes9x or Genesis Plus GX that are protected by a Non-Commercial license. Thus, you can't sell LudOS or a derivative without removing these packages. diff --git a/build_all.sh b/build_all.sh new file mode 100755 index 0000000000..2e15230513 --- /dev/null +++ b/build_all.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +rm -rf target/ + +export IGNORE_VERSION=1 +export OFFICIAL=yes +export DISTRO=LudOS +export THREADCOUNT=8 + +PROJECT=Generic ARCH=x86_64 make image +PROJECT=RPi DEVICE=RPi2 ARCH=arm make noobs +PROJECT=RPi DEVICE=RPi4 ARCH=arm make noobs diff --git a/config/path b/config/path index f6b781428c..fe12f46296 100644 --- a/config/path +++ b/config/path @@ -25,6 +25,10 @@ if [ "$LIBREELEC_VERSION" = "devel" ] ; then BUILD=$ROOT/$BUILD_BASE.$DISTRONAME-${DEVICE:-$PROJECT}.$TARGET_ARCH-$OS_VERSION-$LIBREELEC_VERSION fi +if [ "$IGNORE_VERSION" = "1" ]; then + BUILD=$ROOT/$BUILD_BASE.$DISTRONAME-${DEVICE:-$PROJECT}.$TARGET_ARCH +fi + if [ -n "$BUILD_SUFFIX" ]; then BUILD=$BUILD-$BUILD_SUFFIX fi diff --git a/distributions/LudOS/LudOS.png b/distributions/LudOS/LudOS.png new file mode 100644 index 0000000000..5d2860bfc1 Binary files /dev/null and b/distributions/LudOS/LudOS.png differ diff --git a/distributions/LudOS/LudOS_40x40.png b/distributions/LudOS/LudOS_40x40.png new file mode 100644 index 0000000000..fdde71f8f9 Binary files /dev/null and b/distributions/LudOS/LudOS_40x40.png differ diff --git a/distributions/LudOS/addons/fanart.png b/distributions/LudOS/addons/fanart.png new file mode 100644 index 0000000000..e69de29bb2 diff --git a/distributions/LudOS/options b/distributions/LudOS/options new file mode 100644 index 0000000000..82343c89b1 --- /dev/null +++ b/distributions/LudOS/options @@ -0,0 +1,227 @@ +# LTO (Link Time Optimization) support + LTO_SUPPORT="yes" + +# GOLD (Google Linker) support + GOLD_SUPPORT="yes" + +# HARDENING (security relevant linker and compiler flags) support + HARDENING_SUPPORT="no" + +# Name of the Distro to build (full name, without special characters) + DISTRONAME="LudOS" + +# short project description + DESCRIPTION="LudOS is a user friendly retro gaming OS." + +# Welcome Message for e.g. SSH Server (up to 5 Lines) + GREETING0="##############################################" + GREETING1="# LudOS #" + GREETING2="# https://github.com/libretro/LudOS #" + GREETING3="##############################################" + GREETING4="" + +# Root password to integrate in the target system + ROOT_PASSWORD="ludos" + +# Install glibc locales to the build (yes / no) + GLIBC_LOCALES="no" + +# Mediacenter to use (kodi / no) + MEDIACENTER="ludo" + +# Skins to install (Estuary) +# Space separated list is supported, +# e.g. SKINS="Estuary" + SKINS="Estuary" + +# Default Skin (Estuary) + SKIN_DEFAULT="Estuary" + +# Select whether to use default (upstream xbmc/xbmc) repo, or specific vendor repo + KODI_VENDOR="default" + +# install extra subtitle Fonts for KODI (yes / no) + KODI_EXTRA_FONTS="no" + +# build and install PulseAudio support (yes / no) + PULSEAUDIO_SUPPORT="no" + +# build and install espeak support (yes / no) + ESPEAK_SUPPORT="no" + +# build and install with BluRay support (yes / no) + KODI_BLURAY_SUPPORT="no" + +# build and install with BD+ support +# (BD+ decryption support in KODI) (yes / no) + BLURAY_BDPLUS_SUPPORT="no" + +# build and install with AACS support +# (BD decryption support in KODI) (yes / no) + BLURAY_AACS_SUPPORT="no" + +# build and install with DVDCSS support +# (DVD decryption support in KODI) (yes / no) + KODI_DVDCSS_SUPPORT="no" + +# additional drivers to install: +# for a list of additional drivers see packages/linux-drivers +# Space separated list is supported, +# e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2" + ADDITIONAL_DRIVERS="RTL8192CU RTL8192DU RTL8192EU RTL8188EU RTL8812AU" + +# build and install bluetooth support (yes / no) + BLUETOOTH_SUPPORT="yes" + +# build and install with KODI webfrontend (yes / no) + KODI_WEBSERVER_SUPPORT="no" + +# build and install Avahi (Zeroconf) daemon (yes / no) + AVAHI_DAEMON="no" + +# build with UPnP support (yes / no) + KODI_UPNP_SUPPORT="no" + +# build with MySQL support (mysql / mariadb / none) + KODI_MYSQL_SUPPORT="none" + +# build xbmc with optical drive support (yes / no) + KODI_OPTICAL_SUPPORT="no" + +# build with AirPlay support (stream videos from iDevices to KODI) (yes / no) + KODI_AIRPLAY_SUPPORT="no" + +# build with AirTunes support (stream music from iDevices to KODI) (yes / no) + KODI_AIRTUNES_SUPPORT="no" + +# build with libnfs support (mounting nfs shares with KODI) (yes / no) + KODI_NFS_SUPPORT="no" + +# build with Samba Client support (mounting SAMBA shares with KODI) (yes / no) + KODI_SAMBA_SUPPORT="no" + +# build with NFS support (mounting nfs shares via the OS) (yes / no) + NFS_SUPPORT="no" + +# build with Samba Client support (mounting samba shares via the OS) (yes / no) + SAMBA_SUPPORT="no" + +# build and install Samba Server (yes / no) + SAMBA_SERVER="yes" + +# build and install SFTP Server (yes / no) + SFTP_SERVER="yes" + +# build and install OpenVPN support (yes / no) + OPENVPN_SUPPORT="no" + +# build and install diskmounter support (udevil) +# this service provide auto mounting support for external drives in the +# mediacenter also automount internally drives at boottime via udev (yes / no) + UDEVIL="yes" + +# build and install exFAT fuse support (yes / no) + EXFAT="yes" + +# build and install NTFS-3G fuse support (yes / no) + NTFS3G="yes" + +# build and install hfs filesystem utilities (yes / no) + HFSTOOLS="yes" + +# Windowmanager to use (fluxbox / none) + WINDOWMANAGER="none" + +# Xorg Graphic drivers to use (all / i915,i965,r200,r300,r600,nvidia) +# Space separated list is supported, +# e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeonsi nvidia" + GRAPHIC_DRIVERS="r300 r600 radeonsi i915 i965 nvidia nvidia-legacy vmware virtio" + +# build and install remote support (yes / no) + REMOTE_SUPPORT="no" + +# build and install ATV IR remote support (yes / no) + ATVCLIENT_SUPPORT="no" + +# build and install Joystick support (yes / no) + JOYSTICK_SUPPORT="no" + +# build and install CEC adapter support (yes / no) + CEC_SUPPORT="no" + +# build and install CEC framework support (yes / no) + CEC_FRAMEWORK_SUPPORT="no" + +# build and install iSCSI support - iscsistart (yes / no) + ISCSI_SUPPORT="no" + +# Support for partitioning and formating disks in initramfs (yes / no) +# This adds support for parted and mkfs.ext3/4 to initramfs for OEM usage + INITRAMFS_PARTED_SUPPORT="no" + +# build with swap support (yes / no) + SWAP_SUPPORT="no" + +# swap support enabled per default (yes / no) + SWAP_ENABLED_DEFAULT="no" + +# swapfile size if SWAP_SUPPORT=yes in MB + SWAPFILESIZE="128" + +# additional packages to install: +# Space separated list is supported, +# e.g. ADDITIONAL_PACKAGES="PACKAGE1 PACKAGE2" + ADDITIONAL_PACKAGES="" + +# build with installer (yes / no) + INSTALLER_SUPPORT="yes" + +# Testpackages for development (yes / no) + TESTING="no" + +# OEM packages for OEM's (yes / no) + OEM_SUPPORT="no" + +# build and install nano text editor (yes / no) + NANO_EDITOR="yes" + +# cron support (yes / no) + CRON_SUPPORT="no" + +# Distribution Specific source location + DISTRO_MIRROR="http://sources.libreelec.tv/mirror" + DISTRO_SRC="http://sources.libreelec.tv/$LIBREELEC_VERSION" + +# Addon Server Url + ADDON_SERVER_URL="https://addons.libreelec.tv" + +# set the addon dirs + ADDON_PATH="$ADDON_VERSION/${DEVICE:-$PROJECT}/$TARGET_ARCH" + ADDON_URL="$ADDON_SERVER_URL/$ADDON_PATH" + +# Default size of system partition, in MB, eg. 512 + SYSTEM_SIZE=512 +# Default system partition offset, in sectors, eg. 2048 + SYSTEM_PART_START=8192 + +# Configure debug groups (space delimited key=value pairs, with each value comma-delimited) and default group when DEBUG=yes +# Use ! or - prefix to prevent a dependent package from being built with debug. Add + suffix to build dependenencies with debug. + DEBUG_GROUPS="kodi+=kodi+,kodi-platform+,p8-platform+,!mesa" + DEBUG_GROUP_YES="kodi+" + +# Default supported get handlers (archive, git, file etc.) + GET_HANDLER_SUPPORT="archive" + +# Partition labels for USB/SD installation media + DISTRO_BOOTLABEL="LUDOS" + DISTRO_DISKLABEL="STORAGE" + +# Settings package name - blank if not required + DISTRO_PKG_SETTINGS="" + +# IR remote protocols supported in default config + IR_REMOTE_PROTOCOLS="RC6 NEC" + +# IR remote keymaps supported in default config + IR_REMOTE_KEYMAPS="rc6_mce xbox_360 xbox_one" + diff --git a/distributions/LudOS/splash/boot-logo.bmp.gz b/distributions/LudOS/splash/boot-logo.bmp.gz new file mode 100644 index 0000000000..18885867c5 Binary files /dev/null and b/distributions/LudOS/splash/boot-logo.bmp.gz differ diff --git a/distributions/LudOS/splash/splash-1080.png b/distributions/LudOS/splash/splash-1080.png new file mode 100644 index 0000000000..22170c59ea Binary files /dev/null and b/distributions/LudOS/splash/splash-1080.png differ diff --git a/distributions/LudOS/splash/splash-1200.png b/distributions/LudOS/splash/splash-1200.png new file mode 100644 index 0000000000..f4b5e9b24a Binary files /dev/null and b/distributions/LudOS/splash/splash-1200.png differ diff --git a/distributions/LudOS/splash/splash-2160.png b/distributions/LudOS/splash/splash-2160.png new file mode 100644 index 0000000000..c6cfe623fa Binary files /dev/null and b/distributions/LudOS/splash/splash-2160.png differ diff --git a/distributions/LudOS/splash/splash-720.png b/distributions/LudOS/splash/splash-720.png new file mode 100644 index 0000000000..7089d6b479 Binary files /dev/null and b/distributions/LudOS/splash/splash-720.png differ diff --git a/distributions/LudOS/splash/splash-768.png b/distributions/LudOS/splash/splash-768.png new file mode 100644 index 0000000000..702cc1365f Binary files /dev/null and b/distributions/LudOS/splash/splash-768.png differ diff --git a/distributions/LudOS/splash/splash-900.png b/distributions/LudOS/splash/splash-900.png new file mode 100644 index 0000000000..08dfeee385 Binary files /dev/null and b/distributions/LudOS/splash/splash-900.png differ diff --git a/distributions/LudOS/version b/distributions/LudOS/version new file mode 100644 index 0000000000..460a50292d --- /dev/null +++ b/distributions/LudOS/version @@ -0,0 +1,8 @@ +# VERSION: set full version, use "devel" for development version + LIBREELEC_VERSION="1.0-alpha42" + +# OS_VERSION: OS Version + OS_VERSION="1.0" + +# ADDON_VERSION: Addon version + ADDON_VERSION="1.0" diff --git a/packages/addons/addon-depends/chrome-depends/libXcursor/package.mk b/packages/addons/addon-depends/chrome-depends/libXcursor/package.mk index 2c3323ed1a..1fa003ad35 100644 --- a/packages/addons/addon-depends/chrome-depends/libXcursor/package.mk +++ b/packages/addons/addon-depends/chrome-depends/libXcursor/package.mk @@ -12,6 +12,3 @@ PKG_DEPENDS_TARGET="toolchain libX11 libXfixes libXrender" PKG_LONGDESC="X11 Cursor management library.s" PKG_BUILD_FLAGS="+pic" -makeinstall_target() { - : -} diff --git a/packages/linux-drivers/applespi/modules-load.d/applespi.conf b/packages/linux-drivers/applespi/modules-load.d/applespi.conf new file mode 100644 index 0000000000..c14e970f7e --- /dev/null +++ b/packages/linux-drivers/applespi/modules-load.d/applespi.conf @@ -0,0 +1 @@ +applespi diff --git a/packages/linux-drivers/applespi/package.mk b/packages/linux-drivers/applespi/package.mk new file mode 100644 index 0000000000..85dbb4e5cc --- /dev/null +++ b/packages/linux-drivers/applespi/package.mk @@ -0,0 +1,46 @@ +################################################################################ +# This file is part of LibreELEC - https://libreelec.tv +# Copyright (C) 2016-present Team LibreELEC +# +# LibreELEC 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. +# +# LibreELEC 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 LibreELEC. If not, see . +################################################################################ + +PKG_NAME="applespi" +PKG_VERSION="0369050" +PKG_ARCH="x86_64" +PKG_LICENSE="GPLv2" +PKG_SITE="https://github.com/roadrunner2/macbook12-spi-driver" +PKG_URL="https://github.com/roadrunner2/macbook12-spi-driver/archive/$PKG_VERSION.tar.gz" +PKG_DEPENDS_TARGET="toolchain linux" +PKG_NEED_UNPACK="$LINUX_DEPENDS" +PKG_SECTION="driver" +PKG_SHORTDESC="Macbook keyboard, touchpad and touchbar driver" +PKG_LONGDESC="Macbook keyboard, touchpad and touchbar driver" + +PKG_IS_ADDON="no" +PKG_AUTORECONF="no" + +pre_make_target() { + unset LDFLAGS +} + +make_target() { + make KDIR=$(kernel_path) +} + +makeinstall_target() { + mkdir -p $INSTALL/$(get_full_module_dir)/$PKG_NAME + cp *.ko $INSTALL/$(get_full_module_dir)/$PKG_NAME + ls -la $INSTALL/$(get_full_module_dir)/$PKG_NAME +} diff --git a/packages/linux-firmware/brcmfmac_sdio-firmware/system.d/brcmfmac-firmware.service b/packages/linux-firmware/brcmfmac_sdio-firmware/system.d/brcmfmac-firmware.service index 062207fd0c..8a4935ac40 100644 --- a/packages/linux-firmware/brcmfmac_sdio-firmware/system.d/brcmfmac-firmware.service +++ b/packages/linux-firmware/brcmfmac_sdio-firmware/system.d/brcmfmac-firmware.service @@ -1,7 +1,7 @@ [Unit] Description=Broadcom SDIO Firmware Symlink Service After=kernel-overlays.service -Before=kodi.service +Before=ludo.service [Service] Type=oneshot diff --git a/packages/mediacenter/ludo/package.mk b/packages/mediacenter/ludo/package.mk new file mode 100644 index 0000000000..911ef67eec --- /dev/null +++ b/packages/mediacenter/ludo/package.mk @@ -0,0 +1,57 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="ludo" +PKG_LICENSE="GPL" +PKG_SITE="https://github.com/libretro/ludo" +PKG_DEPENDS_TARGET="toolchain openal-soft" +PKG_LONGDESC="A libretro frontend written in golang." +PKG_VERSION="0.14.6" +PKG_URL="https://github.com/libretro/ludo/releases/download/v$PKG_VERSION/Ludo-Linux-$ARCH-$PKG_VERSION.tar.gz" +PKG_SOURCE_NAME="Ludo-Linux-$ARCH-$PKG_VERSION.tar.gz" +PKG_TOOLCHAIN="manual" + +if [ "$DISPLAYSERVER" = "x11" ]; then + PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libX11 libXext libdrm libXrandr libXcursor" +elif [ "$DISPLAYSERVER" = "weston" ]; then + PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET wayland waylandpp" + CFLAGS="$CFLAGS -DMESA_EGL_NO_X11_HEADERS" + CXXFLAGS="$CXXFLAGS -DMESA_EGL_NO_X11_HEADERS" +fi + +if [ ! "$OPENGL" = "no" ]; then + PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET $OPENGL" +fi + +makeinstall_target() { + mkdir -p $INSTALL/usr/bin + cp ./ludo $INSTALL/usr/bin/ludo + mkdir -p $INSTALL/usr/share/ludo + cp -r ./assets $INSTALL/usr/share/ludo/assets + cp -r ./database $INSTALL/usr/share/ludo/database + mkdir -p $INSTALL/usr/lib/libretro + cp -r ./cores/* $INSTALL/usr/lib/libretro + + mkdir -p $INSTALL/etc + echo ' +video_fullscreen = true +cores_dir = "/usr/lib/libretro" +assets_dir = "/usr/share/ludo/assets" +database_dir = "/usr/share/ludo/database" +playlists_dir = "/storage/playlists" +savefiles_dir = "/storage/savefiles" +savestates_dir = "/storage/savestates" +screenshots_dir = "/storage/screenshots" +system_dir = "/storage/system" +thumbnail_dir = "/storage/thumbnails" +bluetooth_service = false +samba_service = false +ssh_service = false +' > $INSTALL/etc/ludo.toml +} + +post_install() { + enable_service ludo.target + enable_service ludo.service +} diff --git a/packages/mediacenter/ludo/system.d/ludo.service b/packages/mediacenter/ludo/system.d/ludo.service new file mode 100644 index 0000000000..89e679af72 --- /dev/null +++ b/packages/mediacenter/ludo/system.d/ludo.service @@ -0,0 +1,22 @@ +[Unit] +Description=Ludo +After=network-online.target graphical.target +Requires=graphical.target +Wants=network-online.target + +[Service] +Environment=__GL_YIELD=USLEEP +Environment=DISPLAY=:0.0 +Environment=WAYLAND_DISPLAY=wayland-0 +Environment=SDL_MOUSE_RELATIVE=0 +Environment=HOME=/storage +EnvironmentFile=/etc/os-release +ExecStart=/usr/bin/ludo -ludos +KillMode=process +TimeoutStopSec=5 +Restart=always +RestartSec=2 +StartLimitInterval=0 + +[Install] +WantedBy=ludo.target diff --git a/packages/mediacenter/ludo/system.d/ludo.target b/packages/mediacenter/ludo/system.d/ludo.target new file mode 100644 index 0000000000..eedeffb1da --- /dev/null +++ b/packages/mediacenter/ludo/system.d/ludo.target @@ -0,0 +1,10 @@ +[Unit] +Description=Ludo +Requires=multi-user.target graphical.target network-online.target +After=network-online.target graphical.target +Wants=network-online.target +Conflicts=rescue.target +AllowIsolate=yes + +[Install] +Alias=default.target diff --git a/packages/mediacenter/ludo/tmpfiles.d/ludo-userdirs.conf b/packages/mediacenter/ludo/tmpfiles.d/ludo-userdirs.conf new file mode 100644 index 0000000000..fbffd7b9dc --- /dev/null +++ b/packages/mediacenter/ludo/tmpfiles.d/ludo-userdirs.conf @@ -0,0 +1,11 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) + +d /storage/.ludo 0755 root root - - +d /storage/roms 0755 root root - - +d /storage/savestates 0755 root root - - +d /storage/savefiles 0755 root root - - +d /storage/screenshots 0755 root root - - +d /storage/system 0755 root root - - +d /storage/playlists 0755 root root - - +d /storage/thumbnails 0755 root root - - diff --git a/packages/mediacenter/ludo/tmpfiles.d/ludo.conf b/packages/mediacenter/ludo/tmpfiles.d/ludo.conf new file mode 100644 index 0000000000..9c971667f6 --- /dev/null +++ b/packages/mediacenter/ludo/tmpfiles.d/ludo.conf @@ -0,0 +1,4 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) + +d /run/ludo 0755 root root - - diff --git a/packages/mediacenter/ludo/udev.d/99-8bitdo.rules b/packages/mediacenter/ludo/udev.d/99-8bitdo.rules new file mode 100644 index 0000000000..6ecbc43932 --- /dev/null +++ b/packages/mediacenter/ludo/udev.d/99-8bitdo.rules @@ -0,0 +1,41 @@ +# 8Bitdo FC30 1P GamePad Bluetooth mode(START) mode(START+R) +SUBSYSTEM=="input", ATTRS{name}=="8Bitdo FC30 GamePad", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1" + +# 8Bitdo FC30 2P GamePad Bluetooth mode(START) +SUBSYSTEM=="input", ATTRS{name}=="8Bitdo FC30 II", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1" + +# 8Bitdo FC30 2P GamePad Bluetooth mode(START+R) +SUBSYSTEM=="input", ATTRS{name}=="8Bitdo FC30 II Joystick", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1" + +# 8Bitdo SFC30 GamePad Bluetooth mode(START) +SUBSYSTEM=="input", ATTRS{name}=="8Bitdo SFC30 GamePad", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1" + +# 8Bitdo SFC30 GamePad Bluetooth mode(START+R) +SUBSYSTEM=="input", ATTRS{name}=="8Bitdo SFC30 GamePad Joystick", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1" + +# 8Bitdo NES30 GamePad Bluetooth mode(START) +SUBSYSTEM=="input", ATTRS{name}=="8Bitdo NES30 GamePad", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1" + +# 8Bitdo NES30 GamePad Bluetooth mode(START+R) +SUBSYSTEM=="input", ATTRS{name}=="8Bitdo NES30 GamePad Joystick", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1" + +# 8Bitdo SNES30 GamePad Bluetooth mode(START) +SUBSYSTEM=="input", ATTRS{name}=="8Bitdo SNES30 GamePad", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1" + +# 8Bitdo SNES30 GamePad Bluetooth mode(START+R) +SUBSYSTEM=="input", ATTRS{name}=="8Bitdo SNES30 GamePad Joystick", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1" + +# 8Bitdo FC30 Pro GamePad Bluetooth mode(POWER) mode(POWER+R1) +SUBSYSTEM=="input", ATTRS{name}=="8Bitdo FC30 Pro", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1" + +# 8Bitdo NES30 Pro GamePad Bluetooth mode(POWER) +SUBSYSTEM=="input", ATTRS{name}=="8Bitdo NES30 Pro", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1" + +# 8Bitdo NES30 Pro GamePad Bluetooth mode(POWER+R1) +SUBSYSTEM=="input", ATTRS{name}=="8Bitdo NES30 Pro Joystick", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1" + +# 8Bitdo FC30 Arcade Joystick Bluetooth mode(HOME) +SUBSYSTEM=="input", ATTRS{name}=="8Bitdo Joy", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1" + +# 8Bitdo Zero GamePad Bluetooth mode(START) mode(START+R) +SUBSYSTEM=="input", ATTRS{name}=="8Bitdo Zero GamePad", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1" diff --git a/packages/network/connman/package.mk b/packages/network/connman/package.mk index 1be8c2481e..d374d90613 100644 --- a/packages/network/connman/package.mk +++ b/packages/network/connman/package.mk @@ -78,6 +78,8 @@ post_makeinstall_target() { -e "s|^# AllowHostnameUpdates.*|AllowHostnameUpdates = false|g" \ -e "s|^# PersistentTetheringMode.*|PersistentTetheringMode = true|g" \ -e "s|^# NetworkInterfaceBlacklist = vmnet,vboxnet,virbr,ifb|NetworkInterfaceBlacklist = vmnet,vboxnet,virbr,ifb,docker,veth,zt|g" + echo "TimeUpdates=manual" >> $INSTALL/etc/connman/main.conf + echo "TimezoneUpdates=manual" >> $INSTALL/etc/connman/main.conf mkdir -p $INSTALL/usr/share/connman/ cp $PKG_DIR/config/settings $INSTALL/usr/share/connman/ diff --git a/packages/network/samba/config/smb.conf b/packages/network/samba/config/smb.conf index d7548865d8..96eea7b268 100644 --- a/packages/network/samba/config/smb.conf +++ b/packages/network/samba/config/smb.conf @@ -8,7 +8,7 @@ # available from your machine [global] - server string = LibreELEC + server string = LudOS browseable = yes writeable = yes printable = no @@ -58,77 +58,29 @@ writeable = yes root preexec = mkdir -p /storage/.update -[Videos] - path = /storage/videos +[ROMs] + path = /storage/roms available = yes browseable = yes public = yes writeable = yes - root preexec = mkdir -p /storage/videos + root preexec = mkdir -p /storage/roms -[Music] - path = /storage/music +[Savestates] + path = /storage/savestates available = yes browseable = yes public = yes writeable = yes - root preexec = mkdir -p /storage/music + root preexec = mkdir -p /storage/savestates -[TV Shows] - path = /storage/tvshows +[Savefiles] + path = /storage/savefiles available = yes browseable = yes public = yes writeable = yes - root preexec = mkdir -p /storage/tvshows - -[Recordings] - path = /storage/recordings - available = yes - browseable = yes - public = yes - writeable = yes - root preexec = mkdir -p /storage/recordings - -[Downloads] - path = /storage/downloads - available = yes - browseable = yes - public = yes - writeable = yes - root preexec = mkdir -p /storage/downloads - -[Pictures] - path = /storage/pictures - available = yes - browseable = yes - public = yes - writeable = yes - root preexec = mkdir -p /storage/pictures - -[Emulators] - path = /storage/emulators - available = yes - browseable = yes - public = yes - writeable = yes - root preexec = mkdir -p /storage/emulators - -[Configfiles] - path = /storage/.config - available = yes - browseable = yes - public = yes - writeable = yes - root preexec = mkdir -p /storage/.config - -[Userdata] - path = /storage/.kodi/userdata - available = yes - browseable = yes - public = yes - writeable = yes - root preexec = mkdir -p /storage/.kodi/userdata + root preexec = mkdir -p /storage/savefiles [Screenshots] path = /storage/screenshots @@ -138,27 +90,27 @@ writeable = yes root preexec = mkdir -p /storage/screenshots -[Logfiles] - path = /storage/logfiles +[System] + path = /storage/system available = yes browseable = yes public = yes writeable = yes - root preexec = mkdir -p /storage/logfiles - root preexec = createlog + root preexec = mkdir -p /storage/system -[Backup] - path = /storage/backup +[Playlists] + path = /storage/playlists available = yes browseable = yes public = yes writeable = yes - root preexec = mkdir -p /storage/backup + root preexec = mkdir -p /storage/playlists -[Picons] - path = /storage/picons +[Thumbnails] + path = /storage/thumbnails available = yes browseable = yes public = yes writeable = yes - root preexec = mkdir -p /storage/picons/tvh /storage/picons/vdr + root preexec = mkdir -p /storage/thumbnails + diff --git a/packages/security/libgpg-error/package.mk b/packages/security/libgpg-error/package.mk index 6bb6d7b3a1..8e6a54cbc8 100644 --- a/packages/security/libgpg-error/package.mk +++ b/packages/security/libgpg-error/package.mk @@ -4,7 +4,6 @@ PKG_NAME="libgpg-error" PKG_VERSION="1.37" -PKG_SHA256="b32d6ff72a73cf79797f7f2d039e95e9c6f92f0c1450215410840ab62aea9763" PKG_LICENSE="GPLv2" PKG_SITE="https://www.gnupg.org" PKG_URL="https://www.gnupg.org/ftp/gcrypt/libgpg-error/$PKG_NAME-$PKG_VERSION.tar.bz2" diff --git a/packages/sysutils/busybox/package.mk b/packages/sysutils/busybox/package.mk index af3176de9e..0df73af549 100644 --- a/packages/sysutils/busybox/package.mk +++ b/packages/sysutils/busybox/package.mk @@ -185,7 +185,7 @@ post_install() { add_group nogroup 65534 enable_service shell.service - enable_service show-version.service + #enable_service show-version.service enable_service var.mount enable_service fs-resize.service listcontains "${FIRMWARE}" "rpi-eeprom" && enable_service rpi-flash-firmware.service diff --git a/packages/sysutils/systemd/package.mk b/packages/sysutils/systemd/package.mk index a0a146a599..d05e7a298a 100644 --- a/packages/sysutils/systemd/package.mk +++ b/packages/sysutils/systemd/package.mk @@ -8,7 +8,7 @@ PKG_SHA256="ec22be9a5dd94c9640e6348ed8391d1499af8ca2c2f01109198a414cff6c6cba" PKG_LICENSE="LGPL2.1+" PKG_SITE="http://www.freedesktop.org/wiki/Software/systemd" PKG_URL="https://github.com/systemd/systemd/archive/v$PKG_VERSION.tar.gz" -PKG_DEPENDS_TARGET="toolchain libcap kmod util-linux entropy libidn2 wait-time-sync" +PKG_DEPENDS_TARGET="toolchain libcap kmod util-linux libidn2 wait-time-sync" PKG_LONGDESC="A system and session manager for Linux, compatible with SysV and LSB init scripts." PKG_MESON_OPTS_TARGET="--libdir=/usr/lib \ diff --git a/packages/sysutils/udevil/config/udevil.conf b/packages/sysutils/udevil/config/udevil.conf index d2f653a235..54426e8664 100644 --- a/packages/sysutils/udevil/config/udevil.conf +++ b/packages/sysutils/udevil/config/udevil.conf @@ -101,7 +101,7 @@ allowed_groups = * # be permitted to unmount its associated loop device even though internal. # INCLUDING /MNT HERE IS NOT RECOMMENDED. ALL ALLOWED MEDIA DIRECTORIES # SHOULD BE OWNED AND WRITABLE ONLY BY ROOT. -allowed_media_dirs = /media, /var/media, /run/media/$USER +allowed_media_dirs = /storage # allowed_devices is the first criteria for what block devices users may mount diff --git a/packages/tools/bcm2835-bootloader/files/3rdparty/bootloader/distroconfig.txt b/packages/tools/bcm2835-bootloader/files/3rdparty/bootloader/distroconfig.txt index 5ff97b5bef..1436562caa 100644 --- a/packages/tools/bcm2835-bootloader/files/3rdparty/bootloader/distroconfig.txt +++ b/packages/tools/bcm2835-bootloader/files/3rdparty/bootloader/distroconfig.txt @@ -2,3 +2,8 @@ # Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) # WARNING: DO NOT EDIT THIS FILE - IT WILL BE OVERWRITTEN WHEN UPGRADING! + +disable_splash=1 +disable_overscan=1 +dtparam=audio=on +dtoverlay=vc4-fkms-v3d diff --git a/packages/x11/lib/libXinerama/package.mk b/packages/x11/lib/libXinerama/package.mk index 05cec4a5a9..5e561531c9 100644 --- a/packages/x11/lib/libXinerama/package.mk +++ b/packages/x11/lib/libXinerama/package.mk @@ -11,4 +11,4 @@ PKG_URL="http://xorg.freedesktop.org/archive/individual/lib/$PKG_NAME-$PKG_VERSI PKG_DEPENDS_TARGET="toolchain util-macros libXext" PKG_LONGDESC="libXinerama is the Xinerama library." -PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared --enable-malloc0returnsnull" +PKG_CONFIGURE_OPTS_TARGET="--enable-static --enable-shared --enable-malloc0returnsnull" diff --git a/packages/x11/other/fluxbox/system.d/windowmanager.service b/packages/x11/other/fluxbox/system.d/windowmanager.service index d97081e2b8..652019fe8e 100644 --- a/packages/x11/other/fluxbox/system.d/windowmanager.service +++ b/packages/x11/other/fluxbox/system.d/windowmanager.service @@ -2,7 +2,7 @@ Description=Fluxbox Window Manager Requires=xorg.service After=xorg.service -Before=kodi.service +Before=ludo.service [Service] Environment=DISPLAY=:0 diff --git a/packages/x11/xserver/xorg-server/system.d/xorg.service b/packages/x11/xserver/xorg-server/system.d/xorg.service index a9dbde6893..1bba515e8a 100644 --- a/packages/x11/xserver/xorg-server/system.d/xorg.service +++ b/packages/x11/xserver/xorg-server/system.d/xorg.service @@ -1,6 +1,6 @@ [Unit] Description=Xorg Server -Before=graphical.target kodi.service +Before=graphical.target ludo.service After=multi-user.target ConditionKernelCommandLine=!installer diff --git a/packages/x11/xserver/xorg-server/udev.d/97-xorg.rules b/packages/x11/xserver/xorg-server/udev.d/97-xorg.rules index 5a63260232..3de14be33d 100644 --- a/packages/x11/xserver/xorg-server/udev.d/97-xorg.rules +++ b/packages/x11/xserver/xorg-server/udev.d/97-xorg.rules @@ -1,6 +1,7 @@ # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +DRIVER=="vc4-drm", ENV{xorg_driver}="modesetting", TAG+="systemd", ENV{SYSTEMD_WANTS}+="xorg-configure@modesetting.service" ACTION!="add|change", GOTO="end_video" # xorg_start only does something for subsystem "pci" and "video" class. diff --git a/projects/Generic/linux/linux.x86_64.conf b/projects/Generic/linux/linux.x86_64.conf index 84d95dd8ad..08de6cd314 100644 --- a/projects/Generic/linux/linux.x86_64.conf +++ b/projects/Generic/linux/linux.x86_64.conf @@ -2662,7 +2662,10 @@ CONFIG_I2C_DESIGNWARE_BAYTRAIL=y # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set # CONFIG_I3C is not set -# CONFIG_SPI is not set +CONFIG_SPI=y +CONFIG_SPI_MASTER=y +CONFIG_SPI_PXA2XX=m + # CONFIG_SPMI is not set # CONFIG_HSI is not set CONFIG_PPS=y diff --git a/projects/Generic/options b/projects/Generic/options index 8b667ac1cc..aa0ef66594 100644 --- a/projects/Generic/options +++ b/projects/Generic/options @@ -74,13 +74,13 @@ # 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 iwlwifi-firmware" + FIRMWARE="misc-firmware wlan-firmware iwlwifi-firmware" # additional drivers to install: # 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 bcm_sta intel_nuc_led" + ADDITIONAL_DRIVERS="$ADDITIONAL_DRIVERS bcm_sta intel_nuc_led applespi" # build and install driver addons (yes / no) DRIVER_ADDONS_SUPPORT="yes" @@ -88,7 +88,8 @@ # driver addons to install: # for a list of additional drivers see packages/linux-driver-addons # Space separated list is supported, - DRIVER_ADDONS="crazycat digital_devices dvb-latest" + DRIVER_ADDONS="" # Default size of the ova image, in MB, eg. 4096 OVA_SIZE="4096" + diff --git a/projects/RPi/devices/RPi4/config/distroconfig.txt b/projects/RPi/devices/RPi4/config/distroconfig.txt index a5670d0691..bede6238b7 100644 --- a/projects/RPi/devices/RPi4/config/distroconfig.txt +++ b/projects/RPi/devices/RPi4/config/distroconfig.txt @@ -3,4 +3,5 @@ # WARNING: DO NOT EDIT THIS FILE - IT WILL BE OVERWRITTEN WHEN UPGRADING! dtoverlay=vc4-fkms-v3d +dtparam=audio=on disable_overscan=1 diff --git a/projects/RPi/options b/projects/RPi/options index 0927b0cbc6..95e9d7183b 100644 --- a/projects/RPi/options +++ b/projects/RPi/options @@ -74,16 +74,16 @@ ALSA_SUPPORT="yes" # OpenGL(X) implementation to use (no / mesa) - OPENGL="no" + OPENGL="mesa" # OpenGL-ES implementation to use (no / bcm2835-driver / mesa) - OPENGLES="bcm2835-driver" + OPENGLES="no" # include uvesafb support (yes / no) UVESAFB_SUPPORT="no" # Displayserver to use (x11 / no) - DISPLAYSERVER="no" + DISPLAYSERVER="x11" # Windowmanager to use (fluxbox / none) WINDOWMANAGER="none" @@ -91,7 +91,7 @@ # Xorg Graphic drivers to use (all / vc4 / none) # Space separated list is supported, # e.g. GRAPHIC_DRIVERS="vc4" - GRAPHIC_DRIVERS="" + GRAPHIC_DRIVERS="vc4" # Use a vendor specific KODI repo KODI_VENDOR="raspberrypi" @@ -105,7 +105,7 @@ # 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 brcmfmac_sdio-firmware-rpi" + FIRMWARE="misc-firmware wlan-firmware brcmfmac_sdio-firmware-rpi" # build with installer (yes / no) INSTALLER_SUPPORT="no" @@ -129,7 +129,7 @@ # driver addons to install: # for a list of additional drivers see packages/linux-driver-addons # Space separated list is supported, - DRIVER_ADDONS="crazycat dvb-latest" + DRIVER_ADDONS="" # debug tty path DEBUG_TTY="/dev/console" diff --git a/scripts/mkimage b/scripts/mkimage index fb2282d2cd..a8b2313d2c 100755 --- a/scripts/mkimage +++ b/scripts/mkimage @@ -123,7 +123,7 @@ SAY installer: permanently install ${DISTRO} to HDD/SSD SAY live: boot ${DISTRO} using RAM for temporary storage SAY run: boot ${DISTRO} using this USB memory device for storage SAY -DEFAULT installer +DEFAULT run TIMEOUT 50 PROMPT 1 @@ -142,7 +142,7 @@ EOF cat << EOF > "${LE_TMP}/grub.cfg" set timeout="25" -set default="Installer" +set default="Run" menuentry "Installer" { search --set -f /KERNEL linux /KERNEL boot=UUID=${UUID_SYSTEM} installer quiet systemd.debug_shell vga=current