diff --git a/.gitignore b/.gitignore index f20cf8602..93ac6a81f 100644 --- a/.gitignore +++ b/.gitignore @@ -54,5 +54,6 @@ packages/sx05re/experimental/ release/ .lastbuild +.jelos SOURCES diff --git a/Makefile b/Makefile index fc37f3a95..f11aeebaf 100644 --- a/Makefile +++ b/Makefile @@ -23,14 +23,14 @@ distclean: src-pkg: tar cvJf sources.tar.xz sources .stamps -world: RG552 RG503 RG353P RG351P RG351V RG351MP +world: RG552 RG503 RG353P RG351P RG351V RG351MP handheld -X86_64: - PROJECT=PC DEVICE=X86_64 ARCH=x86_64 ./scripts/build_distro +handheld: + DEVICE_ROOT=handheld PROJECT=PC DEVICE=handheld ARCH=x86_64 ./scripts/build_distro RG552: - PROJECT=Rockchip DEVICE=RG552 ARCH=arm ./scripts/build_distro - PROJECT=Rockchip DEVICE=RG552 ARCH=aarch64 ./scripts/build_distro + DEVICE_ROOT=RG552 PROJECT=Rockchip DEVICE=RG552 ARCH=arm ./scripts/build_distro + DEVICE_ROOT=RG552 PROJECT=Rockchip DEVICE=RG552 ARCH=aarch64 ./scripts/build_distro RG503: DEVICE_ROOT=RG503 PROJECT=Rockchip DEVICE=RG503 ARCH=arm ./scripts/build_distro diff --git a/README.md b/README.md index ac51b47e9..c98282af9 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,15 @@         [![Latest Version](https://img.shields.io/github/release/JustEnoughLinuxOS/distribution.svg?color=5998FF&label=latest%20version&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/releases/latest) [![Activity](https://img.shields.io/github/commit-activity/m/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/commits) [![Pull Requests](https://img.shields.io/github/issues-pr-closed/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/pulls) [![Discord Server](https://img.shields.io/discord/948029830325235753?color=5998FF&label=chat&style=flat-square)](https://discord.gg/seTxckZjJy) # -Just Enough Linux Operating System (JELOS) is a simple Linux distribution for ARM based devices that specializes in handhelds. My goal is to build an operating system that has the features and capabilities that I need, and to have fun building it. +Just Enough Linux Operating System (JELOS) is a community developed Linux distribution for handheld gaming devices. Our goal is to produce an operating system that has the features and capabilities that we need, and to have fun as we develop it. ## Features * A 64bit Linux Operating System. * An easy to use interface using EmulationStation * Provides RetroArch, a variety of cores, Stand Alone Emulators, PortMaster, and ThemeMaster. -* Supports FAT32, ExFAT, and EXT4 file systems on devices with a second card slot. +* Supports FAT32, ExFAT, and EXT4 file systems on removable storage (slot/device #2). * 2.4GHz and 5GHz 802.11 A/B/G/N/AC WIFI support. -* Online updates for easy access to stable or development builds. -* Supports Anbernic's RG552, RG503, RG353P, RG351P/M, RG351MP, and RG351V. +* Online update capability for easy access to stable or development builds. +* Support for the Anbernic WIN600, RG552, RG503, RG353P, RG351P/M, RG351MP, RG351V. * Developed by a small, friendly community. ## Licenses @@ -42,13 +42,16 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -## Installation +## Flashing * Download the latest [version of JELOS](https://github.com/JustEnoughLinuxOS/distribution/releases) (.img.gz) for your device. * Decompress the image. * Write the image to an SDCARD using an imaging tool. Common imaging tools include [Balena Etcher](https://www.balena.io/etcher/), [Raspberry Pi Imager](https://www.raspberrypi.com/software/), and [Win32 Disk Imager](https://sourceforge.net/projects/win32diskimager/). If you're skilled with the command line, dd works fine too. > This repository hosts stable versions of JELOS. If you would like to install the unstable development version, please visit the [development build repository](https://github.com/JustEnoughLinuxOS/distribution-dev). +## Installation +* x86_64 versions of JELOS include an installation tool. This tool may be run from the boot menu or from within JELOS by switching to desktop mode and running "installer" in a terminal. + ## Upgrading * Download and install the update online via the System Settings menu. * Download the latest [version of JELOS](https://github.com/JustEnoughLinuxOS/distribution/releases) (.tar) for your device. @@ -56,7 +59,7 @@ limitations under the License. * Reboot the device, and the update will begin automatically. ## Network Access -* The username for ssh and samba access is "root". The root password is generated during every boot, it can be found in the System Settings menu. +* External services are disabled by default in stable builds. When enabled, the username for ssh and samba access is "root". The root password is generated during every boot, it can be found in the System Settings menu. ## RetroArch Hotkeys * Hotkey Enable: Select (Hold) diff --git a/config/functions b/config/functions index ab4f6bc2f..9b7c1d868 100644 --- a/config/functions +++ b/config/functions @@ -545,7 +545,7 @@ debug_strip() { fi if [ "${BUILD_WITH_DEBUG}" != "yes" ] && flag_enabled "strip" "yes"; then - find $* -type f -executable | xargs $STRIP 2>/dev/null || : + find $* -type f \( -executable ! -iname "*.AppImage" \) | xargs $STRIP 2>/dev/null || : fi } diff --git a/config/options b/config/options index d24345a11..546f3f6bb 100644 --- a/config/options +++ b/config/options @@ -27,7 +27,7 @@ DISTRO="${DISTRO:-JELOS}" PROJECT="${PROJECT:-Rockchip}" # determines TARGET_ARCH, if not forced by user -ARCH="${ARCH:-arm}" +ARCH="${ARCH:-aarch64}" TARGET_ARCH="${ARCH}" # include helper functions @@ -84,13 +84,18 @@ VERBOSE="${VERBOSE:-yes}" CCACHE_CACHE_SIZE="20G" # read local persistent options from $ROOT if available -if [ -f "${ROOT}/.coreelec/options" ]; then - . "${ROOT}/.coreelec/options" +if [ -f "${ROOT}/.jelos/options" ]; then + . "${ROOT}/.jelos/options" fi # read global persistent options from $HOME if available -if [ -f "${HOME}/.coreelec/options" ]; then - . "${HOME}/.coreelec/options" +if [ -f "${HOME}/.jelos/options" ]; then + . "${HOME}/.jelos/options" +fi + +# read global persistent options from ${DOCKER_WORK_DIR} if available +if [ -f "${DOCKER_WORK_DIR}/.jelos/options" ]; then + . "${DOCKER_WORK_DIR}/.jelos/options" fi # overwrite OEM_SUPPORT via commandline diff --git a/packages/audio/alsa-lib/config/modprobe.d/disable-spdif-for-hd-audio.conf b/packages/audio/alsa-lib/config/modprobe.d/disable-spdif-for-hd-audio.conf deleted file mode 100644 index 245345d41..000000000 --- a/packages/audio/alsa-lib/config/modprobe.d/disable-spdif-for-hd-audio.conf +++ /dev/null @@ -1,16 +0,0 @@ -# INTEL HBR WORKAROUND FOR DTS-MA & Dolby TrueHD PLAYBACK - -# Uncomment the following lines to disable any S/PDIF out to deliver -# bitstreamed audio on Intel builds. This is a rough workaround for -# users that have both S/PDIF and HDMI audio outputs on their motherboard -# or motherboard+discrete graphics combo. - -# EVEN IF YOU ARE NOT USING THE S/PDIF OUTPUT -# but still have one, you will need to uncomment the lines below ! - -# after uncommenting these lines, you must reboot for these settings to take effect - -# blacklist snd_hda_codec_realtek -# blacklist snd_hda_codec_sigmatel -# blacklist snd_hda_codec_cirrus - diff --git a/packages/audio/alsa-lib/modprobe.d/alsa-base.conf b/packages/audio/alsa-lib/modprobe.d/alsa-base.conf index 258e706e1..d5e932538 100644 --- a/packages/audio/alsa-lib/modprobe.d/alsa-base.conf +++ b/packages/audio/alsa-lib/modprobe.d/alsa-base.conf @@ -9,14 +9,14 @@ options saa7134-alsa index=-2 options snd-atiixp-modem index=-2 options snd-intel8x0m index=-2 options snd-via82xx-modem index=-2 -options snd-usb-audio index=-2 options snd-usb-usx2y index=-2 options snd-usb-caiaq index=-2 options snd-cmipci mpu_port=0x330 fm_port=0x388 # Some Toshiba laptops might require this # options snd-hda-intel model=toshiba -options snd-hda-intel model=auto + +options snd-hda-intel model=auto index=1,2 # RG552 shouldn't grab index 0 options dw_hdmi_i2s_audio index=1 diff --git a/packages/audio/alsa-lib/package.mk b/packages/audio/alsa-lib/package.mk index 581d00ff1..8a455bd80 100644 --- a/packages/audio/alsa-lib/package.mk +++ b/packages/audio/alsa-lib/package.mk @@ -28,9 +28,3 @@ post_configure_target() { sed -i 's/.*PKGLIBDIR.*/#define PKGLIBDIR ""/' include/config.h } -post_makeinstall_target() { - rm -rf ${INSTALL}/usr/bin - - mkdir -p ${INSTALL}/usr/config - cp -PR ${PKG_DIR}/config/modprobe.d ${INSTALL}/usr/config -} diff --git a/packages/audio/soundtouch/package.mk b/packages/audio/soundtouch/package.mk new file mode 100644 index 000000000..8b5dc54c0 --- /dev/null +++ b/packages/audio/soundtouch/package.mk @@ -0,0 +1,10 @@ +# SPDX-License-Identifier: Apache-2.0 +# Copyright (C) 2020-present Fewtarius + +PKG_NAME="soundtouch" +PKG_VERSION="2.3.1" +PKG_LICENSE="LGPL-2.1+" +PKG_SITE="https://www.surina.net/soundtouch" +PKG_URL="https://codeberg.org/soundtouch/soundtouch/archive/${PKG_VERSION}.tar.gz" +PKG_DEPENDS_TARGET="toolchain" +PKG_LONGDESC="SoundTouch Audio Processing Library" diff --git a/packages/compat/lib32/package.mk b/packages/compat/lib32/package.mk index 3286266c7..7ed4c5fd2 100644 --- a/packages/compat/lib32/package.mk +++ b/packages/compat/lib32/package.mk @@ -14,9 +14,8 @@ makeinstall_target() { cd ${PKG_BUILD} LIBROOT="${ROOT}/build.${DISTRO}-${DEVICE}.arm/image/system/" if [ "${ARCH}" = "aarch64" ]; then - mkdir -p ${INSTALL}/usr/lib32/pulseaudio - rsync -l ${LIBROOT}/usr/lib/* ${INSTALL}/usr/lib32 >/dev/null 2>&1 - rsync -l ${LIBROOT}/usr/lib/pulseaudio/* ${INSTALL}/usr/lib32/pulseaudio >/dev/null 2>&1 + mkdir -p ${INSTALL}/usr/lib32 + rsync -al ${LIBROOT}/usr/lib/* ${INSTALL}/usr/lib32 >/dev/null 2>&1 chmod -f +x ${INSTALL}/usr/lib32/* || : fi mkdir -p ${INSTALL}/usr/lib @@ -25,4 +24,8 @@ makeinstall_target() { mkdir -p "${INSTALL}/etc/ld.so.conf.d" echo "/usr/lib32" > "${INSTALL}/etc/ld.so.conf.d/arm-lib32.conf" echo "/usr/lib32/pulseaudio" >"${INSTALL}/etc/ld.so.conf.d/arm-lib32-pulseaudio.conf" + if [ -d "${LIBROOT}/usr/lib/dri" ] + then + echo "/usr/lib32/dri" >"${INSTALL}/etc/ld.so.conf.d/arm-lib32-dri.conf" + fi } diff --git a/packages/compress/libzip/package.mk b/packages/compress/libzip/package.mk index 587fbaacd..efed51b08 100644 --- a/packages/compress/libzip/package.mk +++ b/packages/compress/libzip/package.mk @@ -3,18 +3,9 @@ # Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv) PKG_NAME="libzip" -PKG_VERSION="0.11.2" -PKG_SHA256="7cfbbc2c540e154b933b6e9ec781e2671086bd8114eb744ae1a1ade34d2bb6bb" +PKG_VERSION="1.9.2" PKG_LICENSE="GPL" -PKG_SITE="http://www.nih.at/libzip/" -PKG_URL="http://www.nih.at/libzip/${PKG_NAME}-${PKG_VERSION}.tar.xz" +PKG_SITE="https://libzip.org/download" +PKG_URL="${PKG_SITE}/${PKG_NAME}-${PKG_VERSION}.tar.xz" PKG_DEPENDS_TARGET="toolchain zlib" PKG_LONGDESC="A C library for reading, creating, and modifying zip archives." -PKG_TOOLCHAIN="configure" - -PKG_CONFIGURE_OPTS_TARGET="--disable-shared --enable-static" - -post_makeinstall_target() { - rm -rf $INSTALL/usr/bin - rm -rf $INSTALL/usr/lib -} diff --git a/packages/compress/zlib/package.mk b/packages/compress/zlib/package.mk index f39e64dee..e39750cc5 100644 --- a/packages/compress/zlib/package.mk +++ b/packages/compress/zlib/package.mk @@ -2,8 +2,7 @@ # Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) PKG_NAME="zlib" -PKG_VERSION="1.2.11" -PKG_SHA256="4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066" +PKG_VERSION="1.2.12" PKG_LICENSE="OSS" PKG_SITE="http://www.zlib.net" PKG_URL="http://zlib.net/${PKG_NAME}-${PKG_VERSION}.tar.xz" diff --git a/packages/debug/libunwind/package.mk b/packages/debug/libunwind/package.mk index 9f2f7a8de..8d1a15e9f 100644 --- a/packages/debug/libunwind/package.mk +++ b/packages/debug/libunwind/package.mk @@ -3,15 +3,21 @@ PKG_NAME="libunwind" PKG_VERSION="1.6.2" +PKG_SHA256="4a6aec666991fb45d0889c44aede8ad6eb108071c3554fcdff671f9c94794976" PKG_LICENSE="GPL" PKG_SITE="http://www.nongnu.org/libunwind/" PKG_URL="http://download.savannah.nongnu.org/releases/libunwind/libunwind-${PKG_VERSION}.tar.gz" -PKG_DEPENDS_TARGET="gcc:host" +PKG_DEPENDS_TARGET="toolchain zlib" PKG_LONGDESC="library to determine the call-chain of a program" +PKG_BUILD_FLAGS="+pic" +PKG_TOOLCHAIN="autotools" PKG_CONFIGURE_OPTS_TARGET="--enable-static \ - --disable-shared" + --disable-shared \ + --disable-minidebuginfo \ + --disable-documentation \ + --disable-tests" makeinstall_target() { - make DESTDIR=$SYSROOT_PREFIX install + make DESTDIR=${SYSROOT_PREFIX} install } diff --git a/packages/debug/libunwind/patches/libunwind-0001-fix-multiple-definition.patch b/packages/debug/libunwind/patches/libunwind-0001-fix-multiple-definition.patch new file mode 100644 index 000000000..68eb5f70a --- /dev/null +++ b/packages/debug/libunwind/patches/libunwind-0001-fix-multiple-definition.patch @@ -0,0 +1,26 @@ +From f40db1e2562934fd21485ba7f62e4521945f17e4 Mon Sep 17 00:00:00 2001 +From: MilhouseVH +Date: Mon, 17 Feb 2020 05:52:10 +0000 +Subject: [PATCH] fix multiple definition + +https://lists.nongnu.org/archive/html/libunwind-devel/2017-08/msg00039.html +https://github.com/libunwind/libunwind/commit/0e74e583ae18d6852835f327921ee130a5fa3e6f +--- + include/tdep-arm/ex_tables.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/include/tdep-arm/ex_tables.h b/include/tdep-arm/ex_tables.h +index 9df5e0a..0b5388a 100644 +--- a/include/tdep-arm/ex_tables.h ++++ b/include/tdep-arm/ex_tables.h +@@ -47,6 +47,7 @@ struct arm_exbuf_data + #define arm_exidx_extract UNW_OBJ(arm_exidx_extract) + #define arm_exidx_decode UNW_OBJ(arm_exidx_decode) + #define arm_exidx_apply_cmd UNW_OBJ(arm_exidx_apply_cmd) ++#define arm_search_unwind_table UNW_OBJ(arm_search_unwind_table) + + int arm_exidx_extract (struct dwarf_cursor *c, uint8_t *buf); + int arm_exidx_decode (const uint8_t *buf, uint8_t len, struct dwarf_cursor *c); +-- +2.7.4 + diff --git a/packages/debug/libunwind/patches/libunwind-0002-add-dependant-static-libraries.patch b/packages/debug/libunwind/patches/libunwind-0002-add-dependant-static-libraries.patch new file mode 100644 index 000000000..0c41417ec --- /dev/null +++ b/packages/debug/libunwind/patches/libunwind-0002-add-dependant-static-libraries.patch @@ -0,0 +1,10 @@ +--- a/src/unwind/libunwind.pc.in 2020-11-10 16:14:18.000000000 +0000 ++++ b/src/unwind/libunwind.pc.in 2021-12-05 08:16:04.467881118 +0000 +@@ -6,6 +6,6 @@ + Name: libunwind + Description: libunwind base library + Version: @VERSION@ +-Libs: -L${libdir} -lunwind ++Libs: -L${libdir} -lunwind @LIBLZMA@ @LIBZ@ + Libs.private: @LIBLZMA@ @LIBZ@ + Cflags: -I${includedir} diff --git a/packages/devel/asn1c/package.mk b/packages/devel/asn1c/package.mk new file mode 100644 index 000000000..1aed298d4 --- /dev/null +++ b/packages/devel/asn1c/package.mk @@ -0,0 +1,11 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2022-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="asn1c" +PKG_VERSION="0.9.28" +PKG_SHA256="8007440b647ef2dd9fb73d931c33ac11764e6afb2437dbe638bb4e5fc82386b9" +PKG_LICENSE="BSD" +PKG_SITE="http://lionet.info/asn1c/blog/" +PKG_URL="https://github.com/vlm/asn1c/releases/download/v${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}.tar.gz" +PKG_DEPENDS_HOST="ccache:host" +PKG_LONGDESC="The ASN.1 Compiler" diff --git a/packages/devel/fakeroot/patches/fakeroot-002-stat-ver-undefined.patch b/packages/devel/fakeroot/patches/fakeroot-002-stat-ver-undefined.patch new file mode 100644 index 000000000..8a2eb9bf6 --- /dev/null +++ b/packages/devel/fakeroot/patches/fakeroot-002-stat-ver-undefined.patch @@ -0,0 +1,56 @@ +From f6ca3217ec2fad93d078fa0121aa8f88d7d12ccb Mon Sep 17 00:00:00 2001 +From: lualiliu +Date: Wed, 7 Sep 2022 10:57:49 +0800 +Subject: [PATCH] Add a patch about fakeroot(_STAT_VER undeclared) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +solve it: +libfakeroot.c:99:40: error: ‘_STAT_VER’ undeclared (first use in this +function) +--- + ...fine-_STAT_VER-if-not-already-define.patch | 34 +++++++++++++++++++ + 1 file changed, 34 insertions(+) + create mode 100644 packages/devel/fakeroot/patches/0001-libfakeroot.c-define-_STAT_VER-if-not-already-define.patch + +diff --git a/packages/devel/fakeroot/patches/0001-libfakeroot.c-define-_STAT_VER-if-not-already-define.patch b/packages/devel/fakeroot/patches/0001-libfakeroot.c-define-_STAT_VER-if-not-already-define.patch +new file mode 100644 +index 00000000..613d0c95 +--- /dev/null ++++ b/packages/devel/fakeroot/patches/0001-libfakeroot.c-define-_STAT_VER-if-not-already-define.patch +@@ -0,0 +1,34 @@ ++From ca68c7336dea4a07cf5b77c1fdc9e9aee4984ca5 Mon Sep 17 00:00:00 2001 ++From: Ilya Lipnitskiy ++Date: Thu, 11 Feb 2021 20:59:25 -0800 ++Subject: [PATCH 1/3] libfakeroot.c: define _STAT_VER if not already defined ++ ++Signed-off-by: Ilya Lipnitskiy ++--- ++ libfakeroot.c | 10 ++++++++++ ++ 1 file changed, 10 insertions(+) ++ ++diff --git a/libfakeroot.c b/libfakeroot.c ++index 3e80e38..14cdbc4 100644 ++--- a/libfakeroot.c +++++ b/libfakeroot.c ++@@ -90,6 +90,16 @@ ++ #define SEND_GET_XATTR64(a,b,c) send_get_xattr64(a,b) ++ #endif ++ +++#ifndef _STAT_VER +++ #if defined (__aarch64__) +++ #define _STAT_VER 0 +++ #elif defined (__x86_64__) +++ #define _STAT_VER 1 +++ #else +++ #define _STAT_VER 3 +++ #endif +++#endif +++ ++ /* ++ These INT_* (which stands for internal) macros should always be used when ++ the fakeroot library owns the storage of the stat variable. ++-- ++2.30.1 ++ diff --git a/packages/devel/glib/package.mk b/packages/devel/glib/package.mk index 9bd3caf16..120f3bb86 100644 --- a/packages/devel/glib/package.mk +++ b/packages/devel/glib/package.mk @@ -4,7 +4,6 @@ PKG_NAME="glib" PKG_VERSION="2.71.0" -PKG_SHA256="926816526f6e4bba9af726970ff87be7dac0b70d5805050c6207b7bb17ea4fca" PKG_LICENSE="LGPL" PKG_SITE="https://www.gtk.org/" PKG_URL="https://download.gnome.org/sources/glib/$(get_pkg_version_maj_min)/${PKG_NAME}-${PKG_VERSION}.tar.xz" @@ -13,7 +12,7 @@ PKG_DEPENDS_TARGET="toolchain pcre zlib libffi Python3:host util-linux" PKG_LONGDESC="A library which includes support routines for C such as lists, trees, hashes, memory allocation." PKG_TOOLCHAIN="meson" -PKG_MESON_OPTS_HOST="-Ddefault_library=static \ +PKG_MESON_OPTS_HOST="-Ddefault_library=shared \ -Dinstalled_tests=false \ -Dlibmount=disabled \ -Dtests=false" @@ -21,7 +20,6 @@ PKG_MESON_OPTS_HOST="-Ddefault_library=static \ PKG_MESON_OPTS_TARGET="-Ddefault_library=shared \ -Dinstalled_tests=false \ -Dselinux=disabled \ - -Dfam=false \ -Dxattr=true \ -Dgtk_doc=false \ -Dman=false \ diff --git a/packages/devel/glibc/package.mk b/packages/devel/glibc/package.mk index 7ab1b910b..5e5998bda 100644 --- a/packages/devel/glibc/package.mk +++ b/packages/devel/glibc/package.mk @@ -13,12 +13,12 @@ PKG_DEPENDS_INIT="glibc" PKG_LONGDESC="The Glibc package contains the main C library." PKG_BUILD_FLAGS="-gold" -case "${TARGET_ARCH}" in - arm|aarch64) +case "${DEVICE}" in + RG351P|RG351V|RG351MP|RG503|RG353P) OPT_ENABLE_KERNEL=4.4.0 ;; *) - OPT_ENABLE_KERNEL=5.10.0 + OPT_ENABLE_KERNEL=5.15.0 ;; esac diff --git a/packages/devel/gobject-introspection/package.mk b/packages/devel/gobject-introspection/package.mk new file mode 100644 index 000000000..b6ea8375d --- /dev/null +++ b/packages/devel/gobject-introspection/package.mk @@ -0,0 +1,80 @@ +# 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) +# Copyright (C) 2020-present Team CoreELEC (https://coreelec.org) + +PKG_NAME="gobject-introspection" +PKG_VERSION="1.72.0" +PKG_SHA256="07c30d7f465dabd861c03a950430343e976d445179ad451a4dd1b17329e1cbae" +PKG_ARCH="any" +PKG_LICENSE="LGPL" +PKG_SITE="http://www.gtk.org/" +PKG_URL="https://github.com/GNOME/$PKG_NAME/archive/$PKG_VERSION.tar.gz" +PKG_DEPENDS_TARGET="toolchain libffi glib Python3 qemu:host gobject-introspection:host" +PKG_DEPENDS_HOST="libffi:host glib:host" +PKG_SECTION="devel" +PKG_SHORTDESC="glib: C support library" +PKG_LONGDESC="GLib is a library which includes support routines for C such as lists, trees, hashes, memory allocation, and many other things." +PKG_TOOLCHAIN="meson" + +pre_configure_host() { + PKG_MESON_OPTS_HOST="-Ddoctool=disabled" + + # prevent g-ir-scanner from writing cache data to $HOME + export GI_SCANNER_DISABLE_CACHE="1" +} + +pre_configure_target() { + GLIBC_DYNAMIC_LINKER="$(ls ${SYSROOT_PREFIX}/usr/lib/ld-linux-*.so.*)" + QEMU_BINARY="${TOOLCHAIN}/bin/qemu-${TARGET_ARCH}" + PKG_CONFIG_PATH="${SYSROOT_PREFIX}/usr/lib/pkgconfig" + + # for gi this variables must be defined for target and not for host + # because they are used in + # toolchain/lib/gobject-introspection/giscanner/ccompiler.py + CC="${TARGET_CC}" + CXX="${TARGET_CXX}" + AR="${TARGET_AR}" + CPP="${TARGET_PREFIX}cpp" + CPPFLAGS="${TARGET_CPPFLAGS}" + CFLAGS="${TARGET_CFLAGS}" + LDFLAGS="${TARGET_LDFLAGS}" + + PKG_MESON_OPTS_TARGET=" \ + -Ddoctool=disabled \ + -Dpython=${TOOLCHAIN}/bin/${PKG_PYTHON_VERSION} \ + -Dgi_cross_use_prebuilt_gi=true \ + -Dgi_cross_binary_wrapper=${TOOLCHAIN}/bin/g-ir-scanner-binary-wrapper \ + -Dgi_cross_ldd_wrapper=${TOOLCHAIN}/bin/g-ir-scanner-ldd-wrapper \ + -Dbuild_introspection_data=true" + + # prevent g-ir-scanner from writing cache data to $HOME + export GI_SCANNER_DISABLE_CACHE="1" + + # write out a qemu wrapper that will be given to gi-scanner + # so that it can run target helper binaries through that + cat > ${TOOLCHAIN}/bin/g-ir-scanner-binary-wrapper << EOF +#!/bin/sh + ${QEMU_BINARY} \ + -E LD_LIBRARY_PATH="${SYSROOT_PREFIX}/usr/lib:${TOOLCHAIN}/${TARGET_NAME}/lib" \ + -L ${SYSROOT_PREFIX}/usr \ + "\$@" +EOF + + # write out a wrapper to use instead of ldd, which does not + # work when a binary is built for a different architecture + cat > ${TOOLCHAIN}/bin/g-ir-scanner-ldd-wrapper << EOF +#!/bin/sh + ${QEMU_BINARY} \ + -E LD_LIBRARY_PATH="${SYSROOT_PREFIX}/usr/lib:${TOOLCHAIN}/${TARGET_NAME}/lib" \ + ${GLIBC_DYNAMIC_LINKER} --list "\$1" +EOF + + chmod +x ${TOOLCHAIN}/bin/g-ir-scanner-*-wrapper +} + +post_makeinstall_target() { + rm -rf ${INSTALL}/usr/bin + rm -rf ${INSTALL}/usr/lib/gobject-introspection + rm -rf ${INSTALL}/usr/share +} diff --git a/packages/devel/heimdal/package.mk b/packages/devel/heimdal/package.mk index bff71ff3e..636f0aad9 100644 --- a/packages/devel/heimdal/package.mk +++ b/packages/devel/heimdal/package.mk @@ -3,12 +3,12 @@ # Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="heimdal" -PKG_VERSION="7.7.0" -PKG_SHA256="f7d414d0914abb0e151a276b4de22cf4977fd6c28bd9ecdd990407b1138a945c" +PKG_VERSION="c0bc8beb07d9733d4c8c17d120916552fe172f50" +PKG_SHA256="601e9a772063c72b391d593df8ae5e05ec779fefdf1502b7d88fbbe016ceb4dd" PKG_LICENSE="BSD-3c" PKG_SITE="http://www.h5l.org/" -PKG_URL="https://github.com/heimdal/heimdal/archive/${PKG_NAME}-${PKG_VERSION}.tar.gz" -PKG_DEPENDS_HOST="toolchain:host Python3:host ncurses:host" +PKG_URL="https://github.com/heimdal/heimdal/archive/${PKG_VERSION}.tar.gz" +PKG_DEPENDS_HOST="toolchain:host Python3:host ncurses:host asn1c:host" PKG_LONGDESC="Kerberos 5, PKIX, CMS, GSS-API, SPNEGO, NTLM, Digest-MD5 and, SASL implementation." PKG_TOOLCHAIN="autotools" PKG_BUILD_FLAGS="-parallel" diff --git a/packages/devel/heimdal/patches/0001-upstream-check-libtinfo-for-tgetent.patch b/packages/devel/heimdal/patches/0001-upstream-check-libtinfo-for-tgetent.patch deleted file mode 100644 index df80a4a8e..000000000 --- a/packages/devel/heimdal/patches/0001-upstream-check-libtinfo-for-tgetent.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 872222db35384f343a8a566a56a28c4eb73d38ed Mon Sep 17 00:00:00 2001 -From: Damir Franusic -Date: Sun, 9 Dec 2018 19:50:47 +0100 -Subject: [PATCH] AC_FIND_FUNC_NO_LIBS should check libtinfo for tgetent - ---- - configure.ac | 2 +- - lib/libedit/config.h.in | 3 +++ - lib/libedit/configure.ac | 3 ++- - 3 files changed, 6 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index f1e8d7b15e..f98a3c555e 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -456,7 +456,7 @@ AC_FIND_FUNC_NO_LIBS(openpty, util,[ - #endif - ],[0,0,0,0,0]) - --AC_FIND_FUNC_NO_LIBS(tgetent, termcap ncurses curses,[ -+AC_FIND_FUNC_NO_LIBS(tgetent, termcap ncurses curses tinfo,[ - #ifdef HAVE_TERMCAP_H - #include - #endif -diff --git a/lib/libedit/config.h.in b/lib/libedit/config.h.in -index ba283cc39f..059e5abc6a 100644 ---- a/lib/libedit/config.h.in -+++ b/lib/libedit/config.h.in -@@ -42,6 +42,9 @@ - /* Define to 1 if you have the `ncurses' library (-lncurses). */ - #undef HAVE_LIBNCURSES - -+/* Define to 1 if you have the `tinfo' library (-ltinfo). */ -+#undef HAVE_LIBTINFO -+ - /* Define to 1 if you have the header file. */ - #undef HAVE_LIMITS_H - -diff --git a/lib/libedit/configure.ac b/lib/libedit/configure.ac -index 90c8ca57d7..89a9376b06 100644 ---- a/lib/libedit/configure.ac -+++ b/lib/libedit/configure.ac -@@ -36,7 +36,8 @@ EL_MANTYPE - - AC_CHECK_LIB(curses, tgetent,, - [AC_CHECK_LIB(ncurses, tgetent,, -- [AC_MSG_ERROR([libcurses or libncurses are required!])] )] ) -+ [AC_CHECK_LIB(tinfo, tgetent,, -+ [AC_MSG_ERROR([libcurses or libncurses are required!])] )] )] ) - - - # Checks for header files. diff --git a/packages/devel/heimdal/patches/0002-upstream-fix-configure-err-msg.patch b/packages/devel/heimdal/patches/0002-upstream-fix-configure-err-msg.patch deleted file mode 100644 index 64b203f06..000000000 --- a/packages/devel/heimdal/patches/0002-upstream-fix-configure-err-msg.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 5e7bc8d8811fa401fa14adb9787504c0b460c7df Mon Sep 17 00:00:00 2001 -From: Earl Chew -Date: Wed, 20 May 2020 09:46:28 -0700 -Subject: [PATCH] [libedit/configure.ac] Refactor tgetent message to reflect - libraries searched - -Signed-off-by: Earl Chew ---- - lib/libedit/configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/libedit/configure.ac b/lib/libedit/configure.ac -index 89a9376b06..b94bafc6b9 100644 ---- a/lib/libedit/configure.ac -+++ b/lib/libedit/configure.ac -@@ -37,7 +37,7 @@ EL_MANTYPE - AC_CHECK_LIB(curses, tgetent,, - [AC_CHECK_LIB(ncurses, tgetent,, - [AC_CHECK_LIB(tinfo, tgetent,, -- [AC_MSG_ERROR([libcurses or libncurses are required!])] )] )] ) -+ [AC_MSG_ERROR([libcurses, libncurses, or tinfo are required!])] )] )] ) - - - # Checks for header files. diff --git a/packages/devel/heimdal/patches/22352b90e78e2d162b98b5ef6c84672c397be40a.patch b/packages/devel/heimdal/patches/22352b90e78e2d162b98b5ef6c84672c397be40a.patch deleted file mode 100644 index 0dcc31026..000000000 --- a/packages/devel/heimdal/patches/22352b90e78e2d162b98b5ef6c84672c397be40a.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 22352b90e78e2d162b98b5ef6c84672c397be40a Mon Sep 17 00:00:00 2001 -From: Lars Wendler -Date: Wed, 17 Mar 2021 17:49:18 +0100 -Subject: [PATCH] autoconf-2.70 fix - -autoconf-2.70 and newer are more strict with quoting etc. and thus generate -a broken configure file: - - configure: 20855: Syntax error: ")" unexpected (expecting "fi") - -Gentoo-bug: https://bugs.gentoo.org/776241 -Signed-off-by: Lars Wendler ---- - cf/check-var.m4 | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/cf/check-var.m4 b/cf/check-var.m4 -index 2fd7bca6f0..71d6f70ca8 100644 ---- a/cf/check-var.m4 -+++ b/cf/check-var.m4 -@@ -20,7 +20,7 @@ AC_MSG_RESULT($ac_foo) - if test "$ac_foo" = yes; then - AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_[]$1), 1, - [Define if you have the `]$1[' variable.]) -- m4_ifval([$2], AC_CHECK_DECLS([$1],[],[],[$2])) -+ m4_ifval([$2], [AC_CHECK_DECLS([$1],[],[],[$2])]) - fi - ]) - diff --git a/packages/devel/heimdal/patches/c4cff6859d183a40fb35a76e2bc1ce084b3a6d67.patch b/packages/devel/heimdal/patches/c4cff6859d183a40fb35a76e2bc1ce084b3a6d67.patch deleted file mode 100644 index 826c7fb51..000000000 --- a/packages/devel/heimdal/patches/c4cff6859d183a40fb35a76e2bc1ce084b3a6d67.patch +++ /dev/null @@ -1,22 +0,0 @@ -From c4cff6859d183a40fb35a76e2bc1ce084b3a6d67 Mon Sep 17 00:00:00 2001 -From: Luke Howard -Date: Mon, 24 Dec 2018 02:21:32 +0000 -Subject: [PATCH] hx509: fix dependency, hxtool requires ASN.1 headers - ---- - lib/hx509/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/hx509/Makefile.am b/lib/hx509/Makefile.am -index c7ef53182d..b21d85202c 100644 ---- a/lib/hx509/Makefile.am -+++ b/lib/hx509/Makefile.am -@@ -164,7 +164,7 @@ hxtool-commands.c hxtool-commands.h: hxtool-commands.in $(SLC) - dist_hxtool_SOURCES = hxtool.c - nodist_hxtool_SOURCES = hxtool-commands.c hxtool-commands.h - --$(hxtool_OBJECTS): hxtool-commands.h hx509_err.h -+$(hxtool_OBJECTS): hxtool-commands.h $(nodist_include_HEADERS) - - hxtool_LDADD = \ - libhx509.la \ diff --git a/packages/devel/heimdal/patches/cc6a3f337bac0411d0bb1c924fd857603a258d2f.patch b/packages/devel/heimdal/patches/cc6a3f337bac0411d0bb1c924fd857603a258d2f.patch deleted file mode 100644 index 15a6161fe..000000000 --- a/packages/devel/heimdal/patches/cc6a3f337bac0411d0bb1c924fd857603a258d2f.patch +++ /dev/null @@ -1,22 +0,0 @@ -From cc6a3f337bac0411d0bb1c924fd857603a258d2f Mon Sep 17 00:00:00 2001 -From: Nicolas Williams -Date: Tue, 17 Mar 2020 19:46:37 -0500 -Subject: [PATCH] hcrypto: Fix Makefile build race - ---- - lib/hcrypto/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/hcrypto/Makefile.am b/lib/hcrypto/Makefile.am -index 195117d174..3c6ee3ca84 100644 ---- a/lib/hcrypto/Makefile.am -+++ b/lib/hcrypto/Makefile.am -@@ -298,7 +298,7 @@ ltmsources = \ - libtommath/bn_mp_to_unsigned_bin_n.c - - --$(libhcrypto_la_OBJECTS): hcrypto-link -+$(libhcrypto_la_OBJECTS) $(test_rand_OBJECTS): hcrypto-link - - libhcrypto_la_CPPFLAGS = -DBUILD_HCRYPTO_LIB $(AM_CPPFLAGS) - diff --git a/packages/devel/heimdal/patches/yyerror-match-posix-standard.patch b/packages/devel/heimdal/patches/yyerror-match-posix-standard.patch deleted file mode 100644 index 07b84c355..000000000 --- a/packages/devel/heimdal/patches/yyerror-match-posix-standard.patch +++ /dev/null @@ -1,83 +0,0 @@ -From 79b8337d54b2d85f73eff2d033ca592447ac5fce Mon Sep 17 00:00:00 2001 -From: heitbaum -Date: Fri, 10 Sep 2021 00:28:16 +1000 -Subject: [PATCH] yyerror: update to POSIX standard - -To comply with the latest POSIX standard, in Yacc compatibility mode -(options `-y`/`--yacc`) Bison now generates prototypes for yyerror and -yylex. In some situations, this is breaking compatibility: if the user -has already declared these functions but with some differences (e.g., to -declare them as static, or to use specific attributes), the generated -parser will fail to compile. To disable these prototypes, #define yyerror -(to `yyerror`), and likewise for yylex. - -refer: https://git.savannah.gnu.org/cgit/bison.git/tree/NEWS - -GNU Bison 3.8 ---- - lib/asn1/asn1parse.y | 1 + - lib/com_err/parse.y | 5 +++-- - lib/sl/slc-lex.l | 2 +- - lib/sl/slc.h | 3 ++- - 4 files changed, 7 insertions(+), 4 deletions(-) - -diff --git a/lib/asn1/asn1parse.y b/lib/asn1/asn1parse.y -index 9d8b76f582..91b163a28b 100644 ---- a/lib/asn1/asn1parse.y -+++ b/lib/asn1/asn1parse.y -@@ -65,6 +65,7 @@ static void validate_object_set(IOSObjectSet *); - static struct constraint_spec *new_constraint_spec(enum ctype); - static Type *new_tag(int tagclass, int tagvalue, int tagenv, Type *oldtype); - void yyerror (const char *); -+#define yyerror yyerror - static struct objid *new_objid(const char *label, int value); - static void add_oid_to_tail(struct objid *, struct objid *); - static void fix_labels(Symbol *s); -diff --git a/lib/com_err/parse.y b/lib/com_err/parse.y -index 0c2e5084b5..bcb9b05204 100644 ---- a/lib/com_err/parse.y -+++ b/lib/com_err/parse.y -@@ -35,7 +35,8 @@ - #include "compile_et.h" - #include "lex.h" - --void yyerror (char *s); -+void yyerror (const char *s); -+#define yyerror yyerror - static long name2number(const char *str); - - extern char *yytext; -@@ -168,7 +169,7 @@ name2number(const char *str) - } - - void --yyerror (char *s) -+yyerror (const char *s) - { - _lex_error_message ("%s\n", s); - } -diff --git a/lib/sl/slc-lex.l b/lib/sl/slc-lex.l -index 50965bccd7..3a37302336 100644 ---- a/lib/sl/slc-lex.l -+++ b/lib/sl/slc-lex.l -@@ -78,7 +78,7 @@ error_message (const char *format, ...) - } - - void --yyerror (char *s) -+yyerror (const char *s) - { - error_message("%s\n", s); - } -diff --git a/lib/sl/slc.h b/lib/sl/slc.h -index 6e45ed2f15..e4dc2cba6b 100644 ---- a/lib/sl/slc.h -+++ b/lib/sl/slc.h -@@ -51,5 +51,6 @@ extern char *filename; - extern int error_flag; - void error_message (const char *format, ...); - int yylex(void); --void yyerror (char *s); -+void yyerror (const char *s); -+#define yyerror yyerror - extern unsigned lineno; diff --git a/packages/devel/libaio/package.mk b/packages/devel/libaio/package.mk index f503cca14..33f7e745f 100644 --- a/packages/devel/libaio/package.mk +++ b/packages/devel/libaio/package.mk @@ -3,22 +3,16 @@ # Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv) PKG_NAME="libaio" -PKG_VERSION="0.3.112" -PKG_SHA256="f69e5800425f4ea957426693ac09f9896bb993db5490fa021644454adcc72a32" +PKG_VERSION="0.3.113" +PKG_SHA256="716c7059703247344eb066b54ecbc3ca2134f0103307192e6c2b7dab5f9528ab" PKG_LICENSE="GPL" -PKG_SITE="http://lse.sourceforge.net/io/aio.html" -PKG_URL="http://http.debian.net/debian/pool/main/liba/libaio/${PKG_NAME}_${PKG_VERSION}.orig.tar.xz" +PKG_SITE="https://pagure.io/libaio" +PKG_URL="https://pagure.io/${PKG_NAME}/archive/${PKG_NAME}-${PKG_VERSION}/${PKG_NAME}-${PKG_NAME}-${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain" PKG_LONGDESC="Kernel Asynchronous I/O (AIO) Support for Linux." +PKG_BUILD_FLAGS="-lto" make_target() { make -C src } -makeinstall_target() { - mkdir -p ${SYSROOT_PREFIX}/usr/lib - cp -PR src/libaio.a ${SYSROOT_PREFIX}/usr/lib - - mkdir -p ${SYSROOT_PREFIX}/usr/include - cp -PR src/libaio.h ${SYSROOT_PREFIX}/usr/include -} diff --git a/packages/devel/libaio/patches/001-ldflags.patch b/packages/devel/libaio/patches/001-ldflags.patch new file mode 100644 index 000000000..030963bac --- /dev/null +++ b/packages/devel/libaio/patches/001-ldflags.patch @@ -0,0 +1,13 @@ +We need to place LDFLAGS earlier to ensure e.g. as-needed works correctly. +--- a/src/Makefile ++++ b/src/Makefile +@@ -56,7 +56,7 @@ libaio.a: $(libaio_objs) + + $(libname): $(libaio_sobjs) libaio.map + $(CC) $(CFLAGS) -c struct_offsets.c +- $(CC) $(SO_CFLAGS) -Wl,--version-script=libaio.map -Wl,-soname=$(soname) -o $@ $(libaio_sobjs) $(LINK_FLAGS) ++ $(CC) $(SO_CFLAGS) $(LINK_FLAGS) -Wl,--version-script=libaio.map -Wl,-soname=$(soname) -o $@ $(libaio_sobjs) + + install: $(all_targets) + install -D -m 644 libaio.h $(includedir)/libaio.h + diff --git a/packages/devel/ncurses/package.mk b/packages/devel/ncurses/package.mk index 04b4d59c7..0db790e23 100644 --- a/packages/devel/ncurses/package.mk +++ b/packages/devel/ncurses/package.mk @@ -3,22 +3,16 @@ # Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv) PKG_NAME="ncurses" -PKG_VERSION="6.1-20181215" -PKG_SHA256="08b07c3e792961f300829512c283d5fefc0b1c421a57b76922c3d13303ed677d" +PKG_VERSION="6.3" PKG_LICENSE="MIT" PKG_SITE="http://www.gnu.org/software/ncurses/" -PKG_URL="http://invisible-mirror.net/archives/ncurses/current/ncurses-${PKG_VERSION}.tgz" +PKG_URL="http://invisible-mirror.net/archives/ncurses/ncurses-${PKG_VERSION}.tar.gz" PKG_DEPENDS_HOST="ccache:host" PKG_DEPENDS_TARGET="toolchain zlib ncurses:host" PKG_LONGDESC="A library is a free software emulation of curses in System V Release 4.0, and more." -# causes some segmentation fault's (dialog) when compiled with gcc's link time optimization. -PKG_BUILD_FLAGS="+pic" +PKG_BUILD_FLAGS="+pic +pic:host" PKG_TOOLCHAIN="auto" -pre_configure_target() { - export CFLAGS="${CFLAGS} -fcommon -fPIC" -} - PKG_CONFIGURE_OPTS_TARGET=" --without-ada \ --without-cxx \ @@ -53,23 +47,39 @@ PKG_CONFIGURE_OPTS_TARGET=" --disable-sigwinch \ --enable-pc-files \ --with-pkg-config-libdir=/usr/lib/pkgconfig \ - --disable-tcap-names \ + --enable-tcap-names \ --without-develop \ --disable-hard-tabs \ --disable-xmc-glitch \ --disable-hashmap \ --disable-safe-sprintf \ --disable-scroll-hints \ - --disable-widec \ + --enable-widec \ --disable-echo \ --disable-warnings \ - --disable-home-terminfo \ + --enable-home-terminfo \ + --enable-lib-suffixes \ --disable-assertions" +PKG_CONFIGURE_OPTS_HOST="--enable-termcap \ + --with-termlib \ + --without-shared \ + --enable-pc-files \ + --without-tests \ + --without-manpages" + post_makeinstall_target() { - #cp -rf ${INSTALL}/usr/lib/* ${TOOLCHAIN}/${TARGET_ARCH}-libreelec-linux-gnu${TARGET_ABI}/lib + local f cp misc/ncurses-config ${TOOLCHAIN}/bin chmod +x ${TOOLCHAIN}/bin/ncurses-config - sed -e "s:\(['=\" ]\)/usr:\\1${SYSROOT_PREFIX}/usr:g" -i ${TOOLCHAIN}/bin/ncurses-config - #rm -rf ${INSTALL}/usr/bin + sed -e "s:\(['=\" ]\)/usr:\\1${PKG_ORIG_SYSROOT_PREFIX}/usr:g" -i ${TOOLCHAIN}/bin/ncurses-config + rm -f ${TOOLCHAIN}/bin/ncurses6-config + rm -rf ${INSTALL}/usr/bin + # create links to be compatible with any ncurses include path and lib names + ln -sf . ${SYSROOT_PREFIX}/usr/include/ncursesw + ln -sf . ${SYSROOT_PREFIX}/usr/include/ncurses + for f in form menu ncurses panel tinfo; do + ln -sf lib${f}w.a ${SYSROOT_PREFIX}/usr/lib/lib${f}.a + ln -sf ${f}w.pc ${SYSROOT_PREFIX}/usr/lib/pkgconfig/${f}.pc + done } diff --git a/packages/devel/ncurses/patches/ncurses-001-terminfo-xterm.patch b/packages/devel/ncurses/patches/ncurses-001-terminfo-xterm.patch index 030213be1..3c2a9d0f0 100644 --- a/packages/devel/ncurses/patches/ncurses-001-terminfo-xterm.patch +++ b/packages/devel/ncurses/patches/ncurses-001-terminfo-xterm.patch @@ -1,16 +1,16 @@ Remove recent xterm terminfo features to be compatible with other emulations ---- a/misc/terminfo.src 2018-12-21 18:53:11.000000000 +0100 -+++ a/misc/terminfo.src 2018-12-22 22:56:47.000000000 +0100 -@@ -4335,8 +4335,8 @@ xterm-xfree86|xterm terminal emulator (X - xterm-new|modern xterm terminal emulator, +--- a/misc/terminfo.src 2021-03-20 22:45:39.000000000 +0100 ++++ b/misc/terminfo.src 2021-06-01 23:53:10.335516419 +0200 +@@ -4808,8 +4808,8 @@ xterm-xfree86|xterm terminal emulator (X + xterm+nofkeys|building block for xterm fkey-variants, npc, - indn=\E[%p1%dS, kb2=\EOE, kcbt=\E[Z, kent=\EOM, -- rin=\E[%p1%dT, use=ansi+rep, use=ecma+strikeout, -- use=xterm+sm+1006, use=xterm+pcfkeys, use=xterm+tmux, -+ rin=\E[%p1%dT, use=ecma+strikeout, -+ use=xterm+sm+1005, use=xterm+pcfkeys, use=xterm+tmux, - use=xterm-basic, + kcbt=\E[Z, kent=\EOM, nel=\EE, use=ecma+index, +- use=ansi+rep, use=ecma+strikeout, use=vt420+lrmm, +- use=xterm+sm+1006, use=xterm+tmux, use=ecma+italics, ++ use=ecma+strikeout, use=vt420+lrmm, ++ use=xterm+sm+1005, use=xterm+tmux, use=ecma+italics, + use=xterm+keypad, use=xterm-basic, - # This fragment is for people who cannot agree on what the backspace key + # This version reflects the current xterm features. diff --git a/packages/devel/ncurses/patches/ncurses-002-alloc-fallbacks.patch b/packages/devel/ncurses/patches/ncurses-002-alloc-fallbacks.patch index 218e3a7b3..eaf093adb 100644 --- a/packages/devel/ncurses/patches/ncurses-002-alloc-fallbacks.patch +++ b/packages/devel/ncurses/patches/ncurses-002-alloc-fallbacks.patch @@ -1,19 +1,8 @@ Fix freeing not allocated fallback entries by allocating a copy. ---- a/ncurses/tinfo/lib_setup.c 2018-11-24 23:13:16.000000000 +0100 -+++ b/ncurses/tinfo/lib_setup.c 2018-12-29 10:31:01.000000000 +0100 -@@ -756,6 +756,8 @@ TINFO_SETUP_TERM(TERMINAL **tp, - if (status != TGETENT_YES) { - const TERMTYPE2 *fallback = _nc_fallback2(tname); - -+ if (fallback) -+ fallback = _nc_copy_entry(fallback); - if (fallback) { - T(("found fallback entry")); - TerminalType(termp) = *fallback; --- a/ncurses/tinfo/tinfo_driver.c 2018-11-24 23:17:03.000000000 +0100 +++ b/ncurses/tinfo/tinfo_driver.c 2018-12-29 10:27:19.000000000 +0100 -@@ -172,6 +172,8 @@ drv_CanHandle(TERMINAL_CONTROL_BLOCK * T +@@ -180,6 +180,8 @@ drv_CanHandle(TERMINAL_CONTROL_BLOCK * T if (status != TGETENT_YES) { const TERMTYPE2 *fallback = _nc_fallback2(tname); diff --git a/packages/devel/ncurses/patches/ncurses-003-fix_hints.patch b/packages/devel/ncurses/patches/ncurses-003-fix_hints.patch new file mode 100644 index 000000000..846230486 --- /dev/null +++ b/packages/devel/ncurses/patches/ncurses-003-fix_hints.patch @@ -0,0 +1,18 @@ +Fix USE_SCROLL_HINTS/USE_HASHMAP logic + +--- a/ncurses/curses.priv.h 2018-12-16 02:16:58.000000000 +0100 ++++ a/ncurses/curses.priv.h 2021-05-30 00:12:14.086528124 +0200 +@@ -258,10 +258,9 @@ extern NCURSES_EXPORT(void *) _nc_memmov + /* + * Scroll hints are useless when hashmap is used + */ +-#if !USE_SCROLL_HINTS +-#if !USE_HASHMAP +-#define USE_SCROLL_HINTS 1 +-#else ++#if USE_SCROLL_HINTS ++#if USE_HASHMAP ++#undef USE_SCROLL_HINTS + #define USE_SCROLL_HINTS 0 + #endif + #endif diff --git a/packages/devel/ncurses/patches/ncurses-004-fix_configure_pkgconfig.patch b/packages/devel/ncurses/patches/ncurses-004-fix_configure_pkgconfig.patch new file mode 100644 index 000000000..9223676c7 --- /dev/null +++ b/packages/devel/ncurses/patches/ncurses-004-fix_configure_pkgconfig.patch @@ -0,0 +1,13 @@ +Fix configure option --with-pkg-config-libdir is broken for cross compilation + +--- a/configure 2021-10-17 17:12:23.000000000 +0200 ++++ b/configure 2021-11-26 00:27:00.224815736 +0100 +@@ -4229,7 +4229,7 @@ echo $ECHO_N "checking for first directo + cf_pkg_config_path=none + for cf_config in $cf_search_path + do +- if test -d "$cf_config" ++ if test -n "$cf_config" + then + cf_pkg_config_path=$cf_config + break diff --git a/packages/devel/pcre/package.mk b/packages/devel/pcre/package.mk index 87273ba41..4020f30aa 100644 --- a/packages/devel/pcre/package.mk +++ b/packages/devel/pcre/package.mk @@ -3,13 +3,13 @@ # Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="pcre" -PKG_VERSION="8.44" -PKG_SHA256="19108658b23b3ec5058edc9f66ac545ea19f9537234be1ec62b714c84399366d" +PKG_VERSION="8.45" +PKG_SHA256="4dae6fdcd2bb0bb6c37b5f97c33c2be954da743985369cddac3546e3218bffb8" PKG_LICENSE="OSS" PKG_SITE="http://www.pcre.org/" -PKG_URL="https://downloads.sourceforge.net/sourceforge/pcre/${PKG_NAME}-${PKG_VERSION}.tar.bz2" +PKG_URL="${SOURCEFORGE_SRC}/pcre/${PKG_NAME}/${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}.tar.bz2" PKG_DEPENDS_HOST="toolchain:host" -PKG_DEPENDS_TARGET="toolchain" +PKG_DEPENDS_TARGET="toolchain pcre:host" PKG_LONGDESC="A set of functions that implement regular expression pattern matching." PKG_TOOLCHAIN="configure" PKG_BUILD_FLAGS="+pic" @@ -20,8 +20,7 @@ PKG_CONFIGURE_OPTS_HOST="--prefix=${TOOLCHAIN} \ --enable-unicode-properties \ --with-gnu-ld" -PKG_CONFIGURE_OPTS_TARGET="--disable-shared \ - --enable-static \ +PKG_CONFIGURE_OPTS_TARGET="--enable-static \ --enable-utf8 \ --enable-pcre16 \ --enable-unicode-properties \ @@ -29,5 +28,7 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-shared \ post_makeinstall_target() { rm -rf ${INSTALL}/usr/bin - sed -e "s:\(['= ]\)/usr:\\1${SYSROOT_PREFIX}/usr:g" -i ${SYSROOT_PREFIX}/usr/bin/${PKG_NAME}-config + cp ${PKG_NAME}-config ${TOOLCHAIN}/bin + sed -e "s:\(['= ]\)/usr:\\1${PKG_ORIG_SYSROOT_PREFIX}/usr:g" -i ${TOOLCHAIN}/bin/${PKG_NAME}-config + chmod +x ${TOOLCHAIN}/bin/${PKG_NAME}-config } diff --git a/packages/devel/pcre2/package.mk b/packages/devel/pcre2/package.mk index 5f1d6c2f2..5f42205f3 100644 --- a/packages/devel/pcre2/package.mk +++ b/packages/devel/pcre2/package.mk @@ -1,32 +1,32 @@ -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2018-present Team CoreELEC (https://coreelec.org) +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv) PKG_NAME="pcre2" -PKG_VERSION="10.33" -PKG_SHA256="35514dff0ccdf02b55bd2e9fa586a1b9d01f62332c3356e379eabb75f789d8aa" +PKG_VERSION="10.40" +PKG_SHA256="14e4b83c4783933dc17e964318e6324f7cae1bc75d8f3c79bc6969f00c159d68" PKG_LICENSE="BSD" PKG_SITE="http://www.pcre.org/" -PKG_URL="https://ftp.pcre.org/pub/pcre/${PKG_NAME}-${PKG_VERSION}.tar.bz2" -PKG_DEPENDS_HOST="gcc:host" +PKG_URL="https://github.com/PCRE2Project/pcre2/releases/download/pcre2-${PKG_VERSION}/pcre2-${PKG_VERSION}.tar.bz2" +PKG_DEPENDS_HOST="toolchain:host" PKG_DEPENDS_TARGET="toolchain" -PKG_LONGDESC="A set of functions that implement regular expression pattern matching." -PKG_TOOLCHAIN="configure" -PKG_BUILD_FLAGS="+pic" +PKG_LONGDESC="A set of functions that implement regular expression pattern matching using the same syntax." +PKG_BUILD_FLAGS="+pic +pic:host" -PKG_CONFIGURE_OPTS_HOST="--prefix=${TOOLCHAIN} \ - --enable-static \ - --enable-utf8 \ - --enable-unicode-properties \ - --with-gnu-ld" +PKG_CMAKE_OPTS_HOST="-DBUILD_SHARED_LIBS=OFF \ + -DBUILD_STATIC_LIBS=ON \ + -DPCRE2_BUILD_PCRE2_8=ON \ + -DPCRE2_BUILD_PCRE2_16=ON \ + -DPCRE2_BUILD_PCRE2_32=ON \ + -DPCRE2_SUPPORT_JIT=ON \ + -DPCRE2_BUILD_TESTS=OFF \ + -DPCRE2_SUPPORT_LIBEDIT=OFF \ + -DPCRE2_SUPPORT_LIBREADLINE=OFF" -PKG_CONFIGURE_OPTS_TARGET="--disable-shared \ - --enable-static \ - --enable-utf8 \ - --enable-pcre2-16 \ - --enable-unicode-properties \ - --with-gnu-ld" +PKG_CMAKE_OPTS_TARGET="-DBUILD_SHARED_LIBS=OFF \ + -DPCRE2_BUILD_PCRE2_16=ON \ + -DPCRE2_SUPPORT_LIBEDIT=OFF \ + -DPCRE2_SUPPORT_LIBREADLINE=OFF" post_makeinstall_target() { safe_remove ${INSTALL}/usr/bin - sed -e "s:\(['= ]\)/usr:\\1${SYSROOT_PREFIX}/usr:g" -i ${SYSROOT_PREFIX}/usr/bin/${PKG_NAME}-config } diff --git a/packages/devel/readline/package.mk b/packages/devel/readline/package.mk index 02734e965..e25b975b6 100644 --- a/packages/devel/readline/package.mk +++ b/packages/devel/readline/package.mk @@ -3,20 +3,21 @@ # Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv) PKG_NAME="readline" -PKG_VERSION="8.0" -PKG_SHA256="e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" +PKG_VERSION="8.1.2" +PKG_SHA256="7589a2381a8419e68654a47623ce7dfcb756815c8fee726b98f90bf668af7bc6" PKG_LICENSE="MIT" PKG_SITE="http://www.gnu.org/software/readline/" -PKG_URL="http://ftpmirror.gnu.org/readline/$PKG_NAME-$PKG_VERSION.tar.gz" +PKG_URL="http://ftpmirror.gnu.org/readline/${PKG_NAME}-${PKG_VERSION}.tar.gz" PKG_DEPENDS_TARGET="toolchain ncurses" PKG_LONGDESC="The GNU Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed in." PKG_BUILD_FLAGS="+pic" PKG_CONFIGURE_OPTS_TARGET="bash_cv_wcwidth_broken=no \ - --disable-shared \ - --enable-static \ + --enable-shared \ + --disable-static \ --with-curses" post_makeinstall_target() { - rm -rf $INSTALL/usr/share/readline + sed -i 's/-lreadline/-lreadline -lncursesw/' ${SYSROOT_PREFIX}/usr/lib/pkgconfig/readline.pc + rm -rf ${INSTALL}/usr/share/readline } diff --git a/packages/games/emulators/PPSSPPSDL/package.mk b/packages/games/emulators/PPSSPPSDL/package.mk index f62f796c4..032ceb970 100644 --- a/packages/games/emulators/PPSSPPSDL/package.mk +++ b/packages/games/emulators/PPSSPPSDL/package.mk @@ -2,7 +2,7 @@ # Copyright (C) 2019-present Shanti Gilbert (https://github.com/shantigilbert) # Copyright (C) 2022-present Fewtarius PKG_NAME="PPSSPPSDL" -PKG_VERSION="d11640a070d7516b6a4660a0543dd9ee285e0d53" +PKG_VERSION="9fe6338" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPLv2" @@ -32,17 +32,27 @@ if [ "${OPENGLES_SUPPORT}" = yes ]; then -DUSING_X11_VULKAN=OFF" fi -if [ "${ARCH}" = "x86_64" ] -then - PKG_DEPENDS_TARGET+=" vulkan-loader vulkan-headers" - PKG_CMAKE_OPTS_TARGET+=" -DUSE_VULKAN_DISPLAY_KHR=ON \ - -DVULKAN=ON \ - -DUSING_X11_VULKAN=ON" +### Vulkan is still not working for PPSSPP on the win600 yet. +#if [ "${VULKAN_SUPPORT}" = "yes" ] +#then +# PKG_DEPENDS_TARGET+=" vulkan-loader vulkan-headers" +# PKG_CMAKE_OPTS_TARGET+=" -DUSE_VULKAN_DISPLAY_KHR=ON \ +# -DVULKAN=ON \ +# -DEGL_NO_X11=1 +# -DMESA_EGL_NO_X11_HEADERS=1" +#else + PKG_CMAKE_OPTS_TARGET+=" -DVULKAN=OFF" +#fi + +if [ "${DISPLAYSERVER}" = "wl" ]; then + PKG_DEPENDS_TARGET+=" wayland ${WINDOWMANAGER}" + PKG_CMAKE_OPTS_TARGET+=" -DUSE_WAYLAND_WSI=ON" +else + PKG_CMAKE_OPTS_TARGET+=" -DUSE_WAYLAND_WSI=OFF" fi PKG_CMAKE_OPTS_TARGET+="${PKG_CMAKE_OPTS_TARGET} \ -DUSE_SYSTEM_FFMPEG=OFF \ - -DUSE_WAYLAND_WSI=OFF \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_SYSTEM_NAME=Linux \ -DBUILD_SHARED_LIBS=OFF \ diff --git a/packages/games/emulators/PPSSPPSDL/patches/003-fullscreen_drm.patch b/packages/games/emulators/PPSSPPSDL/patches/003-fullscreen_drm.patch new file mode 100644 index 000000000..d275a31c9 --- /dev/null +++ b/packages/games/emulators/PPSSPPSDL/patches/003-fullscreen_drm.patch @@ -0,0 +1,60 @@ +diff --git a/SDL/SDLMain.cpp b/SDL/SDLMain.cpp +index 7551231..475bb63 100644 +--- a/SDL/SDLMain.cpp ++++ b/SDL/SDLMain.cpp +@@ -420,11 +420,11 @@ void ToggleFullScreenIfFlagSet(SDL_Window *window) { + + Uint32 window_flags = SDL_GetWindowFlags(window); + if (g_ToggleFullScreenType == -1) { +- window_flags ^= SDL_WINDOW_FULLSCREEN_DESKTOP; ++ window_flags ^= SDL_WINDOW_FULLSCREEN; + } else if (g_ToggleFullScreenType == 1) { +- window_flags |= SDL_WINDOW_FULLSCREEN_DESKTOP; ++ window_flags |= SDL_WINDOW_FULLSCREEN; + } else { +- window_flags &= ~SDL_WINDOW_FULLSCREEN_DESKTOP; ++ window_flags &= ~SDL_WINDOW_FULLSCREEN; + } + SDL_SetWindowFullscreen(window, window_flags); + } +@@ -524,7 +524,7 @@ int main(int argc, char *argv[]) { + Uint32 mode = 0; + for (int i = 1; i < argc; i++) { + if (!strcmp(argv[i],"--fullscreen")) +- mode |= SDL_WINDOW_FULLSCREEN_DESKTOP; ++ mode |= SDL_WINDOW_FULLSCREEN; + else if (set_xres == -2) + set_xres = parseInt(argv[i]); + else if (set_yres == -2) +@@ -596,19 +596,19 @@ int main(int argc, char *argv[]) { + + // Force fullscreen if the resolution is too low to run windowed. + if (g_DesktopWidth < 480 * 2 && g_DesktopHeight < 272 * 2) { +- mode |= SDL_WINDOW_FULLSCREEN_DESKTOP; ++ mode |= SDL_WINDOW_FULLSCREEN; + } + + // If we're on mobile, don't try for windowed either. + #if defined(MOBILE_DEVICE) && !PPSSPP_PLATFORM(SWITCH) + mode |= SDL_WINDOW_FULLSCREEN; + #elif defined(USING_FBDEV) || PPSSPP_PLATFORM(SWITCH) +- mode |= SDL_WINDOW_FULLSCREEN_DESKTOP; ++ mode |= SDL_WINDOW_FULLSCREEN; + #else + mode |= SDL_WINDOW_RESIZABLE; + #endif + +- if (mode & SDL_WINDOW_FULLSCREEN_DESKTOP) { ++ if (mode & SDL_WINDOW_FULLSCREEN) { + pixel_xres = g_DesktopWidth; + pixel_yres = g_DesktopHeight; + g_Config.bFullScreen = true; +@@ -716,7 +716,7 @@ int main(int argc, char *argv[]) { + + // Use the setting from the config when initing the window. + if (g_Config.UseFullScreen()) +- mode |= SDL_WINDOW_FULLSCREEN_DESKTOP; ++ mode |= SDL_WINDOW_FULLSCREEN; + + int x = SDL_WINDOWPOS_UNDEFINED_DISPLAY(getDisplayNumber()); + int y = SDL_WINDOWPOS_UNDEFINED; diff --git a/packages/games/emulators/PPSSPPSDL/patches/003-max-fps-setting.patch b/packages/games/emulators/PPSSPPSDL/patches/003-max-fps-setting.patch deleted file mode 100644 index f2bbdcf86..000000000 --- a/packages/games/emulators/PPSSPPSDL/patches/003-max-fps-setting.patch +++ /dev/null @@ -1,145 +0,0 @@ -diff -rupN PPSSPPSDL.orig/Core/Config.cpp PPSSPPSDL/Core/Config.cpp ---- PPSSPPSDL.orig/Core/Config.cpp 2022-07-11 09:42:33.527206786 -0400 -+++ PPSSPPSDL/Core/Config.cpp 2022-07-11 09:44:08.327266817 -0400 -@@ -873,6 +873,7 @@ static ConfigSetting graphicsSettings[] - #if defined(USING_WIN_UI) - ConfigSetting("RestartRequired", &g_Config.bRestartRequired, false, false), - #endif -+ ReportedConfigSetting("ForceMaxEmulatedFPS", &g_Config.iForceMaxEmulatedFPS, 0, true, true), - - // Most low-performance (and many high performance) mobile GPUs do not support aniso anyway so defaulting to 4 is fine. - ConfigSetting("AnisotropyLevel", &g_Config.iAnisotropyLevel, 4, true, true), -diff -rupN PPSSPPSDL.orig/Core/Config.h PPSSPPSDL/Core/Config.h ---- PPSSPPSDL.orig/Core/Config.h 2022-07-11 09:42:33.527206786 -0400 -+++ PPSSPPSDL/Core/Config.h 2022-07-11 09:44:57.431275968 -0400 -@@ -214,6 +214,7 @@ public: - bool bTexHardwareScaling; - int iFpsLimit1; - int iFpsLimit2; -+ int iForceMaxEmulatedFPS; - int iAnalogFpsLimit; - int iAnalogFpsMode; // 0 = auto, 1 = single direction, 2 = mapped to opposite - int iMaxRecent; -Binary files PPSSPPSDL.orig/Core/.Config.h.rej.swp and PPSSPPSDL/Core/.Config.h.rej.swp differ -diff -rupN PPSSPPSDL.orig/Core/HLE/sceDisplay.cpp PPSSPPSDL/Core/HLE/sceDisplay.cpp ---- PPSSPPSDL.orig/Core/HLE/sceDisplay.cpp 2022-07-11 09:42:33.531206790 -0400 -+++ PPSSPPSDL/Core/HLE/sceDisplay.cpp 2022-07-11 09:44:08.327266817 -0400 -@@ -820,8 +820,13 @@ u32 sceDisplaySetFramebuf(u32 topaddr, i - hleEatCycles(290); - - s64 delayCycles = 0; -+ -+ int MaxFPS = g_Config.iForceMaxEmulatedFPS; -+ if (MaxFPS == 0 && PSP_CoreParameter().compat.flags().ForceMax60FPS) { -+ MaxFPS = 60; -+ } - // Don't count transitions between display off and display on. -- if (topaddr != 0 && topaddr != framebuf.topaddr && framebuf.topaddr != 0 && PSP_CoreParameter().compat.flags().ForceMax60FPS) { -+ if (topaddr != 0 && topaddr != framebuf.topaddr && framebuf.topaddr != 0 && MaxFPS > 0) { - // sceDisplaySetFramebuf() isn't supposed to delay threads at all. This is a hack. - // So let's only delay when it's more than 1ms. - const s64 FLIP_DELAY_CYCLES_MIN = usToCycles(1000); -@@ -845,7 +850,7 @@ u32 sceDisplaySetFramebuf(u32 topaddr, i - } - - // 1001 to account for NTSC timing (59.94 fps.) -- u64 expected = msToCycles(1001) / 60 - LEEWAY_CYCLES_PER_FLIP; -+ u64 expected = msToCycles(1001) / MaxFPS - LEEWAY_CYCLES_PER_FLIP; - lastFlipCycles = now; - nextFlipCycles = std::max(lastFlipCycles, nextFlipCycles) + expected; - } -diff -rupN PPSSPPSDL.orig/libretro/libretro.cpp PPSSPPSDL/libretro/libretro.cpp ---- PPSSPPSDL.orig/libretro/libretro.cpp 2022-07-11 09:42:36.443209544 -0400 -+++ PPSSPPSDL/libretro/libretro.cpp 2022-07-11 09:44:08.331266818 -0400 -@@ -538,6 +538,7 @@ static RetroOption ppsspp_rendering - static RetroOption ppsspp_auto_frameskip("ppsspp_auto_frameskip", "Auto Frameskip", false); - static RetroOption ppsspp_frameskip("ppsspp_frameskip", "Frameskip", { "Off", "1", "2", "3", "4", "5", "6", "7", "8" }); - static RetroOption ppsspp_frameskiptype("ppsspp_frameskiptype", "Frameskip Type", { {"Number of frames", 0}, {"Percent of FPS", 1} }); -+static RetroOption ppsspp_force_max_fps("ppsspp_force_max_fps", "Force Max FPS", { {"Auto", 0}, {"10", 10}, {"20", 20}, {"30", 30}, {"40", 40}, {"50", 50}, {"60", 60}, {"70", 70}, {"80", 80} }); - static RetroOption ppsspp_internal_resolution("ppsspp_internal_resolution", "Internal Resolution (Restart)", 1, { "480x272", "960x544", "1440x816", "1920x1088", "2400x1360", "2880x1632", "3360x1904", "3840x2176", "4320x2448", "4800x2720" }); - static RetroOption ppsspp_button_preference("ppsspp_button_preference", "Confirmation Button", { { "Cross", PSP_SYSTEMPARAM_BUTTON_CROSS }, { "Circle", PSP_SYSTEMPARAM_BUTTON_CIRCLE } }); - static RetroOption ppsspp_fast_memory("ppsspp_fast_memory", "Fast Memory (Speedhack)", true); -@@ -690,6 +691,7 @@ void retro_set_environment(retro_environ - vars.push_back(ppsspp_frameskip.GetOptions()); - vars.push_back(ppsspp_frameskiptype.GetOptions()); - vars.push_back(ppsspp_frame_duplication.GetOptions()); -+ vars.push_back(ppsspp_force_max_fps.GetOptions()); - vars.push_back(ppsspp_detect_vsync_swap_interval.GetOptions()); - vars.push_back(ppsspp_vertex_cache.GetOptions()); - vars.push_back(ppsspp_fast_memory.GetOptions()); -@@ -820,6 +822,7 @@ static void check_variables(CoreParamete - ppsspp_cheats.Update(&g_Config.bEnableCheats); - ppsspp_locked_cpu_speed.Update(&g_Config.iLockedCPUSpeed); - ppsspp_rendering_mode.Update(&g_Config.iRenderingMode); -+ ppsspp_force_max_fps.Update(&g_Config.iForceMaxEmulatedFPS); - ppsspp_cpu_core.Update((CPUCore *)&g_Config.iCpuCore); - ppsspp_io_timing_method.Update((IOTimingMethods *)&g_Config.iIOTimingMethod); - ppsspp_lower_resolution_for_effects.Update(&g_Config.iBloomHack); -diff -rupN PPSSPPSDL.orig/UI/GameSettingsScreen.cpp PPSSPPSDL/UI/GameSettingsScreen.cpp ---- PPSSPPSDL.orig/UI/GameSettingsScreen.cpp 2022-07-11 09:42:33.551206809 -0400 -+++ PPSSPPSDL/UI/GameSettingsScreen.cpp 2022-07-11 09:44:08.331266818 -0400 -@@ -200,6 +200,8 @@ void GameSettingsScreen::CreateViews() { - g_Config.loadGameConfig(gameID_, info->GetTitle()); - } - -+ maxFpsChoice = (g_Config.iForceMaxEmulatedFPS / 10); -+ - iAlternateSpeedPercent1_ = g_Config.iFpsLimit1 < 0 ? -1 : (g_Config.iFpsLimit1 * 100) / 60; - iAlternateSpeedPercent2_ = g_Config.iFpsLimit2 < 0 ? -1 : (g_Config.iFpsLimit2 * 100) / 60; - iAlternateSpeedPercentAnalog_ = (g_Config.iAnalogFpsLimit * 100) / 60; -@@ -326,7 +328,10 @@ void GameSettingsScreen::CreateViews() { - graphicsSettings->Add(new PopupMultiChoice(&g_Config.iFrameSkipType, gr->T("Frame Skipping Type"), frameSkipType, 0, ARRAY_SIZE(frameSkipType), gr->GetName(), screenManager())); - frameSkipAuto_ = graphicsSettings->Add(new CheckBox(&g_Config.bAutoFrameSkip, gr->T("Auto FrameSkip"))); - frameSkipAuto_->OnClick.Handle(this, &GameSettingsScreen::OnAutoFrameskip); -- -+ static const char *maxFps[] = {"Auto", "10", "20", "30", "40", "50", "60", "70", "80"}; -+ maxFps_ = graphicsSettings->Add(new PopupMultiChoice(&maxFpsChoice, gr->T("Force Max FPS (lower helps GoW)"), maxFps, 0, ARRAY_SIZE(maxFps), gr->GetName(), screenManager())); -+ maxFps_->OnChoice.Handle(this, &GameSettingsScreen::OnForceMaxEmulatedFPS); -+ - PopupSliderChoice *altSpeed1 = graphicsSettings->Add(new PopupSliderChoice(&iAlternateSpeedPercent1_, 0, 1000, gr->T("Alternative Speed", "Alternative speed"), 5, screenManager(), gr->T("%, 0:unlimited"))); - altSpeed1->SetFormat("%i%%"); - altSpeed1->SetZeroLabel(gr->T("Unlimited")); -@@ -1295,6 +1300,16 @@ UI::EventReturn GameSettingsScreen::OnDi - return UI::EVENT_DONE; - }; - -+UI::EventReturn GameSettingsScreen::OnForceMaxEmulatedFPS(UI::EventParams &e) { -+ if (maxFpsChoice > 0) { -+ g_Config.iForceMaxEmulatedFPS = (maxFpsChoice * 10); -+ } else { -+ g_Config.iForceMaxEmulatedFPS = 0; -+ } -+ Reporting::UpdateConfig(); -+ return UI::EVENT_DONE; -+} -+ - UI::EventReturn GameSettingsScreen::OnResolutionChange(UI::EventParams &e) { - if (g_Config.iAndroidHwScale == 1) { - RecreateActivity(); -diff -rupN PPSSPPSDL.orig/UI/GameSettingsScreen.h PPSSPPSDL/UI/GameSettingsScreen.h ---- PPSSPPSDL.orig/UI/GameSettingsScreen.h 2022-07-11 09:42:33.551206809 -0400 -+++ PPSSPPSDL/UI/GameSettingsScreen.h 2022-07-11 09:44:08.331266818 -0400 -@@ -59,6 +59,7 @@ private: - UI::Choice *displayEditor_; - UI::Choice *backgroundChoice_ = nullptr; - UI::PopupMultiChoice *resolutionChoice_; -+ UI::PopupMultiChoice *maxFps_; - UI::CheckBox *frameSkipAuto_; - SettingInfoMessage *settingInfo_; - UI::Choice *clearSearchChoice_; -@@ -107,6 +108,7 @@ private: - UI::EventReturn OnFullscreenMultiChange(UI::EventParams &e); - UI::EventReturn OnDisplayLayoutEditor(UI::EventParams &e); - UI::EventReturn OnResolutionChange(UI::EventParams &e); -+ UI::EventReturn OnForceMaxEmulatedFPS(UI::EventParams &e); - UI::EventReturn OnHwScaleChange(UI::EventParams &e); - UI::EventReturn OnRestoreDefaultSettings(UI::EventParams &e); - UI::EventReturn OnRenderingMode(UI::EventParams &e); -@@ -135,6 +137,7 @@ private: - UI::EventReturn OnClearSearchFilter(UI::EventParams &e); - - // Temporaries to convert setting types, cache enabled, etc. -+ int maxFpsChoice; - int iAlternateSpeedPercent1_; - int iAlternateSpeedPercent2_; - int iAlternateSpeedPercentAnalog_; diff --git a/packages/games/emulators/PPSSPPSDL/sources/handheld/controls.ini b/packages/games/emulators/PPSSPPSDL/sources/handheld/controls.ini new file mode 100644 index 000000000..e550ff3aa --- /dev/null +++ b/packages/games/emulators/PPSSPPSDL/sources/handheld/controls.ini @@ -0,0 +1,23 @@ +[ControlMapping] +Up = 10-19,1-19 +Down = 10-20,1-20 +Left = 10-21,1-21 +Right = 10-22,1-22 +Circle = 10-190,1-52,10-4004 +Cross = 10-189,1-54,10-4006 +Square = 10-191,1-29,10-4005 +Triangle = 10-188,1-47,10-4007 +Start = 10-197,1-62 +Select = 10-196,1-66 +L = 10-193,1-45 +R = 10-192,1-51 +An.Up = 10-4003 +An.Down = 10-4002 +An.Left = 10-4001 +An.Right = 10-4000 +Analog limiter = 1-60 +RapidFire = 1-59 +Fast-forward = 1-61 +SpeedToggle = 1-68 +Pause = 1-111,10-106,10-107 +Rewind = 1-67 diff --git a/packages/games/emulators/PPSSPPSDL/sources/handheld/ppsspp.ini b/packages/games/emulators/PPSSPPSDL/sources/handheld/ppsspp.ini new file mode 100755 index 000000000..f90ec964e --- /dev/null +++ b/packages/games/emulators/PPSSPPSDL/sources/handheld/ppsspp.ini @@ -0,0 +1,512 @@ +[General] +FirstRun = False +RunCount = 16 +Enable Logging = False +AutoRun = True +Browse = False +IgnoreBadMemAccess = False +CurrentDirectory = /storage/roms/psp +ShowDebuggerOnLoad = False +CheckForNewVersion = True +Language = en_US +ForceLagSync = False +DiscordPresence = False +NumWorkerThreads = 8 +AutoLoadSaveState = 0 +EnableCheats = True +CwCheatRefreshRate = 77 +ScreenshotsAsPNG = False +UseFFV1 = False +DumpFrames = False +DumpAudio = False +SaveLoadResetsAVdumping = False +StateSlot = 0 +EnableStateUndo = True +RewindFlipFrequency = 0 +GridView1 = True +GridView2 = True +GridView3 = False +ComboMode = 0 +ReportingHost = default +AutoSaveSymbolMap = False +CacheFullIsoInRam = False +RemoteISOPort = 0 +LastRemoteISOServer = +LastRemoteISOPort = 0 +RemoteISOManualConfig = False +RemoteShareOnStartup = False +RemoteISOSubdir = / +RemoteDebuggerOnStartup = False +InternalScreenRotation = 1 +PauseWhenMinimized = False +DumpDecryptedEboots = False +MemStickInserted = True +ForceLagSync2 = False +UISound = True +CwCheatScrollPosition = 0.000000 +DumpVideoOutput = False +ShowRegionOnGameIcon = False +ShowIDOnGameIcon = False +GameGridScale = 1.000000 +RightAnalogUp = 0 +RightAnalogDown = 0 +RightAnalogLeft = 0 +RightAnalogRight = 0 +RightAnalogPress = 0 +RightAnalogCustom = False +LoadPlugins = False +GameListScrollPosition = 0.000000 +StateLoadUndoGame = NA +StateUndoLastSaveGame = NA +StateUndoLastSaveSlot = -5 +ShowOnScreenMessage = True +RightAnalogDisableDiagonal = False +SwipeUp = 0 +SwipeDown = 0 +SwipeLeft = 0 +SwipeRight = 0 +SwipeSensitivity = 1.000000 +SwipeSmoothing = 0.300000 +DoubleTapGesture = 0 +GestureControlEnabled = False +BackgroundAnimation = 1 +EnablePlugins = True +[CPU] +CPUCore = 1 +SeparateSASThread = True +SeparateIOThread = True +IOTimingMethod = 0 +FastMemoryAccess = True +FuncReplacements = True +HideSlowWarnings = False +HideStateWarnings = False +PreloadFunctions = False +CPUSpeed = 0 +JitDisableFlags = 0x00000000 +FunctionReplacements = True +[Graphics] +EnableCardboard = False +CardboardScreenSize = 50 +CardboardXShift = 0 +CardboardYShift = 0 +ShowFPSCounter = 3 +GraphicsBackend = 0 (OPENGL) +FailedGraphicsBackends = +VulkanDevice = +RenderingMode = 0 +SoftwareRenderer = False +HardwareTransform = True +SoftwareSkinning = True +TextureFiltering = 1 +BufferFiltering = 1 +InternalResolution = 0 +AndroidHwScale = 1 +HighQualityDepth = 1 +FrameSkip = 0 +FrameSkipType = 0 +AutoFrameSkip = False +FrameRate = 0 +FrameRate2 = -1 +FrameSkipUnthrottle = True +ForceMaxEmulatedFPS = 30 +AnisotropyLevel = 0 +VertexDecCache = True +TextureBackoffCache = True +TextureSecondaryCache = False +FullScreen = True +FullScreenMulti = False +SmallDisplayZoomType = 2 +SmallDisplayOffsetX = 0.500000 +SmallDisplayOffsetY = 0.500000 +SmallDisplayZoomLevel = 1.000000 +ImmersiveMode = False +SustainedPerformanceMode = False +TrueColor = True +ReplaceTextures = True +SaveNewTextures = False +IgnoreTextureFilenames = True +TexScalingLevel = 1 +TexScalingType = 3 +TexDeposterize = False +VSyncInterval = True +DisableStencilTest = False +BloomHack = 2 +TimerHack = False +SplineBezierQuality = 0 +HardwareTessellation = False +PostShader = Off +MemBlockTransferGPU = True +DisableSlowFramebufEffects = True +FragmentTestCache = True +LogFrameDrops = False +EnableCardboardVR = False +DisabledGraphicsBackends = +CameraDevice = +UnthrottleMode = CONTINUOUS +IgnoreScreenInsets = True +TexHardwareScaling = False +TextureShader = Off +InflightFrames = 2 +RenderDuplicateFrames = True +ShaderChainRequires60FPS = False +ClearFramebuffersOnFirstUseHack = False +SoftwareRendererJit = True +UnthrottlingMode = CONTINUOUS +ReplaceTexturesAllowLate = True +[Sound] +Enable = True +AudioBackend = 0 +AudioLatency = 1 +ExtraAudioBuffering = False +SoundSpeedHack = False +AudioResampler = False +GlobalVolume = 10 +AltSpeedVolume = -1 +AudioDevice = es8316, ff890000.i2s-ES8316 HiFi ES8316 HiFi-0 +AutoAudioDevice = False +ReverbVolume = 10 +[Control] +HapticFeedback = False +ShowTouchCross = True +ShowTouchCircle = True +ShowTouchSquare = True +ShowTouchTriangle = True +ComboKey0Mapping = 0 +ComboKey1Mapping = 0 +ComboKey2Mapping = 0 +ComboKey3Mapping = 0 +ComboKey4Mapping = 0 +ShowTouchPause = False +ShowTouchControls = False +DisableDpadDiagonals = False +GamepadOnlyFocused = False +TouchButtonStyle = 1 +TouchButtonOpacity = 65 +TouchButtonHideSeconds = 20 +AutoCenterTouchAnalog = False +ActionButtonSpacing2 = 1.000000 +ActionButtonCenterX = 0.937500 +ActionButtonCenterY = 0.900000 +ActionButtonScale = 1.150000 +DPadX = 0.074479 +DPadY = 0.760000 +DPadScale = 1.150000 +ShowTouchDpad = True +DPadSpacing = 1.000000 +StartKeyX = 0.559896 +StartKeyY = 0.942500 +StartKeyScale = 1.150000 +ShowTouchStart = True +SelectKeyX = 0.500000 +SelectKeyY = 0.942500 +SelectKeyScale = 1.150000 +ShowTouchSelect = True +UnthrottleKeyX = 0.440104 +UnthrottleKeyY = 0.942500 +UnthrottleKeyScale = 1.150000 +ShowTouchUnthrottle = True +LKeyX = 0.035937 +LKeyY = 0.635833 +LKeyScale = 1.150000 +ShowTouchLTrigger = True +RKeyX = 0.964063 +RKeyY = 0.635833 +RKeyScale = 1.150000 +ShowTouchRTrigger = True +AnalogStickX = 0.074479 +AnalogStickY = 0.923333 +AnalogStickScale = 1.150000 +ShowAnalogStick = True +fcombo0X = 0.571875 +fcombo0Y = 0.500000 +comboKeyScale0 = 1.150000 +ShowComboKey0 = False +fcombo1X = 0.631771 +fcombo1Y = 0.500000 +comboKeyScale1 = 1.150000 +ShowComboKey1 = False +fcombo2X = 0.691667 +fcombo2Y = 0.500000 +comboKeyScale2 = 1.150000 +ShowComboKey2 = False +fcombo3X = 0.571875 +fcombo3Y = 0.333333 +comboKeyScale3 = 1.150000 +ShowComboKey3 = False +fcombo4X = 0.631771 +fcombo4Y = 0.333333 +comboKeyScale4 = 1.150000 +ShowComboKey4 = False +Speed1KeyX = 0.440104 +Speed1KeyY = 0.885000 +Speed1KeyScale = 1.150000 +ShowSpeed1Key = False +Speed2KeyX = 0.500000 +Speed2KeyY = 0.885000 +Speed2KeyScale = 1.150000 +ShowSpeed2Key = False +XInputAnalogSensitivity = 1.000000 +AnalogLimiterDeadzone = 0.600000 +UseMouse = False +MapMouse = False +ConfineMap = False +MouseSensitivity = 0.100000 +MouseSmoothing = 0.900000 +ComboKey0Toggle = False +ComboKey1Toggle = False +ComboKey2Toggle = False +ComboKey3Toggle = False +ComboKey4Toggle = False +AnalogAutoRotSpeed = 15.000000 +TouchSnapToGrid = False +TouchSnapGridSize = 64 +RightAnalogStickX = 0.875000 +RightAnalogStickY = 0.856250 +RightAnalogStickScale = 1.150000 +ShowRightAnalogStick = False +RapidFireKeyX = 0.619792 +RapidFireKeyY = 0.784375 +RapidFireKeyScale = 1.150000 +ShowRapidFireKey = False +AnalogRotationCWKeyX = 0.500000 +AnalogRotationKeyCWY = 0.676562 +AnalogRotationKeyCWScale = 1.150000 +ShowAnalogRotationCWKey = False +AnalogRotationCCWKeyX = 0.380208 +AnalogRotationKeyCCWY = 0.676562 +AnalogRotationKeyCCWScale = 1.150000 +ShowAnalogRotationCCWKey = False +Custom0Mapping = 0x0000000000000000 +Custom0Image = 0 +Custom0Shape = 0 +Custom0Toggle = False +Custom1Mapping = 0x0000000000000000 +Custom1Image = 1 +Custom1Shape = 0 +Custom1Toggle = False +Custom2Mapping = 0x0000000000000000 +Custom2Image = 2 +Custom2Shape = 0 +Custom2Toggle = False +Custom3Mapping = 0x0000000000000000 +Custom3Image = 3 +Custom3Shape = 0 +Custom3Toggle = False +Custom4Mapping = 0x0000000000000000 +Custom4Image = 4 +Custom4Shape = 0 +Custom4Toggle = False +Custom5Mapping = 0x0000000000000000 +Custom5Image = 0 +Custom5Shape = 1 +Custom5Toggle = False +Custom6Mapping = 0x0000000000000000 +Custom6Image = 1 +Custom6Shape = 1 +Custom6Toggle = False +Custom7Mapping = 0x0000000000000000 +Custom7Image = 2 +Custom7Shape = 1 +Custom7Toggle = False +Custom8Mapping = 0x0000000000000000 +Custom8Image = 3 +Custom8Shape = 1 +Custom8Toggle = False +Custom9Mapping = 0x0000000000000000 +Custom9Image = 4 +Custom9Shape = 1 +Custom9Toggle = False +fcombo5X = 0.428125 +fcombo5Y = 0.500000 +comboKeyScale5 = 1.150000 +ShowComboKey5 = False +fcombo6X = 0.368229 +fcombo6Y = 0.500000 +comboKeyScale6 = 1.150000 +ShowComboKey6 = False +fcombo7X = 0.308333 +fcombo7Y = 0.500000 +comboKeyScale7 = 1.150000 +ShowComboKey7 = False +fcombo8X = 0.428125 +fcombo8Y = 0.333333 +comboKeyScale8 = 1.150000 +ShowComboKey8 = False +fcombo9X = 0.368229 +fcombo9Y = 0.333333 +comboKeyScale9 = 1.150000 +ShowComboKey9 = False +AnalogDeadzone = 0.150000 +AnalogInverseDeadzone = 0.000000 +AnalogSensitivity = 1.100000 +AnalogIsCircular = False +LeftStickHeadScale = 1.000000 +RightStickHeadScale = 1.000000 +HideStickBackground = False +SystemControls = True +[Network] +EnableWlan = False +EnableAdhocServer = False +proAdhocServer = myneighborsushicat.com +PortOffset = 0 +MinTimeout = 1 +TCPNoDelay = False +EnableUPnP = False +UPnPUseOriginalPort = True +EnableNetworkChat = False +ChatButtonPosition = 0 +ChatScreenPosition = 0 +EnableQuickChat = True +QuickChat1 = Quick Chat 1 +QuickChat2 = Quick Chat 2 +QuickChat3 = Quick Chat 3 +QuickChat4 = Quick Chat 4 +QuickChat5 = Quick Chat 5 +ForcedFirstConnect = False +[SystemParam] +PSPModel = 0 +PSPFirmwareVersion = 660 +NickName = PPSSPP +proAdhocServer = black-seraph.com +MacAddress = 4e:7a:78:d9:49:32 +PortOffset = 0 +Language = 1 +TimeFormat = 1 +DateFormat = 1 +TimeZone = 0 +DayLightSavings = False +ButtonPreference = 1 +LockParentalLevel = 0 +WlanAdhocChannel = 0 +WlanPowerSave = False +EncryptSave = True +SavedataUpgradeVersion = True +ParamTimeFormat = 0 +ParamDateFormat = 0 +MemStickSize = 16 +[Debugger] +DisasmWindowX = -1 +DisasmWindowY = -1 +DisasmWindowW = -1 +DisasmWindowH = -1 +GEWindowX = -1 +GEWindowY = -1 +GEWindowW = -1 +GEWindowH = -1 +ConsoleWindowX = -1 +ConsoleWindowY = -1 +FontWidth = 8 +FontHeight = 12 +DisplayStatusBar = True +ShowBottomTabTitles = True +ShowDeveloperMenu = False +SkipDeadbeefFilling = False +FuncHashMap = False +DrawFrameGraph = False +MemInfoDetailed = False +[Upgrade] +UpgradeMessage = +UpgradeVersion = 1.12.0 +DismissedVersion = +[Theme] +ItemStyleFg = 0xffffffff +ItemStyleBg = 0x55000000 +ItemFocusedStyleFg = 0xffffffff +ItemFocusedStyleBg = 0xffedc24c +ItemDownStyleFg = 0xffffffff +ItemDownStyleBg = 0xffbd9939 +ItemDisabledStyleFg = 0x80eeeeee +ItemDisabledStyleBg = 0x55e0d4af +ItemHighlightedStyleFg = 0xffffffff +ItemHighlightedStyleBg = 0x55bdbb39 +ButtonStyleFg = 0xffffffff +ButtonStyleBg = 0x55000000 +ButtonFocusedStyleFg = 0xffffffff +ButtonFocusedStyleBg = 0xffedc24c +ButtonDownStyleFg = 0xffffffff +ButtonDownStyleBg = 0xffbd9939 +ButtonDisabledStyleFg = 0x80eeeeee +ButtonDisabledStyleBg = 0x55e0d4af +ButtonHighlightedStyleFg = 0xffffffff +ButtonHighlightedStyleBg = 0x55bdbb39 +HeaderStyleFg = 0xffffffff +InfoStyleFg = 0xffffffff +InfoStyleBg = 0x00000000 +PopupTitleStyleFg = 0xffe3be59 +PopupStyleFg = 0xffffffff +PopupStyleBg = 0xff303030 +[Recent] +MaxRecent = 30 +[Log] +SYSTEMEnabled = True +SYSTEMLevel = 4 +BOOTEnabled = True +BOOTLevel = 4 +COMMONEnabled = True +COMMONLevel = 4 +CPUEnabled = True +CPULevel = 4 +FILESYSEnabled = True +FILESYSLevel = 4 +G3DEnabled = True +G3DLevel = 4 +HLEEnabled = True +HLELevel = 4 +JITEnabled = True +JITLevel = 4 +LOADEREnabled = True +LOADERLevel = 4 +MEEnabled = True +MELevel = 4 +MEMMAPEnabled = True +MEMMAPLevel = 4 +SASMIXEnabled = True +SASMIXLevel = 4 +SAVESTATEEnabled = True +SAVESTATELevel = 4 +FRAMEBUFEnabled = True +FRAMEBUFLevel = 4 +SCEAUDIOEnabled = True +SCEAUDIOLevel = 4 +SCECTRLEnabled = True +SCECTRLLevel = 4 +SCEDISPEnabled = True +SCEDISPLevel = 4 +SCEFONTEnabled = True +SCEFONTLevel = 4 +SCEGEEnabled = True +SCEGELevel = 4 +SCEINTCEnabled = True +SCEINTCLevel = 4 +SCEIOEnabled = True +SCEIOLevel = 4 +SCEKERNELEnabled = True +SCEKERNELLevel = 4 +SCEMODULEEnabled = True +SCEMODULELevel = 4 +SCENETEnabled = True +SCENETLevel = 4 +SCERTCEnabled = True +SCERTCLevel = 4 +SCESASEnabled = True +SCESASLevel = 4 +SCEUTILEnabled = True +SCEUTILLevel = 4 +SCEMISCEnabled = True +SCEMISCLevel = 4 +AUDIOEnabled = True +AUDIOLevel = 2 +IOEnabled = True +IOLevel = 2 +[PostShaderSetting] +BloomSettingValue1 = 0.600000 +BloomSettingValue2 = 0.500000 +CRTSettingValue1 = 1.000000 +CartoonSettingValue1 = 0.500000 +ColorCorrectionSettingValue1 = 1.000000 +ColorCorrectionSettingValue2 = 1.000000 +ColorCorrectionSettingValue3 = 1.000000 +ColorCorrectionSettingValue4 = 1.000000 +ScanlinesSettingValue1 = 1.000000 +ScanlinesSettingValue2 = 0.500000 +SharpenSettingValue1 = 1.500000 diff --git a/packages/games/emulators/amiberry/package.mk b/packages/games/emulators/amiberry/package.mk index 22dbd9394..f28157dec 100644 --- a/packages/games/emulators/amiberry/package.mk +++ b/packages/games/emulators/amiberry/package.mk @@ -3,7 +3,7 @@ PKG_NAME="amiberry" PKG_ARCH="arm aarch64" -PKG_VERSION="bd47107842453368024b4a76530159e64bd30ab8" +PKG_VERSION="59d6cc9986f41b59f78f5c30d2d98ed3b955d39e" PKG_LICENSE="GPLv3" PKG_SITE="https://github.com/midwan/amiberry" PKG_URL="${PKG_SITE}.git" diff --git a/packages/games/emulators/dolphinsa/config/Dolphin.ini b/packages/games/emulators/dolphinsa/config/RG353P/Dolphin.ini similarity index 100% rename from packages/games/emulators/dolphinsa/config/Dolphin.ini rename to packages/games/emulators/dolphinsa/config/RG353P/Dolphin.ini diff --git a/packages/games/emulators/dolphinsa/config/GCPadNew.ini b/packages/games/emulators/dolphinsa/config/RG353P/GCPadNew.ini similarity index 100% rename from packages/games/emulators/dolphinsa/config/GCPadNew.ini rename to packages/games/emulators/dolphinsa/config/RG353P/GCPadNew.ini diff --git a/packages/games/emulators/dolphinsa/config/GFX.ini b/packages/games/emulators/dolphinsa/config/RG353P/GFX.ini similarity index 100% rename from packages/games/emulators/dolphinsa/config/GFX.ini rename to packages/games/emulators/dolphinsa/config/RG353P/GFX.ini diff --git a/packages/games/emulators/dolphinsa/config/RG503 b/packages/games/emulators/dolphinsa/config/RG503 new file mode 120000 index 000000000..c4dcde2df --- /dev/null +++ b/packages/games/emulators/dolphinsa/config/RG503 @@ -0,0 +1 @@ +RG353P \ No newline at end of file diff --git a/packages/games/emulators/dolphinsa/config/RG552/Dolphin.ini b/packages/games/emulators/dolphinsa/config/RG552/Dolphin.ini new file mode 100644 index 000000000..078dd73e0 --- /dev/null +++ b/packages/games/emulators/dolphinsa/config/RG552/Dolphin.ini @@ -0,0 +1,148 @@ +[General] +LastFilename = +ShowLag = False +ShowFrameCount = False +ISOPaths = 1 +RecursiveISOPaths = False +NANDRootPath = +WirelessMac = +[Interface] +ConfirmStop = True +UsePanicHandlers = True +OnScreenDisplayMessages = True +HideCursor = False +AutoHideCursor = False +MainWindowPosX = 403 +MainWindowPosY = 148 +MainWindowWidth = 800 +MainWindowHeight = 600 +Language = 0 +ShowToolbar = True +ShowStatusbar = True +ShowLogWindow = False +ShowLogConfigWindow = False +ExtendedFPSInfo = False +ThemeName40 = Clean Blue +PauseOnFocusLost = False +[Display] +FullscreenResolution = Auto +Fullscreen = True +RenderToMain = False +RenderWindowXPos = -1 +RenderWindowYPos = -1 +RenderWindowWidth = 640 +RenderWindowHeight = 480 +RenderWindowAutoSize = False +KeepWindowOnTop = False +ProgressiveScan = False +PAL60 = True +DisableScreenSaver = True +ForceNTSCJ = False +[GameList] +ListDrives = False +ListWad = True +ListElfDol = True +ListWii = True +ListGC = True +ListJap = True +ListPal = True +ListUsa = True +ListAustralia = True +ListFrance = True +ListGermany = True +ListItaly = True +ListKorea = True +ListNetherlands = True +ListRussia = True +ListSpain = True +ListTaiwan = True +ListWorld = True +ListUnknown = True +ListSort = 3 +ListSortSecondary = 0 +ColorCompressed = True +ColumnPlatform = True +ColumnBanner = True +ColumnNotes = True +ColumnFileName = False +ColumnID = False +ColumnRegion = True +ColumnSize = True +ColumnState = True +[Core] +HLE_BS2 = False +TimingVariance = 40 +CPUCore = 4 +Fastmem = True +CPUThread = True +DSPHLE = True +SkipIdle = True +SyncOnSkipIdle = True +SyncGPU = False +SyncGpuMaxDistance = 200000 +SyncGpuMinDistance = -200000 +SyncGpuOverclock = 1.00000000 +FPRF = False +AccurateNaNs = False +DefaultISO = +DVDRoot = +Apploader = +EnableCheats = True +SelectedLanguage = 0 +OverrideGCLang = False +DPL2Decoder = False +Latency = 2 +MemcardAPath = +MemcardBPath = +AgpCartAPath = +AgpCartBPath = +SlotA = 1 +SlotB = 255 +SerialPort1 = 255 +BBA_MAC = +SIDevice0 = 6 +AdapterRumble0 = True +SimulateKonga0 = False +SIDevice1 = 6 +AdapterRumble1 = True +SimulateKonga1 = False +SIDevice2 = 0 +AdapterRumble2 = True +SimulateKonga2 = False +SIDevice3 = 0 +AdapterRumble3 = True +SimulateKonga3 = False +WiiSDCard = False +WiiKeyboard = False +WiimoteContinuousScanning = False +WiimoteEnableSpeaker = False +RunCompareServer = False +RunCompareClient = False +EmulationSpeed = 1.00000000 +FrameSkip = 0x00000003 +Overclock = 4.00000000 +OverclockEnable = False +GFXBackend = +GPUDeterminismMode = auto +PerfMapDir = +[Movie] +PauseMovie = False +Author = +DumpFrames = False +DumpFramesSilent = False +ShowInputDisplay = False +[DSP] +EnableJIT = True +DumpAudio = False +DumpUCode = False +Backend = ALSA +Volume = 100 +CaptureLog = False +[Input] +BackgroundInput = False +[FifoPlayer] +LoopReplay = True +[Analytics] +ID = 5082f0c30a7e422b1220107f69d6c108 +Enabled = False +PermissionAsked = True diff --git a/packages/games/emulators/dolphinsa/config/RG552/GCPadNew.ini b/packages/games/emulators/dolphinsa/config/RG552/GCPadNew.ini new file mode 100644 index 000000000..8ebced2df --- /dev/null +++ b/packages/games/emulators/dolphinsa/config/RG552/GCPadNew.ini @@ -0,0 +1,29 @@ +[GCPad1] +Device = evdev/0/retrogame_joypad +Buttons/A = Button 0 +Buttons/B = Button 1 +Buttons/Start = Button 9 +Buttons/X = Button 3 +Buttons/Y = Button 2 +Buttons/Z = Button 7 +Buttons/Hotkey = Button 8 +C-Stick/Dead Zone = 25.000000000000000 +C-Stick/Down = Axis 3+ +C-Stick/Left = Axis 2- +C-Stick/Modifier = Control_L +C-Stick/Modifier/Range = 50.000000000000000 +C-Stick/Right = Axis 2+ +C-Stick/Up = Axis 3- +D-Pad/Down = Button 14 +D-Pad/Left = Button 15 +D-Pad/Right = Button 16 +D-Pad/Up = Button 13 +Main Stick/Dead Zone = 25.000000000000000 +Main Stick/Down = Axis 1+ +Main Stick/Left = Axis 0- +Main Stick/Modifier = Shift_L +Main Stick/Modifier/Range = 50.000000000000000 +Main Stick/Right = Axis 0+ +Main Stick/Up = Axis 1- +Triggers/L = Button 4 +Triggers/R = Button 5 diff --git a/packages/games/emulators/dolphinsa/config/RG552/GFX.ini b/packages/games/emulators/dolphinsa/config/RG552/GFX.ini new file mode 100644 index 000000000..52a5d240d --- /dev/null +++ b/packages/games/emulators/dolphinsa/config/RG552/GFX.ini @@ -0,0 +1,55 @@ +[Hardware] +VSync = False +Adapter = 0 +[Settings] +AspectRatio = 2 +Crop = False +wideScreenHack = False +UseXFB = False +UseRealXFB = False +SafeTextureCacheColorSamples = 128 +ShowFPS = False +LogRenderTimeToFile = False +OverlayStats = False +OverlayProjStats = False +DumpTextures = False +HiresTextures = False +ConvertHiresTextures = False +CacheHiresTextures = False +DumpEFBTarget = False +FreeLook = False +UseFFV1 = False +EnablePixelLighting = False +FastDepthCalc = True +MSAA = 1 +SSAA = False +EFBScale = 2 +TexFmtOverlayEnable = False +TexFmtOverlayCenter = False +Wireframe = False +DisableFog = False +EnableShaderDebugging = False +BorderlessFullscreen = False +SWZComploc = True +SWZFreeze = True +SWDumpObjects = False +SWDumpTevStages = False +SWDumpTevTexFetches = False +SWDrawStart = 0 +SWDrawEnd = 100000 +[Enhancements] +ForceFiltering = False +MaxAnisotropy = 0 +PostProcessingShader = +[Stereoscopy] +StereoMode = 0 +StereoDepth = 20 +StereoConvergencePercentage = 100 +StereoSwapEyes = False +[Hacks] +EFBAccessEnable = False +BBoxEnable = False +ForceProgressive = True +EFBToTextureEnable = True +EFBScaledCopy = False +EFBEmulateFormatChanges = False diff --git a/packages/games/emulators/dolphinsa/config/handheld/Dolphin.ini b/packages/games/emulators/dolphinsa/config/handheld/Dolphin.ini new file mode 100644 index 000000000..078dd73e0 --- /dev/null +++ b/packages/games/emulators/dolphinsa/config/handheld/Dolphin.ini @@ -0,0 +1,148 @@ +[General] +LastFilename = +ShowLag = False +ShowFrameCount = False +ISOPaths = 1 +RecursiveISOPaths = False +NANDRootPath = +WirelessMac = +[Interface] +ConfirmStop = True +UsePanicHandlers = True +OnScreenDisplayMessages = True +HideCursor = False +AutoHideCursor = False +MainWindowPosX = 403 +MainWindowPosY = 148 +MainWindowWidth = 800 +MainWindowHeight = 600 +Language = 0 +ShowToolbar = True +ShowStatusbar = True +ShowLogWindow = False +ShowLogConfigWindow = False +ExtendedFPSInfo = False +ThemeName40 = Clean Blue +PauseOnFocusLost = False +[Display] +FullscreenResolution = Auto +Fullscreen = True +RenderToMain = False +RenderWindowXPos = -1 +RenderWindowYPos = -1 +RenderWindowWidth = 640 +RenderWindowHeight = 480 +RenderWindowAutoSize = False +KeepWindowOnTop = False +ProgressiveScan = False +PAL60 = True +DisableScreenSaver = True +ForceNTSCJ = False +[GameList] +ListDrives = False +ListWad = True +ListElfDol = True +ListWii = True +ListGC = True +ListJap = True +ListPal = True +ListUsa = True +ListAustralia = True +ListFrance = True +ListGermany = True +ListItaly = True +ListKorea = True +ListNetherlands = True +ListRussia = True +ListSpain = True +ListTaiwan = True +ListWorld = True +ListUnknown = True +ListSort = 3 +ListSortSecondary = 0 +ColorCompressed = True +ColumnPlatform = True +ColumnBanner = True +ColumnNotes = True +ColumnFileName = False +ColumnID = False +ColumnRegion = True +ColumnSize = True +ColumnState = True +[Core] +HLE_BS2 = False +TimingVariance = 40 +CPUCore = 4 +Fastmem = True +CPUThread = True +DSPHLE = True +SkipIdle = True +SyncOnSkipIdle = True +SyncGPU = False +SyncGpuMaxDistance = 200000 +SyncGpuMinDistance = -200000 +SyncGpuOverclock = 1.00000000 +FPRF = False +AccurateNaNs = False +DefaultISO = +DVDRoot = +Apploader = +EnableCheats = True +SelectedLanguage = 0 +OverrideGCLang = False +DPL2Decoder = False +Latency = 2 +MemcardAPath = +MemcardBPath = +AgpCartAPath = +AgpCartBPath = +SlotA = 1 +SlotB = 255 +SerialPort1 = 255 +BBA_MAC = +SIDevice0 = 6 +AdapterRumble0 = True +SimulateKonga0 = False +SIDevice1 = 6 +AdapterRumble1 = True +SimulateKonga1 = False +SIDevice2 = 0 +AdapterRumble2 = True +SimulateKonga2 = False +SIDevice3 = 0 +AdapterRumble3 = True +SimulateKonga3 = False +WiiSDCard = False +WiiKeyboard = False +WiimoteContinuousScanning = False +WiimoteEnableSpeaker = False +RunCompareServer = False +RunCompareClient = False +EmulationSpeed = 1.00000000 +FrameSkip = 0x00000003 +Overclock = 4.00000000 +OverclockEnable = False +GFXBackend = +GPUDeterminismMode = auto +PerfMapDir = +[Movie] +PauseMovie = False +Author = +DumpFrames = False +DumpFramesSilent = False +ShowInputDisplay = False +[DSP] +EnableJIT = True +DumpAudio = False +DumpUCode = False +Backend = ALSA +Volume = 100 +CaptureLog = False +[Input] +BackgroundInput = False +[FifoPlayer] +LoopReplay = True +[Analytics] +ID = 5082f0c30a7e422b1220107f69d6c108 +Enabled = False +PermissionAsked = True diff --git a/packages/games/emulators/dolphinsa/config/handheld/GCPadNew.ini b/packages/games/emulators/dolphinsa/config/handheld/GCPadNew.ini new file mode 100644 index 000000000..e2e99bf61 --- /dev/null +++ b/packages/games/emulators/dolphinsa/config/handheld/GCPadNew.ini @@ -0,0 +1,30 @@ +[GCPad1] +Device = evdev/0/Microsoft X-Box 360 pad +Buttons/A = Button 1 +Buttons/B = Button 0 +Buttons/Start = Button 7 +Buttons/X = Button 3 +Buttons/Y = Button 2 +Buttons/Z = Button 5 +C-Stick/Dead Zone = 25.000000000000000 +C-Stick/Down = Axis 4+ +C-Stick/Left = Axis 3- +C-Stick/Modifier = Control_L +C-Stick/Modifier/Range = 50.000000000000000 +C-Stick/Right = Axis 3+ +C-Stick/Up = Axis 4- +D-Pad/Down = Axis 7+ +D-Pad/Left = Axis 6- +D-Pad/Right = Axis 6+ +D-Pad/Up = Axis 7- +Main Stick/Dead Zone = 25.000000000000000 +Main Stick/Down = Axis 1+ +Main Stick/Left = Axis 0- +Main Stick/Modifier = Shift_L +Main Stick/Modifier/Range = 50.000000000000000 +Main Stick/Right = Axis 0+ +Main Stick/Up = Axis 1- +Triggers/L = Axis 2+ +Triggers/L = Axis 2+ +Triggers/R = Axis 5+ +Triggers/R = Axis 5+ diff --git a/packages/games/emulators/dolphinsa/config/handheld/GFX.ini b/packages/games/emulators/dolphinsa/config/handheld/GFX.ini new file mode 100644 index 000000000..52a5d240d --- /dev/null +++ b/packages/games/emulators/dolphinsa/config/handheld/GFX.ini @@ -0,0 +1,55 @@ +[Hardware] +VSync = False +Adapter = 0 +[Settings] +AspectRatio = 2 +Crop = False +wideScreenHack = False +UseXFB = False +UseRealXFB = False +SafeTextureCacheColorSamples = 128 +ShowFPS = False +LogRenderTimeToFile = False +OverlayStats = False +OverlayProjStats = False +DumpTextures = False +HiresTextures = False +ConvertHiresTextures = False +CacheHiresTextures = False +DumpEFBTarget = False +FreeLook = False +UseFFV1 = False +EnablePixelLighting = False +FastDepthCalc = True +MSAA = 1 +SSAA = False +EFBScale = 2 +TexFmtOverlayEnable = False +TexFmtOverlayCenter = False +Wireframe = False +DisableFog = False +EnableShaderDebugging = False +BorderlessFullscreen = False +SWZComploc = True +SWZFreeze = True +SWDumpObjects = False +SWDumpTevStages = False +SWDumpTevTexFetches = False +SWDrawStart = 0 +SWDrawEnd = 100000 +[Enhancements] +ForceFiltering = False +MaxAnisotropy = 0 +PostProcessingShader = +[Stereoscopy] +StereoMode = 0 +StereoDepth = 20 +StereoConvergencePercentage = 100 +StereoSwapEyes = False +[Hacks] +EFBAccessEnable = False +BBoxEnable = False +ForceProgressive = True +EFBToTextureEnable = True +EFBScaledCopy = False +EFBEmulateFormatChanges = False diff --git a/packages/games/emulators/dolphinsa/package.mk b/packages/games/emulators/dolphinsa/package.mk index ff50b8c69..3bcb4717b 100755 --- a/packages/games/emulators/dolphinsa/package.mk +++ b/packages/games/emulators/dolphinsa/package.mk @@ -2,36 +2,85 @@ # Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech) PKG_NAME="dolphinsa" -PKG_VERSION="0b160db48796f727311cea16072174d96b784f80" -PKG_GIT_CLONE_BRANCH="egldrm" -PKG_ARCH="aarch64" PKG_LICENSE="GPLv2" -PKG_SITE="https://github.com/rtissera/dolphin" -PKG_URL="$PKG_SITE.git" PKG_DEPENDS_TARGET="toolchain libevdev libdrm ffmpeg zlib libpng lzo libusb" PKG_LONGDESC="Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements. " -PKG_CMAKE_OPTS_TARGET=" -DENABLE_HEADLESS=ON \ - -DENABLE_EGL=ON \ - -DENABLE_EVDEV=ON \ - -DLINUX_LOCAL_DEV=ON \ - -DOpenGL_GL_PREFERENCE=GLVND \ - -DENABLE_TESTS=OFF \ - -DENABLE_LLVM=OFF \ - -DENABLE_ANALYTICS=OFF \ - -DENABLE_X11=OFF \ - -DENABLE_LTO=ON \ - -DENABLE_QT=OFF \ - -DENCODE_FRAMEDUMPS=OFF" +case ${DEVICE} in + RG552|handheld) + PKG_SITE="https://github.com/dolphin-emu/dolphin" + PKG_URL="${PKG_SITE}.git" + PKG_VERSION="d0ed09ab6fe8e19a64e8f1bb2867f9c439616d4c" + PKG_PATCH_DIRS+=" new" + ;; + *) + PKG_SITE="https://github.com/rtissera/dolphin" + PKG_URL="${PKG_SITE}.git" + PKG_VERSION="0b160db48796f727311cea16072174d96b784f80" + PKG_GIT_CLONE_BRANCH="egldrm" + PKG_PATCH_DIRS+=" legacy" + ;; +esac + +if [ ! "${OPENGL}" = "no" ]; then + PKG_DEPENDS_TARGET+=" ${OPENGL} glu libglvnd" + PKG_CONFIGURE_OPTS_TARGET+=" -DENABLE_X11=OFF \ + -DENABLE_EGL=ON" +fi + +if [ "${OPENGLES_SUPPORT}" = yes ]; then + PKG_DEPENDS_TARGET+=" ${OPENGLES}" + PKG_CONFIGURE_OPTS_TARGET+=" -DENABLE_X11=OFF \ + -DENABLE_EGL=ON" +fi + +if [ "${DISPLAYSERVER}" = "wl" ]; then + PKG_DEPENDS_TARGET+=" wayland ${WINDOWMANAGER} xorg-server xrandr libXi" + PKG_CONFIGURE_OPTS_TARGET+=" -DENABLE_X11=ON \ + -DENABLE_EGL=ON" +fi + +if [ "${VULKAN_SUPPORT}" = "yes" ] +then + PKG_DEPENDS_TARGET+=" vulkan-loader vulkan-headers" + PKG_CONFIGURE_OPTS_TARGET+=" -DENABLE_VULKAN=ON" +fi + +PKG_CMAKE_OPTS_TARGET+=" -DENABLE_HEADLESS=ON \ + -DENABLE_EVDEV=ON \ + -DTHREADS_PTHREAD_ARG=OFF \ + -DUSE_DISCORD_PRESENCE=OFF \ + -DBUILD_SHARED_LIBS=OFF \ + -DUSE_MGBA=OFF \ + -DLINUX_LOCAL_DEV=ON \ + -DENABLE_TESTS=OFF \ + -DENABLE_LLVM=OFF \ + -DENABLE_ANALYTICS=OFF \ + -DENABLE_LTO=ON \ + -DENABLE_QT=OFF \ + -DENCODE_FRAMEDUMPS=OFF" makeinstall_target() { -mkdir -p $INSTALL/usr/bin -cp -rf $PKG_BUILD/.${TARGET_NAME}/Binaries/dolphin* $INSTALL/usr/bin -cp -rf $PKG_DIR/scripts/* $INSTALL/usr/bin + mkdir -p ${INSTALL}/usr/bin + cp -rf ${PKG_BUILD}/.${TARGET_NAME}/Binaries/dolphin* ${INSTALL}/usr/bin + cp -rf ${PKG_DIR}/scripts/* ${INSTALL}/usr/bin -chmod +x ${INSTALL}/usr/bin/dolphin.sh + chmod +x ${INSTALL}/usr/bin/start_dolphin.sh -mkdir -p $INSTALL/usr/config/dolphin-emu -cp -rf $PKG_BUILD/Data/Sys/* $INSTALL/usr/config/dolphin-emu -cp -rf $PKG_DIR/config/* $INSTALL/usr/config/dolphin-emu + mkdir -p ${INSTALL}/usr/config/dolphin-emu + cp -rf ${PKG_BUILD}/Data/Sys/* ${INSTALL}/usr/config/dolphin-emu + cp -rf ${PKG_DIR}/config/${DEVICE}/* ${INSTALL}/usr/config/dolphin-emu +} + +post_install() { + case ${DEVICE} in + RG503|RG353P) + DOLPHIN_PLATFORM="drm" + ;; + *) + DOLPHIN_PLATFORM="x11" + ;; + esac + sed -e "s/@DOLPHIN_PLATFORM@/${DOLPHIN_PLATFORM}/g" \ + -i ${INSTALL}/usr/bin/start_dolphin.sh } diff --git a/packages/games/emulators/dolphinsa/patches/000-hotkeys.patch b/packages/games/emulators/dolphinsa/patches/legacy/000-hotkeys.patch similarity index 100% rename from packages/games/emulators/dolphinsa/patches/000-hotkeys.patch rename to packages/games/emulators/dolphinsa/patches/legacy/000-hotkeys.patch diff --git a/packages/games/emulators/dolphinsa/patches/new/001-padorder.patch b/packages/games/emulators/dolphinsa/patches/new/001-padorder.patch new file mode 100644 index 000000000..187a57efc --- /dev/null +++ b/packages/games/emulators/dolphinsa/patches/new/001-padorder.patch @@ -0,0 +1,111 @@ +diff --git a/Source/Core/InputCommon/ControllerInterface/evdev/evdev.cpp b/Source/Core/InputCommon/ControllerInterface/evdev/evdev.cpp +index 6df37b4..64ade4a 100644 +--- a/Source/Core/InputCommon/ControllerInterface/evdev/evdev.cpp ++++ b/Source/Core/InputCommon/ControllerInterface/evdev/evdev.cpp +@@ -392,6 +392,65 @@ void Init() + StartHotplugThread(); + } + ++struct joypad_udev_entry ++{ ++ const char *devnode; ++ struct udev_device *dev; ++}; ++ ++int isNumber(const char *s) { ++ int n; ++ ++ if(strlen(s) == 0) { ++ return 0; ++ } ++ ++ for(n=0; ndevnode, bb->devnode); ++} ++ + // Only call this when ControllerInterface::m_devices_population_mutex is locked + void PopulateDevices() + { +@@ -404,6 +463,10 @@ void PopulateDevices() + // We use udev to iterate over all /dev/input/event* devices. + // Note: the Linux kernel is currently limited to just 32 event devices. If + // this ever changes, hopefully udev will take care of this. ++ unsigned sorted_count = 0; ++ struct joypad_udev_entry sorted[64]; ++ const char* devnode; ++ int i; + + udev* const udev = udev_new(); + ASSERT_MSG(CONTROLLERINTERFACE, udev != nullptr, "Couldn't initialize libudev."); +@@ -422,11 +485,25 @@ void PopulateDevices() + + udev_device* dev = udev_device_new_from_syspath(udev, path); + +- if (const char* devnode = udev_device_get_devnode(dev)) +- AddDeviceNode(devnode); +- +- udev_device_unref(dev); ++ devnode = udev_device_get_devnode(dev); ++ if (devnode != NULL && sorted_count < 64) { ++ sorted[sorted_count].devnode = devnode; ++ sorted[sorted_count].dev = dev; ++ sorted_count++; ++ } else { ++ udev_device_unref(dev); ++ } + } ++ ++ /* Sort the udev entries by devnode name so that they are ++ * created in the proper order */ ++ qsort(sorted, sorted_count, sizeof(struct joypad_udev_entry), sort_devnodes); ++ ++ for (i = 0; i < sorted_count; i++) { ++ AddDeviceNode(sorted[i].devnode); ++ udev_device_unref(sorted[i].dev); ++ } ++ + udev_enumerate_unref(enumerate); + udev_unref(udev); + } diff --git a/packages/games/emulators/dolphinsa/patches/new/002-egldrm.patch b/packages/games/emulators/dolphinsa/patches/new/002-egldrm.patch new file mode 100644 index 000000000..7d2213cf4 --- /dev/null +++ b/packages/games/emulators/dolphinsa/patches/new/002-egldrm.patch @@ -0,0 +1,7495 @@ +From ddedd9b498cecb0a951e30868603ab7c3a46e2e7 Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Thu, 6 Aug 2020 23:57:12 +0200 +Subject: [PATCH 01/25] Add support for EGL/DRM on dolphin-nogui + +--- + CMake/FindDRM.cmake | 41 + + Source/Core/Common/CMakeLists.txt | 17 +- + Source/Core/Common/GL/GLContext.cpp | 3 + + Source/Core/Common/GL/GLInterface/EGLDRM.cpp | 1483 ++++++++++++++++++ + Source/Core/Common/GL/GLInterface/EGLDRM.h | 59 + + Source/Core/Common/WindowSystemInfo.h | 1 + + Source/Core/DolphinNoGUI/CMakeLists.txt | 1 + + Source/Core/DolphinNoGUI/MainNoGUI.cpp | 5 +- + Source/Core/DolphinNoGUI/Platform.h | 1 + + Source/Core/DolphinNoGUI/PlatformDRM.cpp | 83 + + 10 files changed, 1691 insertions(+), 3 deletions(-) + create mode 100644 CMake/FindDRM.cmake + create mode 100644 Source/Core/Common/GL/GLInterface/EGLDRM.cpp + create mode 100644 Source/Core/Common/GL/GLInterface/EGLDRM.h + create mode 100644 Source/Core/DolphinNoGUI/PlatformDRM.cpp + +diff --git a/CMake/FindDRM.cmake b/CMake/FindDRM.cmake +new file mode 100644 +index 00000000000..10d554f0fcd +--- /dev/null ++++ b/CMake/FindDRM.cmake +@@ -0,0 +1,41 @@ ++# ++# Try to find DRM library and include path. ++# Once done this will define ++# ++# DRM_FOUND ++# DRM_INCLUDE_PATH ++# DRM_LIBRARY ++# ++ ++FIND_PATH(DRM_INCLUDE_PATH ++ NAMES ++ drm.h ++ PATHS ++ ${CMAKE_INCLUDE_PATH}/include/libdrm/ ++ ~/include/libdrm/ ++ /usr/include/libdrm/ ++ /usr/local/include/libdrm/ ++ /sw/include/libdrm/ ++ /opt/local/include/libdrm/ ++ DOC "The directory where drm.h resides") ++FIND_LIBRARY(DRM_LIBRARY ++ NAMES DRM drm ++ PATHS ++ ${CMAKE_LIBRARY_PATH}/lib/ ++ ~/lib/ ++ /usr/lib64 ++ /usr/lib ++ /usr/local/lib64 ++ /usr/local/lib ++ /sw/lib ++ /opt/local/lib ++ DOC "The DRM library") ++ ++IF(DRM_INCLUDE_PATH) ++ INCLUDE_DIRECTORIES(${DRM_INCLUDE_PATH}) ++ SET(DRM_FOUND 1 CACHE STRING "Set to 1 if DRM is found, 0 otherwise") ++ELSE(DRM_INCLUDE_PATH) ++ SET(DRM_FOUND 0 CACHE STRING "Set to 1 if DRM is found, 0 otherwise") ++ENDIF(DRM_INCLUDE_PATH) ++ ++MARK_AS_ADVANCED(DRM_FOUND) +diff --git a/Source/Core/Common/CMakeLists.txt b/Source/Core/Common/CMakeLists.txt +index a805635af60..e4754f81400 100644 +--- a/Source/Core/Common/CMakeLists.txt ++++ b/Source/Core/Common/CMakeLists.txt +@@ -222,10 +222,18 @@ target_sources(common PRIVATE + ) + + if(ENABLE_EGL AND EGL_FOUND) ++ find_package(DRM MODULE QUIET) ++ + target_sources(common PRIVATE + GL/GLInterface/EGL.cpp + GL/GLInterface/EGL.h + ) ++ if (DRM_FOUND) ++ target_sources(common PRIVATE ++ GL/GLInterface/EGLDRM.cpp ++ GL/GLInterface/EGLDRM.h ++ ) ++ endif() + if(ANDROID) + target_sources(common PRIVATE + GL/GLInterface/EGLAndroid.cpp +@@ -237,8 +245,13 @@ if(ENABLE_EGL AND EGL_FOUND) + GL/GLInterface/EGLX11.h + ) + endif() +- target_include_directories(common PRIVATE ${EGL_INCLUDE_DIRS}) +- target_link_libraries(common PUBLIC ${EGL_LIBRARIES}) ++ if (DRM_FOUND) ++ target_include_directories(common PRIVATE ${EGL_INCLUDE_DIRS} ${DRM_INCLUDE_DIRS}) ++ target_link_libraries(common PUBLIC ${EGL_LIBRARIES} ${DRM_LIBRARY}) ++ else() ++ target_include_directories(common PRIVATE ${EGL_INCLUDE_DIRS}) ++ target_link_libraries(common PUBLIC ${EGL_LIBRARIES}) ++ endif() + endif() + + if(WIN32) +diff --git a/Source/Core/Common/GL/GLContext.cpp b/Source/Core/Common/GL/GLContext.cpp +index d6969bcb55b..f5adaab71ab 100644 +--- a/Source/Core/Common/GL/GLContext.cpp ++++ b/Source/Core/Common/GL/GLContext.cpp +@@ -17,6 +17,7 @@ + #endif + #if HAVE_EGL + #include "Common/GL/GLInterface/EGL.h" ++#include "Common/GL/GLInterface/EGLDRM.h" + #if HAVE_X11 + #include "Common/GL/GLInterface/EGLX11.h" + #endif +@@ -110,6 +111,8 @@ std::unique_ptr GLContext::Create(const WindowSystemInfo& wsi, bool s + #if HAVE_EGL + if (wsi.type == WindowSystemType::Headless || wsi.type == WindowSystemType::FBDev) + context = std::make_unique(); ++ else if (wsi.type == WindowSystemType::DRM) ++ context = std::make_unique(); + #endif + + if (!context) +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +new file mode 100644 +index 00000000000..3996178d045 +--- /dev/null ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +@@ -0,0 +1,1483 @@ ++/* RetroArch - A frontend for libretro. ++ * Copyright (c) 2011-2017 - Daniel De Matteis ++ * ++ * RetroArch 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 Found- ++ * ation, either version 3 of the License, or (at your option) any later version. ++ * ++ * RetroArch 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 RetroArch. ++ * If not, see . ++ */ ++ ++// Copyright 2012 Dolphin Emulator Project ++// Licensed under GPLv2+ ++// Refer to the license.txt file included. ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "Common/GL/GLInterface/EGLDRM.h" ++ ++#ifndef EGL_CONTEXT_FLAGS_KHR ++#define EGL_CONTEXT_FLAGS_KHR 0x30FC ++#endif ++ ++#ifndef EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR ++#define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001 ++#endif ++ ++#ifndef EGL_OPENGL_ES3_BIT_KHR ++#define EGL_OPENGL_ES3_BIT_KHR 0x0040 ++#endif ++ ++#ifndef EGL_PLATFORM_GBM_KHR ++#define EGL_PLATFORM_GBM_KHR 0x31D7 ++#endif ++ ++extern uint32_t g_connector_id; ++extern int g_drm_fd; ++extern uint32_t g_crtc_id; ++ ++extern struct pollfd g_drm_fds; ++ ++extern drmModeConnector *g_drm_connector; ++extern drmModeModeInfo *g_drm_mode; ++extern drmModeCrtc *g_orig_crtc; ++ ++extern drmEventContext g_drm_evctx; ++ ++ ++void egl_report_error(void); ++ ++void egl_destroy(egl_ctx_data_t *egl); ++ ++void egl_terminate(EGLDisplay dpy); ++ ++void egl_swap_buffers(void *data); ++ ++void egl_set_swap_interval(egl_ctx_data_t *egl, int interval); ++ ++void egl_get_video_size(egl_ctx_data_t *egl, unsigned *width, unsigned *height); ++ ++typedef bool (*egl_accept_config_cb_t)(void *display_data, EGLDisplay dpy, EGLConfig config); ++ ++bool egl_initialize(EGLDisplay dpy, EGLint *major, EGLint *minor); ++ ++bool egl_init_context_common( ++ egl_ctx_data_t *egl, EGLint *count, ++ const EGLint *attrib_ptr, ++ egl_accept_config_cb_t cb, ++ void *display_data); ++ ++bool egl_init_context(egl_ctx_data_t *egl, ++ EGLenum platform, ++ void *display_data, ++ EGLint *major, ++ EGLint *minor, ++ EGLint *n, ++ const EGLint *attrib_ptr, ++ egl_accept_config_cb_t cb); ++ ++bool egl_bind_api(EGLenum egl_api); ++ ++bool egl_create_context(egl_ctx_data_t *egl, const EGLint *egl_attribs); ++ ++bool egl_create_surface(egl_ctx_data_t *egl, void *native_window); ++ ++bool egl_get_native_visual_id(egl_ctx_data_t *egl, EGLint *value); ++ ++bool egl_get_config_attrib(EGLDisplay dpy, EGLConfig config, ++ EGLint attribute, EGLint *value); ++ ++bool egl_has_config(egl_ctx_data_t *egl); ++ ++#define _egl_query_surface(a, b, c, d) eglQuerySurface(a, b, c, d) ++#define _egl_get_proc_address(a) eglGetProcAddress(a) ++#define _egl_create_window_surface(a, b, c, d) eglCreateWindowSurface(a, b, c, d) ++#define _egl_create_context(a, b, c, d) eglCreateContext(a, b, c, d) ++#define _egl_get_configs(a, b, c, d) eglGetConfigs(a, b, c, d) ++#define _egl_get_display(a) eglGetDisplay(a) ++#define _egl_choose_config(a, b, c, d, e) eglChooseConfig(a, b, c, d, e) ++#define _egl_make_current(a, b, c, d) eglMakeCurrent(a, b, c, d) ++#define _egl_initialize(a, b, c) eglInitialize(a, b, c) ++#define _egl_destroy_surface(a, b) eglDestroySurface(a, b) ++#define _egl_destroy_context(a, b) eglDestroyContext(a, b) ++#define _egl_get_current_context() eglGetCurrentContext() ++#define _egl_get_error() eglGetError() ++#define _egl_terminate(dpy) eglTerminate(dpy) ++#define _egl_bind_api(a) eglBindAPI(a) ++#define _egl_query_string(a, b) eglQueryString(a, b) ++#define _egl_get_config_attrib(a, b, c, d) eglGetConfigAttrib(a, b, c, d) ++#define _egl_swap_buffers(a, b) eglSwapBuffers(a, b) ++#define _egl_swap_interval(a, b) eglSwapInterval(a, b) ++ ++void egl_report_error(void) ++{ ++ EGLint error = _egl_get_error(); ++ const char *str = NULL; ++ switch (error) ++ { ++ case EGL_SUCCESS: ++ str = "EGL_SUCCESS"; ++ break; ++ ++ case EGL_BAD_ACCESS: ++ str = "EGL_BAD_ACCESS"; ++ break; ++ ++ case EGL_BAD_ALLOC: ++ str = "EGL_BAD_ALLOC"; ++ break; ++ ++ case EGL_BAD_ATTRIBUTE: ++ str = "EGL_BAD_ATTRIBUTE"; ++ break; ++ ++ case EGL_BAD_CONFIG: ++ str = "EGL_BAD_CONFIG"; ++ break; ++ ++ case EGL_BAD_CONTEXT: ++ str = "EGL_BAD_CONTEXT"; ++ break; ++ ++ case EGL_BAD_CURRENT_SURFACE: ++ str = "EGL_BAD_CURRENT_SURFACE"; ++ break; ++ ++ case EGL_BAD_DISPLAY: ++ str = "EGL_BAD_DISPLAY"; ++ break; ++ ++ case EGL_BAD_MATCH: ++ str = "EGL_BAD_MATCH"; ++ break; ++ ++ case EGL_BAD_NATIVE_PIXMAP: ++ str = "EGL_BAD_NATIVE_PIXMAP"; ++ break; ++ ++ case EGL_BAD_NATIVE_WINDOW: ++ str = "EGL_BAD_NATIVE_WINDOW"; ++ break; ++ ++ case EGL_BAD_PARAMETER: ++ str = "EGL_BAD_PARAMETER"; ++ break; ++ ++ case EGL_BAD_SURFACE: ++ str = "EGL_BAD_SURFACE"; ++ break; ++ ++ default: ++ str = "Unknown"; ++ break; ++ } ++ ++ printf("[EGL]: #0x%x, %s\n", (unsigned)error, str); ++} ++ ++void egl_terminate(EGLDisplay dpy) ++{ ++ _egl_terminate(dpy); ++} ++ ++bool egl_get_config_attrib(EGLDisplay dpy, EGLConfig config, EGLint attribute, ++ EGLint *value) ++{ ++ return _egl_get_config_attrib(dpy, config, attribute, value); ++} ++ ++bool egl_initialize(EGLDisplay dpy, EGLint *major, EGLint *minor) ++{ ++ return _egl_initialize(dpy, major, minor); ++} ++ ++bool egl_bind_api(EGLenum egl_api) ++{ ++ return _egl_bind_api(egl_api); ++} ++ ++void egl_destroy(egl_ctx_data_t *egl) ++{ ++ if (egl->dpy) ++ { ++ _egl_make_current(egl->dpy, ++ EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); ++ if (egl->ctx != EGL_NO_CONTEXT) ++ _egl_destroy_context(egl->dpy, egl->ctx); ++ ++ if (egl->surf != EGL_NO_SURFACE) ++ _egl_destroy_surface(egl->dpy, egl->surf); ++ egl_terminate(egl->dpy); ++ } ++ ++ /* Be as careful as possible in deinit. ++ * If we screw up, any TTY will not restore. ++ */ ++ ++ egl->ctx = EGL_NO_CONTEXT; ++ egl->surf = EGL_NO_SURFACE; ++ egl->dpy = EGL_NO_DISPLAY; ++ egl->config = 0; ++} ++ ++void egl_swap_buffers(void *data) ++{ ++ egl_ctx_data_t *egl = (egl_ctx_data_t*)data; ++ if ( egl && ++ egl->dpy != EGL_NO_DISPLAY && ++ egl->surf != EGL_NO_SURFACE ++ ) ++ { ++ _egl_swap_buffers(egl->dpy, egl->surf); ++ } ++ else ++ printf("\nSWAP FAILED"); ++} ++ ++void egl_set_swap_interval(egl_ctx_data_t *egl, int interval) ++{ ++ /* Can be called before initialization. ++ * Some contexts require that swap interval ++ * is known at startup time. ++ */ ++ egl->interval = interval; ++ ++ if (egl->dpy == EGL_NO_DISPLAY) ++ return; ++ if (!_egl_get_current_context()) ++ return; ++ ++ printf("[EGL]: eglSwapInterval(%u)\n", interval); ++ if (!_egl_swap_interval(egl->dpy, interval)) ++ { ++ printf("[EGL]: eglSwapInterval() failed.\n"); ++ egl_report_error(); ++ } ++} ++ ++void egl_get_video_size(egl_ctx_data_t *egl, unsigned *width, unsigned *height) ++{ ++ *width = 0; ++ *height = 0; ++ ++ if (egl->dpy != EGL_NO_DISPLAY && egl->surf != EGL_NO_SURFACE) ++ { ++ EGLint gl_width, gl_height; ++ ++ _egl_query_surface(egl->dpy, egl->surf, EGL_WIDTH, &gl_width); ++ _egl_query_surface(egl->dpy, egl->surf, EGL_HEIGHT, &gl_height); ++ *width = gl_width; ++ *height = gl_height; ++ } ++} ++ ++bool check_egl_version(int minMajorVersion, int minMinorVersion) ++{ ++ int count; ++ int major, minor; ++ const char *str = _egl_query_string(EGL_NO_DISPLAY, EGL_VERSION); ++ ++ if (!str) ++ return false; ++ ++ count = sscanf(str, "%d.%d", &major, &minor); ++ if (count != 2) ++ return false; ++ ++ if (major < minMajorVersion) ++ return false; ++ ++ if (major > minMajorVersion) ++ return true; ++ ++ if (minor >= minMinorVersion) ++ return true; ++ ++ return false; ++} ++ ++bool check_egl_client_extension(const char *name) ++{ ++ size_t nameLen; ++ const char *str = _egl_query_string(EGL_NO_DISPLAY, EGL_EXTENSIONS); ++ ++ /* The EGL implementation doesn't support client extensions at all. */ ++ if (!str) ++ return false; ++ ++ nameLen = strlen(name); ++ while (*str != '\0') ++ { ++ /* Use strspn and strcspn to find the start position and length of each ++ * token in the extension string. Using strtok could also work, but ++ * that would require allocating a copy of the string. */ ++ size_t len = strcspn(str, " "); ++ if (len == nameLen && strncmp(str, name, nameLen) == 0) ++ return true; ++ str += len; ++ str += strspn(str, " "); ++ } ++ ++ return false; ++} ++ ++static EGLDisplay get_egl_display(EGLenum platform, void *native) ++{ ++ if (platform != EGL_NONE) ++ { ++ /* If the client library supports at least EGL 1.5, then we can call ++ * eglGetPlatformDisplay. Otherwise, see if eglGetPlatformDisplayEXT ++ * is available. */ ++#if defined(EGL_VERSION_1_5) ++ if (check_egl_version(1, 5)) ++ { ++ typedef EGLDisplay (EGLAPIENTRY * pfn_eglGetPlatformDisplay) ++ (EGLenum platform, void *native_display, const EGLAttrib *attrib_list); ++ pfn_eglGetPlatformDisplay ptr_eglGetPlatformDisplay; ++ ++ printf("[EGL] Found EGL client version >= 1.5, trying eglGetPlatformDisplay\n"); ++ ptr_eglGetPlatformDisplay = (pfn_eglGetPlatformDisplay) ++ _egl_get_proc_address("eglGetPlatformDisplay"); ++ ++ if (ptr_eglGetPlatformDisplay) ++ { ++ EGLDisplay dpy = ptr_eglGetPlatformDisplay(platform, native, NULL); ++ if (dpy != EGL_NO_DISPLAY) ++ return dpy; ++ } ++ } ++#endif /* defined(EGL_VERSION_1_5) */ ++ ++#if defined(EGL_EXT_platform_base) ++ if (check_egl_client_extension("EGL_EXT_platform_base")) ++ { ++ PFNEGLGETPLATFORMDISPLAYEXTPROC ptr_eglGetPlatformDisplayEXT; ++ ++ printf("[EGL] Found EGL_EXT_platform_base, trying eglGetPlatformDisplayEXT\n"); ++ ptr_eglGetPlatformDisplayEXT = (PFNEGLGETPLATFORMDISPLAYEXTPROC) ++ _egl_get_proc_address("eglGetPlatformDisplayEXT"); ++ ++ if (ptr_eglGetPlatformDisplayEXT) ++ { ++ EGLDisplay dpy = ptr_eglGetPlatformDisplayEXT(platform, native, NULL); ++ if (dpy != EGL_NO_DISPLAY) ++ return dpy; ++ } ++ } ++#endif /* defined(EGL_EXT_platform_base) */ ++ } ++ ++ /* Either the caller didn't provide a platform type, or the EGL ++ * implementation doesn't support eglGetPlatformDisplay. In this case, try ++ * eglGetDisplay and hope for the best. */ ++ printf("[EGL] Falling back to eglGetDisplay\n"); ++ return _egl_get_display((EGLNativeDisplayType) native); ++} ++ ++bool egl_get_native_visual_id(egl_ctx_data_t *egl, EGLint *value) ++{ ++ if (!egl_get_config_attrib(egl->dpy, egl->config, ++ EGL_NATIVE_VISUAL_ID, value)) ++ { ++ printf("[EGL]: egl_get_native_visual_id failed.\n"); ++ return false; ++ } ++ ++ return true; ++} ++ ++bool egl_init_context_common( ++ egl_ctx_data_t *egl, EGLint *count, ++ const EGLint *attrib_ptr, ++ egl_accept_config_cb_t cb, ++ void *display_data) ++{ ++ EGLint i; ++ EGLint matched = 0; ++ EGLConfig *configs = NULL; ++ if (!egl) ++ return false; ++ ++ if (!_egl_get_configs(egl->dpy, NULL, 0, count) || *count < 1) ++ { ++ printf("[EGL]: No configs to choose from.\n"); ++ return false; ++ } ++ ++ configs = (EGLConfig*)malloc(*count * sizeof(*configs)); ++ if (!configs) ++ return false; ++ ++ if (!_egl_choose_config(egl->dpy, attrib_ptr, ++ configs, *count, &matched) || !matched) ++ { ++ printf("[EGL]: No EGL configs with appropriate attributes.\n"); ++ return false; ++ } ++ ++ for (i = 0; i < *count; i++) ++ { ++ if (!cb || cb(display_data, egl->dpy, configs[i])) ++ { ++ egl->config = configs[i]; ++ break; ++ } ++ } ++ ++ free(configs); ++ ++ if (i == *count) ++ { ++ printf("[EGL]: No EGL config found which satifies requirements.\n"); ++ return false; ++ } ++ ++ return true; ++} ++ ++ ++bool egl_init_context(egl_ctx_data_t *egl, ++ EGLenum platform, ++ void *display_data, ++ EGLint *major, EGLint *minor, ++ EGLint *count, const EGLint *attrib_ptr, ++ egl_accept_config_cb_t cb) ++{ ++ EGLDisplay dpy = get_egl_display(platform, display_data); ++ ++ if (dpy == EGL_NO_DISPLAY) ++ { ++ printf("[EGL]: Couldn't get EGL display.\n"); ++ return false; ++ } ++ ++ egl->dpy = dpy; ++ ++ if (!egl_initialize(egl->dpy, major, minor)) ++ return false; ++ ++ printf("[EGL]: EGL version: %d.%d\n", *major, *minor); ++ ++ return egl_init_context_common(egl, count, attrib_ptr, cb, ++ display_data); ++} ++ ++bool egl_create_context(egl_ctx_data_t *egl, const EGLint *egl_attribs) ++{ ++ EGLContext ctx = _egl_create_context(egl->dpy, egl->config, EGL_NO_CONTEXT, ++ egl_attribs); ++ ++ if (ctx == EGL_NO_CONTEXT) ++ return false; ++ ++ egl->ctx = ctx; ++ ++ return true; ++} ++ ++bool egl_create_surface(egl_ctx_data_t *egl, void *native_window) ++{ ++ EGLint window_attribs[] = { ++ EGL_RENDER_BUFFER, EGL_BACK_BUFFER, ++ EGL_NONE, ++ }; ++ ++ egl->surf = _egl_create_window_surface(egl->dpy, egl->config, (NativeWindowType)native_window, window_attribs); ++ ++ if (egl->surf == EGL_NO_SURFACE) ++ return false; ++ ++ /* Connect the context to the surface. */ ++ if (!_egl_make_current(egl->dpy, egl->surf, egl->surf, egl->ctx)) ++ return false; ++ ++ printf("[EGL]: Current context: %p.\n", (void*)_egl_get_current_context()); ++ ++ return true; ++} ++ ++bool egl_has_config(egl_ctx_data_t *egl) ++{ ++ if (!egl->config) ++ { ++ printf("[EGL]: No EGL configurations available.\n"); ++ return false; ++ } ++ return true; ++} ++ ++ ++ ++bool drm_get_encoder(int fd); ++ ++/* Restore the original CRTC. */ ++void drm_restore_crtc(void); ++ ++bool drm_get_resources(int fd); ++ ++void drm_setup(int fd); ++ ++void drm_free(void); ++ ++bool drm_get_connector(int fd); ++ ++float drm_get_refresh_rate(void *data); ++ ++static bool drm_wait_flip(int timeout) ++{ ++ g_drm_fds.revents = 0; ++ ++ if (poll(&g_drm_fds, 1, timeout) < 0) ++ return false; ++ ++ if (g_drm_fds.revents & (POLLHUP | POLLERR)) ++ return false; ++ ++ if (g_drm_fds.revents & POLLIN) ++ { ++ drmHandleEvent(g_drm_fd, &g_drm_evctx); ++ return true; ++ } ++ ++ return false; ++} ++ ++/* TODO/FIXME - globals */ ++drmEventContext g_drm_evctx; ++struct pollfd g_drm_fds; ++uint32_t g_connector_id = 0; ++int g_drm_fd = 0; ++uint32_t g_crtc_id = 0; ++drmModeCrtc *g_orig_crtc = NULL; ++drmModeConnector *g_drm_connector = NULL; ++drmModeModeInfo *g_drm_mode = NULL; ++ ++/* TODO/FIXME - static globals */ ++static drmModeRes *g_drm_resources = NULL; ++static drmModeEncoder *g_drm_encoder = NULL; ++ ++/* Restore the original CRTC. */ ++void drm_restore_crtc(void) ++{ ++ if (!g_orig_crtc) ++ return; ++ ++ drmModeSetCrtc(g_drm_fd, g_orig_crtc->crtc_id, ++ g_orig_crtc->buffer_id, ++ g_orig_crtc->x, ++ g_orig_crtc->y, ++ &g_connector_id, 1, &g_orig_crtc->mode); ++ ++ drmModeFreeCrtc(g_orig_crtc); ++ g_orig_crtc = NULL; ++} ++ ++bool drm_get_resources(int fd) ++{ ++ g_drm_resources = drmModeGetResources(fd); ++ if (!g_drm_resources) ++ { ++ printf("[DRM]: Couldn't get device resources.\n"); ++ return false; ++ } ++ ++ return true; ++} ++ ++bool drm_get_connector(int fd) ++{ ++ unsigned i; ++ unsigned monitor_index_count = 0; ++ unsigned monitor = 1; ++ ++ /* Enumerate all connectors. */ ++ ++ printf("[DRM]: Found %d connectors.\n", g_drm_resources->count_connectors); ++ ++ for (i = 0; (int)i < g_drm_resources->count_connectors; i++) ++ { ++ drmModeConnectorPtr conn = drmModeGetConnector( ++ fd, g_drm_resources->connectors[i]); ++ ++ if (conn) ++ { ++ bool connected = conn->connection == DRM_MODE_CONNECTED; ++ printf("[DRM]: Connector %d connected: %s\n", i, connected ? "yes" : "no"); ++ printf("[DRM]: Connector %d has %d modes.\n", i, conn->count_modes); ++ if (connected && conn->count_modes > 0) ++ { ++ monitor_index_count++; ++ printf("[DRM]: Connector %d assigned to monitor index: #%u.\n", i, monitor_index_count); ++ } ++ drmModeFreeConnector(conn); ++ } ++ } ++ ++ monitor_index_count = 0; ++ ++ for (i = 0; (int)i < g_drm_resources->count_connectors; i++) ++ { ++ g_drm_connector = drmModeGetConnector(fd, ++ g_drm_resources->connectors[i]); ++ ++ if (!g_drm_connector) ++ continue; ++ if (g_drm_connector->connection == DRM_MODE_CONNECTED ++ && g_drm_connector->count_modes > 0) ++ { ++ monitor_index_count++; ++ if (monitor_index_count == monitor) ++ { ++ printf("\n[DRM]: Matched monitor / connector\n"); ++ break; ++ } ++ } ++ ++ drmModeFreeConnector(g_drm_connector); ++ g_drm_connector = NULL; ++ } ++ ++ if (!g_drm_connector) ++ { ++ printf("[DRM]: Couldn't get device connector.\n"); ++ return false; ++ } ++ return true; ++} ++ ++bool drm_get_encoder(int fd) ++{ ++ unsigned i; ++ ++ for (i = 0; (int)i < g_drm_resources->count_encoders; i++) ++ { ++ g_drm_encoder = drmModeGetEncoder(fd, g_drm_resources->encoders[i]); ++ ++ if (!g_drm_encoder) ++ continue; ++ ++ if (g_drm_encoder->encoder_id == g_drm_connector->encoder_id) ++ break; ++ ++ drmModeFreeEncoder(g_drm_encoder); ++ g_drm_encoder = NULL; ++ } ++ ++ if (!g_drm_encoder) ++ { ++ printf("[DRM]: Couldn't find DRM encoder.\n"); ++ return false; ++ } ++ ++ for (i = 0; (int)i < g_drm_connector->count_modes; i++) ++ { ++ printf("[DRM]: Mode %d: (%s) %d x %d, %u Hz\n", ++ i, ++ g_drm_connector->modes[i].name, ++ g_drm_connector->modes[i].hdisplay, ++ g_drm_connector->modes[i].vdisplay, ++ g_drm_connector->modes[i].vrefresh); ++ } ++ ++ return true; ++} ++ ++void drm_setup(int fd) ++{ ++ g_crtc_id = g_drm_encoder->crtc_id; ++ g_connector_id = g_drm_connector->connector_id; ++ g_orig_crtc = drmModeGetCrtc(fd, g_crtc_id); ++ if (!g_orig_crtc) ++ printf("[DRM]: Cannot find original CRTC.\n"); ++} ++ ++float drm_get_refresh_rate(void *data) ++{ ++ float refresh_rate = 0.0f; ++ ++ if (g_drm_mode) ++ { ++ refresh_rate = g_drm_mode->clock * 1000.0f / g_drm_mode->htotal / g_drm_mode->vtotal; ++ } ++ ++ return refresh_rate; ++} ++ ++void drm_free(void) ++{ ++ if (g_drm_encoder) ++ drmModeFreeEncoder(g_drm_encoder); ++ if (g_drm_connector) ++ drmModeFreeConnector(g_drm_connector); ++ if (g_drm_resources) ++ drmModeFreeResources(g_drm_resources); ++ ++ memset(&g_drm_fds, 0, sizeof(struct pollfd)); ++ memset(&g_drm_evctx, 0, sizeof(drmEventContext)); ++ ++ g_drm_encoder = NULL; ++ g_drm_connector = NULL; ++ g_drm_resources = NULL; ++} ++ ++typedef struct gfx_ctx_drm_data ++{ ++ egl_ctx_data_t egl; ++ int fd; ++ int interval; ++ unsigned fb_width; ++ unsigned fb_height; ++ ++ bool core_hw_context_enable; ++ bool waiting_for_flip; ++ struct gbm_bo *bo; ++ struct gbm_bo *next_bo; ++ struct gbm_surface *gbm_surface; ++ struct gbm_device *gbm_dev; ++} gfx_ctx_drm_data_t; ++ ++static gfx_ctx_drm_data* g_drm; ++ ++struct drm_fb ++{ ++ struct gbm_bo *bo; ++ uint32_t fb_id; ++}; ++ ++static void drm_fb_destroy_callback(struct gbm_bo *bo, void *data) ++{ ++ struct drm_fb *fb = (struct drm_fb*)data; ++ ++ if (fb && fb->fb_id) ++ drmModeRmFB(g_drm_fd, fb->fb_id); ++ ++ free(fb); ++} ++ ++static struct drm_fb *drm_fb_get_from_bo(struct gbm_bo *bo) ++{ ++ int ret; ++ unsigned width, height, stride, handle; ++ struct drm_fb *fb = (struct drm_fb*)calloc(1, sizeof(*fb)); ++ ++ fb->bo = bo; ++ ++ width = gbm_bo_get_width(bo); ++ height = gbm_bo_get_height(bo); ++ stride = gbm_bo_get_stride(bo); ++ handle = gbm_bo_get_handle(bo).u32; ++ ++ printf("[KMS]: New FB: %ux%u (stride: %u).\n", ++ width, height, stride); ++ ++ ret = drmModeAddFB(g_drm_fd, width, height, 24, 32, ++ stride, handle, &fb->fb_id); ++ if (ret < 0) ++ goto error; ++ ++ gbm_bo_set_user_data(bo, fb, drm_fb_destroy_callback); ++ return fb; ++ ++error: ++ printf("[KMS]: Failed to create FB: %s\n", strerror(errno)); ++ free(fb); ++ return NULL; ++} ++ ++static void gfx_ctx_drm_swap_interval(void *data, int interval) ++{ ++ gfx_ctx_drm_data_t *drm = (gfx_ctx_drm_data_t*)data; ++ drm->interval = interval; ++ ++ if (interval > 1) ++ printf("[KMS]: Swap intervals > 1 currently not supported. Will use swap interval of 1.\n"); ++} ++ ++static void drm_flip_handler(int fd, unsigned frame, ++ unsigned sec, unsigned usec, void *data) ++{ ++#if 0 ++ static unsigned first_page_flip; ++ static unsigned last_page_flip; ++ ++ if (!first_page_flip) ++ first_page_flip = frame; ++ ++ if (last_page_flip) ++ { ++ unsigned missed = frame - last_page_flip - 1; ++ if (missed) ++ printf("[KMS]: Missed %u VBlank(s) (Frame: %u, DRM frame: %u).\n", ++ missed, frame - first_page_flip, frame); ++ } ++ ++ last_page_flip = frame; ++#endif ++ ++ *(bool*)data = false; ++} ++ ++static bool gfx_ctx_drm_wait_flip(gfx_ctx_drm_data_t *drm, bool block) ++{ ++ int timeout = 0; ++ ++ if (!drm->waiting_for_flip) ++ return false; ++ ++ if (block) ++ timeout = -1; ++ ++ while (drm->waiting_for_flip) ++ { ++ if (!drm_wait_flip(timeout)) ++ break; ++ } ++ ++ if (drm->waiting_for_flip) ++ { printf("\nwait flip 2"); return true; } ++ ++ /* Page flip has taken place. */ ++ ++ /* This buffer is not on-screen anymore. Release it to GBM. */ ++ gbm_surface_release_buffer(drm->gbm_surface, drm->bo); ++ /* This buffer is being shown now. */ ++ drm->bo = drm->next_bo; ++ return false; ++} ++ ++static bool gfx_ctx_drm_queue_flip(gfx_ctx_drm_data_t *drm) ++{ ++ struct drm_fb *fb = NULL; ++ ++ drm->next_bo = gbm_surface_lock_front_buffer(drm->gbm_surface); ++ fb = (struct drm_fb*)gbm_bo_get_user_data(drm->next_bo); ++ ++ if (!fb) ++ fb = (struct drm_fb*)drm_fb_get_from_bo(drm->next_bo); ++ ++ if (drmModePageFlip(g_drm_fd, g_crtc_id, fb->fb_id, ++ DRM_MODE_PAGE_FLIP_EVENT, &drm->waiting_for_flip) == 0) ++ return true; ++ ++ /* Failed to queue page flip. */ ++ printf("\nFailed to queue page flip\n"); ++ return false; ++} ++ ++static void gfx_ctx_drm_swap_buffers(void *data) ++{ ++ gfx_ctx_drm_data_t *drm = (gfx_ctx_drm_data_t*)data; ++ unsigned max_swapchain_images = 3; //settings->uints.video_max_swapchain_images; ++ ++ egl_swap_buffers(&drm->egl); ++ ++ /* I guess we have to wait for flip to have taken ++ * place before another flip can be queued up. ++ * ++ * If true, we are still waiting for a flip ++ * (nonblocking mode, so just drop the frame). */ ++ if (gfx_ctx_drm_wait_flip(drm, drm->interval)) ++ { printf("\nwait flip"); return; } ++ ++ drm->waiting_for_flip = gfx_ctx_drm_queue_flip(drm); ++ ++ /* Triple-buffered page flips */ ++ if (max_swapchain_images >= 3 && ++ gbm_surface_has_free_buffers(drm->gbm_surface)) ++ return; ++ ++ gfx_ctx_drm_wait_flip(drm, true); ++} ++ ++static void gfx_ctx_drm_get_video_size(void *data, ++ unsigned *width, unsigned *height) ++{ ++ gfx_ctx_drm_data_t *drm = (gfx_ctx_drm_data_t*)data; ++ ++ if (!drm) ++ { ++ printf("\nCannot get drm video size\n"); ++ return; ++ } ++ ++ *width = drm->fb_width; ++ *height = drm->fb_height; ++} ++ ++static void free_drm_resources(gfx_ctx_drm_data_t *drm) ++{ ++ if (!drm) ++ return; ++ ++ /* Restore original CRTC. */ ++ drm_restore_crtc(); ++ ++ if (drm->gbm_surface) ++ gbm_surface_destroy(drm->gbm_surface); ++ ++ if (drm->gbm_dev) ++ gbm_device_destroy(drm->gbm_dev); ++ ++ drm_free(); ++ ++ if (drm->fd >= 0) ++ { ++ if (g_drm_fd >= 0) ++ { ++ drmDropMaster(g_drm_fd); ++ close(drm->fd); ++ } ++ } ++ ++ drm->gbm_surface = NULL; ++ drm->gbm_dev = NULL; ++ g_drm_fd = -1; ++} ++ ++static void gfx_ctx_drm_destroy_resources(gfx_ctx_drm_data_t *drm) ++{ ++ if (!drm) ++ return; ++ ++ /* Make sure we acknowledge all page-flips. */ ++ gfx_ctx_drm_wait_flip(drm, true); ++ ++ egl_destroy(&drm->egl); ++ ++ free_drm_resources(drm); ++ ++ g_drm_mode = NULL; ++ g_crtc_id = 0; ++ g_connector_id = 0; ++ ++ drm->fb_width = 0; ++ drm->fb_height = 0; ++ ++ drm->bo = NULL; ++ drm->next_bo = NULL; ++} ++ ++static void *gfx_ctx_drm_init() ++{ ++ int fd, i; ++ unsigned monitor_index; ++ unsigned gpu_index = 0; ++ const char *gpu = NULL; ++ gfx_ctx_drm_data_t *drm = (gfx_ctx_drm_data_t*)calloc(1, sizeof(gfx_ctx_drm_data_t)); ++ ++ if (!drm) ++ return NULL; ++ drm->fd = -1; ++ ++ free_drm_resources(drm); ++ ++ drm->fd = open("/dev/dri/card0", O_RDWR); ++ if (drm->fd < 0) ++ { ++ printf("[KMS]: Couldn't open DRM device.\n"); ++ return nullptr; ++ } ++ ++ fd = drm->fd; ++ ++ if (!drm_get_resources(fd)) ++ { ++ printf("[KMS]: drm_get_resources failed\n"); ++ return nullptr; ++ } ++ ++ if (!drm_get_connector(fd)) ++ { ++ printf("[KMS]: drm_get_connector failed\n"); ++ return nullptr; ++ } ++ ++ if (!drm_get_encoder(fd)) ++ { ++ printf("[KMS]: drm_get_encoder failed\n"); ++ return nullptr; ++ } ++ ++ drm_setup(fd); ++ ++ /* Choose the optimal video mode for get_video_size(): ++ - the current video mode from the CRTC ++ - otherwise pick first connector mode */ ++ if (g_orig_crtc->mode_valid) ++ { ++ drm->fb_width = g_orig_crtc->mode.hdisplay; ++ drm->fb_height = g_orig_crtc->mode.vdisplay; ++ } ++ else ++ { ++ drm->fb_width = g_drm_connector->modes[0].hdisplay; ++ drm->fb_height = g_drm_connector->modes[0].vdisplay; ++ } ++ ++ drmSetMaster(g_drm_fd); ++ ++ drm->gbm_dev = gbm_create_device(fd); ++ ++ if (!drm->gbm_dev) ++ { ++ printf("[KMS]: Couldn't create GBM device.\n"); ++ return nullptr; ++ } ++ ++ /* Setup the flip handler. */ ++ g_drm_fds.fd = fd; ++ g_drm_fds.events = POLLIN; ++ g_drm_evctx.version = DRM_EVENT_CONTEXT_VERSION; ++ g_drm_evctx.page_flip_handler = drm_flip_handler; ++ ++ g_drm_fd = fd; ++ ++ return drm; ++ ++error: ++ gfx_ctx_drm_destroy_resources(drm); ++ ++ if (drm) ++ free(drm); ++ ++ return NULL; ++} ++ ++static EGLint *gfx_ctx_drm_egl_fill_attribs( ++ gfx_ctx_drm_data_t *drm, EGLint *attr) ++{ ++ *attr++ = EGL_CONTEXT_CLIENT_VERSION; ++ *attr++ = drm->egl.major ? (EGLint)drm->egl.major : 2; ++#ifdef EGL_KHR_create_context ++ if (drm->egl.minor > 0) ++ { ++ *attr++ = EGL_CONTEXT_MINOR_VERSION_KHR; ++ *attr++ = drm->egl.minor; ++ } ++#endif ++ ++ *attr = EGL_NONE; ++ return attr; ++} ++ ++static bool gbm_choose_xrgb8888_cb(void *display_data, EGLDisplay dpy, EGLConfig config) ++{ ++ EGLint r, g, b, id; ++ (void)display_data; ++ ++ /* Makes sure we have 8 bit color. */ ++ if (!egl_get_config_attrib(dpy, config, EGL_RED_SIZE, &r)) ++ return false; ++ if (!egl_get_config_attrib(dpy, config, EGL_GREEN_SIZE, &g)) ++ return false; ++ if (!egl_get_config_attrib(dpy, config, EGL_BLUE_SIZE, &b)) ++ return false; ++ ++ if (r != 8 || g != 8 || b != 8) ++ return false; ++ ++ if (!egl_get_config_attrib(dpy, config, EGL_NATIVE_VISUAL_ID, &id)) ++ return false; ++ ++ return id == GBM_FORMAT_XRGB8888; ++} ++ ++#define DRM_EGL_ATTRIBS_BASE \ ++ EGL_SURFACE_TYPE, 0/*EGL_WINDOW_BIT*/, \ ++ EGL_RED_SIZE, 8, \ ++ EGL_GREEN_SIZE, 8, \ ++ EGL_BLUE_SIZE, 8, \ ++ EGL_ALPHA_SIZE, 0, \ ++ EGL_DEPTH_SIZE, 0 ++ ++#ifdef EGL_KHR_create_context ++ static const EGLint egl_attribs_gles3[] = { ++ DRM_EGL_ATTRIBS_BASE, ++ EGL_RENDERABLE_TYPE, EGL_OPENGL_ES3_BIT_KHR, ++ EGL_NONE, ++ }; ++#endif ++ ++static bool gfx_ctx_drm_egl_set_video_mode(gfx_ctx_drm_data_t *drm) ++{ ++ const EGLint *attrib_ptr = NULL; ++ EGLint major; ++ EGLint minor; ++ EGLint n; ++ EGLint egl_attribs[16]; ++ EGLint *egl_attribs_ptr = NULL; ++ EGLint *attr = NULL; ++ ++ attrib_ptr = egl_attribs_gles3; ++ ++ if (!egl_init_context(&drm->egl, EGL_PLATFORM_GBM_KHR, ++ (EGLNativeDisplayType)drm->gbm_dev, &major, ++ &minor, &n, attrib_ptr, gbm_choose_xrgb8888_cb)) ++ { ++ printf("\n[EGL] Cannot init context"); ++ goto error; ++ } ++ attr = gfx_ctx_drm_egl_fill_attribs(drm, egl_attribs); ++ egl_attribs_ptr = &egl_attribs[0]; ++ ++ if (!egl_create_context(&drm->egl, (attr != egl_attribs_ptr) ++ ? egl_attribs_ptr : NULL)) ++ { ++ printf("\n[EGL] Cannot create context"); ++ goto error; ++ } ++ ++ if (!egl_create_surface(&drm->egl, (EGLNativeWindowType)drm->gbm_surface)) ++ { ++ printf("\n[EGL] Cannot create context"); ++ return false; ++ } ++ ++ egl_swap_buffers(&drm->egl); ++ ++ return true; ++ ++error: ++ egl_report_error(); ++ return false; ++} ++ ++static bool gfx_ctx_drm_set_video_mode(void *data, ++ unsigned width, unsigned height, ++ bool fullscreen) ++{ ++ float refresh_mod; ++ int i, ret = 0; ++ struct drm_fb *fb = NULL; ++ gfx_ctx_drm_data_t *drm = (gfx_ctx_drm_data_t*)data; ++ bool black_frame_insertion = false; //settings->bools.video_black_frame_insertion; ++ float video_refresh_rate = 60; //settings->floats.video_refresh_rate; ++ ++ if (!drm) ++ return false; ++ ++ /* If we use black frame insertion, ++ * we fake a 60 Hz monitor for 120 Hz one, ++ * etc, so try to match that. */ ++ refresh_mod = black_frame_insertion ++ ? 0.5f : 1.0f; ++ ++ /* Find desired video mode, and use that. ++ * If not fullscreen, we get desired windowed size, ++ * which is not appropriate. */ ++ if ((width == 0 && height == 0) || !fullscreen) ++ g_drm_mode = &g_drm_connector->modes[0]; ++ else ++ { ++ /* Try to match refresh_rate as closely as possible. ++ * ++ * Lower resolutions tend to have multiple supported ++ * refresh rates as well. ++ */ ++ float minimum_fps_diff = 0.0f; ++ ++ /* Find best match. */ ++ for (i = 0; i < g_drm_connector->count_modes; i++) ++ { ++ float diff; ++ if (width != g_drm_connector->modes[i].hdisplay || ++ height != g_drm_connector->modes[i].vdisplay) ++ continue; ++ ++ diff = fabsf(refresh_mod * g_drm_connector->modes[i].vrefresh ++ - video_refresh_rate); ++ ++ if (!g_drm_mode || diff < minimum_fps_diff) ++ { ++ g_drm_mode = &g_drm_connector->modes[i]; ++ minimum_fps_diff = diff; ++ } ++ } ++ } ++ ++ if (!g_drm_mode) ++ { ++ printf("[KMS/EGL]: Did not find suitable video mode for %u x %u.\n", ++ width, height); ++ goto error; ++ } ++ ++ drm->fb_width = g_drm_mode->hdisplay; ++ drm->fb_height = g_drm_mode->vdisplay; ++ ++ /* Create GBM surface. */ ++ drm->gbm_surface = gbm_surface_create( ++ drm->gbm_dev, ++ drm->fb_width, ++ drm->fb_height, ++ GBM_FORMAT_XRGB8888, ++ GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING); ++ ++ if (!drm->gbm_surface) ++ { ++ printf("[KMS/EGL]: Couldn't create GBM surface.\n"); ++ goto error; ++ } ++ ++ if (!gfx_ctx_drm_egl_set_video_mode(drm)) ++ { ++ printf("[KMS/EGL]: Couldn't set EGL video mode.\n"); ++ goto error; ++ } ++ ++ drm->bo = gbm_surface_lock_front_buffer(drm->gbm_surface); ++ ++ fb = (struct drm_fb*)gbm_bo_get_user_data(drm->bo); ++ ++ if (!fb) ++ fb = drm_fb_get_from_bo(drm->bo); ++ ++ ret = drmModeSetCrtc(g_drm_fd, ++ g_crtc_id, fb->fb_id, 0, 0, &g_connector_id, 1, g_drm_mode); ++ if (ret < 0) ++ { ++ printf("[KMS/EGL]: drmModeSetCrtc failed\n"); ++ goto error; ++ } ++ return true; ++ ++error: ++ gfx_ctx_drm_destroy_resources(drm); ++ ++ if (drm) ++ free(drm); ++ ++ return false; ++} ++ ++static void gfx_ctx_drm_destroy(void *data) ++{ ++ gfx_ctx_drm_data_t *drm = (gfx_ctx_drm_data_t*)data; ++ ++ if (!drm) ++ return; ++ ++ gfx_ctx_drm_destroy_resources(drm); ++ free(drm); ++} ++ ++#ifndef EGL_KHR_create_context ++#define EGL_KHR_create_context 1 ++#define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098 ++#define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB ++#define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD ++#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD ++#define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE ++#define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF ++#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002 ++#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004 ++#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001 ++#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002 ++#endif /* EGL_KHR_create_context */ ++ ++GLContextEGLDRM::~GLContextEGLDRM() ++{ ++ DestroyWindowSurface(); ++ DestroyContext(); ++} ++ ++bool GLContextEGLDRM::IsHeadless() const ++{ ++ return false; ++} ++ ++void GLContextEGLDRM::Swap() ++{ ++ gfx_ctx_drm_swap_buffers(g_drm); ++} ++void GLContextEGLDRM::SwapInterval(int interval) ++{ ++ gfx_ctx_drm_swap_interval(g_drm, interval); ++ egl_set_swap_interval(m_egl, interval); ++} ++ ++void* GLContextEGLDRM::GetFuncAddress(const std::string& name) ++{ ++ return (void*)eglGetProcAddress(name.c_str()); ++} ++ ++// Create rendering window. ++// Call browser: Core.cpp:EmuThread() > main.cpp:Video_Initialize() ++bool GLContextEGLDRM::Initialize(const WindowSystemInfo& wsi, bool stereo, bool core) ++{ ++ EGLint egl_major, egl_minor; ++ bool supports_core_profile = false; ++ ++ g_drm = (gfx_ctx_drm_data_t*)gfx_ctx_drm_init(); ++ egl_bind_api(EGL_OPENGL_ES_API); ++ gfx_ctx_drm_set_video_mode(g_drm, 1920, 1080, true); ++ m_backbuffer_width = 1920; ++ m_backbuffer_height = 1080; ++ ++ m_egl = &g_drm->egl; ++ m_opengl_mode = Mode::OpenGLES; ++ ++ m_supports_surfaceless = false; ++ const char* ext = eglQueryString(m_egl->dpy, EGL_EXTENSIONS); ++ if (strstr(ext, "EGL_KHR_surfaceless_context")) ++ { ++ printf("\nFound EGL_KHR_surfaceless_context\n"); ++ m_supports_surfaceless =true; ++ } ++ eglBindAPI(EGL_OPENGL_ES_API); ++ ++ return MakeCurrent(); ++} ++ ++std::unique_ptr GLContextEGLDRM::CreateSharedContext() ++{ ++ printf("\nvoid GLContextEGLDRM::CreateSharedContext"); ++ std::unique_ptr new_context = std::make_unique(); ++ new_context->m_egl = (egl_ctx_data_t*)malloc(sizeof(egl_ctx_data_t)); ++ memcpy(new_context->m_egl, m_egl, sizeof(egl_ctx_data_t)); ++ ++ eglBindAPI(EGL_OPENGL_ES_API); ++ EGLint egl_attribs[16]; ++ EGLint *egl_attribs_ptr = NULL; ++ const EGLint *attrib_ptr = egl_attribs_gles3; ++ EGLint* attr = gfx_ctx_drm_egl_fill_attribs(g_drm, egl_attribs); ++ egl_attribs_ptr = &egl_attribs[0]; ++ new_context->m_egl->ctx = eglCreateContext(m_egl->dpy, m_egl->config, m_egl->ctx, egl_attribs_ptr); ++ if (!new_context->m_egl->ctx) ++ { ++ printf("\nError: eglCreateContext failed\n"); ++ egl_report_error(); ++ return nullptr; ++ } ++ eglBindAPI(EGL_OPENGL_ES_API); ++ new_context->m_opengl_mode = Mode::OpenGLES; ++ new_context->m_supports_surfaceless = m_supports_surfaceless; ++ new_context->m_is_shared = true; ++ if (!new_context->CreateWindowSurface()) ++ { ++ printf("\nError: CreateWindowSurface failed\n"); ++ egl_report_error(); ++ return nullptr; ++ } ++ return new_context; ++} ++ ++bool GLContextEGLDRM::CreateWindowSurface() ++{ ++ EGLint attrib_list[] = { EGL_NONE, }; ++ printf("\nvoid GLContextEGLDRM::CreateWindowSurface"); ++ if (m_supports_surfaceless) ++ { ++ m_egl->surf = EGL_NO_SURFACE; ++ printf("\nCreated surfaceless context\n"); ++ return true; ++ } ++ ++ if (!IsHeadless()) ++ { ++ if (!egl_create_surface(m_egl, (EGLNativeWindowType)g_drm->gbm_surface)) ++ { ++ printf("\negl_create_surface failed, trying pbuffer\n"); ++ egl_report_error(); ++ goto pbuffer; ++ } ++ printf("\nm_egl_surface=0x%x",m_egl->surf); ++ // Get dimensions from the surface. ++ EGLint surface_width = 1, surface_height = 1; ++ if (!eglQuerySurface(m_egl->dpy, m_egl->surf, EGL_WIDTH, &surface_width) || ++ !eglQuerySurface(m_egl->dpy, m_egl->surf, EGL_HEIGHT, &surface_height)) ++ { ++ printf("Failed to get surface dimensions via eglQuerySurface. Size may be incorrect."); ++ } ++ m_backbuffer_width = static_cast(surface_width); ++ m_backbuffer_height = static_cast(surface_height); ++ return true; ++ } ++ ++pbuffer: ++ m_egl->surf = eglCreatePbufferSurface(m_egl->dpy, m_egl->config, attrib_list); ++ if (!m_egl->surf) ++ { ++ printf("\nError: eglCreatePbufferSurface failed\n"); ++ egl_report_error(); ++ return false; ++ } ++ return true; ++} ++ ++void GLContextEGLDRM::DestroyWindowSurface() ++{ ++ printf("\nvoid GLContextEGLDRM::DestroyWindowSurface"); ++ if (m_egl->surf == EGL_NO_SURFACE) ++ return; ++ ++ if (eglGetCurrentSurface(EGL_DRAW) == m_egl->surf) ++ eglMakeCurrent(m_egl->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); ++ if (!eglDestroySurface(m_egl->dpy, m_egl->surf)) ++ printf("\nCould not destroy window surface."); ++ m_egl->surf = EGL_NO_SURFACE; ++} ++ ++bool GLContextEGLDRM::MakeCurrent() ++{ ++ printf("\nvoid GLContextEGLDRM::MakeCurrent()"); ++ return _egl_make_current(m_egl->dpy, g_drm->egl.surf, g_drm->egl.surf, m_egl->ctx); ++} ++ ++void GLContextEGLDRM::UpdateSurface(void* window_handle) ++{ ++ printf("\nvoid GLContextEGLDRM::UpdateSurface(void* window_handle)"); ++ ClearCurrent(); ++ DestroyWindowSurface(); ++ CreateWindowSurface(); ++ MakeCurrent(); ++} ++ ++bool GLContextEGLDRM::ClearCurrent() ++{ ++ printf("\nvoid GLContextEGLDRM::ClearCurrent()"); ++ return _egl_make_current(m_egl->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); ++} ++ ++// Close backend ++void GLContextEGLDRM::DestroyContext() ++{ ++ printf("\nGLContextEGLDRM::DestroyContext()"); ++if (!m_egl->ctx) ++ return; ++ ++ if (eglGetCurrentContext() == m_egl->ctx) ++ eglMakeCurrent(m_egl->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); ++ if (!eglDestroyContext(m_egl->dpy, m_egl->ctx)) ++ printf("\nCould not destroy drawing context."); ++ if (!m_is_shared && !eglTerminate(m_egl->dpy)) ++ printf("\nCould not destroy display connection."); ++ m_egl->ctx = EGL_NO_CONTEXT; ++ m_egl->dpy = EGL_NO_DISPLAY; ++} +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.h b/Source/Core/Common/GL/GLInterface/EGLDRM.h +new file mode 100644 +index 00000000000..b8615cf7e67 +--- /dev/null ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.h +@@ -0,0 +1,59 @@ ++// Copyright 2008 Dolphin Emulator Project ++// Licensed under GPLv2+ ++// Refer to the license.txt file included. ++ ++#pragma once ++ ++#include ++#include ++#include ++#include ++ ++#include "Common/GL/GLContext.h" ++ ++typedef struct ++{ ++ EGLContext ctx; ++ EGLSurface surf; ++ EGLDisplay dpy; ++ EGLConfig config; ++ int interval; ++ ++ unsigned major; ++ unsigned minor; ++ ++} egl_ctx_data_t; ++ ++class GLContextEGLDRM : public GLContext ++{ ++public: ++ virtual ~GLContextEGLDRM() override; ++ ++ bool IsHeadless() const override; ++ ++ std::unique_ptr CreateSharedContext() override; ++ ++ bool MakeCurrent() override; ++ bool ClearCurrent() override; ++ ++ void UpdateSurface(void* window_handle) override; ++ ++ void Swap() override; ++ void SwapInterval(int interval) override; ++ ++ void* GetFuncAddress(const std::string& name) override; ++ ++protected: ++ bool Initialize(const WindowSystemInfo& wsi, bool stereo, bool core) override; ++ ++ bool CreateWindowSurface(); ++ void DestroyWindowSurface(); ++ void DestroyContext(); ++ ++ WindowSystemInfo m_wsi = {}; ++ ++ bool m_supports_surfaceless = false; ++ std::vector m_attribs; ++ ++ egl_ctx_data_t* m_egl; ++}; +--- a/Source/Core/Common/WindowSystemInfo.h 2021-02-21 20:51:42.393957185 +0100 ++++ b/Source/Core/Common/WindowSystemInfo.h 2021-02-21 20:51:50.440623503 +0100 +@@ -14,6 +14,7 @@ + Wayland, + FBDev, + Haiku, ++ DRM + }; + + struct WindowSystemInfo +diff --git a/Source/Core/DolphinNoGUI/CMakeLists.txt b/Source/Core/DolphinNoGUI/CMakeLists.txt +index 3943582ad20..d534eb9522f 100644 +--- a/Source/Core/DolphinNoGUI/CMakeLists.txt ++++ b/Source/Core/DolphinNoGUI/CMakeLists.txt +@@ -15,6 +15,7 @@ endif() + + if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") + target_sources(dolphin-nogui PRIVATE PlatformFBDev.cpp) ++ target_sources(dolphin-nogui PRIVATE PlatformDRM.cpp) + endif() + + set_target_properties(dolphin-nogui PROPERTIES OUTPUT_NAME dolphin-emu-nogui) +diff --git a/Source/Core/DolphinNoGUI/MainNoGUI.cpp b/Source/Core/DolphinNoGUI/MainNoGUI.cpp +index 0bf4df23b87..9faf1152de2 100644 +--- a/Source/Core/DolphinNoGUI/MainNoGUI.cpp ++++ b/Source/Core/DolphinNoGUI/MainNoGUI.cpp +@@ -118,6 +118,8 @@ static std::unique_ptr GetPlatform(const optparse::Values& options) + #ifdef __linux__ + if (platform_name == "fbdev" || platform_name.empty()) + return Platform::CreateFBDevPlatform(); ++ if (platform_name == "drm" || platform_name.empty()) ++ return Platform::CreateDRMPlatform(); + #endif + + #ifdef _WIN32 +@@ -141,7 +143,8 @@ int main(int argc, char* argv[]) + "headless" + #ifdef __linux__ + , +- "fbdev" ++ "fbdev", ++ "drm" + #endif + #if HAVE_X11 + , +diff --git a/Source/Core/DolphinNoGUI/Platform.h b/Source/Core/DolphinNoGUI/Platform.h +index b0d98e58bef..bc8c57a3cef 100644 +--- a/Source/Core/DolphinNoGUI/Platform.h ++++ b/Source/Core/DolphinNoGUI/Platform.h +@@ -38,6 +38,7 @@ class Platform + + #ifdef __linux__ + static std::unique_ptr CreateFBDevPlatform(); ++ static std::unique_ptr CreateDRMPlatform(); + #endif + + #ifdef _WIN32 +diff --git a/Source/Core/DolphinNoGUI/PlatformDRM.cpp b/Source/Core/DolphinNoGUI/PlatformDRM.cpp +new file mode 100644 +index 00000000000..1784aaae4f8 +--- /dev/null ++++ b/Source/Core/DolphinNoGUI/PlatformDRM.cpp +@@ -0,0 +1,83 @@ ++// Copyright 2020 Dolphin Emulator Project ++// Licensed under GPLv2+ ++// Refer to the license.txt file included. ++ ++#include ++ ++#include "DolphinNoGUI/Platform.h" ++ ++#include "Common/MsgHandler.h" ++#include "Core/ConfigManager.h" ++#include "Core/Core.h" ++#include "Core/State.h" ++ ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include "VideoCommon/RenderBase.h" ++ ++namespace ++{ ++class PlatformDRM : public Platform ++{ ++public: ++ ~PlatformDRM() override; ++ ++ bool Init() override; ++ void SetTitle(const std::string& string) override; ++ void MainLoop() override; ++ ++ WindowSystemInfo GetWindowSystemInfo() const override; ++ ++private: ++}; ++ ++PlatformDRM::~PlatformDRM() ++{ ++} ++ ++bool PlatformDRM::Init() ++{ ++ return true; ++} ++ ++void PlatformDRM::SetTitle(const std::string& string) ++{ ++ std::fprintf(stdout, "%s\n", string.c_str()); ++} ++ ++void PlatformDRM::MainLoop() ++{ ++ while (IsRunning()) ++ { ++ UpdateRunningFlag(); ++ Core::HostDispatchJobs(); ++ ++ // TODO: Is this sleep appropriate? ++ std::this_thread::sleep_for(std::chrono::milliseconds(1)); ++ } ++} ++ ++WindowSystemInfo PlatformDRM::GetWindowSystemInfo() const ++{ ++ WindowSystemInfo wsi; ++ wsi.type = WindowSystemType::DRM; ++ wsi.display_connection = nullptr; // EGL_DEFAULT_DISPLAY ++ wsi.render_window = nullptr; ++ wsi.render_surface = nullptr; ++ return wsi; ++} ++} // namespace ++ ++std::unique_ptr Platform::CreateDRMPlatform() ++{ ++ return std::make_unique(); ++} + +From 0f2be8f1a2d9162ac3f02bfebc2a0674b149667b Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 00:27:27 +0200 +Subject: [PATCH 02/25] Fix missing Cmake modules and code required to properly + detect and link libdrm and libgbm + +--- + CMake/FindDRM.cmake | 41 --------------------------- + CMake/FindLibdrm.cmake | 45 ++++++++++++++++++++++++++++++ + CMake/FindLibgbm.cmake | 46 +++++++++++++++++++++++++++++++ + Source/Core/Common/CMakeLists.txt | 21 ++++++++------ + 4 files changed, 103 insertions(+), 50 deletions(-) + delete mode 100644 CMake/FindDRM.cmake + create mode 100644 CMake/FindLibdrm.cmake + create mode 100644 CMake/FindLibgbm.cmake + +diff --git a/CMake/FindDRM.cmake b/CMake/FindDRM.cmake +deleted file mode 100644 +index 10d554f0fcd..00000000000 +--- a/CMake/FindDRM.cmake ++++ /dev/null +@@ -1,41 +0,0 @@ +-# +-# Try to find DRM library and include path. +-# Once done this will define +-# +-# DRM_FOUND +-# DRM_INCLUDE_PATH +-# DRM_LIBRARY +-# +- +-FIND_PATH(DRM_INCLUDE_PATH +- NAMES +- drm.h +- PATHS +- ${CMAKE_INCLUDE_PATH}/include/libdrm/ +- ~/include/libdrm/ +- /usr/include/libdrm/ +- /usr/local/include/libdrm/ +- /sw/include/libdrm/ +- /opt/local/include/libdrm/ +- DOC "The directory where drm.h resides") +-FIND_LIBRARY(DRM_LIBRARY +- NAMES DRM drm +- PATHS +- ${CMAKE_LIBRARY_PATH}/lib/ +- ~/lib/ +- /usr/lib64 +- /usr/lib +- /usr/local/lib64 +- /usr/local/lib +- /sw/lib +- /opt/local/lib +- DOC "The DRM library") +- +-IF(DRM_INCLUDE_PATH) +- INCLUDE_DIRECTORIES(${DRM_INCLUDE_PATH}) +- SET(DRM_FOUND 1 CACHE STRING "Set to 1 if DRM is found, 0 otherwise") +-ELSE(DRM_INCLUDE_PATH) +- SET(DRM_FOUND 0 CACHE STRING "Set to 1 if DRM is found, 0 otherwise") +-ENDIF(DRM_INCLUDE_PATH) +- +-MARK_AS_ADVANCED(DRM_FOUND) +diff --git a/CMake/FindLibdrm.cmake b/CMake/FindLibdrm.cmake +new file mode 100644 +index 00000000000..4b39de31e9b +--- /dev/null ++++ b/CMake/FindLibdrm.cmake +@@ -0,0 +1,45 @@ ++#.rst: ++# FindLibDRM ++# ---------- ++# Finds the LibDRM library ++# ++# This will define the following variables:: ++# ++# LIBDRM_FOUND - system has LibDRM ++# LIBDRM_INCLUDE_DIRS - the LibDRM include directory ++# LIBDRM_LIBRARIES - the LibDRM libraries ++# ++# and the following imported targets:: ++# ++# LibDRM::LibDRM - The LibDRM library ++ ++if(PKG_CONFIG_FOUND) ++ pkg_check_modules(PC_LIBDRM libdrm>=2.4.82 QUIET) ++endif() ++ ++find_path(LIBDRM_INCLUDE_DIR NAMES drm.h ++ PATH_SUFFIXES libdrm drm ++ PATHS ${PC_LIBDRM_INCLUDEDIR}) ++find_library(LIBDRM_LIBRARY NAMES drm ++ PATHS ${PC_LIBDRM_LIBDIR}) ++ ++set(LIBDRM_VERSION ${PC_LIBDRM_VERSION}) ++ ++include(FindPackageHandleStandardArgs) ++find_package_handle_standard_args(LibDRM ++ REQUIRED_VARS LIBDRM_LIBRARY LIBDRM_INCLUDE_DIR ++ VERSION_VAR LIBDRM_VERSION) ++ ++if(LIBDRM_FOUND) ++ set(LIBDRM_LIBRARIES ${LIBDRM_LIBRARY}) ++ set(LIBDRM_INCLUDE_DIRS ${LIBDRM_INCLUDE_DIR}) ++ ++ if(NOT TARGET LIBDRM::LIBDRM) ++ add_library(LIBDRM::LIBDRM UNKNOWN IMPORTED) ++ set_target_properties(LIBDRM::LIBDRM PROPERTIES ++ IMPORTED_LOCATION "${LIBDRM_LIBRARY}" ++ INTERFACE_INCLUDE_DIRECTORIES "${LIBDRM_INCLUDE_DIR}") ++ endif() ++endif() ++ ++mark_as_advanced(LIBDRM_INCLUDE_DIR LIBDRM_LIBRARY) +diff --git a/CMake/FindLibgbm.cmake b/CMake/FindLibgbm.cmake +new file mode 100644 +index 00000000000..d2091cbfb42 +--- /dev/null ++++ b/CMake/FindLibgbm.cmake +@@ -0,0 +1,46 @@ ++# - Try to find gbm. ++# Once done, this will define ++# ++# LIBGBM_INCLUDE_DIRS - the gbm include directories ++# LIBGBM_LIBRARIES - link these to use gbm. ++# ++# Copyright (C) 2015 Igalia S.L. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions ++# are met: ++# 1. Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# 2. Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# ++# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND ITS CONTRIBUTORS ``AS ++# IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ++# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ITS ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ++# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ++# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; ++# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ++# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR ++# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ++# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ ++find_package(PkgConfig) ++pkg_check_modules(PC_LIBGBM gbm) ++ ++find_path(LIBGBM_INCLUDE_DIRS ++ NAMES gbm.h ++ HINTS ${PC_LIBGBM_INCLUDE_DIRS} ${PC_LIBGBM_INCUDEDIR} ++) ++ ++find_library(LIBGBM_LIBRARIES ++ NAMES gbm ++ HINTS ${PC_LIBGBM_LIBRARY_DIRS} ${PC_LIBGBM_LIBDIR} ++) ++ ++include(FindPackageHandleStandardArgs) ++FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBGBM DEFAULT_MSG LIBGBM_LIBRARIES) ++ ++mark_as_advanced(LIBGBM_INCLUDE_DIRS LIBGBM_LIBRARIES) +diff --git a/Source/Core/Common/CMakeLists.txt b/Source/Core/Common/CMakeLists.txt +index e4754f81400..6e220d9047b 100644 +--- a/Source/Core/Common/CMakeLists.txt ++++ b/Source/Core/Common/CMakeLists.txt +@@ -222,17 +222,20 @@ target_sources(common PRIVATE + ) + + if(ENABLE_EGL AND EGL_FOUND) +- find_package(DRM MODULE QUIET) +- +- target_sources(common PRIVATE ++ find_package(Libdrm) ++ find_package(Libgbm) ++ if (LIBDRM_FOUND AND LIBGBM_FOUND) ++ target_sources(common PRIVATE + GL/GLInterface/EGL.cpp + GL/GLInterface/EGL.h +- ) +- if (DRM_FOUND) +- target_sources(common PRIVATE + GL/GLInterface/EGLDRM.cpp + GL/GLInterface/EGLDRM.h + ) ++ else() ++ target_sources(common PRIVATE ++ GL/GLInterface/EGL.cpp ++ GL/GLInterface/EGL.h ++ ) + endif() + if(ANDROID) + target_sources(common PRIVATE +@@ -245,9 +248,9 @@ if(ENABLE_EGL AND EGL_FOUND) + GL/GLInterface/EGLX11.h + ) + endif() +- if (DRM_FOUND) +- target_include_directories(common PRIVATE ${EGL_INCLUDE_DIRS} ${DRM_INCLUDE_DIRS}) +- target_link_libraries(common PUBLIC ${EGL_LIBRARIES} ${DRM_LIBRARY}) ++ if (LIBDRM_FOUND AND LIBGBM_FOUND) ++ target_include_directories(common PRIVATE ${EGL_INCLUDE_DIRS} ${LIBDRM_INCLUDE_DIRS} ${LIBGBM_INCLUDE_DIRS}) ++ target_link_libraries(common PUBLIC ${EGL_LIBRARIES} ${LIBDRM_LIBRARIES} ${LIBGBM_LIBRARIES}) + else() + target_include_directories(common PRIVATE ${EGL_INCLUDE_DIRS}) + target_link_libraries(common PUBLIC ${EGL_LIBRARIES}) + +From 1fa6fbc5387ecffcd18887a4894c3c3db84bd80a Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 10:35:28 +0200 +Subject: [PATCH 03/25] Tidy up EGLDRM + +--- + Source/Core/Common/GL/GLInterface/EGLDRM.cpp | 430 +++++-------------- + Source/Core/Common/GL/GLInterface/EGLDRM.h | 4 - + 2 files changed, 107 insertions(+), 327 deletions(-) + +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +index 3996178d045..4b4ed1668e8 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +@@ -1,3 +1,9 @@ ++// Copyright 2020 Dolphin Emulator Project ++// Licensed under GPLv2+ ++// Refer to the license.txt file included. ++ ++// EGL DRM GBM code based on RetroArch, RetroArch licenses follows ++ + /* RetroArch - A frontend for libretro. + * Copyright (c) 2011-2017 - Daniel De Matteis + * +@@ -13,10 +19,6 @@ + * If not, see . + */ + +-// Copyright 2012 Dolphin Emulator Project +-// Licensed under GPLv2+ +-// Refer to the license.txt file included. +- + #include + #include + #include +@@ -58,182 +60,82 @@ + #define EGL_PLATFORM_GBM_KHR 0x31D7 + #endif + +-extern uint32_t g_connector_id; +-extern int g_drm_fd; +-extern uint32_t g_crtc_id; +- +-extern struct pollfd g_drm_fds; +- +-extern drmModeConnector *g_drm_connector; +-extern drmModeModeInfo *g_drm_mode; +-extern drmModeCrtc *g_orig_crtc; +- +-extern drmEventContext g_drm_evctx; +- +- +-void egl_report_error(void); +- +-void egl_destroy(egl_ctx_data_t *egl); +- +-void egl_terminate(EGLDisplay dpy); +- +-void egl_swap_buffers(void *data); +- +-void egl_set_swap_interval(egl_ctx_data_t *egl, int interval); +- +-void egl_get_video_size(egl_ctx_data_t *egl, unsigned *width, unsigned *height); ++#ifndef EGL_KHR_create_context ++#define EGL_KHR_create_context 1 ++#define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098 ++#define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB ++#define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD ++#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD ++#define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE ++#define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF ++#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002 ++#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004 ++#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001 ++#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002 ++#endif /* EGL_KHR_create_context */ + + typedef bool (*egl_accept_config_cb_t)(void *display_data, EGLDisplay dpy, EGLConfig config); + +-bool egl_initialize(EGLDisplay dpy, EGLint *major, EGLint *minor); +- +-bool egl_init_context_common( +- egl_ctx_data_t *egl, EGLint *count, +- const EGLint *attrib_ptr, +- egl_accept_config_cb_t cb, +- void *display_data); +- +-bool egl_init_context(egl_ctx_data_t *egl, +- EGLenum platform, +- void *display_data, +- EGLint *major, +- EGLint *minor, +- EGLint *n, +- const EGLint *attrib_ptr, +- egl_accept_config_cb_t cb); +- +-bool egl_bind_api(EGLenum egl_api); +- +-bool egl_create_context(egl_ctx_data_t *egl, const EGLint *egl_attribs); +- +-bool egl_create_surface(egl_ctx_data_t *egl, void *native_window); +- +-bool egl_get_native_visual_id(egl_ctx_data_t *egl, EGLint *value); +- +-bool egl_get_config_attrib(EGLDisplay dpy, EGLConfig config, +- EGLint attribute, EGLint *value); +- +-bool egl_has_config(egl_ctx_data_t *egl); +- +-#define _egl_query_surface(a, b, c, d) eglQuerySurface(a, b, c, d) +-#define _egl_get_proc_address(a) eglGetProcAddress(a) +-#define _egl_create_window_surface(a, b, c, d) eglCreateWindowSurface(a, b, c, d) +-#define _egl_create_context(a, b, c, d) eglCreateContext(a, b, c, d) +-#define _egl_get_configs(a, b, c, d) eglGetConfigs(a, b, c, d) +-#define _egl_get_display(a) eglGetDisplay(a) +-#define _egl_choose_config(a, b, c, d, e) eglChooseConfig(a, b, c, d, e) +-#define _egl_make_current(a, b, c, d) eglMakeCurrent(a, b, c, d) +-#define _egl_initialize(a, b, c) eglInitialize(a, b, c) +-#define _egl_destroy_surface(a, b) eglDestroySurface(a, b) +-#define _egl_destroy_context(a, b) eglDestroyContext(a, b) +-#define _egl_get_current_context() eglGetCurrentContext() +-#define _egl_get_error() eglGetError() +-#define _egl_terminate(dpy) eglTerminate(dpy) +-#define _egl_bind_api(a) eglBindAPI(a) +-#define _egl_query_string(a, b) eglQueryString(a, b) +-#define _egl_get_config_attrib(a, b, c, d) eglGetConfigAttrib(a, b, c, d) +-#define _egl_swap_buffers(a, b) eglSwapBuffers(a, b) +-#define _egl_swap_interval(a, b) eglSwapInterval(a, b) +- +-void egl_report_error(void) ++typedef struct gfx_ctx_drm_data + { +- EGLint error = _egl_get_error(); +- const char *str = NULL; +- switch (error) +- { +- case EGL_SUCCESS: +- str = "EGL_SUCCESS"; +- break; +- +- case EGL_BAD_ACCESS: +- str = "EGL_BAD_ACCESS"; +- break; +- +- case EGL_BAD_ALLOC: +- str = "EGL_BAD_ALLOC"; +- break; +- +- case EGL_BAD_ATTRIBUTE: +- str = "EGL_BAD_ATTRIBUTE"; +- break; +- +- case EGL_BAD_CONFIG: +- str = "EGL_BAD_CONFIG"; +- break; +- +- case EGL_BAD_CONTEXT: +- str = "EGL_BAD_CONTEXT"; +- break; +- +- case EGL_BAD_CURRENT_SURFACE: +- str = "EGL_BAD_CURRENT_SURFACE"; +- break; +- +- case EGL_BAD_DISPLAY: +- str = "EGL_BAD_DISPLAY"; +- break; +- +- case EGL_BAD_MATCH: +- str = "EGL_BAD_MATCH"; +- break; +- +- case EGL_BAD_NATIVE_PIXMAP: +- str = "EGL_BAD_NATIVE_PIXMAP"; +- break; +- +- case EGL_BAD_NATIVE_WINDOW: +- str = "EGL_BAD_NATIVE_WINDOW"; +- break; +- +- case EGL_BAD_PARAMETER: +- str = "EGL_BAD_PARAMETER"; +- break; ++ egl_ctx_data_t egl; ++ int fd; ++ int interval; ++ unsigned fb_width; ++ unsigned fb_height; + +- case EGL_BAD_SURFACE: +- str = "EGL_BAD_SURFACE"; +- break; ++ bool core_hw_context_enable; ++ bool waiting_for_flip; ++ struct gbm_bo *bo; ++ struct gbm_bo *next_bo; ++ struct gbm_surface *gbm_surface; ++ struct gbm_device *gbm_dev; ++} gfx_ctx_drm_data_t; + +- default: +- str = "Unknown"; +- break; +- } ++struct drm_fb ++{ ++ struct gbm_bo *bo; ++ uint32_t fb_id; ++}; + +- printf("[EGL]: #0x%x, %s\n", (unsigned)error, str); +-} ++/* TODO/FIXME - globals */ ++static drmEventContext g_drm_evctx; ++static struct pollfd g_drm_fds; ++static uint32_t g_connector_id = 0; ++static int g_drm_fd = 0; ++static uint32_t g_crtc_id = 0; ++static drmModeCrtc *g_orig_crtc = NULL; ++static drmModeConnector *g_drm_connector = NULL; ++static drmModeModeInfo *g_drm_mode = NULL; + +-void egl_terminate(EGLDisplay dpy) +-{ +- _egl_terminate(dpy); +-} ++/* TODO/FIXME - static globals */ ++static drmModeRes *g_drm_resources = NULL; ++static drmModeEncoder *g_drm_encoder = NULL; + +-bool egl_get_config_attrib(EGLDisplay dpy, EGLConfig config, EGLint attribute, +- EGLint *value) +-{ +- return _egl_get_config_attrib(dpy, config, attribute, value); +-} ++static gfx_ctx_drm_data* g_drm = NULL; + +-bool egl_initialize(EGLDisplay dpy, EGLint *major, EGLint *minor) +-{ +- return _egl_initialize(dpy, major, minor); +-} ++bool drm_get_encoder(int fd); + +-bool egl_bind_api(EGLenum egl_api) +-{ +- return _egl_bind_api(egl_api); +-} ++/* Restore the original CRTC. */ ++void drm_restore_crtc(void); ++bool drm_get_resources(int fd); ++void drm_setup(int fd); ++void drm_free(void); ++bool drm_get_connector(int fd); ++float drm_get_refresh_rate(void *data); + +-void egl_destroy(egl_ctx_data_t *egl) ++static void egl_destroy(egl_ctx_data_t *egl) + { + if (egl->dpy) + { +- _egl_make_current(egl->dpy, ++ eglMakeCurrent(egl->dpy, + EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + if (egl->ctx != EGL_NO_CONTEXT) +- _egl_destroy_context(egl->dpy, egl->ctx); ++ eglDestroyContext(egl->dpy, egl->ctx); + + if (egl->surf != EGL_NO_SURFACE) +- _egl_destroy_surface(egl->dpy, egl->surf); +- egl_terminate(egl->dpy); ++ eglDestroySurface(egl->dpy, egl->surf); ++ eglTerminate(egl->dpy); + } + + /* Be as careful as possible in deinit. +@@ -246,7 +148,7 @@ void egl_destroy(egl_ctx_data_t *egl) + egl->config = 0; + } + +-void egl_swap_buffers(void *data) ++static void egl_swap_buffers(void *data) + { + egl_ctx_data_t *egl = (egl_ctx_data_t*)data; + if ( egl && +@@ -254,13 +156,11 @@ void egl_swap_buffers(void *data) + egl->surf != EGL_NO_SURFACE + ) + { +- _egl_swap_buffers(egl->dpy, egl->surf); ++ eglSwapBuffers(egl->dpy, egl->surf); + } +- else +- printf("\nSWAP FAILED"); + } + +-void egl_set_swap_interval(egl_ctx_data_t *egl, int interval) ++static void egl_set_swap_interval(egl_ctx_data_t *egl, int interval) + { + /* Can be called before initialization. + * Some contexts require that swap interval +@@ -270,38 +170,21 @@ void egl_set_swap_interval(egl_ctx_data_t *egl, int interval) + + if (egl->dpy == EGL_NO_DISPLAY) + return; +- if (!_egl_get_current_context()) ++ if (!eglGetCurrentContext()) + return; + + printf("[EGL]: eglSwapInterval(%u)\n", interval); +- if (!_egl_swap_interval(egl->dpy, interval)) ++ if (!eglSwapInterval(egl->dpy, interval)) + { +- printf("[EGL]: eglSwapInterval() failed.\n"); +- egl_report_error(); ++ printf("[EGL]: eglSwapInterval() failed 0x%x.\n", eglGetError()); + } + } + +-void egl_get_video_size(egl_ctx_data_t *egl, unsigned *width, unsigned *height) +-{ +- *width = 0; +- *height = 0; +- +- if (egl->dpy != EGL_NO_DISPLAY && egl->surf != EGL_NO_SURFACE) +- { +- EGLint gl_width, gl_height; +- +- _egl_query_surface(egl->dpy, egl->surf, EGL_WIDTH, &gl_width); +- _egl_query_surface(egl->dpy, egl->surf, EGL_HEIGHT, &gl_height); +- *width = gl_width; +- *height = gl_height; +- } +-} +- +-bool check_egl_version(int minMajorVersion, int minMinorVersion) ++static bool check_egl_version(int minMajorVersion, int minMinorVersion) + { + int count; + int major, minor; +- const char *str = _egl_query_string(EGL_NO_DISPLAY, EGL_VERSION); ++ const char *str = eglQueryString(EGL_NO_DISPLAY, EGL_VERSION); + + if (!str) + return false; +@@ -322,10 +205,10 @@ bool check_egl_version(int minMajorVersion, int minMinorVersion) + return false; + } + +-bool check_egl_client_extension(const char *name) ++static bool check_egl_client_extension(const char *name) + { + size_t nameLen; +- const char *str = _egl_query_string(EGL_NO_DISPLAY, EGL_EXTENSIONS); ++ const char *str = eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS); + + /* The EGL implementation doesn't support client extensions at all. */ + if (!str) +@@ -363,7 +246,7 @@ static EGLDisplay get_egl_display(EGLenum platform, void *native) + + printf("[EGL] Found EGL client version >= 1.5, trying eglGetPlatformDisplay\n"); + ptr_eglGetPlatformDisplay = (pfn_eglGetPlatformDisplay) +- _egl_get_proc_address("eglGetPlatformDisplay"); ++ eglGetProcAddress("eglGetPlatformDisplay"); + + if (ptr_eglGetPlatformDisplay) + { +@@ -381,7 +264,7 @@ static EGLDisplay get_egl_display(EGLenum platform, void *native) + + printf("[EGL] Found EGL_EXT_platform_base, trying eglGetPlatformDisplayEXT\n"); + ptr_eglGetPlatformDisplayEXT = (PFNEGLGETPLATFORMDISPLAYEXTPROC) +- _egl_get_proc_address("eglGetPlatformDisplayEXT"); ++ eglGetProcAddress("eglGetPlatformDisplayEXT"); + + if (ptr_eglGetPlatformDisplayEXT) + { +@@ -397,12 +280,12 @@ static EGLDisplay get_egl_display(EGLenum platform, void *native) + * implementation doesn't support eglGetPlatformDisplay. In this case, try + * eglGetDisplay and hope for the best. */ + printf("[EGL] Falling back to eglGetDisplay\n"); +- return _egl_get_display((EGLNativeDisplayType) native); ++ return eglGetDisplay((EGLNativeDisplayType) native); + } + +-bool egl_get_native_visual_id(egl_ctx_data_t *egl, EGLint *value) ++static bool egl_get_native_visual_id(egl_ctx_data_t *egl, EGLint *value) + { +- if (!egl_get_config_attrib(egl->dpy, egl->config, ++ if (!eglGetConfigAttrib(egl->dpy, egl->config, + EGL_NATIVE_VISUAL_ID, value)) + { + printf("[EGL]: egl_get_native_visual_id failed.\n"); +@@ -412,7 +295,7 @@ bool egl_get_native_visual_id(egl_ctx_data_t *egl, EGLint *value) + return true; + } + +-bool egl_init_context_common( ++static bool egl_init_context_common( + egl_ctx_data_t *egl, EGLint *count, + const EGLint *attrib_ptr, + egl_accept_config_cb_t cb, +@@ -424,7 +307,7 @@ bool egl_init_context_common( + if (!egl) + return false; + +- if (!_egl_get_configs(egl->dpy, NULL, 0, count) || *count < 1) ++ if (!eglGetConfigs(egl->dpy, NULL, 0, count) || *count < 1) + { + printf("[EGL]: No configs to choose from.\n"); + return false; +@@ -434,7 +317,7 @@ bool egl_init_context_common( + if (!configs) + return false; + +- if (!_egl_choose_config(egl->dpy, attrib_ptr, ++ if (!eglChooseConfig(egl->dpy, attrib_ptr, + configs, *count, &matched) || !matched) + { + printf("[EGL]: No EGL configs with appropriate attributes.\n"); +@@ -462,7 +345,7 @@ bool egl_init_context_common( + } + + +-bool egl_init_context(egl_ctx_data_t *egl, ++static bool egl_init_context(egl_ctx_data_t *egl, + EGLenum platform, + void *display_data, + EGLint *major, EGLint *minor, +@@ -479,7 +362,7 @@ bool egl_init_context(egl_ctx_data_t *egl, + + egl->dpy = dpy; + +- if (!egl_initialize(egl->dpy, major, minor)) ++ if (!eglInitialize(egl->dpy, major, minor)) + return false; + + printf("[EGL]: EGL version: %d.%d\n", *major, *minor); +@@ -488,9 +371,9 @@ bool egl_init_context(egl_ctx_data_t *egl, + display_data); + } + +-bool egl_create_context(egl_ctx_data_t *egl, const EGLint *egl_attribs) ++static bool egl_create_context(egl_ctx_data_t *egl, const EGLint *egl_attribs) + { +- EGLContext ctx = _egl_create_context(egl->dpy, egl->config, EGL_NO_CONTEXT, ++ EGLContext ctx = eglCreateContext(egl->dpy, egl->config, EGL_NO_CONTEXT, + egl_attribs); + + if (ctx == EGL_NO_CONTEXT) +@@ -501,54 +384,27 @@ bool egl_create_context(egl_ctx_data_t *egl, const EGLint *egl_attribs) + return true; + } + +-bool egl_create_surface(egl_ctx_data_t *egl, void *native_window) ++static bool egl_create_surface(egl_ctx_data_t *egl, void *native_window) + { + EGLint window_attribs[] = { + EGL_RENDER_BUFFER, EGL_BACK_BUFFER, + EGL_NONE, + }; + +- egl->surf = _egl_create_window_surface(egl->dpy, egl->config, (NativeWindowType)native_window, window_attribs); ++ egl->surf = eglCreateWindowSurface(egl->dpy, egl->config, (NativeWindowType)native_window, window_attribs); + + if (egl->surf == EGL_NO_SURFACE) + return false; + + /* Connect the context to the surface. */ +- if (!_egl_make_current(egl->dpy, egl->surf, egl->surf, egl->ctx)) ++ if (!eglMakeCurrent(egl->dpy, egl->surf, egl->surf, egl->ctx)) + return false; + +- printf("[EGL]: Current context: %p.\n", (void*)_egl_get_current_context()); ++ printf("[EGL]: Current context: %p.\n", (void*)eglGetCurrentContext()); + + return true; + } + +-bool egl_has_config(egl_ctx_data_t *egl) +-{ +- if (!egl->config) +- { +- printf("[EGL]: No EGL configurations available.\n"); +- return false; +- } +- return true; +-} +- +- +- +-bool drm_get_encoder(int fd); +- +-/* Restore the original CRTC. */ +-void drm_restore_crtc(void); +- +-bool drm_get_resources(int fd); +- +-void drm_setup(int fd); +- +-void drm_free(void); +- +-bool drm_get_connector(int fd); +- +-float drm_get_refresh_rate(void *data); +- + static bool drm_wait_flip(int timeout) + { + g_drm_fds.revents = 0; +@@ -568,20 +424,6 @@ static bool drm_wait_flip(int timeout) + return false; + } + +-/* TODO/FIXME - globals */ +-drmEventContext g_drm_evctx; +-struct pollfd g_drm_fds; +-uint32_t g_connector_id = 0; +-int g_drm_fd = 0; +-uint32_t g_crtc_id = 0; +-drmModeCrtc *g_orig_crtc = NULL; +-drmModeConnector *g_drm_connector = NULL; +-drmModeModeInfo *g_drm_mode = NULL; +- +-/* TODO/FIXME - static globals */ +-static drmModeRes *g_drm_resources = NULL; +-static drmModeEncoder *g_drm_encoder = NULL; +- + /* Restore the original CRTC. */ + void drm_restore_crtc(void) + { +@@ -653,10 +495,7 @@ bool drm_get_connector(int fd) + { + monitor_index_count++; + if (monitor_index_count == monitor) +- { +- printf("\n[DRM]: Matched monitor / connector\n"); + break; +- } + } + + drmModeFreeConnector(g_drm_connector); +@@ -746,30 +585,6 @@ void drm_free(void) + g_drm_resources = NULL; + } + +-typedef struct gfx_ctx_drm_data +-{ +- egl_ctx_data_t egl; +- int fd; +- int interval; +- unsigned fb_width; +- unsigned fb_height; +- +- bool core_hw_context_enable; +- bool waiting_for_flip; +- struct gbm_bo *bo; +- struct gbm_bo *next_bo; +- struct gbm_surface *gbm_surface; +- struct gbm_device *gbm_dev; +-} gfx_ctx_drm_data_t; +- +-static gfx_ctx_drm_data* g_drm; +- +-struct drm_fb +-{ +- struct gbm_bo *bo; +- uint32_t fb_id; +-}; +- + static void drm_fb_destroy_callback(struct gbm_bo *bo, void *data) + { + struct drm_fb *fb = (struct drm_fb*)data; +@@ -1092,17 +907,17 @@ static bool gbm_choose_xrgb8888_cb(void *display_data, EGLDisplay dpy, EGLConfig + (void)display_data; + + /* Makes sure we have 8 bit color. */ +- if (!egl_get_config_attrib(dpy, config, EGL_RED_SIZE, &r)) ++ if (!eglGetConfigAttrib(dpy, config, EGL_RED_SIZE, &r)) + return false; +- if (!egl_get_config_attrib(dpy, config, EGL_GREEN_SIZE, &g)) ++ if (!eglGetConfigAttrib(dpy, config, EGL_GREEN_SIZE, &g)) + return false; +- if (!egl_get_config_attrib(dpy, config, EGL_BLUE_SIZE, &b)) ++ if (!eglGetConfigAttrib(dpy, config, EGL_BLUE_SIZE, &b)) + return false; + + if (r != 8 || g != 8 || b != 8) + return false; + +- if (!egl_get_config_attrib(dpy, config, EGL_NATIVE_VISUAL_ID, &id)) ++ if (!eglGetConfigAttrib(dpy, config, EGL_NATIVE_VISUAL_ID, &id)) + return false; + + return id == GBM_FORMAT_XRGB8888; +@@ -1140,7 +955,7 @@ static bool gfx_ctx_drm_egl_set_video_mode(gfx_ctx_drm_data_t *drm) + (EGLNativeDisplayType)drm->gbm_dev, &major, + &minor, &n, attrib_ptr, gbm_choose_xrgb8888_cb)) + { +- printf("\n[EGL] Cannot init context"); ++ printf("\n[EGL] Cannot init context error 0x%x",eglGetError()); + goto error; + } + attr = gfx_ctx_drm_egl_fill_attribs(drm, egl_attribs); +@@ -1149,13 +964,13 @@ static bool gfx_ctx_drm_egl_set_video_mode(gfx_ctx_drm_data_t *drm) + if (!egl_create_context(&drm->egl, (attr != egl_attribs_ptr) + ? egl_attribs_ptr : NULL)) + { +- printf("\n[EGL] Cannot create context"); ++ printf("\n[EGL] Cannot create context error 0x%x",eglGetError()); + goto error; + } + + if (!egl_create_surface(&drm->egl, (EGLNativeWindowType)drm->gbm_surface)) + { +- printf("\n[EGL] Cannot create context"); ++ printf("\n[EGL] Cannot create context error 0x%x",eglGetError()); + return false; + } + +@@ -1164,7 +979,6 @@ static bool gfx_ctx_drm_egl_set_video_mode(gfx_ctx_drm_data_t *drm) + return true; + + error: +- egl_report_error(); + return false; + } + +@@ -1287,24 +1101,12 @@ static void gfx_ctx_drm_destroy(void *data) + free(drm); + } + +-#ifndef EGL_KHR_create_context +-#define EGL_KHR_create_context 1 +-#define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098 +-#define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB +-#define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD +-#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD +-#define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE +-#define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF +-#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002 +-#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004 +-#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001 +-#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002 +-#endif /* EGL_KHR_create_context */ + + GLContextEGLDRM::~GLContextEGLDRM() + { + DestroyWindowSurface(); + DestroyContext(); ++ gfx_ctx_drm_destroy(g_drm); + } + + bool GLContextEGLDRM::IsHeadless() const +@@ -1331,25 +1133,18 @@ void* GLContextEGLDRM::GetFuncAddress(const std::string& name) + // Call browser: Core.cpp:EmuThread() > main.cpp:Video_Initialize() + bool GLContextEGLDRM::Initialize(const WindowSystemInfo& wsi, bool stereo, bool core) + { +- EGLint egl_major, egl_minor; +- bool supports_core_profile = false; +- + g_drm = (gfx_ctx_drm_data_t*)gfx_ctx_drm_init(); +- egl_bind_api(EGL_OPENGL_ES_API); ++ ++ eglBindAPI(EGL_OPENGL_ES_API); ++ + gfx_ctx_drm_set_video_mode(g_drm, 1920, 1080, true); + m_backbuffer_width = 1920; + m_backbuffer_height = 1080; + + m_egl = &g_drm->egl; + m_opengl_mode = Mode::OpenGLES; ++ m_supports_surfaceless = check_egl_client_extension("EGL_KHR_surfaceless_context"); + +- m_supports_surfaceless = false; +- const char* ext = eglQueryString(m_egl->dpy, EGL_EXTENSIONS); +- if (strstr(ext, "EGL_KHR_surfaceless_context")) +- { +- printf("\nFound EGL_KHR_surfaceless_context\n"); +- m_supports_surfaceless =true; +- } + eglBindAPI(EGL_OPENGL_ES_API); + + return MakeCurrent(); +@@ -1357,7 +1152,6 @@ bool GLContextEGLDRM::Initialize(const WindowSystemInfo& wsi, bool stereo, bool + + std::unique_ptr GLContextEGLDRM::CreateSharedContext() + { +- printf("\nvoid GLContextEGLDRM::CreateSharedContext"); + std::unique_ptr new_context = std::make_unique(); + new_context->m_egl = (egl_ctx_data_t*)malloc(sizeof(egl_ctx_data_t)); + memcpy(new_context->m_egl, m_egl, sizeof(egl_ctx_data_t)); +@@ -1371,8 +1165,7 @@ std::unique_ptr GLContextEGLDRM::CreateSharedContext() + new_context->m_egl->ctx = eglCreateContext(m_egl->dpy, m_egl->config, m_egl->ctx, egl_attribs_ptr); + if (!new_context->m_egl->ctx) + { +- printf("\nError: eglCreateContext failed\n"); +- egl_report_error(); ++ printf("\nError: eglCreateContext failed 0x%x\n", eglGetError()); + return nullptr; + } + eglBindAPI(EGL_OPENGL_ES_API); +@@ -1381,8 +1174,7 @@ std::unique_ptr GLContextEGLDRM::CreateSharedContext() + new_context->m_is_shared = true; + if (!new_context->CreateWindowSurface()) + { +- printf("\nError: CreateWindowSurface failed\n"); +- egl_report_error(); ++ printf("\nError: CreateWindowSurface failed 0x%x\n", eglGetError()); + return nullptr; + } + return new_context; +@@ -1391,7 +1183,6 @@ std::unique_ptr GLContextEGLDRM::CreateSharedContext() + bool GLContextEGLDRM::CreateWindowSurface() + { + EGLint attrib_list[] = { EGL_NONE, }; +- printf("\nvoid GLContextEGLDRM::CreateWindowSurface"); + if (m_supports_surfaceless) + { + m_egl->surf = EGL_NO_SURFACE; +@@ -1403,8 +1194,7 @@ bool GLContextEGLDRM::CreateWindowSurface() + { + if (!egl_create_surface(m_egl, (EGLNativeWindowType)g_drm->gbm_surface)) + { +- printf("\negl_create_surface failed, trying pbuffer\n"); +- egl_report_error(); ++ printf("\negl_create_surface failed, trying pbuffer failed 0x%x\n", eglGetError()); + goto pbuffer; + } + printf("\nm_egl_surface=0x%x",m_egl->surf); +@@ -1424,8 +1214,7 @@ bool GLContextEGLDRM::CreateWindowSurface() + m_egl->surf = eglCreatePbufferSurface(m_egl->dpy, m_egl->config, attrib_list); + if (!m_egl->surf) + { +- printf("\nError: eglCreatePbufferSurface failed\n"); +- egl_report_error(); ++ printf("\nError: eglCreatePbufferSurface failed 0x%x\n", eglGetError()); + return false; + } + return true; +@@ -1433,7 +1222,6 @@ bool GLContextEGLDRM::CreateWindowSurface() + + void GLContextEGLDRM::DestroyWindowSurface() + { +- printf("\nvoid GLContextEGLDRM::DestroyWindowSurface"); + if (m_egl->surf == EGL_NO_SURFACE) + return; + +@@ -1446,13 +1234,11 @@ void GLContextEGLDRM::DestroyWindowSurface() + + bool GLContextEGLDRM::MakeCurrent() + { +- printf("\nvoid GLContextEGLDRM::MakeCurrent()"); +- return _egl_make_current(m_egl->dpy, g_drm->egl.surf, g_drm->egl.surf, m_egl->ctx); ++ return eglMakeCurrent(m_egl->dpy, g_drm->egl.surf, g_drm->egl.surf, m_egl->ctx); + } + + void GLContextEGLDRM::UpdateSurface(void* window_handle) + { +- printf("\nvoid GLContextEGLDRM::UpdateSurface(void* window_handle)"); + ClearCurrent(); + DestroyWindowSurface(); + CreateWindowSurface(); +@@ -1461,14 +1247,12 @@ void GLContextEGLDRM::UpdateSurface(void* window_handle) + + bool GLContextEGLDRM::ClearCurrent() + { +- printf("\nvoid GLContextEGLDRM::ClearCurrent()"); +- return _egl_make_current(m_egl->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); ++ return eglMakeCurrent(m_egl->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + } + + // Close backend + void GLContextEGLDRM::DestroyContext() + { +- printf("\nGLContextEGLDRM::DestroyContext()"); + if (!m_egl->ctx) + return; + +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.h b/Source/Core/Common/GL/GLInterface/EGLDRM.h +index b8615cf7e67..b03dfea0622 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.h ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.h +@@ -50,10 +50,6 @@ class GLContextEGLDRM : public GLContext + void DestroyWindowSurface(); + void DestroyContext(); + +- WindowSystemInfo m_wsi = {}; +- + bool m_supports_surfaceless = false; +- std::vector m_attribs; +- + egl_ctx_data_t* m_egl; + }; + +From bd3159621277b4ad13a030e55e071cead9bc186d Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 11:30:04 +0200 +Subject: [PATCH 04/25] Use Dolphin logging system + +--- + Source/Core/Common/GL/GLInterface/EGLDRM.cpp | 134 +++++++++++-------- + 1 file changed, 81 insertions(+), 53 deletions(-) + +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +index 4b4ed1668e8..baebf998c4a 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +@@ -43,6 +43,7 @@ + #include + + #include "Common/GL/GLInterface/EGLDRM.h" ++#include "Common/Logging/Log.h" + + #ifndef EGL_CONTEXT_FLAGS_KHR + #define EGL_CONTEXT_FLAGS_KHR 0x30FC +@@ -173,10 +174,10 @@ static void egl_set_swap_interval(egl_ctx_data_t *egl, int interval) + if (!eglGetCurrentContext()) + return; + +- printf("[EGL]: eglSwapInterval(%u)\n", interval); ++ INFO_LOG(VIDEO, "[EGL]: eglSwapInterval(%u)\n", interval); + if (!eglSwapInterval(egl->dpy, interval)) + { +- printf("[EGL]: eglSwapInterval() failed 0x%x.\n", eglGetError()); ++ INFO_LOG(VIDEO, "[EGL]: eglSwapInterval() failed 0x%x.\n", eglGetError()); + } + } + +@@ -209,7 +210,6 @@ static bool check_egl_client_extension(const char *name) + { + size_t nameLen; + const char *str = eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS); +- + /* The EGL implementation doesn't support client extensions at all. */ + if (!str) + return false; +@@ -230,6 +230,34 @@ static bool check_egl_client_extension(const char *name) + return false; + } + ++static bool check_egl_display_extension(void* data, const char *name) ++{ ++ size_t nameLen; ++ egl_ctx_data_t *egl = (egl_ctx_data_t*)data; ++ if (!egl || egl->dpy == EGL_NO_DISPLAY) ++ return false; ++ ++ const char *str = eglQueryString(egl->dpy, EGL_EXTENSIONS); ++ /* The EGL implementation doesn't support extensions at all. */ ++ if (!str) ++ return false; ++ ++ nameLen = strlen(name); ++ while (*str != '\0') ++ { ++ /* Use strspn and strcspn to find the start position and length of each ++ * token in the extension string. Using strtok could also work, but ++ * that would require allocating a copy of the string. */ ++ size_t len = strcspn(str, " "); ++ if (len == nameLen && strncmp(str, name, nameLen) == 0) ++ return true; ++ str += len; ++ str += strspn(str, " "); ++ } ++ ++ return false; ++} ++ + static EGLDisplay get_egl_display(EGLenum platform, void *native) + { + if (platform != EGL_NONE) +@@ -244,7 +272,7 @@ static EGLDisplay get_egl_display(EGLenum platform, void *native) + (EGLenum platform, void *native_display, const EGLAttrib *attrib_list); + pfn_eglGetPlatformDisplay ptr_eglGetPlatformDisplay; + +- printf("[EGL] Found EGL client version >= 1.5, trying eglGetPlatformDisplay\n"); ++ INFO_LOG(VIDEO, "[EGL] Found EGL client version >= 1.5, trying eglGetPlatformDisplay\n"); + ptr_eglGetPlatformDisplay = (pfn_eglGetPlatformDisplay) + eglGetProcAddress("eglGetPlatformDisplay"); + +@@ -262,7 +290,7 @@ static EGLDisplay get_egl_display(EGLenum platform, void *native) + { + PFNEGLGETPLATFORMDISPLAYEXTPROC ptr_eglGetPlatformDisplayEXT; + +- printf("[EGL] Found EGL_EXT_platform_base, trying eglGetPlatformDisplayEXT\n"); ++ INFO_LOG(VIDEO, "[EGL] Found EGL_EXT_platform_base, trying eglGetPlatformDisplayEXT\n"); + ptr_eglGetPlatformDisplayEXT = (PFNEGLGETPLATFORMDISPLAYEXTPROC) + eglGetProcAddress("eglGetPlatformDisplayEXT"); + +@@ -279,7 +307,7 @@ static EGLDisplay get_egl_display(EGLenum platform, void *native) + /* Either the caller didn't provide a platform type, or the EGL + * implementation doesn't support eglGetPlatformDisplay. In this case, try + * eglGetDisplay and hope for the best. */ +- printf("[EGL] Falling back to eglGetDisplay\n"); ++ INFO_LOG(VIDEO, "[EGL] Falling back to eglGetDisplay\n"); + return eglGetDisplay((EGLNativeDisplayType) native); + } + +@@ -288,7 +316,7 @@ static bool egl_get_native_visual_id(egl_ctx_data_t *egl, EGLint *value) + if (!eglGetConfigAttrib(egl->dpy, egl->config, + EGL_NATIVE_VISUAL_ID, value)) + { +- printf("[EGL]: egl_get_native_visual_id failed.\n"); ++ INFO_LOG(VIDEO, "[EGL]: egl_get_native_visual_id failed.\n"); + return false; + } + +@@ -309,7 +337,7 @@ static bool egl_init_context_common( + + if (!eglGetConfigs(egl->dpy, NULL, 0, count) || *count < 1) + { +- printf("[EGL]: No configs to choose from.\n"); ++ INFO_LOG(VIDEO, "[EGL]: No configs to choose from.\n"); + return false; + } + +@@ -320,7 +348,7 @@ static bool egl_init_context_common( + if (!eglChooseConfig(egl->dpy, attrib_ptr, + configs, *count, &matched) || !matched) + { +- printf("[EGL]: No EGL configs with appropriate attributes.\n"); ++ INFO_LOG(VIDEO, "[EGL]: No EGL configs with appropriate attributes.\n"); + return false; + } + +@@ -337,7 +365,7 @@ static bool egl_init_context_common( + + if (i == *count) + { +- printf("[EGL]: No EGL config found which satifies requirements.\n"); ++ INFO_LOG(VIDEO, "[EGL]: No EGL config found which satifies requirements.\n"); + return false; + } + +@@ -356,7 +384,7 @@ static bool egl_init_context(egl_ctx_data_t *egl, + + if (dpy == EGL_NO_DISPLAY) + { +- printf("[EGL]: Couldn't get EGL display.\n"); ++ INFO_LOG(VIDEO, "[EGL]: Couldn't get EGL display.\n"); + return false; + } + +@@ -365,7 +393,7 @@ static bool egl_init_context(egl_ctx_data_t *egl, + if (!eglInitialize(egl->dpy, major, minor)) + return false; + +- printf("[EGL]: EGL version: %d.%d\n", *major, *minor); ++ INFO_LOG(VIDEO, "[EGL]: EGL version: %d.%d\n", *major, *minor); + + return egl_init_context_common(egl, count, attrib_ptr, cb, + display_data); +@@ -400,7 +428,7 @@ static bool egl_create_surface(egl_ctx_data_t *egl, void *native_window) + if (!eglMakeCurrent(egl->dpy, egl->surf, egl->surf, egl->ctx)) + return false; + +- printf("[EGL]: Current context: %p.\n", (void*)eglGetCurrentContext()); ++ INFO_LOG(VIDEO, "[EGL]: Current context: %p.\n", (void*)eglGetCurrentContext()); + + return true; + } +@@ -445,7 +473,7 @@ bool drm_get_resources(int fd) + g_drm_resources = drmModeGetResources(fd); + if (!g_drm_resources) + { +- printf("[DRM]: Couldn't get device resources.\n"); ++ INFO_LOG(VIDEO, "[DRM]: Couldn't get device resources.\n"); + return false; + } + +@@ -460,7 +488,7 @@ bool drm_get_connector(int fd) + + /* Enumerate all connectors. */ + +- printf("[DRM]: Found %d connectors.\n", g_drm_resources->count_connectors); ++ INFO_LOG(VIDEO, "[DRM]: Found %d connectors.\n", g_drm_resources->count_connectors); + + for (i = 0; (int)i < g_drm_resources->count_connectors; i++) + { +@@ -470,12 +498,12 @@ bool drm_get_connector(int fd) + if (conn) + { + bool connected = conn->connection == DRM_MODE_CONNECTED; +- printf("[DRM]: Connector %d connected: %s\n", i, connected ? "yes" : "no"); +- printf("[DRM]: Connector %d has %d modes.\n", i, conn->count_modes); ++ INFO_LOG(VIDEO, "[DRM]: Connector %d connected: %s\n", i, connected ? "yes" : "no"); ++ INFO_LOG(VIDEO, "[DRM]: Connector %d has %d modes.\n", i, conn->count_modes); + if (connected && conn->count_modes > 0) + { + monitor_index_count++; +- printf("[DRM]: Connector %d assigned to monitor index: #%u.\n", i, monitor_index_count); ++ INFO_LOG(VIDEO, "[DRM]: Connector %d assigned to monitor index: #%u.\n", i, monitor_index_count); + } + drmModeFreeConnector(conn); + } +@@ -504,7 +532,7 @@ bool drm_get_connector(int fd) + + if (!g_drm_connector) + { +- printf("[DRM]: Couldn't get device connector.\n"); ++ INFO_LOG(VIDEO, "[DRM]: Couldn't get device connector.\n"); + return false; + } + return true; +@@ -530,13 +558,13 @@ bool drm_get_encoder(int fd) + + if (!g_drm_encoder) + { +- printf("[DRM]: Couldn't find DRM encoder.\n"); ++ INFO_LOG(VIDEO, "[DRM]: Couldn't find DRM encoder.\n"); + return false; + } + + for (i = 0; (int)i < g_drm_connector->count_modes; i++) + { +- printf("[DRM]: Mode %d: (%s) %d x %d, %u Hz\n", ++ INFO_LOG(VIDEO, "[DRM]: Mode %d: (%s) %d x %d, %u Hz\n", + i, + g_drm_connector->modes[i].name, + g_drm_connector->modes[i].hdisplay, +@@ -553,7 +581,7 @@ void drm_setup(int fd) + g_connector_id = g_drm_connector->connector_id; + g_orig_crtc = drmModeGetCrtc(fd, g_crtc_id); + if (!g_orig_crtc) +- printf("[DRM]: Cannot find original CRTC.\n"); ++ INFO_LOG(VIDEO, "[DRM]: Cannot find original CRTC.\n"); + } + + float drm_get_refresh_rate(void *data) +@@ -608,7 +636,7 @@ static struct drm_fb *drm_fb_get_from_bo(struct gbm_bo *bo) + stride = gbm_bo_get_stride(bo); + handle = gbm_bo_get_handle(bo).u32; + +- printf("[KMS]: New FB: %ux%u (stride: %u).\n", ++ INFO_LOG(VIDEO, "[KMS]: New FB: %ux%u (stride: %u).\n", + width, height, stride); + + ret = drmModeAddFB(g_drm_fd, width, height, 24, 32, +@@ -620,7 +648,7 @@ static struct drm_fb *drm_fb_get_from_bo(struct gbm_bo *bo) + return fb; + + error: +- printf("[KMS]: Failed to create FB: %s\n", strerror(errno)); ++ INFO_LOG(VIDEO, "[KMS]: Failed to create FB: %s\n", strerror(errno)); + free(fb); + return NULL; + } +@@ -631,7 +659,7 @@ static void gfx_ctx_drm_swap_interval(void *data, int interval) + drm->interval = interval; + + if (interval > 1) +- printf("[KMS]: Swap intervals > 1 currently not supported. Will use swap interval of 1.\n"); ++ INFO_LOG(VIDEO, "[KMS]: Swap intervals > 1 currently not supported. Will use swap interval of 1.\n"); + } + + static void drm_flip_handler(int fd, unsigned frame, +@@ -648,7 +676,7 @@ static void drm_flip_handler(int fd, unsigned frame, + { + unsigned missed = frame - last_page_flip - 1; + if (missed) +- printf("[KMS]: Missed %u VBlank(s) (Frame: %u, DRM frame: %u).\n", ++ INFO_LOG(VIDEO, "[KMS]: Missed %u VBlank(s) (Frame: %u, DRM frame: %u).\n", + missed, frame - first_page_flip, frame); + } + +@@ -675,7 +703,7 @@ static bool gfx_ctx_drm_wait_flip(gfx_ctx_drm_data_t *drm, bool block) + } + + if (drm->waiting_for_flip) +- { printf("\nwait flip 2"); return true; } ++ { INFO_LOG(VIDEO, "\nwait flip 2"); return true; } + + /* Page flip has taken place. */ + +@@ -701,7 +729,7 @@ static bool gfx_ctx_drm_queue_flip(gfx_ctx_drm_data_t *drm) + return true; + + /* Failed to queue page flip. */ +- printf("\nFailed to queue page flip\n"); ++ INFO_LOG(VIDEO, "\nFailed to queue page flip\n"); + return false; + } + +@@ -718,7 +746,7 @@ static void gfx_ctx_drm_swap_buffers(void *data) + * If true, we are still waiting for a flip + * (nonblocking mode, so just drop the frame). */ + if (gfx_ctx_drm_wait_flip(drm, drm->interval)) +- { printf("\nwait flip"); return; } ++ { INFO_LOG(VIDEO, "\nwait flip"); return; } + + drm->waiting_for_flip = gfx_ctx_drm_queue_flip(drm); + +@@ -737,7 +765,7 @@ static void gfx_ctx_drm_get_video_size(void *data, + + if (!drm) + { +- printf("\nCannot get drm video size\n"); ++ INFO_LOG(VIDEO, "\nCannot get drm video size\n"); + return; + } + +@@ -815,7 +843,7 @@ static void *gfx_ctx_drm_init() + drm->fd = open("/dev/dri/card0", O_RDWR); + if (drm->fd < 0) + { +- printf("[KMS]: Couldn't open DRM device.\n"); ++ INFO_LOG(VIDEO, "[KMS]: Couldn't open DRM device.\n"); + return nullptr; + } + +@@ -823,19 +851,19 @@ static void *gfx_ctx_drm_init() + + if (!drm_get_resources(fd)) + { +- printf("[KMS]: drm_get_resources failed\n"); ++ INFO_LOG(VIDEO, "[KMS]: drm_get_resources failed\n"); + return nullptr; + } + + if (!drm_get_connector(fd)) + { +- printf("[KMS]: drm_get_connector failed\n"); ++ INFO_LOG(VIDEO, "[KMS]: drm_get_connector failed\n"); + return nullptr; + } + + if (!drm_get_encoder(fd)) + { +- printf("[KMS]: drm_get_encoder failed\n"); ++ INFO_LOG(VIDEO, "[KMS]: drm_get_encoder failed\n"); + return nullptr; + } + +@@ -861,7 +889,7 @@ static void *gfx_ctx_drm_init() + + if (!drm->gbm_dev) + { +- printf("[KMS]: Couldn't create GBM device.\n"); ++ INFO_LOG(VIDEO, "[KMS]: Couldn't create GBM device.\n"); + return nullptr; + } + +@@ -955,7 +983,7 @@ static bool gfx_ctx_drm_egl_set_video_mode(gfx_ctx_drm_data_t *drm) + (EGLNativeDisplayType)drm->gbm_dev, &major, + &minor, &n, attrib_ptr, gbm_choose_xrgb8888_cb)) + { +- printf("\n[EGL] Cannot init context error 0x%x",eglGetError()); ++ INFO_LOG(VIDEO, "\n[EGL] Cannot init context error 0x%x",eglGetError()); + goto error; + } + attr = gfx_ctx_drm_egl_fill_attribs(drm, egl_attribs); +@@ -964,13 +992,13 @@ static bool gfx_ctx_drm_egl_set_video_mode(gfx_ctx_drm_data_t *drm) + if (!egl_create_context(&drm->egl, (attr != egl_attribs_ptr) + ? egl_attribs_ptr : NULL)) + { +- printf("\n[EGL] Cannot create context error 0x%x",eglGetError()); ++ INFO_LOG(VIDEO, "\n[EGL] Cannot create context error 0x%x",eglGetError()); + goto error; + } + + if (!egl_create_surface(&drm->egl, (EGLNativeWindowType)drm->gbm_surface)) + { +- printf("\n[EGL] Cannot create context error 0x%x",eglGetError()); ++ INFO_LOG(VIDEO, "\n[EGL] Cannot create context error 0x%x",eglGetError()); + return false; + } + +@@ -1037,7 +1065,7 @@ static bool gfx_ctx_drm_set_video_mode(void *data, + + if (!g_drm_mode) + { +- printf("[KMS/EGL]: Did not find suitable video mode for %u x %u.\n", ++ INFO_LOG(VIDEO, "[KMS/EGL]: Did not find suitable video mode for %u x %u.\n", + width, height); + goto error; + } +@@ -1055,13 +1083,13 @@ static bool gfx_ctx_drm_set_video_mode(void *data, + + if (!drm->gbm_surface) + { +- printf("[KMS/EGL]: Couldn't create GBM surface.\n"); ++ INFO_LOG(VIDEO, "[KMS/EGL]: Couldn't create GBM surface.\n"); + goto error; + } + + if (!gfx_ctx_drm_egl_set_video_mode(drm)) + { +- printf("[KMS/EGL]: Couldn't set EGL video mode.\n"); ++ INFO_LOG(VIDEO, "[KMS/EGL]: Couldn't set EGL video mode.\n"); + goto error; + } + +@@ -1076,7 +1104,7 @@ static bool gfx_ctx_drm_set_video_mode(void *data, + g_crtc_id, fb->fb_id, 0, 0, &g_connector_id, 1, g_drm_mode); + if (ret < 0) + { +- printf("[KMS/EGL]: drmModeSetCrtc failed\n"); ++ INFO_LOG(VIDEO, "[KMS/EGL]: drmModeSetCrtc failed\n"); + goto error; + } + return true; +@@ -1143,7 +1171,7 @@ bool GLContextEGLDRM::Initialize(const WindowSystemInfo& wsi, bool stereo, bool + + m_egl = &g_drm->egl; + m_opengl_mode = Mode::OpenGLES; +- m_supports_surfaceless = check_egl_client_extension("EGL_KHR_surfaceless_context"); ++ m_supports_surfaceless = check_egl_display_extension(m_egl,"EGL_KHR_surfaceless_context"); + + eglBindAPI(EGL_OPENGL_ES_API); + +@@ -1165,7 +1193,7 @@ std::unique_ptr GLContextEGLDRM::CreateSharedContext() + new_context->m_egl->ctx = eglCreateContext(m_egl->dpy, m_egl->config, m_egl->ctx, egl_attribs_ptr); + if (!new_context->m_egl->ctx) + { +- printf("\nError: eglCreateContext failed 0x%x\n", eglGetError()); ++ INFO_LOG(VIDEO, "\nError: eglCreateContext failed 0x%x\n", eglGetError()); + return nullptr; + } + eglBindAPI(EGL_OPENGL_ES_API); +@@ -1174,7 +1202,7 @@ std::unique_ptr GLContextEGLDRM::CreateSharedContext() + new_context->m_is_shared = true; + if (!new_context->CreateWindowSurface()) + { +- printf("\nError: CreateWindowSurface failed 0x%x\n", eglGetError()); ++ INFO_LOG(VIDEO, "\nError: CreateWindowSurface failed 0x%x\n", eglGetError()); + return nullptr; + } + return new_context; +@@ -1186,7 +1214,7 @@ bool GLContextEGLDRM::CreateWindowSurface() + if (m_supports_surfaceless) + { + m_egl->surf = EGL_NO_SURFACE; +- printf("\nCreated surfaceless context\n"); ++ INFO_LOG(VIDEO, "\nCreated surfaceless context\n"); + return true; + } + +@@ -1194,16 +1222,16 @@ bool GLContextEGLDRM::CreateWindowSurface() + { + if (!egl_create_surface(m_egl, (EGLNativeWindowType)g_drm->gbm_surface)) + { +- printf("\negl_create_surface failed, trying pbuffer failed 0x%x\n", eglGetError()); ++ INFO_LOG(VIDEO, "\negl_create_surface failed, trying pbuffer failed 0x%x\n", eglGetError()); + goto pbuffer; + } +- printf("\nm_egl_surface=0x%x",m_egl->surf); ++ INFO_LOG(VIDEO, "\nm_egl_surface=0x%x",m_egl->surf); + // Get dimensions from the surface. + EGLint surface_width = 1, surface_height = 1; + if (!eglQuerySurface(m_egl->dpy, m_egl->surf, EGL_WIDTH, &surface_width) || + !eglQuerySurface(m_egl->dpy, m_egl->surf, EGL_HEIGHT, &surface_height)) + { +- printf("Failed to get surface dimensions via eglQuerySurface. Size may be incorrect."); ++ INFO_LOG(VIDEO, "Failed to get surface dimensions via eglQuerySurface. Size may be incorrect."); + } + m_backbuffer_width = static_cast(surface_width); + m_backbuffer_height = static_cast(surface_height); +@@ -1214,7 +1242,7 @@ bool GLContextEGLDRM::CreateWindowSurface() + m_egl->surf = eglCreatePbufferSurface(m_egl->dpy, m_egl->config, attrib_list); + if (!m_egl->surf) + { +- printf("\nError: eglCreatePbufferSurface failed 0x%x\n", eglGetError()); ++ INFO_LOG(VIDEO, "\nError: eglCreatePbufferSurface failed 0x%x\n", eglGetError()); + return false; + } + return true; +@@ -1228,7 +1256,7 @@ void GLContextEGLDRM::DestroyWindowSurface() + if (eglGetCurrentSurface(EGL_DRAW) == m_egl->surf) + eglMakeCurrent(m_egl->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + if (!eglDestroySurface(m_egl->dpy, m_egl->surf)) +- printf("\nCould not destroy window surface."); ++ INFO_LOG(VIDEO, "\nCould not destroy window surface."); + m_egl->surf = EGL_NO_SURFACE; + } + +@@ -1259,9 +1287,9 @@ if (!m_egl->ctx) + if (eglGetCurrentContext() == m_egl->ctx) + eglMakeCurrent(m_egl->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + if (!eglDestroyContext(m_egl->dpy, m_egl->ctx)) +- printf("\nCould not destroy drawing context."); ++ INFO_LOG(VIDEO, "\nCould not destroy drawing context."); + if (!m_is_shared && !eglTerminate(m_egl->dpy)) +- printf("\nCould not destroy display connection."); ++ INFO_LOG(VIDEO, "\nCould not destroy display connection."); + m_egl->ctx = EGL_NO_CONTEXT; + m_egl->dpy = EGL_NO_DISPLAY; + } + +From 0a05a524bd770d51359fa40e416d2b16a52057d1 Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 13:11:03 +0200 +Subject: [PATCH 05/25] Remove hardcoded video mode, try to match native game + rate + +--- + Source/Core/Common/GL/GLInterface/EGLDRM.cpp | 26 +++++++------------- + 1 file changed, 9 insertions(+), 17 deletions(-) + +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +index baebf998c4a..e617592e677 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +@@ -44,6 +44,7 @@ + + #include "Common/GL/GLInterface/EGLDRM.h" + #include "Common/Logging/Log.h" ++#include "Core/HW/VideoInterface.h" //for TargetRefreshRate + + #ifndef EGL_CONTEXT_FLAGS_KHR + #define EGL_CONTEXT_FLAGS_KHR 0x30FC +@@ -1014,22 +1015,14 @@ static bool gfx_ctx_drm_set_video_mode(void *data, + unsigned width, unsigned height, + bool fullscreen) + { +- float refresh_mod; + int i, ret = 0; + struct drm_fb *fb = NULL; + gfx_ctx_drm_data_t *drm = (gfx_ctx_drm_data_t*)data; +- bool black_frame_insertion = false; //settings->bools.video_black_frame_insertion; +- float video_refresh_rate = 60; //settings->floats.video_refresh_rate; ++ float video_refresh_rate = (float)VideoInterface::GetTargetRefreshRate(); + + if (!drm) + return false; + +- /* If we use black frame insertion, +- * we fake a 60 Hz monitor for 120 Hz one, +- * etc, so try to match that. */ +- refresh_mod = black_frame_insertion +- ? 0.5f : 1.0f; +- + /* Find desired video mode, and use that. + * If not fullscreen, we get desired windowed size, + * which is not appropriate. */ +@@ -1052,8 +1045,7 @@ static bool gfx_ctx_drm_set_video_mode(void *data, + height != g_drm_connector->modes[i].vdisplay) + continue; + +- diff = fabsf(refresh_mod * g_drm_connector->modes[i].vrefresh +- - video_refresh_rate); ++ diff = fabsf(g_drm_connector->modes[i].vrefresh - video_refresh_rate); + + if (!g_drm_mode || diff < minimum_fps_diff) + { +@@ -1165,9 +1157,10 @@ bool GLContextEGLDRM::Initialize(const WindowSystemInfo& wsi, bool stereo, bool + + eglBindAPI(EGL_OPENGL_ES_API); + +- gfx_ctx_drm_set_video_mode(g_drm, 1920, 1080, true); +- m_backbuffer_width = 1920; +- m_backbuffer_height = 1080; ++ // Use current video mode, do not switch ++ gfx_ctx_drm_set_video_mode(g_drm, 0, 0, false); ++ m_backbuffer_width = g_drm->fb_width; ++ m_backbuffer_height = g_drm->fb_height; + + m_egl = &g_drm->egl; + m_opengl_mode = Mode::OpenGLES; +@@ -1193,7 +1186,7 @@ std::unique_ptr GLContextEGLDRM::CreateSharedContext() + new_context->m_egl->ctx = eglCreateContext(m_egl->dpy, m_egl->config, m_egl->ctx, egl_attribs_ptr); + if (!new_context->m_egl->ctx) + { +- INFO_LOG(VIDEO, "\nError: eglCreateContext failed 0x%x\n", eglGetError()); ++ ERROR_LOG(VIDEO, "\nError: eglCreateContext failed 0x%x\n", eglGetError()); + return nullptr; + } + eglBindAPI(EGL_OPENGL_ES_API); +@@ -1202,7 +1195,7 @@ std::unique_ptr GLContextEGLDRM::CreateSharedContext() + new_context->m_is_shared = true; + if (!new_context->CreateWindowSurface()) + { +- INFO_LOG(VIDEO, "\nError: CreateWindowSurface failed 0x%x\n", eglGetError()); ++ ERROR_LOG(VIDEO, "\nError: CreateWindowSurface failed 0x%x\n", eglGetError()); + return nullptr; + } + return new_context; +@@ -1225,7 +1218,6 @@ bool GLContextEGLDRM::CreateWindowSurface() + INFO_LOG(VIDEO, "\negl_create_surface failed, trying pbuffer failed 0x%x\n", eglGetError()); + goto pbuffer; + } +- INFO_LOG(VIDEO, "\nm_egl_surface=0x%x",m_egl->surf); + // Get dimensions from the surface. + EGLint surface_width = 1, surface_height = 1; + if (!eglQuerySurface(m_egl->dpy, m_egl->surf, EGL_WIDTH, &surface_width) || + +From 56b39ef782efdeaf6aac2dd4926ca042ba189e8d Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 14:25:28 +0200 +Subject: [PATCH 06/25] Fix lint checks + +--- + Source/Core/Common/GL/GLInterface/EGLDRM.h | 16 ++++++++-------- + Source/Core/DolphinNoGUI/MainNoGUI.cpp | 3 +-- + 2 files changed, 9 insertions(+), 10 deletions(-) + +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.h b/Source/Core/Common/GL/GLInterface/EGLDRM.h +index b03dfea0622..61bb6a7cfe2 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.h ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.h +@@ -13,14 +13,14 @@ + + typedef struct + { +- EGLContext ctx; +- EGLSurface surf; +- EGLDisplay dpy; +- EGLConfig config; +- int interval; +- +- unsigned major; +- unsigned minor; ++ EGLContext ctx; ++ EGLSurface surf; ++ EGLDisplay dpy; ++ EGLConfig config; ++ int interval; ++ ++ unsigned major; ++ unsigned minor; + + } egl_ctx_data_t; + +diff --git a/Source/Core/DolphinNoGUI/MainNoGUI.cpp b/Source/Core/DolphinNoGUI/MainNoGUI.cpp +index 9faf1152de2..143d059d04c 100644 +--- a/Source/Core/DolphinNoGUI/MainNoGUI.cpp ++++ b/Source/Core/DolphinNoGUI/MainNoGUI.cpp +@@ -143,8 +143,7 @@ int main(int argc, char* argv[]) + "headless" + #ifdef __linux__ + , +- "fbdev", +- "drm" ++ "fbdev", "drm" + #endif + #if HAVE_X11 + , + +From 0c523614eabd043b51d6addbb34cb0d6a85ec7e1 Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 14:55:22 +0200 +Subject: [PATCH 07/25] Update Source/Core/Common/GL/GLInterface/EGLDRM.h + +Co-authored-by: LC +--- + Source/Core/Common/GL/GLInterface/EGLDRM.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.h b/Source/Core/Common/GL/GLInterface/EGLDRM.h +index 61bb6a7cfe2..9b38f00900c 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.h ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.h +@@ -27,7 +27,7 @@ typedef struct + class GLContextEGLDRM : public GLContext + { + public: +- virtual ~GLContextEGLDRM() override; ++ ~GLContextEGLDRM() override; + + bool IsHeadless() const override; + + +From 0404543372cbf6da890ccb7bdaa36fc0e135e430 Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 14:55:33 +0200 +Subject: [PATCH 08/25] Update Source/Core/Common/GL/GLInterface/EGLDRM.cpp + +Co-authored-by: LC +--- + Source/Core/Common/GL/GLInterface/EGLDRM.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +index e617592e677..d341d26f8bc 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +@@ -76,7 +76,7 @@ + #define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002 + #endif /* EGL_KHR_create_context */ + +-typedef bool (*egl_accept_config_cb_t)(void *display_data, EGLDisplay dpy, EGLConfig config); ++using EGLAcceptConfigCB = bool (*)(void *display_data, EGLDisplay dpy, EGLConfig config); + + typedef struct gfx_ctx_drm_data + { + +From b66346be056d5b46068b577f227bab54fa6bdaf9 Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 14:55:49 +0200 +Subject: [PATCH 09/25] Update Source/Core/DolphinNoGUI/PlatformDRM.cpp + +Co-authored-by: LC +--- + Source/Core/DolphinNoGUI/PlatformDRM.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/Core/DolphinNoGUI/PlatformDRM.cpp b/Source/Core/DolphinNoGUI/PlatformDRM.cpp +index 1784aaae4f8..255888ad4cc 100644 +--- a/Source/Core/DolphinNoGUI/PlatformDRM.cpp ++++ b/Source/Core/DolphinNoGUI/PlatformDRM.cpp +@@ -40,7 +40,7 @@ class PlatformDRM : public Platform + private: + }; + +-PlatformDRM::~PlatformDRM() ++PlatformDRM::~PlatformDRM() = default; + { + } + + +From 8a6e26d483df52358d563190274f312a6d5eebbf Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 16:02:21 +0200 +Subject: [PATCH 10/25] Run clang-format on EGLDRM + +--- + Source/Core/Common/GL/GLInterface/EGLDRM.cpp | 1481 +++++++++--------- + 1 file changed, 726 insertions(+), 755 deletions(-) + +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +index d341d26f8bc..100e60d1c78 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +@@ -19,28 +19,28 @@ + * If not, see . + */ + +-#include +-#include + #include +-#include +-#include ++#include + #include ++#include + #include ++#include ++#include ++#include ++#include + #include + #include +-#include +-#include +-#include ++#include + + #include + #include + #include ++#include ++#include + #include + #include +-#include + #include + #include +-#include + + #include "Common/GL/GLInterface/EGLDRM.h" + #include "Common/Logging/Log.h" +@@ -76,43 +76,43 @@ + #define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002 + #endif /* EGL_KHR_create_context */ + +-using EGLAcceptConfigCB = bool (*)(void *display_data, EGLDisplay dpy, EGLConfig config); ++using EGLAcceptConfigCB = bool (*)(void* display_data, EGLDisplay dpy, EGLConfig config); + + typedef struct gfx_ctx_drm_data + { +- egl_ctx_data_t egl; +- int fd; +- int interval; +- unsigned fb_width; +- unsigned fb_height; +- +- bool core_hw_context_enable; +- bool waiting_for_flip; +- struct gbm_bo *bo; +- struct gbm_bo *next_bo; +- struct gbm_surface *gbm_surface; +- struct gbm_device *gbm_dev; ++ egl_ctx_data_t egl; ++ int fd; ++ int interval; ++ unsigned fb_width; ++ unsigned fb_height; ++ ++ bool core_hw_context_enable; ++ bool waiting_for_flip; ++ struct gbm_bo* bo; ++ struct gbm_bo* next_bo; ++ struct gbm_surface* gbm_surface; ++ struct gbm_device* gbm_dev; + } gfx_ctx_drm_data_t; + + struct drm_fb + { +- struct gbm_bo *bo; +- uint32_t fb_id; ++ struct gbm_bo* bo; ++ uint32_t fb_id; + }; + + /* TODO/FIXME - globals */ + static drmEventContext g_drm_evctx; + static struct pollfd g_drm_fds; +-static uint32_t g_connector_id = 0; +-static int g_drm_fd = 0; +-static uint32_t g_crtc_id = 0; +-static drmModeCrtc *g_orig_crtc = NULL; +-static drmModeConnector *g_drm_connector = NULL; +-static drmModeModeInfo *g_drm_mode = NULL; ++static uint32_t g_connector_id = 0; ++static int g_drm_fd = 0; ++static uint32_t g_crtc_id = 0; ++static drmModeCrtc* g_orig_crtc = NULL; ++static drmModeConnector* g_drm_connector = NULL; ++static drmModeModeInfo* g_drm_mode = NULL; + + /* TODO/FIXME - static globals */ +-static drmModeRes *g_drm_resources = NULL; +-static drmModeEncoder *g_drm_encoder = NULL; ++static drmModeRes* g_drm_resources = NULL; ++static drmModeEncoder* g_drm_encoder = NULL; + + static gfx_ctx_drm_data* g_drm = NULL; + +@@ -124,547 +124,524 @@ bool drm_get_resources(int fd); + void drm_setup(int fd); + void drm_free(void); + bool drm_get_connector(int fd); +-float drm_get_refresh_rate(void *data); ++float drm_get_refresh_rate(void* data); + +-static void egl_destroy(egl_ctx_data_t *egl) ++static void egl_destroy(egl_ctx_data_t* egl) + { +- if (egl->dpy) +- { +- eglMakeCurrent(egl->dpy, +- EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); +- if (egl->ctx != EGL_NO_CONTEXT) +- eglDestroyContext(egl->dpy, egl->ctx); +- +- if (egl->surf != EGL_NO_SURFACE) +- eglDestroySurface(egl->dpy, egl->surf); +- eglTerminate(egl->dpy); +- } ++ if (egl->dpy) ++ { ++ eglMakeCurrent(egl->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); ++ if (egl->ctx != EGL_NO_CONTEXT) ++ eglDestroyContext(egl->dpy, egl->ctx); + +- /* Be as careful as possible in deinit. +- * If we screw up, any TTY will not restore. +- */ ++ if (egl->surf != EGL_NO_SURFACE) ++ eglDestroySurface(egl->dpy, egl->surf); ++ eglTerminate(egl->dpy); ++ } ++ ++ /* Be as careful as possible in deinit. ++ * If we screw up, any TTY will not restore. ++ */ + +- egl->ctx = EGL_NO_CONTEXT; +- egl->surf = EGL_NO_SURFACE; +- egl->dpy = EGL_NO_DISPLAY; +- egl->config = 0; ++ egl->ctx = EGL_NO_CONTEXT; ++ egl->surf = EGL_NO_SURFACE; ++ egl->dpy = EGL_NO_DISPLAY; ++ egl->config = 0; + } + +-static void egl_swap_buffers(void *data) ++static void egl_swap_buffers(void* data) + { +- egl_ctx_data_t *egl = (egl_ctx_data_t*)data; +- if ( egl && +- egl->dpy != EGL_NO_DISPLAY && +- egl->surf != EGL_NO_SURFACE +- ) +- { +- eglSwapBuffers(egl->dpy, egl->surf); +- } ++ egl_ctx_data_t* egl = (egl_ctx_data_t*)data; ++ if (egl && egl->dpy != EGL_NO_DISPLAY && egl->surf != EGL_NO_SURFACE) ++ { ++ eglSwapBuffers(egl->dpy, egl->surf); ++ } + } + +-static void egl_set_swap_interval(egl_ctx_data_t *egl, int interval) ++static void egl_set_swap_interval(egl_ctx_data_t* egl, int interval) + { +- /* Can be called before initialization. +- * Some contexts require that swap interval +- * is known at startup time. +- */ +- egl->interval = interval; +- +- if (egl->dpy == EGL_NO_DISPLAY) +- return; +- if (!eglGetCurrentContext()) +- return; +- +- INFO_LOG(VIDEO, "[EGL]: eglSwapInterval(%u)\n", interval); +- if (!eglSwapInterval(egl->dpy, interval)) +- { +- INFO_LOG(VIDEO, "[EGL]: eglSwapInterval() failed 0x%x.\n", eglGetError()); +- } ++ /* Can be called before initialization. ++ * Some contexts require that swap interval ++ * is known at startup time. ++ */ ++ egl->interval = interval; ++ ++ if (egl->dpy == EGL_NO_DISPLAY) ++ return; ++ if (!eglGetCurrentContext()) ++ return; ++ ++ INFO_LOG(VIDEO, "[EGL]: eglSwapInterval(%u)\n", interval); ++ if (!eglSwapInterval(egl->dpy, interval)) ++ { ++ INFO_LOG(VIDEO, "[EGL]: eglSwapInterval() failed 0x%x.\n", eglGetError()); ++ } + } + + static bool check_egl_version(int minMajorVersion, int minMinorVersion) + { +- int count; +- int major, minor; +- const char *str = eglQueryString(EGL_NO_DISPLAY, EGL_VERSION); ++ int count; ++ int major, minor; ++ const char* str = eglQueryString(EGL_NO_DISPLAY, EGL_VERSION); + +- if (!str) +- return false; ++ if (!str) ++ return false; + +- count = sscanf(str, "%d.%d", &major, &minor); +- if (count != 2) +- return false; ++ count = sscanf(str, "%d.%d", &major, &minor); ++ if (count != 2) ++ return false; + +- if (major < minMajorVersion) +- return false; ++ if (major < minMajorVersion) ++ return false; + +- if (major > minMajorVersion) +- return true; ++ if (major > minMajorVersion) ++ return true; + +- if (minor >= minMinorVersion) +- return true; ++ if (minor >= minMinorVersion) ++ return true; + +- return false; ++ return false; + } + +-static bool check_egl_client_extension(const char *name) ++static bool check_egl_client_extension(const char* name) + { +- size_t nameLen; +- const char *str = eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS); +- /* The EGL implementation doesn't support client extensions at all. */ +- if (!str) +- return false; +- +- nameLen = strlen(name); +- while (*str != '\0') +- { +- /* Use strspn and strcspn to find the start position and length of each +- * token in the extension string. Using strtok could also work, but +- * that would require allocating a copy of the string. */ +- size_t len = strcspn(str, " "); +- if (len == nameLen && strncmp(str, name, nameLen) == 0) +- return true; +- str += len; +- str += strspn(str, " "); +- } ++ size_t nameLen; ++ const char* str = eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS); ++ /* The EGL implementation doesn't support client extensions at all. */ ++ if (!str) ++ return false; ++ ++ nameLen = strlen(name); ++ while (*str != '\0') ++ { ++ /* Use strspn and strcspn to find the start position and length of each ++ * token in the extension string. Using strtok could also work, but ++ * that would require allocating a copy of the string. */ ++ size_t len = strcspn(str, " "); ++ if (len == nameLen && strncmp(str, name, nameLen) == 0) ++ return true; ++ str += len; ++ str += strspn(str, " "); ++ } + +- return false; ++ return false; + } + +-static bool check_egl_display_extension(void* data, const char *name) ++static bool check_egl_display_extension(void* data, const char* name) + { +- size_t nameLen; +- egl_ctx_data_t *egl = (egl_ctx_data_t*)data; +- if (!egl || egl->dpy == EGL_NO_DISPLAY) +- return false; +- +- const char *str = eglQueryString(egl->dpy, EGL_EXTENSIONS); +- /* The EGL implementation doesn't support extensions at all. */ +- if (!str) +- return false; +- +- nameLen = strlen(name); +- while (*str != '\0') +- { +- /* Use strspn and strcspn to find the start position and length of each +- * token in the extension string. Using strtok could also work, but +- * that would require allocating a copy of the string. */ +- size_t len = strcspn(str, " "); +- if (len == nameLen && strncmp(str, name, nameLen) == 0) +- return true; +- str += len; +- str += strspn(str, " "); +- } ++ size_t nameLen; ++ egl_ctx_data_t* egl = (egl_ctx_data_t*)data; ++ if (!egl || egl->dpy == EGL_NO_DISPLAY) ++ return false; ++ ++ const char* str = eglQueryString(egl->dpy, EGL_EXTENSIONS); ++ /* The EGL implementation doesn't support extensions at all. */ ++ if (!str) ++ return false; ++ ++ nameLen = strlen(name); ++ while (*str != '\0') ++ { ++ /* Use strspn and strcspn to find the start position and length of each ++ * token in the extension string. Using strtok could also work, but ++ * that would require allocating a copy of the string. */ ++ size_t len = strcspn(str, " "); ++ if (len == nameLen && strncmp(str, name, nameLen) == 0) ++ return true; ++ str += len; ++ str += strspn(str, " "); ++ } + +- return false; ++ return false; + } + +-static EGLDisplay get_egl_display(EGLenum platform, void *native) ++static EGLDisplay get_egl_display(EGLenum platform, void* native) + { +- if (platform != EGL_NONE) +- { +- /* If the client library supports at least EGL 1.5, then we can call +- * eglGetPlatformDisplay. Otherwise, see if eglGetPlatformDisplayEXT +- * is available. */ ++ if (platform != EGL_NONE) ++ { ++ /* If the client library supports at least EGL 1.5, then we can call ++ * eglGetPlatformDisplay. Otherwise, see if eglGetPlatformDisplayEXT ++ * is available. */ + #if defined(EGL_VERSION_1_5) +- if (check_egl_version(1, 5)) ++ if (check_egl_version(1, 5)) ++ { ++ typedef EGLDisplay(EGLAPIENTRY * pfn_eglGetPlatformDisplay)( ++ EGLenum platform, void* native_display, const EGLAttrib* attrib_list); ++ pfn_eglGetPlatformDisplay ptr_eglGetPlatformDisplay; ++ ++ INFO_LOG(VIDEO, "[EGL] Found EGL client version >= 1.5, trying eglGetPlatformDisplay\n"); ++ ptr_eglGetPlatformDisplay = ++ (pfn_eglGetPlatformDisplay)eglGetProcAddress("eglGetPlatformDisplay"); ++ ++ if (ptr_eglGetPlatformDisplay) + { +- typedef EGLDisplay (EGLAPIENTRY * pfn_eglGetPlatformDisplay) +- (EGLenum platform, void *native_display, const EGLAttrib *attrib_list); +- pfn_eglGetPlatformDisplay ptr_eglGetPlatformDisplay; +- +- INFO_LOG(VIDEO, "[EGL] Found EGL client version >= 1.5, trying eglGetPlatformDisplay\n"); +- ptr_eglGetPlatformDisplay = (pfn_eglGetPlatformDisplay) +- eglGetProcAddress("eglGetPlatformDisplay"); +- +- if (ptr_eglGetPlatformDisplay) +- { +- EGLDisplay dpy = ptr_eglGetPlatformDisplay(platform, native, NULL); +- if (dpy != EGL_NO_DISPLAY) +- return dpy; +- } ++ EGLDisplay dpy = ptr_eglGetPlatformDisplay(platform, native, NULL); ++ if (dpy != EGL_NO_DISPLAY) ++ return dpy; + } ++ } + #endif /* defined(EGL_VERSION_1_5) */ + + #if defined(EGL_EXT_platform_base) +- if (check_egl_client_extension("EGL_EXT_platform_base")) ++ if (check_egl_client_extension("EGL_EXT_platform_base")) ++ { ++ PFNEGLGETPLATFORMDISPLAYEXTPROC ptr_eglGetPlatformDisplayEXT; ++ ++ INFO_LOG(VIDEO, "[EGL] Found EGL_EXT_platform_base, trying eglGetPlatformDisplayEXT\n"); ++ ptr_eglGetPlatformDisplayEXT = ++ (PFNEGLGETPLATFORMDISPLAYEXTPROC)eglGetProcAddress("eglGetPlatformDisplayEXT"); ++ ++ if (ptr_eglGetPlatformDisplayEXT) + { +- PFNEGLGETPLATFORMDISPLAYEXTPROC ptr_eglGetPlatformDisplayEXT; +- +- INFO_LOG(VIDEO, "[EGL] Found EGL_EXT_platform_base, trying eglGetPlatformDisplayEXT\n"); +- ptr_eglGetPlatformDisplayEXT = (PFNEGLGETPLATFORMDISPLAYEXTPROC) +- eglGetProcAddress("eglGetPlatformDisplayEXT"); +- +- if (ptr_eglGetPlatformDisplayEXT) +- { +- EGLDisplay dpy = ptr_eglGetPlatformDisplayEXT(platform, native, NULL); +- if (dpy != EGL_NO_DISPLAY) +- return dpy; +- } ++ EGLDisplay dpy = ptr_eglGetPlatformDisplayEXT(platform, native, NULL); ++ if (dpy != EGL_NO_DISPLAY) ++ return dpy; + } ++ } + #endif /* defined(EGL_EXT_platform_base) */ +- } ++ } + +- /* Either the caller didn't provide a platform type, or the EGL +- * implementation doesn't support eglGetPlatformDisplay. In this case, try +- * eglGetDisplay and hope for the best. */ +- INFO_LOG(VIDEO, "[EGL] Falling back to eglGetDisplay\n"); +- return eglGetDisplay((EGLNativeDisplayType) native); ++ /* Either the caller didn't provide a platform type, or the EGL ++ * implementation doesn't support eglGetPlatformDisplay. In this case, try ++ * eglGetDisplay and hope for the best. */ ++ INFO_LOG(VIDEO, "[EGL] Falling back to eglGetDisplay\n"); ++ return eglGetDisplay((EGLNativeDisplayType)native); + } + +-static bool egl_get_native_visual_id(egl_ctx_data_t *egl, EGLint *value) ++static bool egl_get_native_visual_id(egl_ctx_data_t* egl, EGLint* value) + { +- if (!eglGetConfigAttrib(egl->dpy, egl->config, +- EGL_NATIVE_VISUAL_ID, value)) +- { +- INFO_LOG(VIDEO, "[EGL]: egl_get_native_visual_id failed.\n"); +- return false; +- } ++ if (!eglGetConfigAttrib(egl->dpy, egl->config, EGL_NATIVE_VISUAL_ID, value)) ++ { ++ INFO_LOG(VIDEO, "[EGL]: egl_get_native_visual_id failed.\n"); ++ return false; ++ } + +- return true; ++ return true; + } + +-static bool egl_init_context_common( +- egl_ctx_data_t *egl, EGLint *count, +- const EGLint *attrib_ptr, +- egl_accept_config_cb_t cb, +- void *display_data) ++static bool egl_init_context_common(egl_ctx_data_t* egl, EGLint* count, const EGLint* attrib_ptr, ++ egl_accept_config_cb_t cb, void* display_data) + { +- EGLint i; +- EGLint matched = 0; +- EGLConfig *configs = NULL; +- if (!egl) +- return false; ++ EGLint i; ++ EGLint matched = 0; ++ EGLConfig* configs = NULL; ++ if (!egl) ++ return false; + +- if (!eglGetConfigs(egl->dpy, NULL, 0, count) || *count < 1) +- { +- INFO_LOG(VIDEO, "[EGL]: No configs to choose from.\n"); +- return false; +- } ++ if (!eglGetConfigs(egl->dpy, NULL, 0, count) || *count < 1) ++ { ++ INFO_LOG(VIDEO, "[EGL]: No configs to choose from.\n"); ++ return false; ++ } + +- configs = (EGLConfig*)malloc(*count * sizeof(*configs)); +- if (!configs) +- return false; ++ configs = (EGLConfig*)malloc(*count * sizeof(*configs)); ++ if (!configs) ++ return false; + +- if (!eglChooseConfig(egl->dpy, attrib_ptr, +- configs, *count, &matched) || !matched) +- { +- INFO_LOG(VIDEO, "[EGL]: No EGL configs with appropriate attributes.\n"); +- return false; +- } ++ if (!eglChooseConfig(egl->dpy, attrib_ptr, configs, *count, &matched) || !matched) ++ { ++ INFO_LOG(VIDEO, "[EGL]: No EGL configs with appropriate attributes.\n"); ++ return false; ++ } + +- for (i = 0; i < *count; i++) +- { +- if (!cb || cb(display_data, egl->dpy, configs[i])) +- { +- egl->config = configs[i]; +- break; +- } +- } ++ for (i = 0; i < *count; i++) ++ { ++ if (!cb || cb(display_data, egl->dpy, configs[i])) ++ { ++ egl->config = configs[i]; ++ break; ++ } ++ } + +- free(configs); ++ free(configs); + +- if (i == *count) +- { +- INFO_LOG(VIDEO, "[EGL]: No EGL config found which satifies requirements.\n"); +- return false; +- } ++ if (i == *count) ++ { ++ INFO_LOG(VIDEO, "[EGL]: No EGL config found which satifies requirements.\n"); ++ return false; ++ } + +- return true; ++ return true; + } + +- +-static bool egl_init_context(egl_ctx_data_t *egl, +- EGLenum platform, +- void *display_data, +- EGLint *major, EGLint *minor, +- EGLint *count, const EGLint *attrib_ptr, +- egl_accept_config_cb_t cb) ++static bool egl_init_context(egl_ctx_data_t* egl, EGLenum platform, void* display_data, ++ EGLint* major, EGLint* minor, EGLint* count, const EGLint* attrib_ptr, ++ egl_accept_config_cb_t cb) + { +- EGLDisplay dpy = get_egl_display(platform, display_data); ++ EGLDisplay dpy = get_egl_display(platform, display_data); + +- if (dpy == EGL_NO_DISPLAY) +- { +- INFO_LOG(VIDEO, "[EGL]: Couldn't get EGL display.\n"); +- return false; +- } ++ if (dpy == EGL_NO_DISPLAY) ++ { ++ INFO_LOG(VIDEO, "[EGL]: Couldn't get EGL display.\n"); ++ return false; ++ } + +- egl->dpy = dpy; ++ egl->dpy = dpy; + +- if (!eglInitialize(egl->dpy, major, minor)) +- return false; ++ if (!eglInitialize(egl->dpy, major, minor)) ++ return false; + +- INFO_LOG(VIDEO, "[EGL]: EGL version: %d.%d\n", *major, *minor); ++ INFO_LOG(VIDEO, "[EGL]: EGL version: %d.%d\n", *major, *minor); + +- return egl_init_context_common(egl, count, attrib_ptr, cb, +- display_data); ++ return egl_init_context_common(egl, count, attrib_ptr, cb, display_data); + } + +-static bool egl_create_context(egl_ctx_data_t *egl, const EGLint *egl_attribs) ++static bool egl_create_context(egl_ctx_data_t* egl, const EGLint* egl_attribs) + { +- EGLContext ctx = eglCreateContext(egl->dpy, egl->config, EGL_NO_CONTEXT, +- egl_attribs); ++ EGLContext ctx = eglCreateContext(egl->dpy, egl->config, EGL_NO_CONTEXT, egl_attribs); + +- if (ctx == EGL_NO_CONTEXT) +- return false; ++ if (ctx == EGL_NO_CONTEXT) ++ return false; + +- egl->ctx = ctx; ++ egl->ctx = ctx; + +- return true; ++ return true; + } + +-static bool egl_create_surface(egl_ctx_data_t *egl, void *native_window) ++static bool egl_create_surface(egl_ctx_data_t* egl, void* native_window) + { +- EGLint window_attribs[] = { +- EGL_RENDER_BUFFER, EGL_BACK_BUFFER, +- EGL_NONE, +- }; ++ EGLint window_attribs[] = { ++ EGL_RENDER_BUFFER, ++ EGL_BACK_BUFFER, ++ EGL_NONE, ++ }; + +- egl->surf = eglCreateWindowSurface(egl->dpy, egl->config, (NativeWindowType)native_window, window_attribs); ++ egl->surf = eglCreateWindowSurface(egl->dpy, egl->config, (NativeWindowType)native_window, ++ window_attribs); + +- if (egl->surf == EGL_NO_SURFACE) +- return false; ++ if (egl->surf == EGL_NO_SURFACE) ++ return false; + +- /* Connect the context to the surface. */ +- if (!eglMakeCurrent(egl->dpy, egl->surf, egl->surf, egl->ctx)) +- return false; ++ /* Connect the context to the surface. */ ++ if (!eglMakeCurrent(egl->dpy, egl->surf, egl->surf, egl->ctx)) ++ return false; + +- INFO_LOG(VIDEO, "[EGL]: Current context: %p.\n", (void*)eglGetCurrentContext()); ++ INFO_LOG(VIDEO, "[EGL]: Current context: %p.\n", (void*)eglGetCurrentContext()); + +- return true; ++ return true; + } + + static bool drm_wait_flip(int timeout) + { +- g_drm_fds.revents = 0; ++ g_drm_fds.revents = 0; + +- if (poll(&g_drm_fds, 1, timeout) < 0) +- return false; ++ if (poll(&g_drm_fds, 1, timeout) < 0) ++ return false; + +- if (g_drm_fds.revents & (POLLHUP | POLLERR)) +- return false; ++ if (g_drm_fds.revents & (POLLHUP | POLLERR)) ++ return false; + +- if (g_drm_fds.revents & POLLIN) +- { +- drmHandleEvent(g_drm_fd, &g_drm_evctx); +- return true; +- } ++ if (g_drm_fds.revents & POLLIN) ++ { ++ drmHandleEvent(g_drm_fd, &g_drm_evctx); ++ return true; ++ } + +- return false; ++ return false; + } + + /* Restore the original CRTC. */ + void drm_restore_crtc(void) + { +- if (!g_orig_crtc) +- return; ++ if (!g_orig_crtc) ++ return; + +- drmModeSetCrtc(g_drm_fd, g_orig_crtc->crtc_id, +- g_orig_crtc->buffer_id, +- g_orig_crtc->x, +- g_orig_crtc->y, +- &g_connector_id, 1, &g_orig_crtc->mode); ++ drmModeSetCrtc(g_drm_fd, g_orig_crtc->crtc_id, g_orig_crtc->buffer_id, g_orig_crtc->x, ++ g_orig_crtc->y, &g_connector_id, 1, &g_orig_crtc->mode); + +- drmModeFreeCrtc(g_orig_crtc); +- g_orig_crtc = NULL; ++ drmModeFreeCrtc(g_orig_crtc); ++ g_orig_crtc = NULL; + } + + bool drm_get_resources(int fd) + { +- g_drm_resources = drmModeGetResources(fd); +- if (!g_drm_resources) +- { +- INFO_LOG(VIDEO, "[DRM]: Couldn't get device resources.\n"); +- return false; +- } ++ g_drm_resources = drmModeGetResources(fd); ++ if (!g_drm_resources) ++ { ++ INFO_LOG(VIDEO, "[DRM]: Couldn't get device resources.\n"); ++ return false; ++ } + +- return true; ++ return true; + } + + bool drm_get_connector(int fd) + { +- unsigned i; +- unsigned monitor_index_count = 0; +- unsigned monitor = 1; ++ unsigned i; ++ unsigned monitor_index_count = 0; ++ unsigned monitor = 1; + +- /* Enumerate all connectors. */ ++ /* Enumerate all connectors. */ + +- INFO_LOG(VIDEO, "[DRM]: Found %d connectors.\n", g_drm_resources->count_connectors); ++ INFO_LOG(VIDEO, "[DRM]: Found %d connectors.\n", g_drm_resources->count_connectors); + +- for (i = 0; (int)i < g_drm_resources->count_connectors; i++) +- { +- drmModeConnectorPtr conn = drmModeGetConnector( +- fd, g_drm_resources->connectors[i]); ++ for (i = 0; (int)i < g_drm_resources->count_connectors; i++) ++ { ++ drmModeConnectorPtr conn = drmModeGetConnector(fd, g_drm_resources->connectors[i]); + +- if (conn) ++ if (conn) ++ { ++ bool connected = conn->connection == DRM_MODE_CONNECTED; ++ INFO_LOG(VIDEO, "[DRM]: Connector %d connected: %s\n", i, connected ? "yes" : "no"); ++ INFO_LOG(VIDEO, "[DRM]: Connector %d has %d modes.\n", i, conn->count_modes); ++ if (connected && conn->count_modes > 0) + { +- bool connected = conn->connection == DRM_MODE_CONNECTED; +- INFO_LOG(VIDEO, "[DRM]: Connector %d connected: %s\n", i, connected ? "yes" : "no"); +- INFO_LOG(VIDEO, "[DRM]: Connector %d has %d modes.\n", i, conn->count_modes); +- if (connected && conn->count_modes > 0) +- { +- monitor_index_count++; +- INFO_LOG(VIDEO, "[DRM]: Connector %d assigned to monitor index: #%u.\n", i, monitor_index_count); +- } +- drmModeFreeConnector(conn); ++ monitor_index_count++; ++ INFO_LOG(VIDEO, "[DRM]: Connector %d assigned to monitor index: #%u.\n", i, ++ monitor_index_count); + } +- } ++ drmModeFreeConnector(conn); ++ } ++ } + +- monitor_index_count = 0; ++ monitor_index_count = 0; + +- for (i = 0; (int)i < g_drm_resources->count_connectors; i++) +- { +- g_drm_connector = drmModeGetConnector(fd, +- g_drm_resources->connectors[i]); ++ for (i = 0; (int)i < g_drm_resources->count_connectors; i++) ++ { ++ g_drm_connector = drmModeGetConnector(fd, g_drm_resources->connectors[i]); + +- if (!g_drm_connector) +- continue; +- if (g_drm_connector->connection == DRM_MODE_CONNECTED +- && g_drm_connector->count_modes > 0) +- { +- monitor_index_count++; +- if (monitor_index_count == monitor) +- break; +- } ++ if (!g_drm_connector) ++ continue; ++ if (g_drm_connector->connection == DRM_MODE_CONNECTED && g_drm_connector->count_modes > 0) ++ { ++ monitor_index_count++; ++ if (monitor_index_count == monitor) ++ break; ++ } + +- drmModeFreeConnector(g_drm_connector); +- g_drm_connector = NULL; +- } ++ drmModeFreeConnector(g_drm_connector); ++ g_drm_connector = NULL; ++ } + +- if (!g_drm_connector) +- { +- INFO_LOG(VIDEO, "[DRM]: Couldn't get device connector.\n"); +- return false; +- } +- return true; ++ if (!g_drm_connector) ++ { ++ INFO_LOG(VIDEO, "[DRM]: Couldn't get device connector.\n"); ++ return false; ++ } ++ return true; + } + + bool drm_get_encoder(int fd) + { +- unsigned i; ++ unsigned i; + +- for (i = 0; (int)i < g_drm_resources->count_encoders; i++) +- { +- g_drm_encoder = drmModeGetEncoder(fd, g_drm_resources->encoders[i]); ++ for (i = 0; (int)i < g_drm_resources->count_encoders; i++) ++ { ++ g_drm_encoder = drmModeGetEncoder(fd, g_drm_resources->encoders[i]); + +- if (!g_drm_encoder) +- continue; ++ if (!g_drm_encoder) ++ continue; + +- if (g_drm_encoder->encoder_id == g_drm_connector->encoder_id) +- break; ++ if (g_drm_encoder->encoder_id == g_drm_connector->encoder_id) ++ break; + +- drmModeFreeEncoder(g_drm_encoder); +- g_drm_encoder = NULL; +- } ++ drmModeFreeEncoder(g_drm_encoder); ++ g_drm_encoder = NULL; ++ } + +- if (!g_drm_encoder) +- { +- INFO_LOG(VIDEO, "[DRM]: Couldn't find DRM encoder.\n"); +- return false; +- } ++ if (!g_drm_encoder) ++ { ++ INFO_LOG(VIDEO, "[DRM]: Couldn't find DRM encoder.\n"); ++ return false; ++ } + +- for (i = 0; (int)i < g_drm_connector->count_modes; i++) +- { +- INFO_LOG(VIDEO, "[DRM]: Mode %d: (%s) %d x %d, %u Hz\n", +- i, +- g_drm_connector->modes[i].name, +- g_drm_connector->modes[i].hdisplay, +- g_drm_connector->modes[i].vdisplay, +- g_drm_connector->modes[i].vrefresh); +- } ++ for (i = 0; (int)i < g_drm_connector->count_modes; i++) ++ { ++ INFO_LOG(VIDEO, "[DRM]: Mode %d: (%s) %d x %d, %u Hz\n", i, g_drm_connector->modes[i].name, ++ g_drm_connector->modes[i].hdisplay, g_drm_connector->modes[i].vdisplay, ++ g_drm_connector->modes[i].vrefresh); ++ } + +- return true; ++ return true; + } + + void drm_setup(int fd) + { +- g_crtc_id = g_drm_encoder->crtc_id; +- g_connector_id = g_drm_connector->connector_id; +- g_orig_crtc = drmModeGetCrtc(fd, g_crtc_id); +- if (!g_orig_crtc) +- INFO_LOG(VIDEO, "[DRM]: Cannot find original CRTC.\n"); ++ g_crtc_id = g_drm_encoder->crtc_id; ++ g_connector_id = g_drm_connector->connector_id; ++ g_orig_crtc = drmModeGetCrtc(fd, g_crtc_id); ++ if (!g_orig_crtc) ++ INFO_LOG(VIDEO, "[DRM]: Cannot find original CRTC.\n"); + } + +-float drm_get_refresh_rate(void *data) ++float drm_get_refresh_rate(void* data) + { +- float refresh_rate = 0.0f; ++ float refresh_rate = 0.0f; + +- if (g_drm_mode) +- { +- refresh_rate = g_drm_mode->clock * 1000.0f / g_drm_mode->htotal / g_drm_mode->vtotal; +- } ++ if (g_drm_mode) ++ { ++ refresh_rate = g_drm_mode->clock * 1000.0f / g_drm_mode->htotal / g_drm_mode->vtotal; ++ } + +- return refresh_rate; ++ return refresh_rate; + } + + void drm_free(void) + { +- if (g_drm_encoder) +- drmModeFreeEncoder(g_drm_encoder); +- if (g_drm_connector) +- drmModeFreeConnector(g_drm_connector); +- if (g_drm_resources) +- drmModeFreeResources(g_drm_resources); +- +- memset(&g_drm_fds, 0, sizeof(struct pollfd)); +- memset(&g_drm_evctx, 0, sizeof(drmEventContext)); +- +- g_drm_encoder = NULL; +- g_drm_connector = NULL; +- g_drm_resources = NULL; ++ if (g_drm_encoder) ++ drmModeFreeEncoder(g_drm_encoder); ++ if (g_drm_connector) ++ drmModeFreeConnector(g_drm_connector); ++ if (g_drm_resources) ++ drmModeFreeResources(g_drm_resources); ++ ++ memset(&g_drm_fds, 0, sizeof(struct pollfd)); ++ memset(&g_drm_evctx, 0, sizeof(drmEventContext)); ++ ++ g_drm_encoder = NULL; ++ g_drm_connector = NULL; ++ g_drm_resources = NULL; + } + +-static void drm_fb_destroy_callback(struct gbm_bo *bo, void *data) ++static void drm_fb_destroy_callback(struct gbm_bo* bo, void* data) + { +- struct drm_fb *fb = (struct drm_fb*)data; ++ struct drm_fb* fb = (struct drm_fb*)data; + +- if (fb && fb->fb_id) +- drmModeRmFB(g_drm_fd, fb->fb_id); ++ if (fb && fb->fb_id) ++ drmModeRmFB(g_drm_fd, fb->fb_id); + +- free(fb); ++ free(fb); + } + +-static struct drm_fb *drm_fb_get_from_bo(struct gbm_bo *bo) ++static struct drm_fb* drm_fb_get_from_bo(struct gbm_bo* bo) + { +- int ret; +- unsigned width, height, stride, handle; +- struct drm_fb *fb = (struct drm_fb*)calloc(1, sizeof(*fb)); ++ int ret; ++ unsigned width, height, stride, handle; ++ struct drm_fb* fb = (struct drm_fb*)calloc(1, sizeof(*fb)); + +- fb->bo = bo; ++ fb->bo = bo; + +- width = gbm_bo_get_width(bo); +- height = gbm_bo_get_height(bo); +- stride = gbm_bo_get_stride(bo); +- handle = gbm_bo_get_handle(bo).u32; ++ width = gbm_bo_get_width(bo); ++ height = gbm_bo_get_height(bo); ++ stride = gbm_bo_get_stride(bo); ++ handle = gbm_bo_get_handle(bo).u32; + +- INFO_LOG(VIDEO, "[KMS]: New FB: %ux%u (stride: %u).\n", +- width, height, stride); ++ INFO_LOG(VIDEO, "[KMS]: New FB: %ux%u (stride: %u).\n", width, height, stride); + +- ret = drmModeAddFB(g_drm_fd, width, height, 24, 32, +- stride, handle, &fb->fb_id); +- if (ret < 0) +- goto error; ++ ret = drmModeAddFB(g_drm_fd, width, height, 24, 32, stride, handle, &fb->fb_id); ++ if (ret < 0) ++ goto error; + +- gbm_bo_set_user_data(bo, fb, drm_fb_destroy_callback); +- return fb; ++ gbm_bo_set_user_data(bo, fb, drm_fb_destroy_callback); ++ return fb; + + error: +- INFO_LOG(VIDEO, "[KMS]: Failed to create FB: %s\n", strerror(errno)); +- free(fb); +- return NULL; ++ INFO_LOG(VIDEO, "[KMS]: Failed to create FB: %s\n", strerror(errno)); ++ free(fb); ++ return NULL; + } + +-static void gfx_ctx_drm_swap_interval(void *data, int interval) ++static void gfx_ctx_drm_swap_interval(void* data, int interval) + { +- gfx_ctx_drm_data_t *drm = (gfx_ctx_drm_data_t*)data; +- drm->interval = interval; ++ gfx_ctx_drm_data_t* drm = (gfx_ctx_drm_data_t*)data; ++ drm->interval = interval; + +- if (interval > 1) +- INFO_LOG(VIDEO, "[KMS]: Swap intervals > 1 currently not supported. Will use swap interval of 1.\n"); ++ if (interval > 1) ++ INFO_LOG(VIDEO, ++ "[KMS]: Swap intervals > 1 currently not supported. Will use swap interval of 1.\n"); + } + +-static void drm_flip_handler(int fd, unsigned frame, +- unsigned sec, unsigned usec, void *data) ++static void drm_flip_handler(int fd, unsigned frame, unsigned sec, unsigned usec, void* data) + { + #if 0 + static unsigned first_page_flip; +@@ -684,444 +661,434 @@ static void drm_flip_handler(int fd, unsigned frame, + last_page_flip = frame; + #endif + +- *(bool*)data = false; ++ *(bool*)data = false; + } + +-static bool gfx_ctx_drm_wait_flip(gfx_ctx_drm_data_t *drm, bool block) ++static bool gfx_ctx_drm_wait_flip(gfx_ctx_drm_data_t* drm, bool block) + { +- int timeout = 0; ++ int timeout = 0; + +- if (!drm->waiting_for_flip) +- return false; ++ if (!drm->waiting_for_flip) ++ return false; + +- if (block) +- timeout = -1; ++ if (block) ++ timeout = -1; + +- while (drm->waiting_for_flip) +- { +- if (!drm_wait_flip(timeout)) +- break; +- } ++ while (drm->waiting_for_flip) ++ { ++ if (!drm_wait_flip(timeout)) ++ break; ++ } + +- if (drm->waiting_for_flip) +- { INFO_LOG(VIDEO, "\nwait flip 2"); return true; } ++ if (drm->waiting_for_flip) ++ { ++ INFO_LOG(VIDEO, "\nwait flip 2"); ++ return true; ++ } + +- /* Page flip has taken place. */ ++ /* Page flip has taken place. */ + +- /* This buffer is not on-screen anymore. Release it to GBM. */ +- gbm_surface_release_buffer(drm->gbm_surface, drm->bo); +- /* This buffer is being shown now. */ +- drm->bo = drm->next_bo; +- return false; ++ /* This buffer is not on-screen anymore. Release it to GBM. */ ++ gbm_surface_release_buffer(drm->gbm_surface, drm->bo); ++ /* This buffer is being shown now. */ ++ drm->bo = drm->next_bo; ++ return false; + } + +-static bool gfx_ctx_drm_queue_flip(gfx_ctx_drm_data_t *drm) ++static bool gfx_ctx_drm_queue_flip(gfx_ctx_drm_data_t* drm) + { +- struct drm_fb *fb = NULL; ++ struct drm_fb* fb = NULL; + +- drm->next_bo = gbm_surface_lock_front_buffer(drm->gbm_surface); +- fb = (struct drm_fb*)gbm_bo_get_user_data(drm->next_bo); ++ drm->next_bo = gbm_surface_lock_front_buffer(drm->gbm_surface); ++ fb = (struct drm_fb*)gbm_bo_get_user_data(drm->next_bo); + +- if (!fb) +- fb = (struct drm_fb*)drm_fb_get_from_bo(drm->next_bo); ++ if (!fb) ++ fb = (struct drm_fb*)drm_fb_get_from_bo(drm->next_bo); + +- if (drmModePageFlip(g_drm_fd, g_crtc_id, fb->fb_id, +- DRM_MODE_PAGE_FLIP_EVENT, &drm->waiting_for_flip) == 0) +- return true; ++ if (drmModePageFlip(g_drm_fd, g_crtc_id, fb->fb_id, DRM_MODE_PAGE_FLIP_EVENT, ++ &drm->waiting_for_flip) == 0) ++ return true; + +- /* Failed to queue page flip. */ +- INFO_LOG(VIDEO, "\nFailed to queue page flip\n"); +- return false; ++ /* Failed to queue page flip. */ ++ INFO_LOG(VIDEO, "\nFailed to queue page flip\n"); ++ return false; + } + +-static void gfx_ctx_drm_swap_buffers(void *data) ++static void gfx_ctx_drm_swap_buffers(void* data) + { +- gfx_ctx_drm_data_t *drm = (gfx_ctx_drm_data_t*)data; +- unsigned max_swapchain_images = 3; //settings->uints.video_max_swapchain_images; ++ gfx_ctx_drm_data_t* drm = (gfx_ctx_drm_data_t*)data; ++ unsigned max_swapchain_images = 3; // settings->uints.video_max_swapchain_images; + +- egl_swap_buffers(&drm->egl); ++ egl_swap_buffers(&drm->egl); + +- /* I guess we have to wait for flip to have taken +- * place before another flip can be queued up. +- * +- * If true, we are still waiting for a flip +- * (nonblocking mode, so just drop the frame). */ +- if (gfx_ctx_drm_wait_flip(drm, drm->interval)) +- { INFO_LOG(VIDEO, "\nwait flip"); return; } ++ /* I guess we have to wait for flip to have taken ++ * place before another flip can be queued up. ++ * ++ * If true, we are still waiting for a flip ++ * (nonblocking mode, so just drop the frame). */ ++ if (gfx_ctx_drm_wait_flip(drm, drm->interval)) ++ { ++ INFO_LOG(VIDEO, "\nwait flip"); ++ return; ++ } + +- drm->waiting_for_flip = gfx_ctx_drm_queue_flip(drm); ++ drm->waiting_for_flip = gfx_ctx_drm_queue_flip(drm); + +- /* Triple-buffered page flips */ +- if (max_swapchain_images >= 3 && +- gbm_surface_has_free_buffers(drm->gbm_surface)) +- return; ++ /* Triple-buffered page flips */ ++ if (max_swapchain_images >= 3 && gbm_surface_has_free_buffers(drm->gbm_surface)) ++ return; + +- gfx_ctx_drm_wait_flip(drm, true); ++ gfx_ctx_drm_wait_flip(drm, true); + } + +-static void gfx_ctx_drm_get_video_size(void *data, +- unsigned *width, unsigned *height) ++static void gfx_ctx_drm_get_video_size(void* data, unsigned* width, unsigned* height) + { +- gfx_ctx_drm_data_t *drm = (gfx_ctx_drm_data_t*)data; ++ gfx_ctx_drm_data_t* drm = (gfx_ctx_drm_data_t*)data; + +- if (!drm) +- { +- INFO_LOG(VIDEO, "\nCannot get drm video size\n"); +- return; +- } ++ if (!drm) ++ { ++ INFO_LOG(VIDEO, "\nCannot get drm video size\n"); ++ return; ++ } + +- *width = drm->fb_width; +- *height = drm->fb_height; ++ *width = drm->fb_width; ++ *height = drm->fb_height; + } + +-static void free_drm_resources(gfx_ctx_drm_data_t *drm) ++static void free_drm_resources(gfx_ctx_drm_data_t* drm) + { +- if (!drm) +- return; ++ if (!drm) ++ return; + +- /* Restore original CRTC. */ +- drm_restore_crtc(); ++ /* Restore original CRTC. */ ++ drm_restore_crtc(); + +- if (drm->gbm_surface) +- gbm_surface_destroy(drm->gbm_surface); ++ if (drm->gbm_surface) ++ gbm_surface_destroy(drm->gbm_surface); + +- if (drm->gbm_dev) +- gbm_device_destroy(drm->gbm_dev); ++ if (drm->gbm_dev) ++ gbm_device_destroy(drm->gbm_dev); + +- drm_free(); ++ drm_free(); + +- if (drm->fd >= 0) +- { +- if (g_drm_fd >= 0) +- { +- drmDropMaster(g_drm_fd); +- close(drm->fd); +- } +- } ++ if (drm->fd >= 0) ++ { ++ if (g_drm_fd >= 0) ++ { ++ drmDropMaster(g_drm_fd); ++ close(drm->fd); ++ } ++ } + +- drm->gbm_surface = NULL; +- drm->gbm_dev = NULL; +- g_drm_fd = -1; ++ drm->gbm_surface = NULL; ++ drm->gbm_dev = NULL; ++ g_drm_fd = -1; + } + +-static void gfx_ctx_drm_destroy_resources(gfx_ctx_drm_data_t *drm) ++static void gfx_ctx_drm_destroy_resources(gfx_ctx_drm_data_t* drm) + { +- if (!drm) +- return; ++ if (!drm) ++ return; + +- /* Make sure we acknowledge all page-flips. */ +- gfx_ctx_drm_wait_flip(drm, true); ++ /* Make sure we acknowledge all page-flips. */ ++ gfx_ctx_drm_wait_flip(drm, true); + +- egl_destroy(&drm->egl); ++ egl_destroy(&drm->egl); + +- free_drm_resources(drm); ++ free_drm_resources(drm); + +- g_drm_mode = NULL; +- g_crtc_id = 0; +- g_connector_id = 0; ++ g_drm_mode = NULL; ++ g_crtc_id = 0; ++ g_connector_id = 0; + +- drm->fb_width = 0; +- drm->fb_height = 0; ++ drm->fb_width = 0; ++ drm->fb_height = 0; + +- drm->bo = NULL; +- drm->next_bo = NULL; ++ drm->bo = NULL; ++ drm->next_bo = NULL; + } + +-static void *gfx_ctx_drm_init() ++static void* gfx_ctx_drm_init() + { +- int fd, i; +- unsigned monitor_index; +- unsigned gpu_index = 0; +- const char *gpu = NULL; +- gfx_ctx_drm_data_t *drm = (gfx_ctx_drm_data_t*)calloc(1, sizeof(gfx_ctx_drm_data_t)); ++ int fd, i; ++ unsigned monitor_index; ++ unsigned gpu_index = 0; ++ const char* gpu = NULL; ++ gfx_ctx_drm_data_t* drm = (gfx_ctx_drm_data_t*)calloc(1, sizeof(gfx_ctx_drm_data_t)); + +- if (!drm) +- return NULL; +- drm->fd = -1; ++ if (!drm) ++ return NULL; ++ drm->fd = -1; + +- free_drm_resources(drm); ++ free_drm_resources(drm); + +- drm->fd = open("/dev/dri/card0", O_RDWR); +- if (drm->fd < 0) +- { +- INFO_LOG(VIDEO, "[KMS]: Couldn't open DRM device.\n"); +- return nullptr; +- } ++ drm->fd = open("/dev/dri/card0", O_RDWR); ++ if (drm->fd < 0) ++ { ++ INFO_LOG(VIDEO, "[KMS]: Couldn't open DRM device.\n"); ++ return nullptr; ++ } + +- fd = drm->fd; ++ fd = drm->fd; + +- if (!drm_get_resources(fd)) +- { +- INFO_LOG(VIDEO, "[KMS]: drm_get_resources failed\n"); +- return nullptr; +- } ++ if (!drm_get_resources(fd)) ++ { ++ INFO_LOG(VIDEO, "[KMS]: drm_get_resources failed\n"); ++ return nullptr; ++ } + +- if (!drm_get_connector(fd)) +- { +- INFO_LOG(VIDEO, "[KMS]: drm_get_connector failed\n"); +- return nullptr; +- } ++ if (!drm_get_connector(fd)) ++ { ++ INFO_LOG(VIDEO, "[KMS]: drm_get_connector failed\n"); ++ return nullptr; ++ } + +- if (!drm_get_encoder(fd)) +- { +- INFO_LOG(VIDEO, "[KMS]: drm_get_encoder failed\n"); +- return nullptr; +- } ++ if (!drm_get_encoder(fd)) ++ { ++ INFO_LOG(VIDEO, "[KMS]: drm_get_encoder failed\n"); ++ return nullptr; ++ } + +- drm_setup(fd); ++ drm_setup(fd); + +- /* Choose the optimal video mode for get_video_size(): +- - the current video mode from the CRTC +- - otherwise pick first connector mode */ +- if (g_orig_crtc->mode_valid) +- { +- drm->fb_width = g_orig_crtc->mode.hdisplay; +- drm->fb_height = g_orig_crtc->mode.vdisplay; +- } +- else +- { +- drm->fb_width = g_drm_connector->modes[0].hdisplay; +- drm->fb_height = g_drm_connector->modes[0].vdisplay; +- } ++ /* Choose the optimal video mode for get_video_size(): ++ - the current video mode from the CRTC ++ - otherwise pick first connector mode */ ++ if (g_orig_crtc->mode_valid) ++ { ++ drm->fb_width = g_orig_crtc->mode.hdisplay; ++ drm->fb_height = g_orig_crtc->mode.vdisplay; ++ } ++ else ++ { ++ drm->fb_width = g_drm_connector->modes[0].hdisplay; ++ drm->fb_height = g_drm_connector->modes[0].vdisplay; ++ } + +- drmSetMaster(g_drm_fd); ++ drmSetMaster(g_drm_fd); + +- drm->gbm_dev = gbm_create_device(fd); ++ drm->gbm_dev = gbm_create_device(fd); + +- if (!drm->gbm_dev) +- { +- INFO_LOG(VIDEO, "[KMS]: Couldn't create GBM device.\n"); +- return nullptr; +- } ++ if (!drm->gbm_dev) ++ { ++ INFO_LOG(VIDEO, "[KMS]: Couldn't create GBM device.\n"); ++ return nullptr; ++ } + +- /* Setup the flip handler. */ +- g_drm_fds.fd = fd; +- g_drm_fds.events = POLLIN; +- g_drm_evctx.version = DRM_EVENT_CONTEXT_VERSION; +- g_drm_evctx.page_flip_handler = drm_flip_handler; ++ /* Setup the flip handler. */ ++ g_drm_fds.fd = fd; ++ g_drm_fds.events = POLLIN; ++ g_drm_evctx.version = DRM_EVENT_CONTEXT_VERSION; ++ g_drm_evctx.page_flip_handler = drm_flip_handler; + +- g_drm_fd = fd; ++ g_drm_fd = fd; + +- return drm; ++ return drm; + + error: +- gfx_ctx_drm_destroy_resources(drm); ++ gfx_ctx_drm_destroy_resources(drm); + +- if (drm) +- free(drm); ++ if (drm) ++ free(drm); + +- return NULL; ++ return NULL; + } + +-static EGLint *gfx_ctx_drm_egl_fill_attribs( +- gfx_ctx_drm_data_t *drm, EGLint *attr) ++static EGLint* gfx_ctx_drm_egl_fill_attribs(gfx_ctx_drm_data_t* drm, EGLint* attr) + { +- *attr++ = EGL_CONTEXT_CLIENT_VERSION; +- *attr++ = drm->egl.major ? (EGLint)drm->egl.major : 2; ++ *attr++ = EGL_CONTEXT_CLIENT_VERSION; ++ *attr++ = drm->egl.major ? (EGLint)drm->egl.major : 2; + #ifdef EGL_KHR_create_context +- if (drm->egl.minor > 0) +- { +- *attr++ = EGL_CONTEXT_MINOR_VERSION_KHR; +- *attr++ = drm->egl.minor; +- } ++ if (drm->egl.minor > 0) ++ { ++ *attr++ = EGL_CONTEXT_MINOR_VERSION_KHR; ++ *attr++ = drm->egl.minor; ++ } + #endif + +- *attr = EGL_NONE; +- return attr; ++ *attr = EGL_NONE; ++ return attr; + } + +-static bool gbm_choose_xrgb8888_cb(void *display_data, EGLDisplay dpy, EGLConfig config) ++static bool gbm_choose_xrgb8888_cb(void* display_data, EGLDisplay dpy, EGLConfig config) + { +- EGLint r, g, b, id; +- (void)display_data; ++ EGLint r, g, b, id; ++ (void)display_data; + +- /* Makes sure we have 8 bit color. */ +- if (!eglGetConfigAttrib(dpy, config, EGL_RED_SIZE, &r)) +- return false; +- if (!eglGetConfigAttrib(dpy, config, EGL_GREEN_SIZE, &g)) +- return false; +- if (!eglGetConfigAttrib(dpy, config, EGL_BLUE_SIZE, &b)) +- return false; ++ /* Makes sure we have 8 bit color. */ ++ if (!eglGetConfigAttrib(dpy, config, EGL_RED_SIZE, &r)) ++ return false; ++ if (!eglGetConfigAttrib(dpy, config, EGL_GREEN_SIZE, &g)) ++ return false; ++ if (!eglGetConfigAttrib(dpy, config, EGL_BLUE_SIZE, &b)) ++ return false; + +- if (r != 8 || g != 8 || b != 8) +- return false; ++ if (r != 8 || g != 8 || b != 8) ++ return false; + +- if (!eglGetConfigAttrib(dpy, config, EGL_NATIVE_VISUAL_ID, &id)) +- return false; ++ if (!eglGetConfigAttrib(dpy, config, EGL_NATIVE_VISUAL_ID, &id)) ++ return false; + +- return id == GBM_FORMAT_XRGB8888; ++ return id == GBM_FORMAT_XRGB8888; + } + +-#define DRM_EGL_ATTRIBS_BASE \ +- EGL_SURFACE_TYPE, 0/*EGL_WINDOW_BIT*/, \ +- EGL_RED_SIZE, 8, \ +- EGL_GREEN_SIZE, 8, \ +- EGL_BLUE_SIZE, 8, \ +- EGL_ALPHA_SIZE, 0, \ +- EGL_DEPTH_SIZE, 0 ++#define DRM_EGL_ATTRIBS_BASE \ ++ EGL_SURFACE_TYPE, 0 /*EGL_WINDOW_BIT*/, EGL_RED_SIZE, 8, EGL_GREEN_SIZE, 8, EGL_BLUE_SIZE, 8, \ ++ EGL_ALPHA_SIZE, 0, EGL_DEPTH_SIZE, 0 + + #ifdef EGL_KHR_create_context +- static const EGLint egl_attribs_gles3[] = { +- DRM_EGL_ATTRIBS_BASE, +- EGL_RENDERABLE_TYPE, EGL_OPENGL_ES3_BIT_KHR, +- EGL_NONE, +- }; ++static const EGLint egl_attribs_gles3[] = { ++ DRM_EGL_ATTRIBS_BASE, ++ EGL_RENDERABLE_TYPE, ++ EGL_OPENGL_ES3_BIT_KHR, ++ EGL_NONE, ++}; + #endif + +-static bool gfx_ctx_drm_egl_set_video_mode(gfx_ctx_drm_data_t *drm) ++static bool gfx_ctx_drm_egl_set_video_mode(gfx_ctx_drm_data_t* drm) + { +- const EGLint *attrib_ptr = NULL; +- EGLint major; +- EGLint minor; +- EGLint n; +- EGLint egl_attribs[16]; +- EGLint *egl_attribs_ptr = NULL; +- EGLint *attr = NULL; +- +- attrib_ptr = egl_attribs_gles3; +- +- if (!egl_init_context(&drm->egl, EGL_PLATFORM_GBM_KHR, +- (EGLNativeDisplayType)drm->gbm_dev, &major, +- &minor, &n, attrib_ptr, gbm_choose_xrgb8888_cb)) +- { +- INFO_LOG(VIDEO, "\n[EGL] Cannot init context error 0x%x",eglGetError()); +- goto error; +- } +- attr = gfx_ctx_drm_egl_fill_attribs(drm, egl_attribs); +- egl_attribs_ptr = &egl_attribs[0]; ++ const EGLint* attrib_ptr = NULL; ++ EGLint major; ++ EGLint minor; ++ EGLint n; ++ EGLint egl_attribs[16]; ++ EGLint* egl_attribs_ptr = NULL; ++ EGLint* attr = NULL; + +- if (!egl_create_context(&drm->egl, (attr != egl_attribs_ptr) +- ? egl_attribs_ptr : NULL)) +- { +- INFO_LOG(VIDEO, "\n[EGL] Cannot create context error 0x%x",eglGetError()); +- goto error; +- } ++ attrib_ptr = egl_attribs_gles3; + +- if (!egl_create_surface(&drm->egl, (EGLNativeWindowType)drm->gbm_surface)) +- { +- INFO_LOG(VIDEO, "\n[EGL] Cannot create context error 0x%x",eglGetError()); +- return false; +- } ++ if (!egl_init_context(&drm->egl, EGL_PLATFORM_GBM_KHR, (EGLNativeDisplayType)drm->gbm_dev, &major, ++ &minor, &n, attrib_ptr, gbm_choose_xrgb8888_cb)) ++ { ++ INFO_LOG(VIDEO, "\n[EGL] Cannot init context error 0x%x", eglGetError()); ++ goto error; ++ } ++ attr = gfx_ctx_drm_egl_fill_attribs(drm, egl_attribs); ++ egl_attribs_ptr = &egl_attribs[0]; ++ ++ if (!egl_create_context(&drm->egl, (attr != egl_attribs_ptr) ? egl_attribs_ptr : NULL)) ++ { ++ INFO_LOG(VIDEO, "\n[EGL] Cannot create context error 0x%x", eglGetError()); ++ goto error; ++ } + +- egl_swap_buffers(&drm->egl); ++ if (!egl_create_surface(&drm->egl, (EGLNativeWindowType)drm->gbm_surface)) ++ { ++ INFO_LOG(VIDEO, "\n[EGL] Cannot create context error 0x%x", eglGetError()); ++ return false; ++ } + +- return true; ++ egl_swap_buffers(&drm->egl); ++ ++ return true; + + error: +- return false; ++ return false; + } + +-static bool gfx_ctx_drm_set_video_mode(void *data, +- unsigned width, unsigned height, +- bool fullscreen) ++static bool gfx_ctx_drm_set_video_mode(void* data, unsigned width, unsigned height, bool fullscreen) + { +- int i, ret = 0; +- struct drm_fb *fb = NULL; +- gfx_ctx_drm_data_t *drm = (gfx_ctx_drm_data_t*)data; +- float video_refresh_rate = (float)VideoInterface::GetTargetRefreshRate(); +- +- if (!drm) +- return false; +- +- /* Find desired video mode, and use that. +- * If not fullscreen, we get desired windowed size, +- * which is not appropriate. */ +- if ((width == 0 && height == 0) || !fullscreen) +- g_drm_mode = &g_drm_connector->modes[0]; +- else +- { +- /* Try to match refresh_rate as closely as possible. +- * +- * Lower resolutions tend to have multiple supported +- * refresh rates as well. +- */ +- float minimum_fps_diff = 0.0f; +- +- /* Find best match. */ +- for (i = 0; i < g_drm_connector->count_modes; i++) ++ int i, ret = 0; ++ struct drm_fb* fb = NULL; ++ gfx_ctx_drm_data_t* drm = (gfx_ctx_drm_data_t*)data; ++ float video_refresh_rate = (float)VideoInterface::GetTargetRefreshRate(); ++ ++ if (!drm) ++ return false; ++ ++ /* Find desired video mode, and use that. ++ * If not fullscreen, we get desired windowed size, ++ * which is not appropriate. */ ++ if ((width == 0 && height == 0) || !fullscreen) ++ g_drm_mode = &g_drm_connector->modes[0]; ++ else ++ { ++ /* Try to match refresh_rate as closely as possible. ++ * ++ * Lower resolutions tend to have multiple supported ++ * refresh rates as well. ++ */ ++ float minimum_fps_diff = 0.0f; ++ ++ /* Find best match. */ ++ for (i = 0; i < g_drm_connector->count_modes; i++) ++ { ++ float diff; ++ if (width != g_drm_connector->modes[i].hdisplay || ++ height != g_drm_connector->modes[i].vdisplay) ++ continue; ++ ++ diff = fabsf(g_drm_connector->modes[i].vrefresh - video_refresh_rate); ++ ++ if (!g_drm_mode || diff < minimum_fps_diff) + { +- float diff; +- if (width != g_drm_connector->modes[i].hdisplay || +- height != g_drm_connector->modes[i].vdisplay) +- continue; +- +- diff = fabsf(g_drm_connector->modes[i].vrefresh - video_refresh_rate); +- +- if (!g_drm_mode || diff < minimum_fps_diff) +- { +- g_drm_mode = &g_drm_connector->modes[i]; +- minimum_fps_diff = diff; +- } ++ g_drm_mode = &g_drm_connector->modes[i]; ++ minimum_fps_diff = diff; + } +- } ++ } ++ } + +- if (!g_drm_mode) +- { +- INFO_LOG(VIDEO, "[KMS/EGL]: Did not find suitable video mode for %u x %u.\n", +- width, height); +- goto error; +- } ++ if (!g_drm_mode) ++ { ++ INFO_LOG(VIDEO, "[KMS/EGL]: Did not find suitable video mode for %u x %u.\n", width, height); ++ goto error; ++ } + +- drm->fb_width = g_drm_mode->hdisplay; +- drm->fb_height = g_drm_mode->vdisplay; ++ drm->fb_width = g_drm_mode->hdisplay; ++ drm->fb_height = g_drm_mode->vdisplay; + +- /* Create GBM surface. */ +- drm->gbm_surface = gbm_surface_create( +- drm->gbm_dev, +- drm->fb_width, +- drm->fb_height, +- GBM_FORMAT_XRGB8888, +- GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING); ++ /* Create GBM surface. */ ++ drm->gbm_surface = ++ gbm_surface_create(drm->gbm_dev, drm->fb_width, drm->fb_height, GBM_FORMAT_XRGB8888, ++ GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING); + +- if (!drm->gbm_surface) +- { +- INFO_LOG(VIDEO, "[KMS/EGL]: Couldn't create GBM surface.\n"); +- goto error; +- } ++ if (!drm->gbm_surface) ++ { ++ INFO_LOG(VIDEO, "[KMS/EGL]: Couldn't create GBM surface.\n"); ++ goto error; ++ } + +- if (!gfx_ctx_drm_egl_set_video_mode(drm)) +- { +- INFO_LOG(VIDEO, "[KMS/EGL]: Couldn't set EGL video mode.\n"); +- goto error; +- } ++ if (!gfx_ctx_drm_egl_set_video_mode(drm)) ++ { ++ INFO_LOG(VIDEO, "[KMS/EGL]: Couldn't set EGL video mode.\n"); ++ goto error; ++ } + +- drm->bo = gbm_surface_lock_front_buffer(drm->gbm_surface); ++ drm->bo = gbm_surface_lock_front_buffer(drm->gbm_surface); + +- fb = (struct drm_fb*)gbm_bo_get_user_data(drm->bo); ++ fb = (struct drm_fb*)gbm_bo_get_user_data(drm->bo); + +- if (!fb) +- fb = drm_fb_get_from_bo(drm->bo); ++ if (!fb) ++ fb = drm_fb_get_from_bo(drm->bo); + +- ret = drmModeSetCrtc(g_drm_fd, +- g_crtc_id, fb->fb_id, 0, 0, &g_connector_id, 1, g_drm_mode); +- if (ret < 0) +- { +- INFO_LOG(VIDEO, "[KMS/EGL]: drmModeSetCrtc failed\n"); +- goto error; +- } +- return true; ++ ret = drmModeSetCrtc(g_drm_fd, g_crtc_id, fb->fb_id, 0, 0, &g_connector_id, 1, g_drm_mode); ++ if (ret < 0) ++ { ++ INFO_LOG(VIDEO, "[KMS/EGL]: drmModeSetCrtc failed\n"); ++ goto error; ++ } ++ return true; + + error: +- gfx_ctx_drm_destroy_resources(drm); ++ gfx_ctx_drm_destroy_resources(drm); + +- if (drm) +- free(drm); ++ if (drm) ++ free(drm); + +- return false; ++ return false; + } + +-static void gfx_ctx_drm_destroy(void *data) ++static void gfx_ctx_drm_destroy(void* data) + { +- gfx_ctx_drm_data_t *drm = (gfx_ctx_drm_data_t*)data; ++ gfx_ctx_drm_data_t* drm = (gfx_ctx_drm_data_t*)data; + +- if (!drm) +- return; ++ if (!drm) ++ return; + +- gfx_ctx_drm_destroy_resources(drm); +- free(drm); ++ gfx_ctx_drm_destroy_resources(drm); ++ free(drm); + } + +- + GLContextEGLDRM::~GLContextEGLDRM() + { + DestroyWindowSurface(); +@@ -1136,12 +1103,12 @@ bool GLContextEGLDRM::IsHeadless() const + + void GLContextEGLDRM::Swap() + { +- gfx_ctx_drm_swap_buffers(g_drm); ++ gfx_ctx_drm_swap_buffers(g_drm); + } + void GLContextEGLDRM::SwapInterval(int interval) + { +- gfx_ctx_drm_swap_interval(g_drm, interval); +- egl_set_swap_interval(m_egl, interval); ++ gfx_ctx_drm_swap_interval(g_drm, interval); ++ egl_set_swap_interval(m_egl, interval); + } + + void* GLContextEGLDRM::GetFuncAddress(const std::string& name) +@@ -1159,12 +1126,12 @@ bool GLContextEGLDRM::Initialize(const WindowSystemInfo& wsi, bool stereo, bool + + // Use current video mode, do not switch + gfx_ctx_drm_set_video_mode(g_drm, 0, 0, false); +- m_backbuffer_width = g_drm->fb_width; ++ m_backbuffer_width = g_drm->fb_width; + m_backbuffer_height = g_drm->fb_height; + + m_egl = &g_drm->egl; + m_opengl_mode = Mode::OpenGLES; +- m_supports_surfaceless = check_egl_display_extension(m_egl,"EGL_KHR_surfaceless_context"); ++ m_supports_surfaceless = check_egl_display_extension(m_egl, "EGL_KHR_surfaceless_context"); + + eglBindAPI(EGL_OPENGL_ES_API); + +@@ -1179,11 +1146,12 @@ std::unique_ptr GLContextEGLDRM::CreateSharedContext() + + eglBindAPI(EGL_OPENGL_ES_API); + EGLint egl_attribs[16]; +- EGLint *egl_attribs_ptr = NULL; +- const EGLint *attrib_ptr = egl_attribs_gles3; ++ EGLint* egl_attribs_ptr = NULL; ++ const EGLint* attrib_ptr = egl_attribs_gles3; + EGLint* attr = gfx_ctx_drm_egl_fill_attribs(g_drm, egl_attribs); + egl_attribs_ptr = &egl_attribs[0]; +- new_context->m_egl->ctx = eglCreateContext(m_egl->dpy, m_egl->config, m_egl->ctx, egl_attribs_ptr); ++ new_context->m_egl->ctx = ++ eglCreateContext(m_egl->dpy, m_egl->config, m_egl->ctx, egl_attribs_ptr); + if (!new_context->m_egl->ctx) + { + ERROR_LOG(VIDEO, "\nError: eglCreateContext failed 0x%x\n", eglGetError()); +@@ -1203,7 +1171,9 @@ std::unique_ptr GLContextEGLDRM::CreateSharedContext() + + bool GLContextEGLDRM::CreateWindowSurface() + { +- EGLint attrib_list[] = { EGL_NONE, }; ++ EGLint attrib_list[] = { ++ EGL_NONE, ++ }; + if (m_supports_surfaceless) + { + m_egl->surf = EGL_NO_SURFACE; +@@ -1213,17 +1183,18 @@ bool GLContextEGLDRM::CreateWindowSurface() + + if (!IsHeadless()) + { +- if (!egl_create_surface(m_egl, (EGLNativeWindowType)g_drm->gbm_surface)) +- { ++ if (!egl_create_surface(m_egl, (EGLNativeWindowType)g_drm->gbm_surface)) ++ { + INFO_LOG(VIDEO, "\negl_create_surface failed, trying pbuffer failed 0x%x\n", eglGetError()); + goto pbuffer; +- } ++ } + // Get dimensions from the surface. + EGLint surface_width = 1, surface_height = 1; + if (!eglQuerySurface(m_egl->dpy, m_egl->surf, EGL_WIDTH, &surface_width) || + !eglQuerySurface(m_egl->dpy, m_egl->surf, EGL_HEIGHT, &surface_height)) + { +- INFO_LOG(VIDEO, "Failed to get surface dimensions via eglQuerySurface. Size may be incorrect."); ++ INFO_LOG(VIDEO, ++ "Failed to get surface dimensions via eglQuerySurface. Size may be incorrect."); + } + m_backbuffer_width = static_cast(surface_width); + m_backbuffer_height = static_cast(surface_height); +@@ -1231,13 +1202,13 @@ bool GLContextEGLDRM::CreateWindowSurface() + } + + pbuffer: +- m_egl->surf = eglCreatePbufferSurface(m_egl->dpy, m_egl->config, attrib_list); +- if (!m_egl->surf) +- { +- INFO_LOG(VIDEO, "\nError: eglCreatePbufferSurface failed 0x%x\n", eglGetError()); +- return false; +- } +- return true; ++ m_egl->surf = eglCreatePbufferSurface(m_egl->dpy, m_egl->config, attrib_list); ++ if (!m_egl->surf) ++ { ++ INFO_LOG(VIDEO, "\nError: eglCreatePbufferSurface failed 0x%x\n", eglGetError()); ++ return false; ++ } ++ return true; + } + + void GLContextEGLDRM::DestroyWindowSurface() +@@ -1273,7 +1244,7 @@ bool GLContextEGLDRM::ClearCurrent() + // Close backend + void GLContextEGLDRM::DestroyContext() + { +-if (!m_egl->ctx) ++ if (!m_egl->ctx) + return; + + if (eglGetCurrentContext() == m_egl->ctx) + +From 414cb0ec131cad6667f229c7b5b8b16969d42772 Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 16:04:56 +0200 +Subject: [PATCH 11/25] Indent properly Source/Core/Common/CMakeLists.txt + +--- + Source/Core/Common/CMakeLists.txt | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/Source/Core/Common/CMakeLists.txt b/Source/Core/Common/CMakeLists.txt +index 6e220d9047b..6e7574b7c8d 100644 +--- a/Source/Core/Common/CMakeLists.txt ++++ b/Source/Core/Common/CMakeLists.txt +@@ -226,16 +226,16 @@ if(ENABLE_EGL AND EGL_FOUND) + find_package(Libgbm) + if (LIBDRM_FOUND AND LIBGBM_FOUND) + target_sources(common PRIVATE +- GL/GLInterface/EGL.cpp +- GL/GLInterface/EGL.h +- GL/GLInterface/EGLDRM.cpp +- GL/GLInterface/EGLDRM.h ++ GL/GLInterface/EGL.cpp ++ GL/GLInterface/EGL.h ++ GL/GLInterface/EGLDRM.cpp ++ GL/GLInterface/EGLDRM.h + ) + else() +- target_sources(common PRIVATE +- GL/GLInterface/EGL.cpp +- GL/GLInterface/EGL.h +- ) ++ target_sources(common PRIVATE ++ GL/GLInterface/EGL.cpp ++ GL/GLInterface/EGL.h ++ ) + endif() + if(ANDROID) + target_sources(common PRIVATE + +From c55dc590e461bc7e9d647ad0cb8e0d7ff50044ae Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 16:08:56 +0200 +Subject: [PATCH 12/25] Fix headers order / C++ compliance and move to + EGLContextData struct + +--- + Source/Core/Common/GL/GLInterface/EGLDRM.cpp | 45 ++++++++++---------- + Source/Core/Common/GL/GLInterface/EGLDRM.h | 6 +-- + 2 files changed, 26 insertions(+), 25 deletions(-) + +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +index 100e60d1c78..ff1b13967cd 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +@@ -19,26 +19,27 @@ + * If not, see . + */ + +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ + #include +-#include + #include + #include +-#include +-#include +-#include + #include + #include + #include + #include + +-#include +-#include +-#include + #include + #include +-#include +-#include + #include + #include + +@@ -80,7 +81,7 @@ using EGLAcceptConfigCB = bool (*)(void* display_data, EGLDisplay dpy, EGLConfig + + typedef struct gfx_ctx_drm_data + { +- egl_ctx_data_t egl; ++ EGLContextData egl; + int fd; + int interval; + unsigned fb_width; +@@ -126,7 +127,7 @@ void drm_free(void); + bool drm_get_connector(int fd); + float drm_get_refresh_rate(void* data); + +-static void egl_destroy(egl_ctx_data_t* egl) ++static void egl_destroy(EGLContextData* egl) + { + if (egl->dpy) + { +@@ -151,14 +152,14 @@ static void egl_destroy(egl_ctx_data_t* egl) + + static void egl_swap_buffers(void* data) + { +- egl_ctx_data_t* egl = (egl_ctx_data_t*)data; ++ EGLContextData* egl = (EGLContextData*)data; + if (egl && egl->dpy != EGL_NO_DISPLAY && egl->surf != EGL_NO_SURFACE) + { + eglSwapBuffers(egl->dpy, egl->surf); + } + } + +-static void egl_set_swap_interval(egl_ctx_data_t* egl, int interval) ++static void egl_set_swap_interval(EGLContextData* egl, int interval) + { + /* Can be called before initialization. + * Some contexts require that swap interval +@@ -230,7 +231,7 @@ static bool check_egl_client_extension(const char* name) + static bool check_egl_display_extension(void* data, const char* name) + { + size_t nameLen; +- egl_ctx_data_t* egl = (egl_ctx_data_t*)data; ++ EGLContextData* egl = (EGLContextData*)data; + if (!egl || egl->dpy == EGL_NO_DISPLAY) + return false; + +@@ -308,7 +309,7 @@ static EGLDisplay get_egl_display(EGLenum platform, void* native) + return eglGetDisplay((EGLNativeDisplayType)native); + } + +-static bool egl_get_native_visual_id(egl_ctx_data_t* egl, EGLint* value) ++static bool egl_get_native_visual_id(EGLContextData* egl, EGLint* value) + { + if (!eglGetConfigAttrib(egl->dpy, egl->config, EGL_NATIVE_VISUAL_ID, value)) + { +@@ -319,7 +320,7 @@ static bool egl_get_native_visual_id(egl_ctx_data_t* egl, EGLint* value) + return true; + } + +-static bool egl_init_context_common(egl_ctx_data_t* egl, EGLint* count, const EGLint* attrib_ptr, ++static bool egl_init_context_common(EGLContextData* egl, EGLint* count, const EGLint* attrib_ptr, + egl_accept_config_cb_t cb, void* display_data) + { + EGLint i; +@@ -364,7 +365,7 @@ static bool egl_init_context_common(egl_ctx_data_t* egl, EGLint* count, const EG + return true; + } + +-static bool egl_init_context(egl_ctx_data_t* egl, EGLenum platform, void* display_data, ++static bool egl_init_context(EGLContextData* egl, EGLenum platform, void* display_data, + EGLint* major, EGLint* minor, EGLint* count, const EGLint* attrib_ptr, + egl_accept_config_cb_t cb) + { +@@ -386,7 +387,7 @@ static bool egl_init_context(egl_ctx_data_t* egl, EGLenum platform, void* displa + return egl_init_context_common(egl, count, attrib_ptr, cb, display_data); + } + +-static bool egl_create_context(egl_ctx_data_t* egl, const EGLint* egl_attribs) ++static bool egl_create_context(EGLContextData* egl, const EGLint* egl_attribs) + { + EGLContext ctx = eglCreateContext(egl->dpy, egl->config, EGL_NO_CONTEXT, egl_attribs); + +@@ -398,7 +399,7 @@ static bool egl_create_context(egl_ctx_data_t* egl, const EGLint* egl_attribs) + return true; + } + +-static bool egl_create_surface(egl_ctx_data_t* egl, void* native_window) ++static bool egl_create_surface(EGLContextData* egl, void* native_window) + { + EGLint window_attribs[] = { + EGL_RENDER_BUFFER, +@@ -1141,8 +1142,8 @@ bool GLContextEGLDRM::Initialize(const WindowSystemInfo& wsi, bool stereo, bool + std::unique_ptr GLContextEGLDRM::CreateSharedContext() + { + std::unique_ptr new_context = std::make_unique(); +- new_context->m_egl = (egl_ctx_data_t*)malloc(sizeof(egl_ctx_data_t)); +- memcpy(new_context->m_egl, m_egl, sizeof(egl_ctx_data_t)); ++ new_context->m_egl = (EGLContextData*)malloc(sizeof(EGLContextData)); ++ memcpy(new_context->m_egl, m_egl, sizeof(EGLContextData)); + + eglBindAPI(EGL_OPENGL_ES_API); + EGLint egl_attribs[16]; +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.h b/Source/Core/Common/GL/GLInterface/EGLDRM.h +index 9b38f00900c..46d361a3a14 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.h ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.h +@@ -11,7 +11,7 @@ + + #include "Common/GL/GLContext.h" + +-typedef struct ++struct EGLContextData + { + EGLContext ctx; + EGLSurface surf; +@@ -22,7 +22,7 @@ typedef struct + unsigned major; + unsigned minor; + +-} egl_ctx_data_t; ++}; + + class GLContextEGLDRM : public GLContext + { +@@ -51,5 +51,5 @@ class GLContextEGLDRM : public GLContext + void DestroyContext(); + + bool m_supports_surfaceless = false; +- egl_ctx_data_t* m_egl; ++ EGLContextData* m_egl; + }; + +From 02575c2cbfa074043668d7d3b41b0bd122e9e664 Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 16:11:49 +0200 +Subject: [PATCH 13/25] Move gfx_ctx_drm_data_t to GFXContextDRMData + +--- + Source/Core/Common/GL/GLInterface/EGLDRM.cpp | 30 ++++++++++---------- + 1 file changed, 15 insertions(+), 15 deletions(-) + +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +index ff1b13967cd..f252fb09170 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +@@ -79,7 +79,7 @@ + + using EGLAcceptConfigCB = bool (*)(void* display_data, EGLDisplay dpy, EGLConfig config); + +-typedef struct gfx_ctx_drm_data ++struct GFXContextDRMData + { + EGLContextData egl; + int fd; +@@ -93,7 +93,7 @@ typedef struct gfx_ctx_drm_data + struct gbm_bo* next_bo; + struct gbm_surface* gbm_surface; + struct gbm_device* gbm_dev; +-} gfx_ctx_drm_data_t; ++}; + + struct drm_fb + { +@@ -634,7 +634,7 @@ static struct drm_fb* drm_fb_get_from_bo(struct gbm_bo* bo) + + static void gfx_ctx_drm_swap_interval(void* data, int interval) + { +- gfx_ctx_drm_data_t* drm = (gfx_ctx_drm_data_t*)data; ++ GFXContextDRMData* drm = (GFXContextDRMData*)data; + drm->interval = interval; + + if (interval > 1) +@@ -665,7 +665,7 @@ static void drm_flip_handler(int fd, unsigned frame, unsigned sec, unsigned usec + *(bool*)data = false; + } + +-static bool gfx_ctx_drm_wait_flip(gfx_ctx_drm_data_t* drm, bool block) ++static bool gfx_ctx_drm_wait_flip(GFXContextDRMData* drm, bool block) + { + int timeout = 0; + +@@ -696,7 +696,7 @@ static bool gfx_ctx_drm_wait_flip(gfx_ctx_drm_data_t* drm, bool block) + return false; + } + +-static bool gfx_ctx_drm_queue_flip(gfx_ctx_drm_data_t* drm) ++static bool gfx_ctx_drm_queue_flip(GFXContextDRMData* drm) + { + struct drm_fb* fb = NULL; + +@@ -717,7 +717,7 @@ static bool gfx_ctx_drm_queue_flip(gfx_ctx_drm_data_t* drm) + + static void gfx_ctx_drm_swap_buffers(void* data) + { +- gfx_ctx_drm_data_t* drm = (gfx_ctx_drm_data_t*)data; ++ GFXContextDRMData* drm = (GFXContextDRMData*)data; + unsigned max_swapchain_images = 3; // settings->uints.video_max_swapchain_images; + + egl_swap_buffers(&drm->egl); +@@ -744,7 +744,7 @@ static void gfx_ctx_drm_swap_buffers(void* data) + + static void gfx_ctx_drm_get_video_size(void* data, unsigned* width, unsigned* height) + { +- gfx_ctx_drm_data_t* drm = (gfx_ctx_drm_data_t*)data; ++ GFXContextDRMData* drm = (GFXContextDRMData*)data; + + if (!drm) + { +@@ -756,7 +756,7 @@ static void gfx_ctx_drm_get_video_size(void* data, unsigned* width, unsigned* he + *height = drm->fb_height; + } + +-static void free_drm_resources(gfx_ctx_drm_data_t* drm) ++static void free_drm_resources(GFXContextDRMData* drm) + { + if (!drm) + return; +@@ -786,7 +786,7 @@ static void free_drm_resources(gfx_ctx_drm_data_t* drm) + g_drm_fd = -1; + } + +-static void gfx_ctx_drm_destroy_resources(gfx_ctx_drm_data_t* drm) ++static void gfx_ctx_drm_destroy_resources(GFXContextDRMData* drm) + { + if (!drm) + return; +@@ -815,7 +815,7 @@ static void* gfx_ctx_drm_init() + unsigned monitor_index; + unsigned gpu_index = 0; + const char* gpu = NULL; +- gfx_ctx_drm_data_t* drm = (gfx_ctx_drm_data_t*)calloc(1, sizeof(gfx_ctx_drm_data_t)); ++ GFXContextDRMData* drm = (GFXContextDRMData*)calloc(1, sizeof(GFXContextDRMData)); + + if (!drm) + return NULL; +@@ -895,7 +895,7 @@ static void* gfx_ctx_drm_init() + return NULL; + } + +-static EGLint* gfx_ctx_drm_egl_fill_attribs(gfx_ctx_drm_data_t* drm, EGLint* attr) ++static EGLint* gfx_ctx_drm_egl_fill_attribs(GFXContextDRMData* drm, EGLint* attr) + { + *attr++ = EGL_CONTEXT_CLIENT_VERSION; + *attr++ = drm->egl.major ? (EGLint)drm->egl.major : 2; +@@ -946,7 +946,7 @@ static const EGLint egl_attribs_gles3[] = { + }; + #endif + +-static bool gfx_ctx_drm_egl_set_video_mode(gfx_ctx_drm_data_t* drm) ++static bool gfx_ctx_drm_egl_set_video_mode(GFXContextDRMData* drm) + { + const EGLint* attrib_ptr = NULL; + EGLint major; +@@ -991,7 +991,7 @@ static bool gfx_ctx_drm_set_video_mode(void* data, unsigned width, unsigned heig + { + int i, ret = 0; + struct drm_fb* fb = NULL; +- gfx_ctx_drm_data_t* drm = (gfx_ctx_drm_data_t*)data; ++ GFXContextDRMData* drm = (GFXContextDRMData*)data; + float video_refresh_rate = (float)VideoInterface::GetTargetRefreshRate(); + + if (!drm) +@@ -1081,7 +1081,7 @@ static bool gfx_ctx_drm_set_video_mode(void* data, unsigned width, unsigned heig + + static void gfx_ctx_drm_destroy(void* data) + { +- gfx_ctx_drm_data_t* drm = (gfx_ctx_drm_data_t*)data; ++ GFXContextDRMData* drm = (GFXContextDRMData*)data; + + if (!drm) + return; +@@ -1121,7 +1121,7 @@ void* GLContextEGLDRM::GetFuncAddress(const std::string& name) + // Call browser: Core.cpp:EmuThread() > main.cpp:Video_Initialize() + bool GLContextEGLDRM::Initialize(const WindowSystemInfo& wsi, bool stereo, bool core) + { +- g_drm = (gfx_ctx_drm_data_t*)gfx_ctx_drm_init(); ++ g_drm = (GFXContextDRMData*)gfx_ctx_drm_init(); + + eglBindAPI(EGL_OPENGL_ES_API); + + +From 67cb42244209095b64022b3616000c7686859655 Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 16:15:39 +0200 +Subject: [PATCH 14/25] Remove useless "private:" declaration in + PlatformDRM.cpp + +--- + Source/Core/DolphinNoGUI/PlatformDRM.cpp | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/Source/Core/DolphinNoGUI/PlatformDRM.cpp b/Source/Core/DolphinNoGUI/PlatformDRM.cpp +index 255888ad4cc..6e4dc08eedf 100644 +--- a/Source/Core/DolphinNoGUI/PlatformDRM.cpp ++++ b/Source/Core/DolphinNoGUI/PlatformDRM.cpp +@@ -36,8 +36,6 @@ class PlatformDRM : public Platform + void MainLoop() override; + + WindowSystemInfo GetWindowSystemInfo() const override; +- +-private: + }; + + PlatformDRM::~PlatformDRM() = default; + +From dcabf7a330cfeb8db857ceced4e40034b3731877 Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 16:17:41 +0200 +Subject: [PATCH 15/25] Harmonize NULL to nullptr in EGLDRM.cpp + +--- + Source/Core/Common/GL/GLInterface/EGLDRM.cpp | 64 ++++++++++---------- + 1 file changed, 32 insertions(+), 32 deletions(-) + +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +index f252fb09170..79992127006 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +@@ -107,15 +107,15 @@ static struct pollfd g_drm_fds; + static uint32_t g_connector_id = 0; + static int g_drm_fd = 0; + static uint32_t g_crtc_id = 0; +-static drmModeCrtc* g_orig_crtc = NULL; +-static drmModeConnector* g_drm_connector = NULL; +-static drmModeModeInfo* g_drm_mode = NULL; ++static drmModeCrtc* g_orig_crtc = nullptr; ++static drmModeConnector* g_drm_connector = nullptr; ++static drmModeModeInfo* g_drm_mode = nullptr; + + /* TODO/FIXME - static globals */ +-static drmModeRes* g_drm_resources = NULL; +-static drmModeEncoder* g_drm_encoder = NULL; ++static drmModeRes* g_drm_resources = nullptr; ++static drmModeEncoder* g_drm_encoder = nullptr; + +-static gfx_ctx_drm_data* g_drm = NULL; ++static gfx_ctx_drm_data* g_drm = nullptr; + + bool drm_get_encoder(int fd); + +@@ -276,7 +276,7 @@ static EGLDisplay get_egl_display(EGLenum platform, void* native) + + if (ptr_eglGetPlatformDisplay) + { +- EGLDisplay dpy = ptr_eglGetPlatformDisplay(platform, native, NULL); ++ EGLDisplay dpy = ptr_eglGetPlatformDisplay(platform, native, nullptr); + if (dpy != EGL_NO_DISPLAY) + return dpy; + } +@@ -294,7 +294,7 @@ static EGLDisplay get_egl_display(EGLenum platform, void* native) + + if (ptr_eglGetPlatformDisplayEXT) + { +- EGLDisplay dpy = ptr_eglGetPlatformDisplayEXT(platform, native, NULL); ++ EGLDisplay dpy = ptr_eglGetPlatformDisplayEXT(platform, native, nullptr); + if (dpy != EGL_NO_DISPLAY) + return dpy; + } +@@ -325,11 +325,11 @@ static bool egl_init_context_common(EGLContextData* egl, EGLint* count, const EG + { + EGLint i; + EGLint matched = 0; +- EGLConfig* configs = NULL; ++ EGLConfig* configs = nullptr; + if (!egl) + return false; + +- if (!eglGetConfigs(egl->dpy, NULL, 0, count) || *count < 1) ++ if (!eglGetConfigs(egl->dpy, nullptr, 0, count) || *count < 1) + { + INFO_LOG(VIDEO, "[EGL]: No configs to choose from.\n"); + return false; +@@ -451,7 +451,7 @@ void drm_restore_crtc(void) + g_orig_crtc->y, &g_connector_id, 1, &g_orig_crtc->mode); + + drmModeFreeCrtc(g_orig_crtc); +- g_orig_crtc = NULL; ++ g_orig_crtc = nullptr; + } + + bool drm_get_resources(int fd) +@@ -511,7 +511,7 @@ bool drm_get_connector(int fd) + } + + drmModeFreeConnector(g_drm_connector); +- g_drm_connector = NULL; ++ g_drm_connector = nullptr; + } + + if (!g_drm_connector) +@@ -537,7 +537,7 @@ bool drm_get_encoder(int fd) + break; + + drmModeFreeEncoder(g_drm_encoder); +- g_drm_encoder = NULL; ++ g_drm_encoder = nullptr; + } + + if (!g_drm_encoder) +@@ -589,9 +589,9 @@ void drm_free(void) + memset(&g_drm_fds, 0, sizeof(struct pollfd)); + memset(&g_drm_evctx, 0, sizeof(drmEventContext)); + +- g_drm_encoder = NULL; +- g_drm_connector = NULL; +- g_drm_resources = NULL; ++ g_drm_encoder = nullptr; ++ g_drm_connector = nullptr; ++ g_drm_resources = nullptr; + } + + static void drm_fb_destroy_callback(struct gbm_bo* bo, void* data) +@@ -629,7 +629,7 @@ static struct drm_fb* drm_fb_get_from_bo(struct gbm_bo* bo) + error: + INFO_LOG(VIDEO, "[KMS]: Failed to create FB: %s\n", strerror(errno)); + free(fb); +- return NULL; ++ return nullptr; + } + + static void gfx_ctx_drm_swap_interval(void* data, int interval) +@@ -698,7 +698,7 @@ static bool gfx_ctx_drm_wait_flip(GFXContextDRMData* drm, bool block) + + static bool gfx_ctx_drm_queue_flip(GFXContextDRMData* drm) + { +- struct drm_fb* fb = NULL; ++ struct drm_fb* fb = nullptr; + + drm->next_bo = gbm_surface_lock_front_buffer(drm->gbm_surface); + fb = (struct drm_fb*)gbm_bo_get_user_data(drm->next_bo); +@@ -781,8 +781,8 @@ static void free_drm_resources(GFXContextDRMData* drm) + } + } + +- drm->gbm_surface = NULL; +- drm->gbm_dev = NULL; ++ drm->gbm_surface = nullptr; ++ drm->gbm_dev = nullptr; + g_drm_fd = -1; + } + +@@ -798,15 +798,15 @@ static void gfx_ctx_drm_destroy_resources(GFXContextDRMData* drm) + + free_drm_resources(drm); + +- g_drm_mode = NULL; ++ g_drm_mode = nullptr; + g_crtc_id = 0; + g_connector_id = 0; + + drm->fb_width = 0; + drm->fb_height = 0; + +- drm->bo = NULL; +- drm->next_bo = NULL; ++ drm->bo = nullptr; ++ drm->next_bo = nullptr; + } + + static void* gfx_ctx_drm_init() +@@ -814,11 +814,11 @@ static void* gfx_ctx_drm_init() + int fd, i; + unsigned monitor_index; + unsigned gpu_index = 0; +- const char* gpu = NULL; ++ const char* gpu = nullptr; + GFXContextDRMData* drm = (GFXContextDRMData*)calloc(1, sizeof(GFXContextDRMData)); + + if (!drm) +- return NULL; ++ return nullptr; + drm->fd = -1; + + free_drm_resources(drm); +@@ -892,7 +892,7 @@ static void* gfx_ctx_drm_init() + if (drm) + free(drm); + +- return NULL; ++ return nullptr; + } + + static EGLint* gfx_ctx_drm_egl_fill_attribs(GFXContextDRMData* drm, EGLint* attr) +@@ -948,13 +948,13 @@ static const EGLint egl_attribs_gles3[] = { + + static bool gfx_ctx_drm_egl_set_video_mode(GFXContextDRMData* drm) + { +- const EGLint* attrib_ptr = NULL; ++ const EGLint* attrib_ptr = nullptr; + EGLint major; + EGLint minor; + EGLint n; + EGLint egl_attribs[16]; +- EGLint* egl_attribs_ptr = NULL; +- EGLint* attr = NULL; ++ EGLint* egl_attribs_ptr = nullptr; ++ EGLint* attr = nullptr; + + attrib_ptr = egl_attribs_gles3; + +@@ -967,7 +967,7 @@ static bool gfx_ctx_drm_egl_set_video_mode(GFXContextDRMData* drm) + attr = gfx_ctx_drm_egl_fill_attribs(drm, egl_attribs); + egl_attribs_ptr = &egl_attribs[0]; + +- if (!egl_create_context(&drm->egl, (attr != egl_attribs_ptr) ? egl_attribs_ptr : NULL)) ++ if (!egl_create_context(&drm->egl, (attr != egl_attribs_ptr) ? egl_attribs_ptr : nullptr)) + { + INFO_LOG(VIDEO, "\n[EGL] Cannot create context error 0x%x", eglGetError()); + goto error; +@@ -990,7 +990,7 @@ static bool gfx_ctx_drm_egl_set_video_mode(GFXContextDRMData* drm) + static bool gfx_ctx_drm_set_video_mode(void* data, unsigned width, unsigned height, bool fullscreen) + { + int i, ret = 0; +- struct drm_fb* fb = NULL; ++ struct drm_fb* fb = nullptr; + GFXContextDRMData* drm = (GFXContextDRMData*)data; + float video_refresh_rate = (float)VideoInterface::GetTargetRefreshRate(); + +@@ -1147,7 +1147,7 @@ std::unique_ptr GLContextEGLDRM::CreateSharedContext() + + eglBindAPI(EGL_OPENGL_ES_API); + EGLint egl_attribs[16]; +- EGLint* egl_attribs_ptr = NULL; ++ EGLint* egl_attribs_ptr = nullptr; + const EGLint* attrib_ptr = egl_attribs_gles3; + EGLint* attr = gfx_ctx_drm_egl_fill_attribs(g_drm, egl_attribs); + egl_attribs_ptr = &egl_attribs[0]; + +From 810f2240390b6f55314c319a2917bafe498d8ba4 Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 16:28:31 +0200 +Subject: [PATCH 16/25] Fix build following PR changes + +--- + Source/Core/Common/GL/GLInterface/EGLDRM.cpp | 6 +++--- + Source/Core/DolphinNoGUI/PlatformDRM.cpp | 2 -- + 2 files changed, 3 insertions(+), 5 deletions(-) + +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +index 79992127006..ec5113d5660 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +@@ -115,7 +115,7 @@ static drmModeModeInfo* g_drm_mode = nullptr; + static drmModeRes* g_drm_resources = nullptr; + static drmModeEncoder* g_drm_encoder = nullptr; + +-static gfx_ctx_drm_data* g_drm = nullptr; ++static GFXContextDRMData* g_drm = nullptr; + + bool drm_get_encoder(int fd); + +@@ -321,7 +321,7 @@ static bool egl_get_native_visual_id(EGLContextData* egl, EGLint* value) + } + + static bool egl_init_context_common(EGLContextData* egl, EGLint* count, const EGLint* attrib_ptr, +- egl_accept_config_cb_t cb, void* display_data) ++ EGLAcceptConfigCB cb, void* display_data) + { + EGLint i; + EGLint matched = 0; +@@ -367,7 +367,7 @@ static bool egl_init_context_common(EGLContextData* egl, EGLint* count, const EG + + static bool egl_init_context(EGLContextData* egl, EGLenum platform, void* display_data, + EGLint* major, EGLint* minor, EGLint* count, const EGLint* attrib_ptr, +- egl_accept_config_cb_t cb) ++ EGLAcceptConfigCB cb) + { + EGLDisplay dpy = get_egl_display(platform, display_data); + +diff --git a/Source/Core/DolphinNoGUI/PlatformDRM.cpp b/Source/Core/DolphinNoGUI/PlatformDRM.cpp +index 6e4dc08eedf..b210cea1599 100644 +--- a/Source/Core/DolphinNoGUI/PlatformDRM.cpp ++++ b/Source/Core/DolphinNoGUI/PlatformDRM.cpp +@@ -39,8 +39,6 @@ class PlatformDRM : public Platform + }; + + PlatformDRM::~PlatformDRM() = default; +-{ +-} + + bool PlatformDRM::Init() + { + +From c72d6fede67631ebba59bb28c5f9ad495474b676 Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 16:36:44 +0200 +Subject: [PATCH 17/25] Fix warnings and unused stuff + +--- + Source/Core/Common/GL/GLInterface/EGLDRM.cpp | 41 +------------------- + 1 file changed, 2 insertions(+), 39 deletions(-) + +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +index ec5113d5660..0414072170c 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +@@ -309,17 +309,6 @@ static EGLDisplay get_egl_display(EGLenum platform, void* native) + return eglGetDisplay((EGLNativeDisplayType)native); + } + +-static bool egl_get_native_visual_id(EGLContextData* egl, EGLint* value) +-{ +- if (!eglGetConfigAttrib(egl->dpy, egl->config, EGL_NATIVE_VISUAL_ID, value)) +- { +- INFO_LOG(VIDEO, "[EGL]: egl_get_native_visual_id failed.\n"); +- return false; +- } +- +- return true; +-} +- + static bool egl_init_context_common(EGLContextData* egl, EGLint* count, const EGLint* attrib_ptr, + EGLAcceptConfigCB cb, void* display_data) + { +@@ -742,20 +731,6 @@ static void gfx_ctx_drm_swap_buffers(void* data) + gfx_ctx_drm_wait_flip(drm, true); + } + +-static void gfx_ctx_drm_get_video_size(void* data, unsigned* width, unsigned* height) +-{ +- GFXContextDRMData* drm = (GFXContextDRMData*)data; +- +- if (!drm) +- { +- INFO_LOG(VIDEO, "\nCannot get drm video size\n"); +- return; +- } +- +- *width = drm->fb_width; +- *height = drm->fb_height; +-} +- + static void free_drm_resources(GFXContextDRMData* drm) + { + if (!drm) +@@ -811,10 +786,7 @@ static void gfx_ctx_drm_destroy_resources(GFXContextDRMData* drm) + + static void* gfx_ctx_drm_init() + { +- int fd, i; +- unsigned monitor_index; +- unsigned gpu_index = 0; +- const char* gpu = nullptr; ++ int fd; + GFXContextDRMData* drm = (GFXContextDRMData*)calloc(1, sizeof(GFXContextDRMData)); + + if (!drm) +@@ -885,14 +857,6 @@ static void* gfx_ctx_drm_init() + g_drm_fd = fd; + + return drm; +- +-error: +- gfx_ctx_drm_destroy_resources(drm); +- +- if (drm) +- free(drm); +- +- return nullptr; + } + + static EGLint* gfx_ctx_drm_egl_fill_attribs(GFXContextDRMData* drm, EGLint* attr) +@@ -1148,8 +1112,7 @@ std::unique_ptr GLContextEGLDRM::CreateSharedContext() + eglBindAPI(EGL_OPENGL_ES_API); + EGLint egl_attribs[16]; + EGLint* egl_attribs_ptr = nullptr; +- const EGLint* attrib_ptr = egl_attribs_gles3; +- EGLint* attr = gfx_ctx_drm_egl_fill_attribs(g_drm, egl_attribs); ++ gfx_ctx_drm_egl_fill_attribs(g_drm, egl_attribs); + egl_attribs_ptr = &egl_attribs[0]; + new_context->m_egl->ctx = + eglCreateContext(m_egl->dpy, m_egl->config, m_egl->ctx, egl_attribs_ptr); + +From de60407f2f907d174079b162a178bcb94b18d6d6 Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 16:49:51 +0200 +Subject: [PATCH 18/25] Refactor #1 + +--- + Source/Core/Common/GL/GLInterface/EGLDRM.cpp | 100 ++++++++----------- + 1 file changed, 41 insertions(+), 59 deletions(-) + +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +index 0414072170c..8bf87db2270 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +@@ -123,7 +123,6 @@ bool drm_get_encoder(int fd); + void drm_restore_crtc(void); + bool drm_get_resources(int fd); + void drm_setup(int fd); +-void drm_free(void); + bool drm_get_connector(int fd); + float drm_get_refresh_rate(void* data); + +@@ -566,23 +565,6 @@ float drm_get_refresh_rate(void* data) + return refresh_rate; + } + +-void drm_free(void) +-{ +- if (g_drm_encoder) +- drmModeFreeEncoder(g_drm_encoder); +- if (g_drm_connector) +- drmModeFreeConnector(g_drm_connector); +- if (g_drm_resources) +- drmModeFreeResources(g_drm_resources); +- +- memset(&g_drm_fds, 0, sizeof(struct pollfd)); +- memset(&g_drm_evctx, 0, sizeof(drmEventContext)); +- +- g_drm_encoder = nullptr; +- g_drm_connector = nullptr; +- g_drm_resources = nullptr; +-} +- + static void drm_fb_destroy_callback(struct gbm_bo* bo, void* data) + { + struct drm_fb* fb = (struct drm_fb*)data; +@@ -704,33 +686,6 @@ static bool gfx_ctx_drm_queue_flip(GFXContextDRMData* drm) + return false; + } + +-static void gfx_ctx_drm_swap_buffers(void* data) +-{ +- GFXContextDRMData* drm = (GFXContextDRMData*)data; +- unsigned max_swapchain_images = 3; // settings->uints.video_max_swapchain_images; +- +- egl_swap_buffers(&drm->egl); +- +- /* I guess we have to wait for flip to have taken +- * place before another flip can be queued up. +- * +- * If true, we are still waiting for a flip +- * (nonblocking mode, so just drop the frame). */ +- if (gfx_ctx_drm_wait_flip(drm, drm->interval)) +- { +- INFO_LOG(VIDEO, "\nwait flip"); +- return; +- } +- +- drm->waiting_for_flip = gfx_ctx_drm_queue_flip(drm); +- +- /* Triple-buffered page flips */ +- if (max_swapchain_images >= 3 && gbm_surface_has_free_buffers(drm->gbm_surface)) +- return; +- +- gfx_ctx_drm_wait_flip(drm, true); +-} +- + static void free_drm_resources(GFXContextDRMData* drm) + { + if (!drm) +@@ -745,7 +700,19 @@ static void free_drm_resources(GFXContextDRMData* drm) + if (drm->gbm_dev) + gbm_device_destroy(drm->gbm_dev); + +- drm_free(); ++ if (g_drm_encoder) ++ drmModeFreeEncoder(g_drm_encoder); ++ if (g_drm_connector) ++ drmModeFreeConnector(g_drm_connector); ++ if (g_drm_resources) ++ drmModeFreeResources(g_drm_resources); ++ ++ memset(&g_drm_fds, 0, sizeof(struct pollfd)); ++ memset(&g_drm_evctx, 0, sizeof(drmEventContext)); ++ ++ g_drm_encoder = nullptr; ++ g_drm_connector = nullptr; ++ g_drm_resources = nullptr; + + if (drm->fd >= 0) + { +@@ -1043,22 +1010,16 @@ static bool gfx_ctx_drm_set_video_mode(void* data, unsigned width, unsigned heig + return false; + } + +-static void gfx_ctx_drm_destroy(void* data) +-{ +- GFXContextDRMData* drm = (GFXContextDRMData*)data; +- +- if (!drm) +- return; +- +- gfx_ctx_drm_destroy_resources(drm); +- free(drm); +-} +- + GLContextEGLDRM::~GLContextEGLDRM() + { + DestroyWindowSurface(); + DestroyContext(); +- gfx_ctx_drm_destroy(g_drm); ++ ++ if (!g_drm) ++ return; ++ ++ gfx_ctx_drm_destroy_resources(g_drm); ++ free(g_drm); + } + + bool GLContextEGLDRM::IsHeadless() const +@@ -1068,7 +1029,28 @@ bool GLContextEGLDRM::IsHeadless() const + + void GLContextEGLDRM::Swap() + { +- gfx_ctx_drm_swap_buffers(g_drm); ++ unsigned max_swapchain_images = 3; // double-buffering ++ ++ egl_swap_buffers(&g_drm->egl); ++ ++ /* I guess we have to wait for flip to have taken ++ * place before another flip can be queued up. ++ * ++ * If true, we are still waiting for a flip ++ * (nonblocking mode, so just drop the frame). */ ++ if (gfx_ctx_drm_wait_flip(g_drm, g_drm->interval)) ++ { ++ INFO_LOG(VIDEO, "\nwait flip"); ++ return; ++ } ++ ++ g_drm->waiting_for_flip = gfx_ctx_drm_queue_flip(g_drm); ++ ++ /* Triple-buffered page flips */ ++ if (max_swapchain_images >= 3 && gbm_surface_has_free_buffers(g_drm->gbm_surface)) ++ return; ++ ++ gfx_ctx_drm_wait_flip(g_drm, true); + } + void GLContextEGLDRM::SwapInterval(int interval) + { + +From 32ac53b784fb38b60bb6d38f62e5065499ca815f Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 18:47:07 +0200 +Subject: [PATCH 19/25] Refactor (2) + +--- + Source/Core/Common/GL/GLInterface/EGLDRM.cpp | 258 +++++++------------ + 1 file changed, 96 insertions(+), 162 deletions(-) + +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +index 8bf87db2270..14c7f45b7b1 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +@@ -67,14 +67,6 @@ + #define EGL_KHR_create_context 1 + #define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098 + #define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB +-#define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD +-#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD +-#define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE +-#define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF +-#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002 +-#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004 +-#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001 +-#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002 + #endif /* EGL_KHR_create_context */ + + using EGLAcceptConfigCB = bool (*)(void* display_data, EGLDisplay dpy, EGLConfig config); +@@ -87,12 +79,23 @@ struct GFXContextDRMData + unsigned fb_width; + unsigned fb_height; + +- bool core_hw_context_enable; + bool waiting_for_flip; + struct gbm_bo* bo; + struct gbm_bo* next_bo; + struct gbm_surface* gbm_surface; + struct gbm_device* gbm_dev; ++ ++ drmEventContext drm_evctx; ++ struct pollfd drm_fds; ++ uint32_t connector_id = 0; ++ int drm_fd = 0; ++ uint32_t crtc_id = 0; ++ drmModeCrtc* orig_crtc = nullptr; ++ drmModeConnector* drm_connector = nullptr; ++ drmModeModeInfo* drm_mode = nullptr; ++ ++ drmModeRes* drm_resources = nullptr; ++ drmModeEncoder* drm_encoder = nullptr; + }; + + struct drm_fb +@@ -101,30 +104,13 @@ struct drm_fb + uint32_t fb_id; + }; + +-/* TODO/FIXME - globals */ +-static drmEventContext g_drm_evctx; +-static struct pollfd g_drm_fds; +-static uint32_t g_connector_id = 0; +-static int g_drm_fd = 0; +-static uint32_t g_crtc_id = 0; +-static drmModeCrtc* g_orig_crtc = nullptr; +-static drmModeConnector* g_drm_connector = nullptr; +-static drmModeModeInfo* g_drm_mode = nullptr; +- + /* TODO/FIXME - static globals */ +-static drmModeRes* g_drm_resources = nullptr; +-static drmModeEncoder* g_drm_encoder = nullptr; +- + static GFXContextDRMData* g_drm = nullptr; + + bool drm_get_encoder(int fd); + + /* Restore the original CRTC. */ +-void drm_restore_crtc(void); +-bool drm_get_resources(int fd); +-void drm_setup(int fd); + bool drm_get_connector(int fd); +-float drm_get_refresh_rate(void* data); + + static void egl_destroy(EGLContextData* egl) + { +@@ -412,48 +398,23 @@ static bool egl_create_surface(EGLContextData* egl, void* native_window) + + static bool drm_wait_flip(int timeout) + { +- g_drm_fds.revents = 0; ++ g_drm->drm_fds.revents = 0; + +- if (poll(&g_drm_fds, 1, timeout) < 0) ++ if (poll(&g_drm->drm_fds, 1, timeout) < 0) + return false; + +- if (g_drm_fds.revents & (POLLHUP | POLLERR)) ++ if (g_drm->drm_fds.revents & (POLLHUP | POLLERR)) + return false; + +- if (g_drm_fds.revents & POLLIN) ++ if (g_drm->drm_fds.revents & POLLIN) + { +- drmHandleEvent(g_drm_fd, &g_drm_evctx); ++ drmHandleEvent(g_drm->drm_fd, &g_drm->drm_evctx); + return true; + } + + return false; + } + +-/* Restore the original CRTC. */ +-void drm_restore_crtc(void) +-{ +- if (!g_orig_crtc) +- return; +- +- drmModeSetCrtc(g_drm_fd, g_orig_crtc->crtc_id, g_orig_crtc->buffer_id, g_orig_crtc->x, +- g_orig_crtc->y, &g_connector_id, 1, &g_orig_crtc->mode); +- +- drmModeFreeCrtc(g_orig_crtc); +- g_orig_crtc = nullptr; +-} +- +-bool drm_get_resources(int fd) +-{ +- g_drm_resources = drmModeGetResources(fd); +- if (!g_drm_resources) +- { +- INFO_LOG(VIDEO, "[DRM]: Couldn't get device resources.\n"); +- return false; +- } +- +- return true; +-} +- + bool drm_get_connector(int fd) + { + unsigned i; +@@ -462,11 +423,11 @@ bool drm_get_connector(int fd) + + /* Enumerate all connectors. */ + +- INFO_LOG(VIDEO, "[DRM]: Found %d connectors.\n", g_drm_resources->count_connectors); ++ INFO_LOG(VIDEO, "[DRM]: Found %d connectors.\n", g_drm->drm_resources->count_connectors); + +- for (i = 0; (int)i < g_drm_resources->count_connectors; i++) ++ for (i = 0; (int)i < g_drm->drm_resources->count_connectors; i++) + { +- drmModeConnectorPtr conn = drmModeGetConnector(fd, g_drm_resources->connectors[i]); ++ drmModeConnectorPtr conn = drmModeGetConnector(fd, g_drm->drm_resources->connectors[i]); + + if (conn) + { +@@ -485,24 +446,24 @@ bool drm_get_connector(int fd) + + monitor_index_count = 0; + +- for (i = 0; (int)i < g_drm_resources->count_connectors; i++) ++ for (i = 0; (int)i < g_drm->drm_resources->count_connectors; i++) + { +- g_drm_connector = drmModeGetConnector(fd, g_drm_resources->connectors[i]); ++ g_drm->drm_connector = drmModeGetConnector(fd, g_drm->drm_resources->connectors[i]); + +- if (!g_drm_connector) ++ if (!g_drm->drm_connector) + continue; +- if (g_drm_connector->connection == DRM_MODE_CONNECTED && g_drm_connector->count_modes > 0) ++ if (g_drm->drm_connector->connection == DRM_MODE_CONNECTED && g_drm->drm_connector->count_modes > 0) + { + monitor_index_count++; + if (monitor_index_count == monitor) + break; + } + +- drmModeFreeConnector(g_drm_connector); +- g_drm_connector = nullptr; ++ drmModeFreeConnector(g_drm->drm_connector); ++ g_drm->drm_connector = nullptr; + } + +- if (!g_drm_connector) ++ if (!g_drm->drm_connector) + { + INFO_LOG(VIDEO, "[DRM]: Couldn't get device connector.\n"); + return false; +@@ -514,63 +475,42 @@ bool drm_get_encoder(int fd) + { + unsigned i; + +- for (i = 0; (int)i < g_drm_resources->count_encoders; i++) ++ for (i = 0; (int)i < g_drm->drm_resources->count_encoders; i++) + { +- g_drm_encoder = drmModeGetEncoder(fd, g_drm_resources->encoders[i]); ++ g_drm->drm_encoder = drmModeGetEncoder(fd, g_drm->drm_resources->encoders[i]); + +- if (!g_drm_encoder) ++ if (!g_drm->drm_encoder) + continue; + +- if (g_drm_encoder->encoder_id == g_drm_connector->encoder_id) ++ if (g_drm->drm_encoder->encoder_id == g_drm->drm_connector->encoder_id) + break; + +- drmModeFreeEncoder(g_drm_encoder); +- g_drm_encoder = nullptr; ++ drmModeFreeEncoder(g_drm->drm_encoder); ++ g_drm->drm_encoder = nullptr; + } + +- if (!g_drm_encoder) ++ if (!g_drm->drm_encoder) + { + INFO_LOG(VIDEO, "[DRM]: Couldn't find DRM encoder.\n"); + return false; + } + +- for (i = 0; (int)i < g_drm_connector->count_modes; i++) ++ for (i = 0; (int)i < g_drm->drm_connector->count_modes; i++) + { +- INFO_LOG(VIDEO, "[DRM]: Mode %d: (%s) %d x %d, %u Hz\n", i, g_drm_connector->modes[i].name, +- g_drm_connector->modes[i].hdisplay, g_drm_connector->modes[i].vdisplay, +- g_drm_connector->modes[i].vrefresh); ++ INFO_LOG(VIDEO, "[DRM]: Mode %d: (%s) %d x %d, %u Hz\n", i, g_drm->drm_connector->modes[i].name, ++ g_drm->drm_connector->modes[i].hdisplay, g_drm->drm_connector->modes[i].vdisplay, ++ g_drm->drm_connector->modes[i].vrefresh); + } + + return true; + } + +-void drm_setup(int fd) +-{ +- g_crtc_id = g_drm_encoder->crtc_id; +- g_connector_id = g_drm_connector->connector_id; +- g_orig_crtc = drmModeGetCrtc(fd, g_crtc_id); +- if (!g_orig_crtc) +- INFO_LOG(VIDEO, "[DRM]: Cannot find original CRTC.\n"); +-} +- +-float drm_get_refresh_rate(void* data) +-{ +- float refresh_rate = 0.0f; +- +- if (g_drm_mode) +- { +- refresh_rate = g_drm_mode->clock * 1000.0f / g_drm_mode->htotal / g_drm_mode->vtotal; +- } +- +- return refresh_rate; +-} +- + static void drm_fb_destroy_callback(struct gbm_bo* bo, void* data) + { + struct drm_fb* fb = (struct drm_fb*)data; + + if (fb && fb->fb_id) +- drmModeRmFB(g_drm_fd, fb->fb_id); ++ drmModeRmFB(g_drm->drm_fd, fb->fb_id); + + free(fb); + } +@@ -590,7 +530,7 @@ static struct drm_fb* drm_fb_get_from_bo(struct gbm_bo* bo) + + INFO_LOG(VIDEO, "[KMS]: New FB: %ux%u (stride: %u).\n", width, height, stride); + +- ret = drmModeAddFB(g_drm_fd, width, height, 24, 32, stride, handle, &fb->fb_id); ++ ret = drmModeAddFB(g_drm->drm_fd, width, height, 24, 32, stride, handle, &fb->fb_id); + if (ret < 0) + goto error; + +@@ -615,24 +555,6 @@ static void gfx_ctx_drm_swap_interval(void* data, int interval) + + static void drm_flip_handler(int fd, unsigned frame, unsigned sec, unsigned usec, void* data) + { +-#if 0 +- static unsigned first_page_flip; +- static unsigned last_page_flip; +- +- if (!first_page_flip) +- first_page_flip = frame; +- +- if (last_page_flip) +- { +- unsigned missed = frame - last_page_flip - 1; +- if (missed) +- INFO_LOG(VIDEO, "[KMS]: Missed %u VBlank(s) (Frame: %u, DRM frame: %u).\n", +- missed, frame - first_page_flip, frame); +- } +- +- last_page_flip = frame; +-#endif +- + *(bool*)data = false; + } + +@@ -677,7 +599,7 @@ static bool gfx_ctx_drm_queue_flip(GFXContextDRMData* drm) + if (!fb) + fb = (struct drm_fb*)drm_fb_get_from_bo(drm->next_bo); + +- if (drmModePageFlip(g_drm_fd, g_crtc_id, fb->fb_id, DRM_MODE_PAGE_FLIP_EVENT, ++ if (drmModePageFlip(g_drm->drm_fd, g_drm->crtc_id, fb->fb_id, DRM_MODE_PAGE_FLIP_EVENT, + &drm->waiting_for_flip) == 0) + return true; + +@@ -692,7 +614,14 @@ static void free_drm_resources(GFXContextDRMData* drm) + return; + + /* Restore original CRTC. */ +- drm_restore_crtc(); ++ if (drm->orig_crtc) ++ { ++ drmModeSetCrtc(drm->drm_fd, drm->orig_crtc->crtc_id, drm->orig_crtc->buffer_id, drm->orig_crtc->x, ++ drm->orig_crtc->y, &drm->connector_id, 1, &drm->orig_crtc->mode); ++ ++ drmModeFreeCrtc(drm->orig_crtc); ++ drm->orig_crtc = nullptr; ++ } + + if (drm->gbm_surface) + gbm_surface_destroy(drm->gbm_surface); +@@ -700,32 +629,32 @@ static void free_drm_resources(GFXContextDRMData* drm) + if (drm->gbm_dev) + gbm_device_destroy(drm->gbm_dev); + +- if (g_drm_encoder) +- drmModeFreeEncoder(g_drm_encoder); +- if (g_drm_connector) +- drmModeFreeConnector(g_drm_connector); +- if (g_drm_resources) +- drmModeFreeResources(g_drm_resources); ++ if (drm->drm_encoder) ++ drmModeFreeEncoder(drm->drm_encoder); ++ if (drm->drm_connector) ++ drmModeFreeConnector(drm->drm_connector); ++ if (drm->drm_resources) ++ drmModeFreeResources(drm->drm_resources); + +- memset(&g_drm_fds, 0, sizeof(struct pollfd)); +- memset(&g_drm_evctx, 0, sizeof(drmEventContext)); ++ memset(&drm->drm_fds, 0, sizeof(struct pollfd)); ++ memset(&drm->drm_evctx, 0, sizeof(drmEventContext)); + +- g_drm_encoder = nullptr; +- g_drm_connector = nullptr; +- g_drm_resources = nullptr; ++ drm->drm_encoder = nullptr; ++ drm->drm_connector = nullptr; ++ drm->drm_resources = nullptr; + + if (drm->fd >= 0) + { +- if (g_drm_fd >= 0) ++ if (drm->drm_fd >= 0) + { +- drmDropMaster(g_drm_fd); ++ drmDropMaster(drm->drm_fd); + close(drm->fd); + } + } + + drm->gbm_surface = nullptr; + drm->gbm_dev = nullptr; +- g_drm_fd = -1; ++ drm->drm_fd = -1; + } + + static void gfx_ctx_drm_destroy_resources(GFXContextDRMData* drm) +@@ -740,9 +669,9 @@ static void gfx_ctx_drm_destroy_resources(GFXContextDRMData* drm) + + free_drm_resources(drm); + +- g_drm_mode = nullptr; +- g_crtc_id = 0; +- g_connector_id = 0; ++ drm->drm_mode = nullptr; ++ drm->crtc_id = 0; ++ drm->connector_id = 0; + + drm->fb_width = 0; + drm->fb_height = 0; +@@ -771,9 +700,10 @@ static void* gfx_ctx_drm_init() + + fd = drm->fd; + +- if (!drm_get_resources(fd)) ++ drm->drm_resources = drmModeGetResources(fd); ++ if (!drm->drm_resources) + { +- INFO_LOG(VIDEO, "[KMS]: drm_get_resources failed\n"); ++ INFO_LOG(VIDEO, "[KMS]: Couldn't get DRM device resources.\n"); + return nullptr; + } + +@@ -789,23 +719,27 @@ static void* gfx_ctx_drm_init() + return nullptr; + } + +- drm_setup(fd); ++ drm->crtc_id = drm->drm_encoder->crtc_id; ++ drm->connector_id = drm->drm_connector->connector_id; ++ drm->orig_crtc = drmModeGetCrtc(fd, drm->crtc_id); ++ if (!drm->orig_crtc) ++ INFO_LOG(VIDEO, "[DRM]: Cannot find original CRTC.\n"); + + /* Choose the optimal video mode for get_video_size(): + - the current video mode from the CRTC + - otherwise pick first connector mode */ +- if (g_orig_crtc->mode_valid) ++ if (drm->orig_crtc->mode_valid) + { +- drm->fb_width = g_orig_crtc->mode.hdisplay; +- drm->fb_height = g_orig_crtc->mode.vdisplay; ++ drm->fb_width = drm->orig_crtc->mode.hdisplay; ++ drm->fb_height = drm->orig_crtc->mode.vdisplay; + } + else + { +- drm->fb_width = g_drm_connector->modes[0].hdisplay; +- drm->fb_height = g_drm_connector->modes[0].vdisplay; ++ drm->fb_width = drm->drm_connector->modes[0].hdisplay; ++ drm->fb_height = drm->drm_connector->modes[0].vdisplay; + } + +- drmSetMaster(g_drm_fd); ++ drmSetMaster(drm->drm_fd); + + drm->gbm_dev = gbm_create_device(fd); + +@@ -816,12 +750,12 @@ static void* gfx_ctx_drm_init() + } + + /* Setup the flip handler. */ +- g_drm_fds.fd = fd; +- g_drm_fds.events = POLLIN; +- g_drm_evctx.version = DRM_EVENT_CONTEXT_VERSION; +- g_drm_evctx.page_flip_handler = drm_flip_handler; ++ drm->drm_fds.fd = fd; ++ drm->drm_fds.events = POLLIN; ++ drm->drm_evctx.version = DRM_EVENT_CONTEXT_VERSION; ++ drm->drm_evctx.page_flip_handler = drm_flip_handler; + +- g_drm_fd = fd; ++ drm->drm_fd = fd; + + return drm; + } +@@ -932,7 +866,7 @@ static bool gfx_ctx_drm_set_video_mode(void* data, unsigned width, unsigned heig + * If not fullscreen, we get desired windowed size, + * which is not appropriate. */ + if ((width == 0 && height == 0) || !fullscreen) +- g_drm_mode = &g_drm_connector->modes[0]; ++ drm->drm_mode = &drm->drm_connector->modes[0]; + else + { + /* Try to match refresh_rate as closely as possible. +@@ -943,31 +877,31 @@ static bool gfx_ctx_drm_set_video_mode(void* data, unsigned width, unsigned heig + float minimum_fps_diff = 0.0f; + + /* Find best match. */ +- for (i = 0; i < g_drm_connector->count_modes; i++) ++ for (i = 0; i < drm->drm_connector->count_modes; i++) + { + float diff; +- if (width != g_drm_connector->modes[i].hdisplay || +- height != g_drm_connector->modes[i].vdisplay) ++ if (width != drm->drm_connector->modes[i].hdisplay || ++ height != drm->drm_connector->modes[i].vdisplay) + continue; + +- diff = fabsf(g_drm_connector->modes[i].vrefresh - video_refresh_rate); ++ diff = fabsf(drm->drm_connector->modes[i].vrefresh - video_refresh_rate); + +- if (!g_drm_mode || diff < minimum_fps_diff) ++ if (!drm->drm_mode || diff < minimum_fps_diff) + { +- g_drm_mode = &g_drm_connector->modes[i]; ++ drm->drm_mode = &drm->drm_connector->modes[i]; + minimum_fps_diff = diff; + } + } + } + +- if (!g_drm_mode) ++ if (!drm->drm_mode) + { + INFO_LOG(VIDEO, "[KMS/EGL]: Did not find suitable video mode for %u x %u.\n", width, height); + goto error; + } + +- drm->fb_width = g_drm_mode->hdisplay; +- drm->fb_height = g_drm_mode->vdisplay; ++ drm->fb_width = drm->drm_mode->hdisplay; ++ drm->fb_height = drm->drm_mode->vdisplay; + + /* Create GBM surface. */ + drm->gbm_surface = +@@ -993,7 +927,7 @@ static bool gfx_ctx_drm_set_video_mode(void* data, unsigned width, unsigned heig + if (!fb) + fb = drm_fb_get_from_bo(drm->bo); + +- ret = drmModeSetCrtc(g_drm_fd, g_crtc_id, fb->fb_id, 0, 0, &g_connector_id, 1, g_drm_mode); ++ ret = drmModeSetCrtc(drm->drm_fd, drm->crtc_id, fb->fb_id, 0, 0, &drm->connector_id, 1, drm->drm_mode); + if (ret < 0) + { + INFO_LOG(VIDEO, "[KMS/EGL]: drmModeSetCrtc failed\n"); + +From c6a374bae4c0b1c990d06acb4266ca60358b9419 Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 19:03:32 +0200 +Subject: [PATCH 20/25] Refactor (3) + +--- + Source/Core/Common/GL/GLInterface/EGLDRM.cpp | 106 ++++++++----------- + 1 file changed, 44 insertions(+), 62 deletions(-) + +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +index 14c7f45b7b1..726c68a95a5 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +@@ -107,34 +107,9 @@ struct drm_fb + /* TODO/FIXME - static globals */ + static GFXContextDRMData* g_drm = nullptr; + +-bool drm_get_encoder(int fd); +- + /* Restore the original CRTC. */ + bool drm_get_connector(int fd); + +-static void egl_destroy(EGLContextData* egl) +-{ +- if (egl->dpy) +- { +- eglMakeCurrent(egl->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); +- if (egl->ctx != EGL_NO_CONTEXT) +- eglDestroyContext(egl->dpy, egl->ctx); +- +- if (egl->surf != EGL_NO_SURFACE) +- eglDestroySurface(egl->dpy, egl->surf); +- eglTerminate(egl->dpy); +- } +- +- /* Be as careful as possible in deinit. +- * If we screw up, any TTY will not restore. +- */ +- +- egl->ctx = EGL_NO_CONTEXT; +- egl->surf = EGL_NO_SURFACE; +- egl->dpy = EGL_NO_DISPLAY; +- egl->config = 0; +-} +- + static void egl_swap_buffers(void* data) + { + EGLContextData* egl = (EGLContextData*)data; +@@ -144,26 +119,6 @@ static void egl_swap_buffers(void* data) + } + } + +-static void egl_set_swap_interval(EGLContextData* egl, int interval) +-{ +- /* Can be called before initialization. +- * Some contexts require that swap interval +- * is known at startup time. +- */ +- egl->interval = interval; +- +- if (egl->dpy == EGL_NO_DISPLAY) +- return; +- if (!eglGetCurrentContext()) +- return; +- +- INFO_LOG(VIDEO, "[EGL]: eglSwapInterval(%u)\n", interval); +- if (!eglSwapInterval(egl->dpy, interval)) +- { +- INFO_LOG(VIDEO, "[EGL]: eglSwapInterval() failed 0x%x.\n", eglGetError()); +- } +-} +- + static bool check_egl_version(int minMajorVersion, int minMinorVersion) + { + int count; +@@ -213,10 +168,9 @@ static bool check_egl_client_extension(const char* name) + return false; + } + +-static bool check_egl_display_extension(void* data, const char* name) ++static bool check_egl_display_extension(EGLContextData* egl, const char* name) + { + size_t nameLen; +- EGLContextData* egl = (EGLContextData*)data; + if (!egl || egl->dpy == EGL_NO_DISPLAY) + return false; + +@@ -543,16 +497,6 @@ static struct drm_fb* drm_fb_get_from_bo(struct gbm_bo* bo) + return nullptr; + } + +-static void gfx_ctx_drm_swap_interval(void* data, int interval) +-{ +- GFXContextDRMData* drm = (GFXContextDRMData*)data; +- drm->interval = interval; +- +- if (interval > 1) +- INFO_LOG(VIDEO, +- "[KMS]: Swap intervals > 1 currently not supported. Will use swap interval of 1.\n"); +-} +- + static void drm_flip_handler(int fd, unsigned frame, unsigned sec, unsigned usec, void* data) + { + *(bool*)data = false; +@@ -665,7 +609,25 @@ static void gfx_ctx_drm_destroy_resources(GFXContextDRMData* drm) + /* Make sure we acknowledge all page-flips. */ + gfx_ctx_drm_wait_flip(drm, true); + +- egl_destroy(&drm->egl); ++ if (drm->egl.dpy) ++ { ++ eglMakeCurrent(drm->egl.dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); ++ if (drm->egl.ctx != EGL_NO_CONTEXT) ++ eglDestroyContext(drm->egl.dpy, drm->egl.ctx); ++ ++ if (drm->egl.surf != EGL_NO_SURFACE) ++ eglDestroySurface(drm->egl.dpy, drm->egl.surf); ++ eglTerminate(drm->egl.dpy); ++ } ++ ++ /* Be as careful as possible in deinit. ++ * If we screw up, any TTY will not restore. ++ */ ++ ++ drm->egl.ctx = EGL_NO_CONTEXT; ++ drm->egl.surf = EGL_NO_SURFACE; ++ drm->egl.dpy = EGL_NO_DISPLAY; ++ drm->egl.config = 0; + + free_drm_resources(drm); + +@@ -986,10 +948,30 @@ void GLContextEGLDRM::Swap() + + gfx_ctx_drm_wait_flip(g_drm, true); + } ++ + void GLContextEGLDRM::SwapInterval(int interval) + { +- gfx_ctx_drm_swap_interval(g_drm, interval); +- egl_set_swap_interval(m_egl, interval); ++ g_drm->interval = interval; ++ if (interval > 1) ++ INFO_LOG(VIDEO, ++ "[KMS]: Swap intervals > 1 currently not supported. Will use swap interval of 1.\n"); ++ ++ /* Can be called before initialization. ++ * Some contexts require that swap interval ++ * is known at startup time. ++ */ ++ m_egl->interval = interval; ++ ++ if (m_egl->dpy == EGL_NO_DISPLAY) ++ return; ++ if (!eglGetCurrentContext()) ++ return; ++ ++ INFO_LOG(VIDEO, "[EGL]: eglSwapInterval(%u)\n", interval); ++ if (!eglSwapInterval(m_egl->dpy, interval)) ++ { ++ INFO_LOG(VIDEO, "[EGL]: eglSwapInterval() failed 0x%x.\n", eglGetError()); ++ } + } + + void* GLContextEGLDRM::GetFuncAddress(const std::string& name) +@@ -1057,7 +1039,7 @@ bool GLContextEGLDRM::CreateWindowSurface() + if (m_supports_surfaceless) + { + m_egl->surf = EGL_NO_SURFACE; +- INFO_LOG(VIDEO, "\nCreated surfaceless context\n"); ++ INFO_LOG(VIDEO, "\nCreated surfaceless EGL shared context\n"); + return true; + } + +@@ -1065,7 +1047,7 @@ bool GLContextEGLDRM::CreateWindowSurface() + { + if (!egl_create_surface(m_egl, (EGLNativeWindowType)g_drm->gbm_surface)) + { +- INFO_LOG(VIDEO, "\negl_create_surface failed, trying pbuffer failed 0x%x\n", eglGetError()); ++ INFO_LOG(VIDEO, "\negl_create_surface failed (error 0x%x), trying pbuffer instead...\n", eglGetError()); + goto pbuffer; + } + // Get dimensions from the surface. + +From c9c4e4341c496ce351af0a0c65a6068c46f01af3 Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 19:25:36 +0200 +Subject: [PATCH 21/25] Move helper functions to static + +--- + Source/Core/Common/GL/GLInterface/EGLDRM.cpp | 7 ++----- + 1 file changed, 2 insertions(+), 5 deletions(-) + +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +index 726c68a95a5..a7ae0a6dbfb 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +@@ -107,9 +107,6 @@ struct drm_fb + /* TODO/FIXME - static globals */ + static GFXContextDRMData* g_drm = nullptr; + +-/* Restore the original CRTC. */ +-bool drm_get_connector(int fd); +- + static void egl_swap_buffers(void* data) + { + EGLContextData* egl = (EGLContextData*)data; +@@ -369,7 +366,7 @@ static bool drm_wait_flip(int timeout) + return false; + } + +-bool drm_get_connector(int fd) ++static bool drm_get_connector(int fd) + { + unsigned i; + unsigned monitor_index_count = 0; +@@ -425,7 +422,7 @@ bool drm_get_connector(int fd) + return true; + } + +-bool drm_get_encoder(int fd) ++static bool drm_get_encoder(int fd) + { + unsigned i; + + +From d6fbe009dc0fa3ea29d8dd6b12cf7712154dc3ca Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 20:58:50 +0200 +Subject: [PATCH 22/25] Better conditional compilation support for EGL/DRM + (should pass Dolphin CI) + +--- + CMakeLists.txt | 6 ++++++ + Source/Core/Common/CMakeLists.txt | 2 -- + Source/Core/Common/GL/GLContext.cpp | 2 ++ + 3 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 26484938a32..91d8341bd58 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -456,6 +456,12 @@ if(ENABLE_EGL) + if(EGL_FOUND) + add_definitions(-DHAVE_EGL=1) + message(STATUS "EGL OpenGL interface enabled") ++ find_package(Libdrm) ++ find_package(Libgbm) ++ if(LIBDRM_FOUND AND LIBGBM_FOUND) ++ add_definitions(-DHAVE_DRM=1) ++ message(STATUS "EGL/DRM/GBM support enabled") ++ endif() + else() + message(WARNING "EGL support enabled but not found. This build will not support EGL.") + endif() +diff --git a/Source/Core/Common/CMakeLists.txt b/Source/Core/Common/CMakeLists.txt +index 6e7574b7c8d..f40dff90a59 100644 +--- a/Source/Core/Common/CMakeLists.txt ++++ b/Source/Core/Common/CMakeLists.txt +@@ -222,8 +222,6 @@ target_sources(common PRIVATE + ) + + if(ENABLE_EGL AND EGL_FOUND) +- find_package(Libdrm) +- find_package(Libgbm) + if (LIBDRM_FOUND AND LIBGBM_FOUND) + target_sources(common PRIVATE + GL/GLInterface/EGL.cpp +diff --git a/Source/Core/Common/GL/GLContext.cpp b/Source/Core/Common/GL/GLContext.cpp +index f5adaab71ab..25ff342d6ca 100644 +--- a/Source/Core/Common/GL/GLContext.cpp ++++ b/Source/Core/Common/GL/GLContext.cpp +@@ -17,7 +17,9 @@ + #endif + #if HAVE_EGL + #include "Common/GL/GLInterface/EGL.h" ++#if HAVE_DRM + #include "Common/GL/GLInterface/EGLDRM.h" ++#endif + #if HAVE_X11 + #include "Common/GL/GLInterface/EGLX11.h" + #endif + +From b9eaa05b0b4111658005fabba05f93a4bac475e6 Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 21:09:56 +0200 +Subject: [PATCH 23/25] Fix missing #ifdef + +--- + Source/Core/Common/GL/GLContext.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/Source/Core/Common/GL/GLContext.cpp b/Source/Core/Common/GL/GLContext.cpp +index 25ff342d6ca..9d33b1cff78 100644 +--- a/Source/Core/Common/GL/GLContext.cpp ++++ b/Source/Core/Common/GL/GLContext.cpp +@@ -113,8 +113,10 @@ std::unique_ptr GLContext::Create(const WindowSystemInfo& wsi, bool s + #if HAVE_EGL + if (wsi.type == WindowSystemType::Headless || wsi.type == WindowSystemType::FBDev) + context = std::make_unique(); ++#if HAVE_DRM + else if (wsi.type == WindowSystemType::DRM) + context = std::make_unique(); ++#endif + #endif + + if (!context) + +From 1eea311b76ca66b8742c12dd9e16875f0502078c Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Fri, 7 Aug 2020 21:11:38 +0200 +Subject: [PATCH 24/25] Fix lint checks + +--- + Source/Core/Common/GL/GLInterface/EGLDRM.cpp | 16 ++++++++++------ + Source/Core/Common/GL/GLInterface/EGLDRM.h | 1 - + 2 files changed, 10 insertions(+), 7 deletions(-) + +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +index a7ae0a6dbfb..367e875371f 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +@@ -403,7 +403,8 @@ static bool drm_get_connector(int fd) + + if (!g_drm->drm_connector) + continue; +- if (g_drm->drm_connector->connection == DRM_MODE_CONNECTED && g_drm->drm_connector->count_modes > 0) ++ if (g_drm->drm_connector->connection == DRM_MODE_CONNECTED && ++ g_drm->drm_connector->count_modes > 0) + { + monitor_index_count++; + if (monitor_index_count == monitor) +@@ -557,8 +558,9 @@ static void free_drm_resources(GFXContextDRMData* drm) + /* Restore original CRTC. */ + if (drm->orig_crtc) + { +- drmModeSetCrtc(drm->drm_fd, drm->orig_crtc->crtc_id, drm->orig_crtc->buffer_id, drm->orig_crtc->x, +- drm->orig_crtc->y, &drm->connector_id, 1, &drm->orig_crtc->mode); ++ drmModeSetCrtc(drm->drm_fd, drm->orig_crtc->crtc_id, drm->orig_crtc->buffer_id, ++ drm->orig_crtc->x, drm->orig_crtc->y, &drm->connector_id, 1, ++ &drm->orig_crtc->mode); + + drmModeFreeCrtc(drm->orig_crtc); + drm->orig_crtc = nullptr; +@@ -886,7 +888,8 @@ static bool gfx_ctx_drm_set_video_mode(void* data, unsigned width, unsigned heig + if (!fb) + fb = drm_fb_get_from_bo(drm->bo); + +- ret = drmModeSetCrtc(drm->drm_fd, drm->crtc_id, fb->fb_id, 0, 0, &drm->connector_id, 1, drm->drm_mode); ++ ret = drmModeSetCrtc(drm->drm_fd, drm->crtc_id, fb->fb_id, 0, 0, &drm->connector_id, 1, ++ drm->drm_mode); + if (ret < 0) + { + INFO_LOG(VIDEO, "[KMS/EGL]: drmModeSetCrtc failed\n"); +@@ -922,7 +925,7 @@ bool GLContextEGLDRM::IsHeadless() const + + void GLContextEGLDRM::Swap() + { +- unsigned max_swapchain_images = 3; // double-buffering ++ unsigned max_swapchain_images = 3; // double-buffering + + egl_swap_buffers(&g_drm->egl); + +@@ -1044,7 +1047,8 @@ bool GLContextEGLDRM::CreateWindowSurface() + { + if (!egl_create_surface(m_egl, (EGLNativeWindowType)g_drm->gbm_surface)) + { +- INFO_LOG(VIDEO, "\negl_create_surface failed (error 0x%x), trying pbuffer instead...\n", eglGetError()); ++ INFO_LOG(VIDEO, "\negl_create_surface failed (error 0x%x), trying pbuffer instead...\n", ++ eglGetError()); + goto pbuffer; + } + // Get dimensions from the surface. +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.h b/Source/Core/Common/GL/GLInterface/EGLDRM.h +index 46d361a3a14..ffa6c7af329 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.h ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.h +@@ -21,7 +21,6 @@ struct EGLContextData + + unsigned major; + unsigned minor; +- + }; + + class GLContextEGLDRM : public GLContext + +From 1294d4d6b807cd2775693f742068bdad0c45c35b Mon Sep 17 00:00:00 2001 +From: Romain TISSERAND +Date: Sat, 8 Aug 2020 11:33:04 +0200 +Subject: [PATCH 25/25] Fix crash following refactoring + +--- + Source/Core/Common/GL/GLInterface/EGLDRM.cpp | 86 ++++++++++---------- + 1 file changed, 41 insertions(+), 45 deletions(-) + +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +index 367e875371f..f8487619809 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +@@ -98,15 +98,15 @@ struct GFXContextDRMData + drmModeEncoder* drm_encoder = nullptr; + }; + ++/* TODO/FIXME - static globals */ ++static GFXContextDRMData* g_drm = nullptr; ++ + struct drm_fb + { + struct gbm_bo* bo; + uint32_t fb_id; + }; + +-/* TODO/FIXME - static globals */ +-static GFXContextDRMData* g_drm = nullptr; +- + static void egl_swap_buffers(void* data) + { + EGLContextData* egl = (EGLContextData*)data; +@@ -347,26 +347,26 @@ static bool egl_create_surface(EGLContextData* egl, void* native_window) + return true; + } + +-static bool drm_wait_flip(int timeout) ++static bool drm_wait_flip(GFXContextDRMData* drm, int timeout) + { +- g_drm->drm_fds.revents = 0; ++ drm->drm_fds.revents = 0; + +- if (poll(&g_drm->drm_fds, 1, timeout) < 0) ++ if (poll(&drm->drm_fds, 1, timeout) < 0) + return false; + +- if (g_drm->drm_fds.revents & (POLLHUP | POLLERR)) ++ if (drm->drm_fds.revents & (POLLHUP | POLLERR)) + return false; + +- if (g_drm->drm_fds.revents & POLLIN) ++ if (drm->drm_fds.revents & POLLIN) + { +- drmHandleEvent(g_drm->drm_fd, &g_drm->drm_evctx); ++ drmHandleEvent(drm->drm_fd, &drm->drm_evctx); + return true; + } + + return false; + } + +-static bool drm_get_connector(int fd) ++static bool drm_get_connector(GFXContextDRMData* drm, int fd) + { + unsigned i; + unsigned monitor_index_count = 0; +@@ -374,11 +374,11 @@ static bool drm_get_connector(int fd) + + /* Enumerate all connectors. */ + +- INFO_LOG(VIDEO, "[DRM]: Found %d connectors.\n", g_drm->drm_resources->count_connectors); ++ INFO_LOG(VIDEO, "[DRM]: Found %d connectors.\n", drm->drm_resources->count_connectors); + +- for (i = 0; (int)i < g_drm->drm_resources->count_connectors; i++) ++ for (i = 0; (int)i < drm->drm_resources->count_connectors; i++) + { +- drmModeConnectorPtr conn = drmModeGetConnector(fd, g_drm->drm_resources->connectors[i]); ++ drmModeConnectorPtr conn = drmModeGetConnector(fd, drm->drm_resources->connectors[i]); + + if (conn) + { +@@ -397,25 +397,24 @@ static bool drm_get_connector(int fd) + + monitor_index_count = 0; + +- for (i = 0; (int)i < g_drm->drm_resources->count_connectors; i++) ++ for (i = 0; (int)i < drm->drm_resources->count_connectors; i++) + { +- g_drm->drm_connector = drmModeGetConnector(fd, g_drm->drm_resources->connectors[i]); ++ drm->drm_connector = drmModeGetConnector(fd, drm->drm_resources->connectors[i]); + +- if (!g_drm->drm_connector) ++ if (!drm->drm_connector) + continue; +- if (g_drm->drm_connector->connection == DRM_MODE_CONNECTED && +- g_drm->drm_connector->count_modes > 0) ++ if (drm->drm_connector->connection == DRM_MODE_CONNECTED && drm->drm_connector->count_modes > 0) + { + monitor_index_count++; + if (monitor_index_count == monitor) + break; + } + +- drmModeFreeConnector(g_drm->drm_connector); +- g_drm->drm_connector = nullptr; ++ drmModeFreeConnector(drm->drm_connector); ++ drm->drm_connector = nullptr; + } + +- if (!g_drm->drm_connector) ++ if (!drm->drm_connector) + { + INFO_LOG(VIDEO, "[DRM]: Couldn't get device connector.\n"); + return false; +@@ -423,35 +422,35 @@ static bool drm_get_connector(int fd) + return true; + } + +-static bool drm_get_encoder(int fd) ++static bool drm_get_encoder(GFXContextDRMData* drm, int fd) + { + unsigned i; + +- for (i = 0; (int)i < g_drm->drm_resources->count_encoders; i++) ++ for (i = 0; (int)i < drm->drm_resources->count_encoders; i++) + { +- g_drm->drm_encoder = drmModeGetEncoder(fd, g_drm->drm_resources->encoders[i]); ++ drm->drm_encoder = drmModeGetEncoder(fd, drm->drm_resources->encoders[i]); + +- if (!g_drm->drm_encoder) ++ if (!drm->drm_encoder) + continue; + +- if (g_drm->drm_encoder->encoder_id == g_drm->drm_connector->encoder_id) ++ if (drm->drm_encoder->encoder_id == drm->drm_connector->encoder_id) + break; + +- drmModeFreeEncoder(g_drm->drm_encoder); +- g_drm->drm_encoder = nullptr; ++ drmModeFreeEncoder(drm->drm_encoder); ++ drm->drm_encoder = nullptr; + } + +- if (!g_drm->drm_encoder) ++ if (!drm->drm_encoder) + { + INFO_LOG(VIDEO, "[DRM]: Couldn't find DRM encoder.\n"); + return false; + } + +- for (i = 0; (int)i < g_drm->drm_connector->count_modes; i++) ++ for (i = 0; (int)i < drm->drm_connector->count_modes; i++) + { +- INFO_LOG(VIDEO, "[DRM]: Mode %d: (%s) %d x %d, %u Hz\n", i, g_drm->drm_connector->modes[i].name, +- g_drm->drm_connector->modes[i].hdisplay, g_drm->drm_connector->modes[i].vdisplay, +- g_drm->drm_connector->modes[i].vrefresh); ++ INFO_LOG(VIDEO, "[DRM]: Mode %d: (%s) %d x %d, %u Hz\n", i, drm->drm_connector->modes[i].name, ++ drm->drm_connector->modes[i].hdisplay, drm->drm_connector->modes[i].vdisplay, ++ drm->drm_connector->modes[i].vrefresh); + } + + return true; +@@ -461,13 +460,13 @@ static void drm_fb_destroy_callback(struct gbm_bo* bo, void* data) + { + struct drm_fb* fb = (struct drm_fb*)data; + +- if (fb && fb->fb_id) ++ if (fb && fb->fb_id && g_drm) + drmModeRmFB(g_drm->drm_fd, fb->fb_id); + + free(fb); + } + +-static struct drm_fb* drm_fb_get_from_bo(struct gbm_bo* bo) ++static struct drm_fb* drm_fb_get_from_bo(GFXContextDRMData* drm, struct gbm_bo* bo) + { + int ret; + unsigned width, height, stride, handle; +@@ -482,7 +481,7 @@ static struct drm_fb* drm_fb_get_from_bo(struct gbm_bo* bo) + + INFO_LOG(VIDEO, "[KMS]: New FB: %ux%u (stride: %u).\n", width, height, stride); + +- ret = drmModeAddFB(g_drm->drm_fd, width, height, 24, 32, stride, handle, &fb->fb_id); ++ ret = drmModeAddFB(drm->drm_fd, width, height, 24, 32, stride, handle, &fb->fb_id); + if (ret < 0) + goto error; + +@@ -512,15 +511,12 @@ static bool gfx_ctx_drm_wait_flip(GFXContextDRMData* drm, bool block) + + while (drm->waiting_for_flip) + { +- if (!drm_wait_flip(timeout)) ++ if (!drm_wait_flip(drm, timeout)) + break; + } + + if (drm->waiting_for_flip) +- { +- INFO_LOG(VIDEO, "\nwait flip 2"); + return true; +- } + + /* Page flip has taken place. */ + +@@ -539,9 +535,9 @@ static bool gfx_ctx_drm_queue_flip(GFXContextDRMData* drm) + fb = (struct drm_fb*)gbm_bo_get_user_data(drm->next_bo); + + if (!fb) +- fb = (struct drm_fb*)drm_fb_get_from_bo(drm->next_bo); ++ fb = (struct drm_fb*)drm_fb_get_from_bo(drm, drm->next_bo); + +- if (drmModePageFlip(g_drm->drm_fd, g_drm->crtc_id, fb->fb_id, DRM_MODE_PAGE_FLIP_EVENT, ++ if (drmModePageFlip(drm->drm_fd, drm->crtc_id, fb->fb_id, DRM_MODE_PAGE_FLIP_EVENT, + &drm->waiting_for_flip) == 0) + return true; + +@@ -668,13 +664,13 @@ static void* gfx_ctx_drm_init() + return nullptr; + } + +- if (!drm_get_connector(fd)) ++ if (!drm_get_connector(drm, fd)) + { + INFO_LOG(VIDEO, "[KMS]: drm_get_connector failed\n"); + return nullptr; + } + +- if (!drm_get_encoder(fd)) ++ if (!drm_get_encoder(drm, fd)) + { + INFO_LOG(VIDEO, "[KMS]: drm_get_encoder failed\n"); + return nullptr; +@@ -886,7 +882,7 @@ static bool gfx_ctx_drm_set_video_mode(void* data, unsigned width, unsigned heig + fb = (struct drm_fb*)gbm_bo_get_user_data(drm->bo); + + if (!fb) +- fb = drm_fb_get_from_bo(drm->bo); ++ fb = drm_fb_get_from_bo(drm, drm->bo); + + ret = drmModeSetCrtc(drm->drm_fd, drm->crtc_id, fb->fb_id, 0, 0, &drm->connector_id, 1, + drm->drm_mode); diff --git a/packages/games/emulators/dolphinsa/patches/new/003-drm-hotkeys.patch b/packages/games/emulators/dolphinsa/patches/new/003-drm-hotkeys.patch new file mode 100644 index 000000000..f4a3859ef --- /dev/null +++ b/packages/games/emulators/dolphinsa/patches/new/003-drm-hotkeys.patch @@ -0,0 +1,118 @@ +diff --git a/Source/Core/Core/HW/GCPadEmu.cpp b/Source/Core/Core/HW/GCPadEmu.cpp +index c8e7016..fb089c4 100644 +--- a/Source/Core/Core/HW/GCPadEmu.cpp ++++ b/Source/Core/Core/HW/GCPadEmu.cpp +@@ -26,6 +26,7 @@ static const u16 button_bitmasks[] = { + PAD_BUTTON_Y, + PAD_TRIGGER_Z, + PAD_BUTTON_START, ++ PAD_BUTTON_HOTKEY, + 0 // MIC HAX + }; + +@@ -37,7 +38,7 @@ static const u16 trigger_bitmasks[] = { + static const u16 dpad_bitmasks[] = {PAD_BUTTON_UP, PAD_BUTTON_DOWN, PAD_BUTTON_LEFT, + PAD_BUTTON_RIGHT}; + +-static const char* const named_buttons[] = {"A", "B", "X", "Y", "Z", "Start"}; ++static const char* const named_buttons[] = {"A", "B", "X", "Y", "Z", "Start", "Hotkey"}; + + static const char* const named_triggers[] = { + // i18n: The left trigger button (labeled L on real controllers) +diff --git a/Source/Core/DolphinNoGUI/PlatformDRM.cpp b/Source/Core/DolphinNoGUI/PlatformDRM.cpp +index b210cea..77d4e86 100644 +--- a/Source/Core/DolphinNoGUI/PlatformDRM.cpp ++++ b/Source/Core/DolphinNoGUI/PlatformDRM.cpp +@@ -11,6 +11,12 @@ + #include "Core/Core.h" + #include "Core/State.h" + ++#include "Core/HW/GCPad.h" ++#include "InputCommon/GCPadStatus.h" ++#include ++#include "Core/Config/GraphicsSettings.h" ++#include "VideoCommon/VideoConfig.h" ++ + #include + #include + +@@ -54,9 +60,67 @@ void PlatformDRM::MainLoop() + { + while (IsRunning()) + { ++ static int hotkey = 0; ++ static int slot = 0; ++ static int stereo = 0; ++ + UpdateRunningFlag(); + Core::HostDispatchJobs(); + ++ if(Pad::IsInitialized()) { ++ GCPadStatus x = Pad::GetStatus(0); ++ ++ if( (x.button & PAD_BUTTON_HOTKEY) == PAD_BUTTON_HOTKEY) { // hotkey pressed ++ if(hotkey == 1) { ++ hotkey = 2; ++ } ++ } else { ++ hotkey = 1; // assure hotkey is released between actions ++ } ++ ++ if(hotkey == 2) { // hotkey pressed ++ if( (x.button & PAD_BUTTON_START) == PAD_BUTTON_START) { ++ RequestShutdown(); ++ hotkey = 0; ++ } ++ ++ if( (x.button & PAD_BUTTON_Y) == PAD_BUTTON_Y) { ++ State::Load(slot); ++ hotkey = 0; ++ } ++ if( (x.button & PAD_BUTTON_B) == PAD_BUTTON_B) { ++ State::Save(slot); ++ hotkey = 0; ++ } ++ if( (x.button & PAD_BUTTON_DOWN) == PAD_BUTTON_DOWN) { ++ if(slot > 0) slot--; ++ Core::DisplayMessage(fmt::format("Slot {} selected", slot), 4000); ++ hotkey = 0; ++ } ++ if( (x.button & PAD_BUTTON_UP) == PAD_BUTTON_UP) { ++ if(slot < 10) slot++; ++ Core::DisplayMessage(fmt::format("Slot {} selected", slot), 4000); ++ hotkey = 0; ++ } ++ if( (x.button & PAD_TRIGGER_L) == PAD_TRIGGER_L) { ++ Core::SaveScreenShot(); ++ hotkey = 0; ++ } ++ if( (x.button & PAD_TRIGGER_R) == PAD_TRIGGER_R) { ++ if(stereo == 0) { ++ Config::SetCurrent(Config::GFX_STEREO_MODE, StereoMode::SBS); ++ stereo = 1; ++ } else { ++ Config::SetCurrent(Config::GFX_STEREO_MODE, StereoMode::Off); ++ stereo = 0; ++ } ++ hotkey = 0; ++ } ++ } ++ ++ } ++ // ++ + // TODO: Is this sleep appropriate? + std::this_thread::sleep_for(std::chrono::milliseconds(1)); + } +diff --git a/Source/Core/InputCommon/GCPadStatus.h b/Source/Core/InputCommon/GCPadStatus.h +index 7da1bbd..57d294d 100644 +--- a/Source/Core/InputCommon/GCPadStatus.h ++++ b/Source/Core/InputCommon/GCPadStatus.h +@@ -27,6 +27,7 @@ enum PadButton + PAD_BUTTON_X = 0x0400, + PAD_BUTTON_Y = 0x0800, + PAD_BUTTON_START = 0x1000, ++ PAD_BUTTON_HOTKEY = 0x2000, + }; + + struct GCPadStatus diff --git a/packages/games/emulators/dolphinsa/patches/new/003-drm-resolution.patch b/packages/games/emulators/dolphinsa/patches/new/003-drm-resolution.patch new file mode 100644 index 000000000..b98f82961 --- /dev/null +++ b/packages/games/emulators/dolphinsa/patches/new/003-drm-resolution.patch @@ -0,0 +1,56 @@ +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +index f848761..676c886 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +@@ -819,37 +819,24 @@ static bool gfx_ctx_drm_set_video_mode(void* data, unsigned width, unsigned heig + if (!drm) + return false; + +- /* Find desired video mode, and use that. +- * If not fullscreen, we get desired windowed size, +- * which is not appropriate. */ +- if ((width == 0 && height == 0) || !fullscreen) +- drm->drm_mode = &drm->drm_connector->modes[0]; +- else ++ // batocera - set resolution + { +- /* Try to match refresh_rate as closely as possible. +- * +- * Lower resolutions tend to have multiple supported +- * refresh rates as well. +- */ +- float minimum_fps_diff = 0.0f; +- +- /* Find best match. */ +- for (i = 0; i < drm->drm_connector->count_modes; i++) +- { +- float diff; +- if (width != drm->drm_connector->modes[i].hdisplay || +- height != drm->drm_connector->modes[i].vdisplay) +- continue; +- +- diff = fabsf(drm->drm_connector->modes[i].vrefresh - video_refresh_rate); +- +- if (!drm->drm_mode || diff < minimum_fps_diff) +- { +- drm->drm_mode = &drm->drm_connector->modes[i]; +- minimum_fps_diff = diff; ++ FILE* fdDrmMode; ++ int drmMode; ++ if((fdDrmMode = fopen("/var/run/drmMode", "r")) != NULL) { ++ if(fscanf(fdDrmMode, "%i", &drmMode) == 1) { ++ if(drmMode>=0 && drmModedrm_connector->count_modes) { ++ drmModeCrtc *pcrtc = drmModeGetCrtc(drm->drm_fd, drm->drm_encoder->crtc_id); ++ if(pcrtc != NULL) { ++ drmModeSetCrtc(drm->drm_fd, pcrtc->crtc_id, pcrtc->buffer_id, 0, 0, &drm->drm_connector->connector_id, 1, &drm->drm_connector->modes[drmMode]); ++ drm->drm_mode = &drm->drm_connector->modes[drmMode]; ++ } ++ } + } ++ fclose(fdDrmMode); + } + } ++ // + + if (!drm->drm_mode) + { diff --git a/packages/games/emulators/dolphinsa/patches/new/004-git.patch b/packages/games/emulators/dolphinsa/patches/new/004-git.patch new file mode 100644 index 000000000..cbc4b582d --- /dev/null +++ b/packages/games/emulators/dolphinsa/patches/new/004-git.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index eb0f83f..9d41166 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -128,7 +128,7 @@ endif() + include(CCache) + + # for revision info +-find_package(Git) ++#find_package(Git) + if(GIT_FOUND) + # make sure version information gets re-run when the current Git HEAD changes + execute_process(WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} rev-parse --git-path HEAD diff --git a/packages/games/emulators/dolphinsa/patches/new/005-hide-osd-msg.patch b/packages/games/emulators/dolphinsa/patches/new/005-hide-osd-msg.patch new file mode 100644 index 000000000..500530983 --- /dev/null +++ b/packages/games/emulators/dolphinsa/patches/new/005-hide-osd-msg.patch @@ -0,0 +1,13 @@ +--- a/Source/Core/VideoBackends/OGL/OGLRender.cpp 2020-12-31 00:27:53.998709857 +0100 ++++ b/Source/Core/VideoBackends/OGL/OGLRender.cpp 2020-12-31 00:28:40.414557344 +0100 +@@ -736,10 +736,6 @@ + g_Config.VerifyValidity(); + UpdateActiveConfig(); + +- OSD::AddMessage(fmt::format("Video Info: {}, {}, {}", g_ogl_config.gl_vendor, +- g_ogl_config.gl_renderer, g_ogl_config.gl_version), +- 5000); +- + if (!g_ogl_config.bSupportsGLBufferStorage && !g_ogl_config.bSupportsGLPinnedMemory) + { + OSD::AddMessage(fmt::format("Your OpenGL driver does not support {}_buffer_storage.", diff --git a/packages/games/emulators/dolphinsa/patches/new/006-nicerlaunch.patch b/packages/games/emulators/dolphinsa/patches/new/006-nicerlaunch.patch new file mode 100644 index 000000000..b66932f7d --- /dev/null +++ b/packages/games/emulators/dolphinsa/patches/new/006-nicerlaunch.patch @@ -0,0 +1,17 @@ +diff --git a/Source/Core/DolphinQt/MainWindow.cpp b/Source/Core/DolphinQt/MainWindow.cpp +index 20572d8..b79b2a7 100644 +--- a/Source/Core/DolphinQt/MainWindow.cpp ++++ b/Source/Core/DolphinQt/MainWindow.cpp +@@ -1768,7 +1768,12 @@ void MainWindow::Show() + // If the booting of a game was requested on start up, do that now + if (m_pending_boot != nullptr) + { ++ m_menu_bar->hide(); ++ m_tool_bar->hide(); ++ m_game_list->hide(); + StartGame(std::move(m_pending_boot)); + m_pending_boot.reset(); ++ } else { ++ m_tool_bar->show(); + } + } diff --git a/packages/games/emulators/dolphinsa/patches/new/007-drm-conn.patch b/packages/games/emulators/dolphinsa/patches/new/007-drm-conn.patch new file mode 100644 index 000000000..f3b59c788 --- /dev/null +++ b/packages/games/emulators/dolphinsa/patches/new/007-drm-conn.patch @@ -0,0 +1,48 @@ +diff --git a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +index 55efc47..b96768f 100644 +--- a/Source/Core/Common/GL/GLInterface/EGLDRM.cpp ++++ b/Source/Core/Common/GL/GLInterface/EGLDRM.cpp +@@ -371,14 +371,33 @@ static bool drm_get_connector(GFXContextDRMData* drm, int fd) + unsigned i; + unsigned monitor_index_count = 0; + unsigned monitor = 1; ++ int drmConn = 0; + + /* Enumerate all connectors. */ + + INFO_LOG(VIDEO, "[DRM]: Found %d connectors.\n", drm->drm_resources->count_connectors); + ++ // batocera ++ { ++ FILE* fdDrmConn; ++ int drmConnRead; ++ if((fdDrmConn = fopen("/var/run/drmConn", "r")) != NULL) { ++ if(fscanf(fdDrmConn, "%i", &drmConnRead) == 1) { ++ if(drmConnRead>=0 && drmConndrm_resources->count_connectors) { ++ drmConn = drmConnRead; ++ } ++ } ++ } ++ } ++ // ++ + for (i = 0; (int)i < drm->drm_resources->count_connectors; i++) + { +- drmModeConnectorPtr conn = drmModeGetConnector(fd, drm->drm_resources->connectors[i]); ++ drmModeConnectorPtr conn; ++ ++ if(i != drmConn) continue; ++ ++ conn = drmModeGetConnector(fd, drm->drm_resources->connectors[i]); + + if (conn) + { +@@ -399,6 +418,8 @@ static bool drm_get_connector(GFXContextDRMData* drm, int fd) + + for (i = 0; (int)i < drm->drm_resources->count_connectors; i++) + { ++ if(i != drmConn) continue; ++ + drm->drm_connector = drmModeGetConnector(fd, drm->drm_resources->connectors[i]); + + if (!drm->drm_connector) diff --git a/packages/games/emulators/dolphinsa/scripts/dolphin.sh b/packages/games/emulators/dolphinsa/scripts/start_dolphin.sh old mode 100644 new mode 100755 similarity index 89% rename from packages/games/emulators/dolphinsa/scripts/dolphin.sh rename to packages/games/emulators/dolphinsa/scripts/start_dolphin.sh index b9b383569..4a0982e09 --- a/packages/games/emulators/dolphinsa/scripts/dolphin.sh +++ b/packages/games/emulators/dolphinsa/scripts/start_dolphin.sh @@ -18,4 +18,4 @@ rm -rf /storage/.local/share/dolphin-emu ln -sfv /storage/.config/dolphin-emu /storage/.local/share/dolphin-emu -/usr/bin/dolphin-emu-nogui -p drm -a HLE -e "${1}" +/usr/bin/dolphin-emu-nogui -p @DOLPHIN_PLATFORM@ -a HLE -e "${1}" diff --git a/packages/games/emulators/dosbox-sdl2/config/games/_Scan DOSBox Games.sh b/packages/games/emulators/dosbox-sdl2/config/games/_Scan DOSBox Games.sh index 4c16cc5cf..694afd9dd 100644 --- a/packages/games/emulators/dosbox-sdl2/config/games/_Scan DOSBox Games.sh +++ b/packages/games/emulators/dosbox-sdl2/config/games/_Scan DOSBox Games.sh @@ -9,17 +9,15 @@ echo -e $(date -u)" - Script started.\n" >> /tmp/logs/dosbox_scan.log EE_DEVICE=$(cat /ee_arch) -source /usr/bin/env.sh source /etc/profile rp_registerAllModules -joy2keyStart -clear >/dev/console +clear #rm "/storage/.config/dosbox/games/*.conf" function create_launcher() { - message_stream "\nAdding $2..." 0 + echo "\nAdding $2..." launcher_name="$1 ($2)" cp /storage/.config/dosbox/dosbox-SDL2.conf "/storage/.config/dosbox/games/$launcher_name.conf" cat <> "/storage/.config/dosbox/games/$launcher_name.conf" @@ -30,7 +28,7 @@ exit EOF } -message_stream "Scanning for games...\n" 0 +echo "Scanning for games...\n" OIFS="$IFS" IFS=$'\n' @@ -42,7 +40,7 @@ do do echo "Testing (exe) $executable" executable_case="$(basename "$executable" | tr '[:lower:]' '[:upper:]')" - echo "Case $executable" + echo "Case $executable" >> /tmp/logs/dosbox_scan.log case "$executable_case" in "SETUP.EXE" | "INSTALL.EXE" | "INSTALLER.EXE" | \ "APOGEE.BAT" | "CATALOG.EXE" | "DEALERS.EXE" | \ @@ -66,7 +64,6 @@ do done fi done -message_stream "Restarting EmulationStation...\n" 0 -echo echo "Restarting EmulationStation..." >> /tmp/logs/dosbox_scan.log -systemctl restart emustation -clear >/dev/console +echo "Restarting EmulationStation...\n" +echo "Restarting EmulationStation..." >> /tmp/logs/dosbox_scan.log +clear diff --git a/packages/games/emulators/drastic/scripts/drastic.sh b/packages/games/emulators/drastic/scripts/drastic.sh index 55411bbd1..60bb3e690 100644 --- a/packages/games/emulators/drastic/scripts/drastic.sh +++ b/packages/games/emulators/drastic/scripts/drastic.sh @@ -6,11 +6,11 @@ if [ ! -d "/storage/.config/drastic" ]; then -echo "Drastic emulator not installed." >/dev/console 2>&1 -echo "Please install through the Jelos Add Ons tool." >/dev/console 2>&1 +echo "Drastic emulator not installed." 2>&1 +echo "Please install through the Jelos Add Ons tool." 2>&1 sleep 5 -clear >/dev/console +clear else diff --git a/packages/games/emulators/duckstationsa/config/RG353P b/packages/games/emulators/duckstationsa/config/RG353P new file mode 120000 index 000000000..f1fe4969a --- /dev/null +++ b/packages/games/emulators/duckstationsa/config/RG353P @@ -0,0 +1 @@ +RG503/ \ No newline at end of file diff --git a/packages/games/emulators/duckstationsa/config/settings.ini b/packages/games/emulators/duckstationsa/config/RG503/settings.ini similarity index 98% rename from packages/games/emulators/duckstationsa/config/settings.ini rename to packages/games/emulators/duckstationsa/config/RG503/settings.ini index 57f0c2488..40e43a8b2 100644 --- a/packages/games/emulators/duckstationsa/config/settings.ini +++ b/packages/games/emulators/duckstationsa/config/RG503/settings.ini @@ -4,7 +4,7 @@ StartFullscreen = true EmulationSpeed = 1.000000 FastForwardSpeed = 0.000000 TurboSpeed = 0.000000 -SyncToHostRefreshRate = true +SyncToHostRefreshRate = false IncreaseTimerResolution = true InhibitScreensaver = true StartPaused = false @@ -38,7 +38,7 @@ ResolutionScale = 1 Multisamples = 1 UseDebugDevice = false PerSampleShading = false -UseThread = false +UseThread = true ThreadedPresentation = true UseSoftwareRendererForReadbacks = false TrueColor = false @@ -61,7 +61,6 @@ PGXPDepthClearThreshold = 300.000000 [Display] -Rotate = 1 CropMode = Overscan ActiveStartOffset = 0 ActiveEndOffset = 0 diff --git a/packages/games/emulators/duckstationsa/config/RG552/settings.ini b/packages/games/emulators/duckstationsa/config/RG552/settings.ini new file mode 100644 index 000000000..192052738 --- /dev/null +++ b/packages/games/emulators/duckstationsa/config/RG552/settings.ini @@ -0,0 +1,328 @@ +[Main] +SettingsVersion = 3 +EmulationSpeed = 1.000000 +FastForwardSpeed = 0.000000 +TurboSpeed = 0.000000 +SyncToHostRefreshRate = false +IncreaseTimerResolution = true +InhibitScreensaver = true +StartPaused = false +StartFullscreen = true +PauseOnFocusLoss = false +PauseOnMenu = true +SaveStateOnExit = true +CreateSaveStateBackups = true +CompressSaveStates = true +ConfirmPowerOff = true +LoadDevicesFromSaveStates = false +ApplyCompatibilitySettings = true +ApplyGameSettings = true +AutoLoadCheats = true +DisableAllEnhancements = false +RewindEnable = false +RewindFrequency = 10.000000 +RewindSaveSlots = 10 +RunaheadFrameCount = 0 + + +[Console] +Region = Auto +Enable8MBRAM = false + + +[CPU] +ExecutionMode = Recompiler +OverclockEnable = false +OverclockNumerator = 1 +OverclockDenominator = 1 +RecompilerMemoryExceptions = false +RecompilerBlockLinking = true +RecompilerICache = false +FastmemMode = MMap + + +[GPU] +Renderer = Software +Adapter = +ResolutionScale = 1 +Multisamples = 1 +UseDebugDevice = false +PerSampleShading = false +UseThread = true +ThreadedPresentation = true +UseSoftwareRendererForReadbacks = false +TrueColor = true +ScaledDithering = true +TextureFilter = Nearest +DownsampleMode = Disabled +DisableInterlacing = true +ForceNTSCTimings = false +WidescreenHack = false +ChromaSmoothing24Bit = false +PGXPEnable = false +PGXPCulling = true +PGXPTextureCorrection = true +PGXPVertexCache = false +PGXPCPU = false +PGXPPreserveProjFP = false +PGXPTolerance = -1.000000 +PGXPDepthBuffer = false +PGXPDepthClearThreshold = 1228800.000000 +FullscreenMode = + + +[Display] +CropMode = Overscan +ActiveStartOffset = 0 +ActiveEndOffset = 0 +LineStartOffset = 0 +LineEndOffset = 0 +Force4_3For24Bit = false +AspectRatio = Auto (Game Native) +CustomAspectRatioNumerator = 0 +LinearFiltering = true +IntegerScaling = false +Stretch = false +PostProcessing = false +ShowOSDMessages = true +ShowFPS = false +ShowSpeed = false +ShowResolution = false +ShowCPU = false +ShowGPU = false +ShowStatusIndicators = true +ShowInputs = false +ShowEnhancements = false +DisplayAllFrames = false +InternalResolutionScreenshots = false +VSync = false +MaxFPS = 0.000000 +OSDScale = 100.000000 + + +[CDROM] +ReadaheadSectors = 8 +RegionCheck = false +LoadImageToRAM = false +LoadImagePatches = false +MuteCDAudio = false +ReadSpeedup = 1 +SeekSpeedup = 1 + + +[Audio] +Backend = Cubeb +Driver = +StretchMode = TimeStretch +BufferMS = 50 +OutputLatencyMS = 20 +OutputVolume = 100 +FastForwardVolume = 100 +OutputMuted = false +DumpOnBoot = false + + +[Hacks] +DMAMaxSliceTicks = 1000 +DMAHaltTicks = 100 +GPUFIFOSize = 16 +GPUMaxRunAhead = 128 + + +[BIOS] +SearchDirectory = /storage/roms/bios +PathNTSCU = +PathNTSCJ = +PathPAL = +PatchTTYEnable = false +PatchFastBoot = true + + +[Controller1] +Type = AnalogController + + +[Controller2] +Type = None + + +[Controller3] +Type = None + + +[Controller4] +Type = None + + +[Controller5] +Type = None + + +[Controller6] +Type = None + + +[Controller7] +Type = None + + +[Controller8] +Type = None + + +[MemoryCards] +Card1Type = PerGameTitle +Card2Type = None +UsePlaylistTitle = true +Directory = memcards + + +[ControllerPorts] +MultitapMode = Disabled +PointerXScale = 8.000000 +PointerYScale = 8.000000 +PointerXInvert = false +PointerYInvert = false + + +[Cheevos] +Enabled = false +TestMode = false +UnofficialTestMode = false +UseFirstDiscFromPlaylist = true +RichPresence = false +ChallengeMode = false + + +[Logging] +LogLevel = Debug +LogFilter = +LogToConsole = true +LogToDebug = true +LogToWindow = false +LogToFile = true + + +[Debug] +ShowVRAM = false +DumpCPUToVRAMCopies = false +DumpVRAMToCPUCopies = false +ShowGPUState = false +ShowCDROMState = false +ShowSPUState = false +ShowTimersState = false +ShowMDECState = false +ShowDMAState = false + + +[TextureReplacements] +EnableVRAMWriteReplacements = false +PreloadTextures = false +DumpVRAMWrites = false +DumpVRAMWriteForceAlphaChannel = true +DumpVRAMWriteWidthThreshold = 128 +DumpVRAMWriteHeightThreshold = 128 + + +[Folders] +Cache = cache +Cheats = cheats +Covers = covers +Dumps = dump +GameSettings = gamesettings +InputProfiles = inputprofiles +SaveStates = savestates +Screenshots = screenshots +Shaders = shaders +Textures = textures + + +[InputSources] +SDL = true +SDLControllerEnhancedMode = false +Evdev = false +XInput = false +RawInput = false + + +[Pad1] +Type = AnalogController +Up = SDL-0/DPadUp +Right = SDL-0/DPadRight +Down = SDL-0/DPadDown +Left = SDL-0/DPadLeft +Triangle = SDL-0/X +Circle = SDL-0/A +Cross = SDL-0/B +Square = SDL-0/Y +Select = SDL-0/Back +Start = SDL-0/Start +L1 = SDL-0/LeftShoulder +R1 = SDL-0/RightShoulder +L2 = SDL-0/+LeftTrigger +R2 = SDL-0/+RightTrigger +L3 = SDL-0/LeftStick & SDL-0/-LeftX +R3 = SDL-0/RightStick +LLeft = SDL-0/-LeftX +LRight = SDL-0/+LeftX +LDown = SDL-0/+LeftY +LUp = SDL-0/-LeftY +RLeft = SDL-0/-RightX +RRight = SDL-0/+RightX +RDown = SDL-0/+RightY +RUp = SDL-0/-RightY + + +[Pad2] +Type = None + + +[Pad3] +Type = None + + +[Pad4] +Type = None + + +[Pad5] +Type = None + + +[Pad6] +Type = None + + +[Pad7] +Type = None + + +[Pad8] +Type = None + + +[Hotkeys] +Screenshot = SDL-0/Back & SDL-0/A +ToggleWidescreen = SDL-0/Back & SDL-0/Y +OpenPauseMenu = SDL-0/Back & SDL-0/X +LoadSelectedSaveState = SDL-0/Back & SDL-0/LeftShoulder +SaveSelectedSaveState = SDL-0/Back & SDL-0/RightShoulder +SelectPreviousSaveStateSlot = SDL-0/Back & SDL-0/+RightY +SelectNextSaveStateSlot = SDL-0/Back & SDL-0/-RightY +ToggleFastForward = SDL-0/Back & SDL-0/+RightTrigger +PowerOff = SDL-0/Back & SDL-0/Start +Reset = SDL-0/Back & SDL-0/B +ChangeDisc = SDL-0/Back & SDL-0/-RightX +SwapMemoryCards = SDL-0/Back & SDL-0/+RightX +Rewind = SDL-0/Back & SDL-0/+LeftTrigger + + +[NoGUI] +WindowX = 0 +WindowY = 0 +WindowWidth = 1920 +WindowHeight = 1152 + + +[GameList] +RecursivePaths = /storage/roms/psx diff --git a/packages/games/emulators/duckstationsa/config/handheld/settings.ini b/packages/games/emulators/duckstationsa/config/handheld/settings.ini new file mode 100644 index 000000000..57bec978c --- /dev/null +++ b/packages/games/emulators/duckstationsa/config/handheld/settings.ini @@ -0,0 +1,316 @@ +[Main] +SettingsVersion = 3 +EmulationSpeed = 1.000000 +FastForwardSpeed = 0.000000 +TurboSpeed = 0.000000 +SyncToHostRefreshRate = false +IncreaseTimerResolution = true +InhibitScreensaver = true +StartPaused = false +StartFullscreen = true +PauseOnFocusLoss = false +PauseOnMenu = true +SaveStateOnExit = true +CreateSaveStateBackups = true +CompressSaveStates = true +ConfirmPowerOff = true +LoadDevicesFromSaveStates = false +ApplyCompatibilitySettings = true +ApplyGameSettings = true +AutoLoadCheats = true +DisableAllEnhancements = false +RewindEnable = false +RewindFrequency = 10.000000 +RewindSaveSlots = 10 +RunaheadFrameCount = 0 + + +[Console] +Region = Auto +Enable8MBRAM = false + + +[CPU] +ExecutionMode = Recompiler +OverclockEnable = false +OverclockNumerator = 1 +OverclockDenominator = 1 +RecompilerMemoryExceptions = false +RecompilerBlockLinking = true +RecompilerICache = false +FastmemMode = MMap + + +[GPU] +Renderer = OpenGL +Adapter = +ResolutionScale = 3 +Multisamples = 1 +UseDebugDevice = false +PerSampleShading = false +UseThread = true +ThreadedPresentation = true +UseSoftwareRendererForReadbacks = false +TrueColor = true +ScaledDithering = true +TextureFilter = Nearest +DownsampleMode = Disabled +DisableInterlacing = true +ForceNTSCTimings = false +WidescreenHack = false +ChromaSmoothing24Bit = false +PGXPEnable = false +PGXPCulling = true +PGXPTextureCorrection = true +PGXPVertexCache = false +PGXPCPU = false +PGXPPreserveProjFP = false +PGXPTolerance = -1.000000 +PGXPDepthBuffer = false +PGXPDepthClearThreshold = 1228800.000000 + + +[Display] +CropMode = Overscan +ActiveStartOffset = 0 +ActiveEndOffset = 0 +LineStartOffset = 0 +LineEndOffset = 0 +Force4_3For24Bit = false +AspectRatio = Auto (Game Native) +CustomAspectRatioNumerator = 0 +LinearFiltering = true +IntegerScaling = false +Stretch = false +PostProcessing = false +ShowOSDMessages = true +ShowFPS = false +ShowSpeed = false +ShowResolution = false +ShowCPU = false +ShowGPU = false +ShowStatusIndicators = true +ShowInputs = false +ShowEnhancements = false +DisplayAllFrames = false +InternalResolutionScreenshots = false +VSync = false +MaxFPS = 0.000000 +OSDScale = 100.000000 + + +[CDROM] +ReadaheadSectors = 8 +RegionCheck = false +LoadImageToRAM = false +LoadImagePatches = false +MuteCDAudio = false +ReadSpeedup = 1 +SeekSpeedup = 1 + + +[Audio] +Backend = Cubeb +Driver = +StretchMode = TimeStretch +BufferMS = 50 +OutputLatencyMS = 20 +OutputVolume = 100 +FastForwardVolume = 100 +OutputMuted = false +DumpOnBoot = false + + +[Hacks] +DMAMaxSliceTicks = 1000 +DMAHaltTicks = 100 +GPUFIFOSize = 16 +GPUMaxRunAhead = 128 + + +[BIOS] +PatchTTYEnable = false +PatchFastBoot = false +SearchDirectory = /storage/roms/bios + + +[Controller1] +Type = AnalogController + + +[Controller2] +Type = None + + +[Controller3] +Type = None + + +[Controller4] +Type = None + + +[Controller5] +Type = None + + +[Controller6] +Type = None + + +[Controller7] +Type = None + + +[Controller8] +Type = None + + +[MemoryCards] +Card1Type = PerGameTitle +Card2Type = None +UsePlaylistTitle = true +Directory = memcards + + +[ControllerPorts] +MultitapMode = Disabled +PointerXScale = 8.000000 +PointerYScale = 8.000000 +PointerXInvert = false +PointerYInvert = false + + +[Cheevos] +Enabled = false +TestMode = false +UnofficialTestMode = false +UseFirstDiscFromPlaylist = true +RichPresence = false +ChallengeMode = false + + +[Logging] +LogLevel = Info +LogFilter = +LogToConsole = true +LogToDebug = false +LogToWindow = false +LogToFile = false + + +[Debug] +ShowVRAM = false +DumpCPUToVRAMCopies = false +DumpVRAMToCPUCopies = false +ShowGPUState = false +ShowCDROMState = false +ShowSPUState = false +ShowTimersState = false +ShowMDECState = false +ShowDMAState = false + + +[TextureReplacements] +EnableVRAMWriteReplacements = false +PreloadTextures = false +DumpVRAMWrites = false +DumpVRAMWriteForceAlphaChannel = true +DumpVRAMWriteWidthThreshold = 128 +DumpVRAMWriteHeightThreshold = 128 + + +[Folders] +Cache = cache +Cheats = cheats +Covers = covers +Dumps = dump +GameSettings = gamesettings +InputProfiles = inputprofiles +SaveStates = savestates +Screenshots = screenshots +Shaders = shaders +Textures = textures + + +[InputSources] +SDL = true +SDLControllerEnhancedMode = false +Evdev = false +XInput = false +RawInput = false + + +[Pad1] +Type = AnalogController +Up = SDL-0/DPadUp +Right = SDL-0/DPadRight +Down = SDL-0/DPadDown +Left = SDL-0/DPadLeft +Triangle = SDL-0/Y +Circle = SDL-0/B +Cross = SDL-0/A +Square = SDL-0/X +Select = SDL-0/Back +Start = SDL-0/Start +L1 = SDL-0/LeftShoulder +R1 = SDL-0/RightShoulder +L2 = SDL-0/+LeftTrigger +R2 = SDL-0/+RightTrigger +L3 = SDL-0/LeftStick +R3 = SDL-0/RightStick +LLeft = SDL-0/-LeftX +LRight = SDL-0/+LeftX +LDown = SDL-0/+LeftY +LUp = SDL-0/-LeftY +RLeft = SDL-0/-RightX & SDL-0/-RightY +RRight = SDL-0/+RightX & SDL-0/+RightY +RDown = SDL-0/+RightY +RUp = SDL-0/-RightY + + +[Pad2] +Type = None + + +[Pad3] +Type = None + + +[Pad4] +Type = None + + +[Pad5] +Type = None + + +[Pad6] +Type = None + + +[Pad7] +Type = None + + +[Pad8] +Type = None + + +[Hotkeys] +Screenshot = SDL-0/Back & SDL-0/B +ToggleFullscreen = SDL-0/Back & SDL-0/X +OpenPauseMenu = SDL-0/Back & SDL-0/Y +LoadSelectedSaveState = SDL-0/Back & SDL-0/LeftShoulder +SaveSelectedSaveState = SDL-0/Back & SDL-0/RightShoulder +SelectPreviousSaveStateSlot = SDL-0/Back & SDL-0/+RightY +SelectNextSaveStateSlot = SDL-0/Back & SDL-0/-RightY +ToggleFastForward = SDL-0/Back & SDL-0/+RightTrigger +PowerOff = SDL-0/Back & SDL-0/Start +Reset = SDL-0/Back & SDL-0/A +Rewind = SDL-0/Back & SDL-0/+LeftTrigger +SwapMemoryCards = SDL-0/Back & SDL-0/-RightX & SDL-0/-RightY +ChangeDisc = SDL-0/Back & SDL-0/+RightX + +[GameList] +RecursivePaths = /storage/roms/psx diff --git a/packages/games/emulators/duckstationsa/package.mk b/packages/games/emulators/duckstationsa/package.mk index 03df0d9a6..42edbaff9 100644 --- a/packages/games/emulators/duckstationsa/package.mk +++ b/packages/games/emulators/duckstationsa/package.mk @@ -1,40 +1,55 @@ # SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2021-present Shanti Gilbert (https://github.com/shantigilbert) # Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech) PKG_NAME="duckstationsa" -PKG_VERSION="5ab5070d73f1acc51e064bd96be4ba6ce3c06f5c" PKG_LICENSE="GPLv3" +PKG_DEPENDS_TARGET="toolchain SDL2 nasm:host pulseaudio openssl libidn2 nghttp2 zlib curl libevdev" PKG_SITE="https://github.com/stenzek/duckstation" PKG_URL="${PKG_SITE}.git" -PKG_DEPENDS_TARGET="toolchain SDL2 nasm:host pulseaudio openssl libidn2 nghttp2 zlib curl libevdev" -PKG_SECTION="libretro" PKG_SHORTDESC="Fast PlayStation 1 emulator for x86-64/AArch32/AArch64 " -PKG_TOOLCHAIN="cmake" -PKG_PATCH_DIRS+=" ${DEVICE}" + +case ${DEVICE} in + RG552|handheld) + PKG_VERSION="ef3ad91ad0969013bc29ad1276c13aa2842ecc2b" + PKG_PATCH_DIRS+=" new" + ;; + *) + PKG_VERSION="5ab5070d73f1acc51e064bd96be4ba6ce3c06f5c" + PKG_PATCH_DIRS+=" legacy" + ;; +esac if [ ! "${OPENGL}" = "no" ]; then PKG_DEPENDS_TARGET+=" ${OPENGL} glu libglvnd" + PKG_CMAKE_OPTS_TARGET+=" -DUSE_X11=OFF" fi if [ "${OPENGLES_SUPPORT}" = yes ]; then PKG_DEPENDS_TARGET+=" ${OPENGLES}" - PKG_CMAKE_OPTS_TARGET+=" -DUSE_EGL=ON -DUSE_DRMKMS=ON -DUSE_MALI=OFF" + PKG_CMAKE_OPTS_TARGET+=" -DUSE_X11=OFF \ + -DUSE_DRMKMS=ON \ + -DENABLE_EGL=ON \ + -DUSE_MALI=OFF" fi +if [ "${DISPLAYSERVER}" = "wl" ]; then + PKG_DEPENDS_TARGET+=" wayland ${WINDOWMANAGER} xorg-server xrandr libXi" + PKG_CMAKE_OPTS_TARGET+=" -DUSE_X11=ON" +fi pre_configure_target() { - PKG_CMAKE_OPTS_TARGET+=" -DANDROID=OFF \ - -DENABLE_DISCORD_PRESENCE=OFF \ - -DUSE_X11=OFF \ - -DBUILD_QT_FRONTEND=OFF \ - -DBUILD_NOGUI_FRONTEND=ON \ - -DCMAKE_BUILD_TYPE=Release \ - -DBUILD_SHARED_LIBS=OFF \ - -DUSE_SDL2=ON \ - -DENABLE_CHEEVOS=ON \ - -DUSE_FBDEV=OFF \ - -DUSE_EVDEV=ON" + PKG_CMAKE_OPTS_TARGET+=" -DANDROID=OFF \ + -DENABLE_DISCORD_PRESENCE=OFF \ + -DBUILD_QT_FRONTEND=OFF \ + -DBUILD_NOGUI_FRONTEND=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=OFF \ + -DUSE_SDL2=ON \ + -DENABLE_CHEEVOS=ON \ + -DUSE_FBDEV=OFF \ + -DUSE_WAYLAND=OFF \ + -DENABLE_VULKAN=OFF + -DUSE_EVDEV=ON" } makeinstall_target() { @@ -44,15 +59,10 @@ makeinstall_target() { mkdir -p ${INSTALL}/usr/config/duckstation cp -rf ${PKG_BUILD}/.${TARGET_NAME}/bin/* ${INSTALL}/usr/config/duckstation - cp -rf ${PKG_DIR}/config/* ${INSTALL}/usr/config/duckstation + cp -rf ${PKG_DIR}/config/${DEVICE}/* ${INSTALL}/usr/config/duckstation rm -rf ${INSTALL}/usr/config/duckstation/duckstation-nogui rm -rf ${INSTALL}/usr/config/duckstation/common-tests - chmod +x ${INSTALL}/usr/bin/duckstation.sh - - if [[ "${DEVICE}" != RG552 ]] - then - sed -i '/Rotate = 1/d' ${INSTALL}/usr/config/duckstation/settings.ini - fi + chmod +x ${INSTALL}/usr/bin/start_duckstation.sh } diff --git a/packages/games/emulators/duckstationsa/patches/RG353P b/packages/games/emulators/duckstationsa/patches/RG353P deleted file mode 120000 index 46098be24..000000000 --- a/packages/games/emulators/duckstationsa/patches/RG353P +++ /dev/null @@ -1 +0,0 @@ -RG503 \ No newline at end of file diff --git a/packages/games/emulators/duckstationsa/patches/RG552/000-fix-cmake.patch b/packages/games/emulators/duckstationsa/patches/RG552/000-fix-cmake.patch deleted file mode 100644 index b67b4e7e4..000000000 --- a/packages/games/emulators/duckstationsa/patches/RG552/000-fix-cmake.patch +++ /dev/null @@ -1,129 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index a02270e7..dbb48953 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -40,6 +40,7 @@ if(SUPPORTS_WAYLAND) - endif() - if((LINUX OR FREEBSD) OR ANDROID) - option(USE_EGL "Support EGL OpenGL context creation" ON) -+ option(USE_MALI "Link with libmali for EGL support" OFF) - endif() - if((LINUX OR FREEBSD) AND NOT ANDROID) - option(USE_DRMKMS "Support DRM/KMS OpenGL contexts" OFF) -@@ -232,7 +233,7 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86" OR ${CMAKE_SYSTEM_PROCESSOR} STR - elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64" OR ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm64") - set(CPU_ARCH "aarch64") - elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm" OR ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "armv7-a" OR -- ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "armv7l") -+ ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "armv7l" OR ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "armv8l") - set(CPU_ARCH "aarch32") - if(ANDROID) - # Force ARM mode, since apparently ANDROID_ARM_MODE isn't working.. -@@ -240,8 +241,13 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm" OR ${CMAKE_SYSTEM_PROCESSOR} STR - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -marm") - else() - # Enable NEON. -- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -marm -march=armv7-a") -- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -marm -march=armv7-a") -+ if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "armv8l") -+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -marm -mtune=cortex-a72") -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -marm -mtune=cortex-a72") -+ else() -+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -marm -march=armv7-a") -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -marm -march=armv7-a") -+ endif() - endif() - else() - message(FATAL_ERROR "Unknown system processor: " ${CMAKE_SYSTEM_PROCESSOR}) -diff -u -r /home/romain/duckstation/CMakeModules/FindEGL.cmake ./CMakeModules/FindEGL.cmake ---- /home/romain/duckstation/CMakeModules/FindEGL.cmake 2021-02-13 00:29:48.693304818 +0100 -+++ ./CMakeModules/FindEGL.cmake 2021-02-13 00:45:35.564462969 +0100 -@@ -86,6 +86,17 @@ - ${PKG_EGL_LIBRARY_DIRS} - ) - -+if(USE_MALI) -+pkg_check_modules(PKG_MALI QUIET mali) -+find_library(MALI_LIBRARY -+ NAMES -+ mali -+ HINTS -+ ${PKG_MALI_LIBRARY_DIRS} -+) -+endif() -+ -+ - # NB: We do *not* use the version information from pkg-config, as that - # is the implementation version (eg: the Mesa version) - if(EGL_INCLUDE_DIR) -@@ -117,7 +128,11 @@ - - cmake_push_check_state(RESET) - list(APPEND CMAKE_REQUIRED_LIBRARIES "${EGL_LIBRARY}") -+if(USE_MALI) -+list(APPEND CMAKE_REQUIRED_LIBRARIES "${MALI_LIBRARY}") -+endif() - list(APPEND CMAKE_REQUIRED_INCLUDES "${EGL_INCLUDE_DIR}") -+list(APPEND CMAKE_REQUIRED_DEFINITIONS "-DEGL_NO_X11 -DUSE_X11=NO") - - check_cxx_source_compiles(" - #include -@@ -161,7 +176,11 @@ - mark_as_advanced(EGL_LIBRARY EGL_INCLUDE_DIR HAVE_EGL) - - # compatibility variables -+if (USE_MALI) -+set(EGL_LIBRARIES ${EGL_LIBRARY} ${MALI_LIBRARY}) -+else() - set(EGL_LIBRARIES ${EGL_LIBRARY}) -+endif() - set(EGL_INCLUDE_DIRS ${EGL_INCLUDE_DIR}) - set(EGL_VERSION_STRING ${EGL_VERSION}) - -Seulement dans ./CMakeModules: FindEGL.cmake.orig -diff -u -r /home/romain/duckstation/dep/glad/CMakeLists.txt ./dep/glad/CMakeLists.txt ---- /home/romain/duckstation/dep/glad/CMakeLists.txt 2021-02-13 00:29:48.765302377 +0100 -+++ ./dep/glad/CMakeLists.txt 2021-02-13 00:42:20.848512028 +0100 -@@ -17,8 +17,9 @@ - target_sources(glad PRIVATE src/glad_wgl.c) - else() - if(USE_EGL) -+ target_compile_definitions(glad PRIVATE -DEGL_NO_X11) - target_sources(glad PRIVATE src/glad_egl.c) -- target_link_libraries(glad PRIVATE EGL::EGL) -+ target_link_libraries(glad PRIVATE EGL) - endif() - if(USE_X11) - target_sources(glad PRIVATE src/glad_glx.c) -diff -u -r /home/romain/duckstation/src/common/CMakeLists.txt ./src/common/CMakeLists.txt ---- /home/romain/duckstation/src/common/CMakeLists.txt 2021-02-13 00:29:48.885298307 +0100 -+++ ./src/common/CMakeLists.txt 2021-02-13 00:42:20.848512028 +0100 -@@ -175,12 +175,13 @@ - ) - endif() - if(USE_DRMKMS) -+ target_compile_definitions(common PRIVATE "-DEGL_NO_X11=1") - target_compile_definitions(common PRIVATE "-DUSE_GBM=1") - target_sources(common PRIVATE - gl/context_egl_gbm.cpp - gl/context_egl_gbm.h - ) -- target_link_libraries(common PUBLIC GBM::GBM) -+ target_link_libraries(common PUBLIC gbm EGL) - endif() - endif() - -diff -u -r /home/romain/duckstation/src/duckstation-nogui/CMakeLists.txt ./src/duckstation-nogui/CMakeLists.txt ---- /home/romain/duckstation/src/duckstation-nogui/CMakeLists.txt 2021-02-13 00:29:48.901297765 +0100 -+++ ./src/duckstation-nogui/CMakeLists.txt 2021-02-13 00:56:19.913224314 +0100 -@@ -29,6 +29,10 @@ - target_compile_definitions(duckstation-nogui PRIVATE "-DUSE_LIBEVDEV=1") - target_include_directories(duckstation-nogui PRIVATE ${LIBEVDEV_INCLUDE_DIRS}) - target_link_libraries(duckstation-nogui PRIVATE ${LIBEVDEV_LIBRARIES}) -+if (USE_MALI) -+ target_link_libraries(duckstation-nogui PRIVATE ${MALI_LIBRARY}) -+endif() -+ - endif() - - if(WIN32) diff --git a/packages/games/emulators/duckstationsa/patches/RG552/002-path-getdirectory.patch b/packages/games/emulators/duckstationsa/patches/RG552/002-path-getdirectory.patch deleted file mode 100644 index 8e99340b8..000000000 --- a/packages/games/emulators/duckstationsa/patches/RG552/002-path-getdirectory.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/src/common/file_system.cpp b/src/common/file_system.cpp -index ceb2f08..0fa5a04 100644 ---- a/src/common/file_system.cpp -+++ b/src/common/file_system.cpp -@@ -683,6 +683,9 @@ std::string GetDisplayNameFromPath(const std::string_view& path) - - std::string_view GetPathDirectory(const std::string_view& path) - { -+ -+ return "/storage/.config/duckstation"; -+ - std::string::size_type pos = GetLastSeperatorPosition(path, false); - if (pos == std::string_view::npos) - return {}; diff --git a/packages/games/emulators/duckstationsa/patches/RG552/003-path-language.patch b/packages/games/emulators/duckstationsa/patches/RG552/003-path-language.patch deleted file mode 100644 index 83c814630..000000000 --- a/packages/games/emulators/duckstationsa/patches/RG552/003-path-language.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/duckstation-qt/qthostinterface.cpp b/src/duckstation-qt/qthostinterface.cpp -index 8052278..4f338d7 100644 ---- a/src/duckstation-qt/qthostinterface.cpp -+++ b/src/duckstation-qt/qthostinterface.cpp -@@ -137,7 +137,7 @@ void QtHostInterface::installTranslator() - const QString language(QString::fromStdString(GetStringSettingValue("Main", "Language", "en"))); - - // install the base qt translation first -- const QString base_dir(QStringLiteral("%1/translations").arg(qApp->applicationDirPath())); -+ const QString base_dir(QStringLiteral("%1/translations").arg("/storage/.config/duckstation")); - const QString base_path(QStringLiteral("%1/qtbase_%2.qm").arg(base_dir).arg(language)); - if (QFile::exists(base_path)) - { diff --git a/packages/games/emulators/duckstationsa/patches/RG552/004-add-rotation.patch b/packages/games/emulators/duckstationsa/patches/RG552/004-add-rotation.patch deleted file mode 100644 index ea2506f40..000000000 --- a/packages/games/emulators/duckstationsa/patches/RG552/004-add-rotation.patch +++ /dev/null @@ -1,389 +0,0 @@ -diff --git a/src/common/gl/program.h b/src/common/gl/program.h -index d877a462..3fa9a7a7 100644 ---- a/src/common/gl/program.h -+++ b/src/common/gl/program.h -@@ -40,6 +40,7 @@ public: - void Destroy(); - - int RegisterUniform(const char* name); -+ GLint GetUniformLocation(int index) const { return m_uniform_locations[index]; } - void Uniform1ui(int index, u32 x) const; - void Uniform2ui(int index, u32 x, u32 y) const; - void Uniform3ui(int index, u32 x, u32 y, u32 z) const; -@@ -97,6 +98,6 @@ private: - GLuint m_fragment_shader_id = 0; - - std::vector m_uniform_locations; --}; -+}; // namespace GL - - } // namespace GL -\ No newline at end of file -diff --git a/src/core/host_display.cpp b/src/core/host_display.cpp -index d0469fd3..790be30f 100644 ---- a/src/core/host_display.cpp -+++ b/src/core/host_display.cpp -@@ -103,6 +103,11 @@ bool HostDisplay::GetHostRefreshRate(float* refresh_rate) - return WindowInfo::QueryRefreshRateForWindow(m_window_info, refresh_rate); - } - -+bool HostDisplay::SetDisplayRotation(Rotation rotation) -+{ -+ return false; -+} -+ - void HostDisplay::SetSoftwareCursor(std::unique_ptr texture, float scale /*= 1.0f*/) - { - m_cursor_texture = std::move(texture); -diff --git a/src/core/host_display.h b/src/core/host_display.h -index ea01f846..b5a3563e 100644 ---- a/src/core/host_display.h -+++ b/src/core/host_display.h -@@ -60,6 +60,15 @@ public: - std::vector fullscreen_modes; - }; - -+ enum class Rotation -+ { -+ None, -+ R90Degrees, -+ R180Degrees, -+ R270Degrees, -+ Count -+ }; -+ - virtual ~HostDisplay(); - - ALWAYS_INLINE const WindowInfo& GetWindowInfo() const { return m_window_info; } -@@ -201,6 +210,7 @@ public: - virtual bool SetDisplayPixels(HostDisplayPixelFormat format, u32 width, u32 height, const void* buffer, u32 pitch); - - virtual bool GetHostRefreshRate(float* refresh_rate); -+ virtual bool SetDisplayRotation(Rotation rotation); - - void SetDisplayLinearFiltering(bool enabled) { m_display_linear_filtering = enabled; } - void SetDisplayTopMargin(s32 height) { m_display_top_margin = height; } -@@ -283,6 +293,7 @@ protected: - - s32 m_display_top_margin = 0; - Alignment m_display_alignment = Alignment::Center; -+ Rotation m_display_rotation = Rotation::None; - - std::unique_ptr m_cursor_texture; - float m_cursor_texture_scale = 1.0f; -diff --git a/src/core/settings.cpp b/src/core/settings.cpp -index 833b6b9f..4381b848 100644 ---- a/src/core/settings.cpp -+++ b/src/core/settings.cpp -@@ -230,6 +230,7 @@ void Settings::Load(SettingsInterface& si) - display_line_start_offset = static_cast(si.GetIntValue("Display", "LineStartOffset", 0)); - display_line_end_offset = static_cast(si.GetIntValue("Display", "LineEndOffset", 0)); - display_linear_filtering = si.GetBoolValue("Display", "LinearFiltering", true); -+ display_rotate = static_cast(si.GetIntValue("Display", "Rotate", 0)); - display_integer_scaling = si.GetBoolValue("Display", "IntegerScaling", false); - display_stretch = si.GetBoolValue("Display", "Stretch", false); - display_post_processing = si.GetBoolValue("Display", "PostProcessing", false); -diff --git a/src/core/settings.h b/src/core/settings.h -index e837f8b2..199ecac7 100644 ---- a/src/core/settings.h -+++ b/src/core/settings.h -@@ -136,6 +136,7 @@ struct Settings - s16 display_active_end_offset = 0; - s8 display_line_start_offset = 0; - s8 display_line_end_offset = 0; -+ s8 display_rotate = 0; - bool display_force_4_3_for_24bit = false; - bool gpu_24bit_chroma_smoothing = false; - bool display_linear_filtering = true; -diff --git a/src/duckstation-nogui/nogui_host_interface.cpp b/src/duckstation-nogui/nogui_host_interface.cpp -index 638af4ea..6cef355a 100644 ---- a/src/duckstation-nogui/nogui_host_interface.cpp -+++ b/src/duckstation-nogui/nogui_host_interface.cpp -@@ -136,6 +136,15 @@ bool NoGUIHostInterface::CreateDisplay(bool fullscreen) - return false; - } - -+ switch(g_settings.display_rotate & 3) -+ { -+ case 1: m_display->SetDisplayRotation(HostDisplay::Rotation::R90Degrees); -+ case 2: m_display->SetDisplayRotation(HostDisplay::Rotation::R180Degrees); -+ case 3: m_display->SetDisplayRotation(HostDisplay::Rotation::R270Degrees); -+ case 0: -+ default: break; -+ } -+ - if (fullscreen) - SetFullscreen(true); - -diff --git a/src/frontend-common/opengl_host_display.cpp b/src/frontend-common/opengl_host_display.cpp -index 7092b455..ff1c7939 100644 ---- a/src/frontend-common/opengl_host_display.cpp -+++ b/src/frontend-common/opengl_host_display.cpp -@@ -203,6 +203,77 @@ void OpenGLHostDisplay::UpdateDisplayPixelsTextureFilter() - m_display_texture_is_linear_filtered = m_display_linear_filtering; - } - -+bool OpenGLHostDisplay::SetDisplayRotation(Rotation rotation) -+{ -+ m_display_rotation = rotation; -+ UpdateDisplayRotationFramebuffer(); -+ return true; -+} -+ -+void OpenGLHostDisplay::UpdateDisplayRotationFramebuffer() -+{ -+ m_window_info.surface_width = m_gl_context->GetSurfaceWidth(); -+ m_window_info.surface_height = m_gl_context->GetSurfaceHeight(); -+ -+ if (m_display_rotation_framebuffer_fbo != 0) -+ { -+ glDeleteFramebuffers(1, &m_display_rotation_framebuffer_fbo); -+ m_display_rotation_framebuffer_fbo = 0; -+ glDeleteTextures(1, &m_display_rotation_framebuffer_texture); -+ m_display_rotation_framebuffer_texture = 0; -+ } -+ -+ if (m_display_rotation != Rotation::None) -+ { -+ if (m_display_rotation_framebuffer_texture == 0) -+ glGenTextures(1, &m_display_rotation_framebuffer_texture); -+ if (m_display_rotation_framebuffer_fbo == 0) -+ glGenFramebuffers(1, &m_display_rotation_framebuffer_fbo); -+ -+ if (m_display_rotation == Rotation::R90Degrees || m_display_rotation == Rotation::R270Degrees) -+ std::swap(m_window_info.surface_width, m_window_info.surface_height); -+ -+ GLint old_texture; -+ glGetIntegerv(GL_TEXTURE_BINDING_2D, &old_texture); -+ -+ glBindTexture(GL_TEXTURE_2D, m_display_rotation_framebuffer_texture); -+ -+ if (GLAD_GL_ARB_texture_storage || GLAD_GL_ES_VERSION_3_1) -+ { -+ glTexStorage2D(GL_TEXTURE_2D, 1, GL_RGBA8, m_window_info.surface_width, m_window_info.surface_height); -+ } -+ else -+ { -+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, m_window_info.surface_width, m_window_info.surface_height, 0, GL_RGBA, -+ GL_UNSIGNED_BYTE, nullptr); -+ } -+ -+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); -+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); -+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); -+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); -+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 1); -+ -+ const GLenum framebuffer_binding = m_use_gles2_draw_path ? GL_FRAMEBUFFER : GL_DRAW_FRAMEBUFFER; -+ GLint old_framebuffer; -+ glGetIntegerv(m_use_gles2_draw_path ? GL_FRAMEBUFFER_BINDING : GL_DRAW_FRAMEBUFFER_BINDING, &old_framebuffer); -+ -+ glBindFramebuffer(framebuffer_binding, m_display_rotation_framebuffer_fbo); -+ glFramebufferTexture2D(framebuffer_binding, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, -+ m_display_rotation_framebuffer_texture, 0); -+ Assert(glCheckFramebufferStatus(framebuffer_binding) == GL_FRAMEBUFFER_COMPLETE); -+ -+ glBindFramebuffer(framebuffer_binding, old_framebuffer); -+ glBindTexture(GL_TEXTURE_2D, old_texture); -+ } -+ -+ if (ImGui::GetCurrentContext()) -+ { -+ ImGui::GetIO().DisplaySize = -+ ImVec2(static_cast(m_window_info.surface_width), static_cast(m_window_info.surface_height)); -+ } -+} -+ - bool OpenGLHostDisplay::SupportsDisplayPixelFormat(HostDisplayPixelFormat format) const - { - const auto [gl_internal_format, gl_format, gl_type] = GetPixelFormatMapping(m_gl_context->IsGLES(), format); -@@ -435,7 +506,7 @@ bool OpenGLHostDisplay::InitializeRenderDevice(std::string_view shader_cache_dir - glDebugMessageCallback(GLDebugCallback, nullptr); - - glEnable(GL_DEBUG_OUTPUT); -- // glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS); -+ glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS); - } - - if (!CreateResources()) -@@ -484,7 +555,17 @@ bool OpenGLHostDisplay::ChangeRenderWindow(const WindowInfo& new_wi) - return false; - } - -- m_window_info = m_gl_context->GetWindowInfo(); -+ m_window_info = new_wi; -+ m_window_info.surface_width = m_gl_context->GetSurfaceWidth(); -+ m_window_info.surface_height = m_gl_context->GetSurfaceHeight(); -+ -+ if (ImGui::GetCurrentContext()) -+ { -+ ImGui::GetIO().DisplaySize.x = static_cast(m_window_info.surface_width); -+ ImGui::GetIO().DisplaySize.y = static_cast(m_window_info.surface_height); -+ } -+ -+ UpdateDisplayRotationFramebuffer(); - return true; - } - -@@ -494,7 +575,16 @@ void OpenGLHostDisplay::ResizeRenderWindow(s32 new_window_width, s32 new_window_ - return; - - m_gl_context->ResizeSurface(static_cast(new_window_width), static_cast(new_window_height)); -- m_window_info = m_gl_context->GetWindowInfo(); -+ m_window_info.surface_width = m_gl_context->GetSurfaceWidth(); -+ m_window_info.surface_height = m_gl_context->GetSurfaceHeight(); -+ -+ if (ImGui::GetCurrentContext()) -+ { -+ ImGui::GetIO().DisplaySize.x = static_cast(m_window_info.surface_width); -+ ImGui::GetIO().DisplaySize.y = static_cast(m_window_info.surface_height); -+ } -+ -+ UpdateDisplayRotationFramebuffer(); - } - - bool OpenGLHostDisplay::SupportsFullscreen() const -@@ -560,12 +650,17 @@ bool OpenGLHostDisplay::CreateResources() - { - static constexpr char fullscreen_quad_vertex_shader[] = R"( - uniform vec4 u_src_rect; -+uniform mat2 u_rotation_matrix; - out vec2 v_tex0; - - void main() - { - vec2 pos = vec2(float((gl_VertexID << 1) & 2), float(gl_VertexID & 2)); -- v_tex0 = u_src_rect.xy + pos * u_src_rect.zw; -+ v_tex0 = (u_src_rect.xy + pos * u_src_rect.zw); -+ -+ vec2 center = vec2(0.5, 0.5); -+ v_tex0 = center + (u_rotation_matrix * (v_tex0 - center)); -+ - gl_Position = vec4(pos * vec2(2.0f, -2.0f) + vec2(-1.0f, 1.0f), 0.0f, 1.0f); - } - )"; -@@ -617,12 +712,14 @@ void main() - - m_display_program.Bind(); - m_display_program.RegisterUniform("u_src_rect"); -+ m_display_program.RegisterUniform("u_rotation_matrix"); - m_display_program.RegisterUniform("samp0"); -- m_display_program.Uniform1i(1, 0); -+ m_display_program.Uniform1i(2, 0); - m_cursor_program.Bind(); - m_cursor_program.RegisterUniform("u_src_rect"); -+ m_cursor_program.RegisterUniform("u_rotation_matrix"); - m_cursor_program.RegisterUniform("samp0"); -- m_cursor_program.Uniform1i(1, 0); -+ m_cursor_program.Uniform1i(2, 0); - - glGenVertexArrays(1, &m_display_vao); - -@@ -749,7 +846,7 @@ bool OpenGLHostDisplay::Render() - } - - glDisable(GL_SCISSOR_TEST); -- glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); -+ glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_display_rotation_framebuffer_fbo); - glClearColor(0.0f, 0.0f, 0.0f, 1.0f); - glClear(GL_COLOR_BUFFER_BIT); - -@@ -760,6 +857,12 @@ bool OpenGLHostDisplay::Render() - - RenderSoftwareCursor(); - -+ if (m_display_rotation_framebuffer_fbo != 0) -+ { -+ glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); -+ RenderRotatedFramebuffer(); -+ } -+ - m_gl_context->SwapBuffers(); - return true; - } -@@ -833,6 +936,13 @@ void OpenGLHostDisplay::RenderDisplay() - m_display_texture_view_width, m_display_texture_view_height, m_display_linear_filtering); - } - -+static const std::array, static_cast(HostDisplay::Rotation::Count)> s_rotation_matrices = {{ -+ {{1.0f, 0.0f, 0.0f, 1.0f}}, -+ {{0.0f, 1.0f, 1.0f, 0.0f}}, -+ {{-1.0f, 0.0f, 0.0f, 1.0f}}, -+ {{0.0f, -1.0f, -1.0f, 0.0f}}, -+}}; -+ - static void DrawFullscreenQuadES2(s32 tex_view_x, s32 tex_view_y, s32 tex_view_width, s32 tex_view_height, - s32 tex_width, s32 tex_height) - { -@@ -879,6 +989,8 @@ void OpenGLHostDisplay::RenderDisplay(s32 left, s32 bottom, s32 width, s32 heigh - (static_cast(texture_view_y) + (position_adjust * flip_adjust)) / static_cast(texture_height), - (static_cast(texture_view_width) - size_adjust) / static_cast(texture_width), - (static_cast(texture_view_height) - (size_adjust * flip_adjust)) / static_cast(texture_height)); -+ glUniformMatrix2fv(m_display_program.GetUniformLocation(1), 1, GL_TRUE, -+ s_rotation_matrices[static_cast(HostDisplay::Rotation::None)].data()); - glBindSampler(0, linear_filter ? m_display_linear_sampler : m_display_nearest_sampler); - glBindVertexArray(m_display_vao); - glDrawArrays(GL_TRIANGLES, 0, 3); -@@ -894,6 +1006,30 @@ void OpenGLHostDisplay::RenderDisplay(s32 left, s32 bottom, s32 width, s32 heigh - } - } - -+void OpenGLHostDisplay::RenderRotatedFramebuffer() -+{ -+ const u32 width = m_gl_context->GetSurfaceWidth(); -+ const u32 height = m_gl_context->GetSurfaceHeight(); -+ -+ glViewport(0, 0, width, height); -+ glDisable(GL_BLEND); -+ glDisable(GL_CULL_FACE); -+ glDisable(GL_DEPTH_TEST); -+ glDisable(GL_SCISSOR_TEST); -+ glDepthMask(GL_FALSE); -+ -+ glClear(GL_COLOR_BUFFER_BIT); -+ -+ m_display_program.Bind(); -+ m_display_program.Uniform4f(0, 0.0f, 0.0f, 1.0f, 1.0f); -+ glUniformMatrix2fv(m_display_program.GetUniformLocation(1), 1, GL_TRUE, -+ s_rotation_matrices[static_cast(m_display_rotation)].data()); -+ glBindTexture(GL_TEXTURE_2D, m_display_rotation_framebuffer_texture); -+ -+ glBindVertexArray(m_display_vao); -+ glDrawArrays(GL_TRIANGLES, 0, 3); -+} -+ - void OpenGLHostDisplay::RenderSoftwareCursor() - { - if (!HasSoftwareCursor()) -diff --git a/src/frontend-common/opengl_host_display.h b/src/frontend-common/opengl_host_display.h -index 23e8d700..585ab4b5 100644 ---- a/src/frontend-common/opengl_host_display.h -+++ b/src/frontend-common/opengl_host_display.h -@@ -51,6 +51,8 @@ public: - - bool SetPostProcessingChain(const std::string_view& config) override; - -+ bool SetDisplayRotation(Rotation rotation) override; -+ - std::unique_ptr CreateTexture(u32 width, u32 height, u32 layers, u32 levels, u32 samples, - HostDisplayPixelFormat format, const void* data, u32 data_stride, - bool dynamic = false) override; -@@ -83,6 +85,8 @@ protected: - - void BindDisplayPixelsTexture(); - void UpdateDisplayPixelsTextureFilter(); -+ void UpdateDisplayRotationFramebuffer(); -+ void RenderRotatedFramebuffer(); - - void RenderDisplay(); - void RenderImGui(); -@@ -121,6 +125,9 @@ protected: - u32 m_display_pixels_texture_pbo_map_size = 0; - std::vector m_gles_pixels_repack_buffer; - -+ GLuint m_display_rotation_framebuffer_texture = 0; -+ GLuint m_display_rotation_framebuffer_fbo = 0; -+ - PostProcessingChain m_post_processing_chain; - GL::Texture m_post_processing_input_texture; - std::unique_ptr m_post_processing_ubo; diff --git a/packages/games/emulators/duckstationsa/patches/RG552/005-add-hotkeys.patch b/packages/games/emulators/duckstationsa/patches/RG552/005-add-hotkeys.patch deleted file mode 100644 index 4ad1c30ac..000000000 --- a/packages/games/emulators/duckstationsa/patches/RG552/005-add-hotkeys.patch +++ /dev/null @@ -1,110 +0,0 @@ -diff --git a/src/frontend-common/sdl_controller_interface.cpp b/src/frontend-common/sdl_controller_interface.cpp -index 20e81daf..1deac2ce 100644 ---- a/src/frontend-common/sdl_controller_interface.cpp -+++ b/src/frontend-common/sdl_controller_interface.cpp -@@ -6,6 +6,7 @@ - #include "core/host_interface.h" - #include "core/system.h" - #include "sdl_initializer.h" -+#include "fullscreen_ui.h" - #include - #include - Log_SetChannel(SDLControllerInterface); -@@ -93,6 +94,8 @@ void SDLControllerInterface::PollEvents() - - bool SDLControllerInterface::ProcessSDLEvent(const SDL_Event* event) - { -+ if (m_slots < 0) { m_host_interface->AddOSDMessage("State Slot set to #0", 5.f); m_slots = 0; } -+ - switch (event->type) - { - case SDL_CONTROLLERDEVICEADDED: -@@ -204,6 +207,7 @@ bool SDLControllerInterface::OpenGameController(int index) - cd.joystick_id = joystick_id; - cd.haptic_left_right_effect = -1; - cd.game_controller = gcontroller; -+ cd.hotkey_down = false; - - #if SDL_VERSION_ATLEAST(2, 0, 9) - cd.use_game_controller_rumble = (SDL_GameControllerRumble(gcontroller, 0, 0, 0) == 0); -@@ -712,15 +716,59 @@ bool SDLControllerInterface::HandleControllerButtonEvent(const SDL_ControllerBut - m_host_interface->SetControllerNavigationButtonState(nav_button_mapping[ev->button], pressed); - } - -+ if (ev->button >= MAX_NUM_BUTTONS) -+ return false; -+ -+ //------ Mimic Retroarch -+ if (ev->button == SDL_CONTROLLER_BUTTON_GUIDE || ev->button == SDL_CONTROLLER_BUTTON_BACK) it->hotkey_down = pressed; -+ else if (it->hotkey_down) -+ { -+ if (!pressed) -+ switch(ev->button) -+ { -+ case SDL_CONTROLLER_BUTTON_A : m_host_interface->SaveScreenshot(); break; -+ case SDL_CONTROLLER_BUTTON_B : m_host_interface->ResetSystem(); break; -+ case SDL_CONTROLLER_BUTTON_X : if (FullscreenUI::HasActiveWindow()) FullscreenUI::CloseQuickMenu(); else FullscreenUI::OpenQuickMenu(); break; -+ case SDL_CONTROLLER_BUTTON_Y : m_host_interface->ToggleWidescreen(); break; -+ case SDL_CONTROLLER_BUTTON_START : -+ case SDL_CONTROLLER_BUTTON_LEFTSTICK : -+ case SDL_CONTROLLER_BUTTON_RIGHTSTICK : break; -+ case SDL_CONTROLLER_BUTTON_LEFTSHOULDER : m_host_interface->LoadState(false, m_slots); break; -+ case SDL_CONTROLLER_BUTTON_RIGHTSHOULDER: m_host_interface->SaveState(false, m_slots); break; -+ case SDL_CONTROLLER_BUTTON_DPAD_UP : m_slots = ++m_slots % 10; m_host_interface->AddOSDMessage(std::string("State Slot set to #") + (char)(0x30 + m_slots), 5.f); break; -+ case SDL_CONTROLLER_BUTTON_DPAD_DOWN : m_slots = (m_slots + 9) % 10; m_host_interface->AddOSDMessage(std::string("State Slot set to #") + (char)(0x30 + m_slots), 5.f); break; -+ case SDL_CONTROLLER_BUTTON_DPAD_LEFT : m_host_interface->SetRewindState(!System::IsRewinding()); break; -+ case SDL_CONTROLLER_BUTTON_DPAD_RIGHT : m_host_interface->SetFastForwardEnabled(!m_host_interface->IsFastForwardEnabled()); break; -+ default: break; -+ } -+ else -+ switch(ev->button) -+ { -+ case SDL_CONTROLLER_BUTTON_START : m_host_interface->RequestExit(); break; -+ case SDL_CONTROLLER_BUTTON_A : -+ case SDL_CONTROLLER_BUTTON_B : -+ case SDL_CONTROLLER_BUTTON_X : -+ case SDL_CONTROLLER_BUTTON_Y : -+ case SDL_CONTROLLER_BUTTON_LEFTSTICK : -+ case SDL_CONTROLLER_BUTTON_RIGHTSTICK : -+ case SDL_CONTROLLER_BUTTON_LEFTSHOULDER : -+ case SDL_CONTROLLER_BUTTON_RIGHTSHOULDER: -+ case SDL_CONTROLLER_BUTTON_DPAD_UP : -+ case SDL_CONTROLLER_BUTTON_DPAD_DOWN : -+ case SDL_CONTROLLER_BUTTON_DPAD_LEFT : -+ case SDL_CONTROLLER_BUTTON_DPAD_RIGHT : -+ default: break; -+ } -+ -+ return true; -+ } -+ - if (m_host_interface->IsControllerNavigationActive()) - { - // UI consumed the event - return true; - } - -- if (ev->button >= MAX_NUM_BUTTONS) -- return false; -- - const ButtonCallback& cb = it->button_mapping[ev->button]; - if (cb) - { -diff --git a/src/frontend-common/sdl_controller_interface.h b/src/frontend-common/sdl_controller_interface.h -index 06963a5c..ffc2ffac 100644 ---- a/src/frontend-common/sdl_controller_interface.h -+++ b/src/frontend-common/sdl_controller_interface.h -@@ -57,6 +57,7 @@ private: - int joystick_id; - int player_id; - bool use_game_controller_rumble; -+ bool hotkey_down; - - float deadzone = 0.25f; - -@@ -93,4 +94,5 @@ private: - Hook::Callback m_event_intercept_callback; - - bool m_sdl_subsystem_initialized = false; -+ int m_slots = -1; - }; diff --git a/packages/games/emulators/duckstationsa/patches/RG552/006-maxbuttons.patch b/packages/games/emulators/duckstationsa/patches/RG552/006-maxbuttons.patch deleted file mode 100644 index 7d6082305..000000000 --- a/packages/games/emulators/duckstationsa/patches/RG552/006-maxbuttons.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/frontend-common/controller_interface.h b/src/frontend-common/controller_interface.h -index f97d0f6..563b5f4 100644 ---- a/src/frontend-common/sdl_controller_interface.h -+++ b/src/frontend-common/sdl_controller_interface.h -@@ -46,7 +46,7 @@ - enum : int - { - MAX_NUM_AXES = 7, -- MAX_NUM_BUTTONS = 16, -+ MAX_NUM_BUTTONS = 256, - }; - - struct ControllerData diff --git a/packages/games/emulators/duckstationsa/patches/RG503/000-fix-cmake.patch b/packages/games/emulators/duckstationsa/patches/legacy/000-fix-cmake.patch similarity index 100% rename from packages/games/emulators/duckstationsa/patches/RG503/000-fix-cmake.patch rename to packages/games/emulators/duckstationsa/patches/legacy/000-fix-cmake.patch diff --git a/packages/games/emulators/duckstationsa/patches/RG503/001-path-program.patch b/packages/games/emulators/duckstationsa/patches/legacy/001-path-program.patch similarity index 100% rename from packages/games/emulators/duckstationsa/patches/RG503/001-path-program.patch rename to packages/games/emulators/duckstationsa/patches/legacy/001-path-program.patch diff --git a/packages/games/emulators/duckstationsa/patches/RG503/002-path-getdirectory.patch b/packages/games/emulators/duckstationsa/patches/legacy/002-path-getdirectory.patch similarity index 100% rename from packages/games/emulators/duckstationsa/patches/RG503/002-path-getdirectory.patch rename to packages/games/emulators/duckstationsa/patches/legacy/002-path-getdirectory.patch diff --git a/packages/games/emulators/duckstationsa/patches/RG503/003-path-language.patch b/packages/games/emulators/duckstationsa/patches/legacy/003-path-language.patch similarity index 100% rename from packages/games/emulators/duckstationsa/patches/RG503/003-path-language.patch rename to packages/games/emulators/duckstationsa/patches/legacy/003-path-language.patch diff --git a/packages/games/emulators/duckstationsa/patches/RG503/004-add-rotation.patch b/packages/games/emulators/duckstationsa/patches/legacy/004-add-rotation.patch similarity index 100% rename from packages/games/emulators/duckstationsa/patches/RG503/004-add-rotation.patch rename to packages/games/emulators/duckstationsa/patches/legacy/004-add-rotation.patch diff --git a/packages/games/emulators/duckstationsa/patches/RG503/005-add-hotkeys.patch b/packages/games/emulators/duckstationsa/patches/legacy/005-add-hotkeys.patch similarity index 100% rename from packages/games/emulators/duckstationsa/patches/RG503/005-add-hotkeys.patch rename to packages/games/emulators/duckstationsa/patches/legacy/005-add-hotkeys.patch diff --git a/packages/games/emulators/duckstationsa/patches/RG503/006-maxbuttons.patch b/packages/games/emulators/duckstationsa/patches/legacy/006-maxbuttons.patch similarity index 100% rename from packages/games/emulators/duckstationsa/patches/RG503/006-maxbuttons.patch rename to packages/games/emulators/duckstationsa/patches/legacy/006-maxbuttons.patch diff --git a/packages/games/emulators/duckstationsa/patches/duckstationsa-patch-007-inhibit-vulkan.patch b/packages/games/emulators/duckstationsa/patches/legacy/007-inhibit-vulkan.patch similarity index 100% rename from packages/games/emulators/duckstationsa/patches/duckstationsa-patch-007-inhibit-vulkan.patch rename to packages/games/emulators/duckstationsa/patches/legacy/007-inhibit-vulkan.patch diff --git a/packages/games/emulators/duckstationsa/patches/RG552/001-path-program.patch b/packages/games/emulators/duckstationsa/patches/new/001-path-program.patch similarity index 58% rename from packages/games/emulators/duckstationsa/patches/RG552/001-path-program.patch rename to packages/games/emulators/duckstationsa/patches/new/001-path-program.patch index 8ba945eba..38b9e26b1 100644 --- a/packages/games/emulators/duckstationsa/patches/RG552/001-path-program.patch +++ b/packages/games/emulators/duckstationsa/patches/new/001-path-program.patch @@ -1,19 +1,19 @@ diff --git a/src/common/file_system.cpp b/src/common/file_system.cpp -index 6a24732..a287703 100644 +index b22db26e..092fa9ee 100644 --- a/src/common/file_system.cpp +++ b/src/common/file_system.cpp -@@ -1179,6 +1179,8 @@ bool FileSystem::DeleteDirectory(const char* Path, bool Recursive) +@@ -1308,6 +1308,8 @@ bool FileSystem::DeleteDirectory(const char* path) - std::string GetProgramPath() + std::string FileSystem::GetProgramPath() { + return "/storage/.config/duckstation"; + std::wstring buffer; buffer.resize(MAX_PATH); -@@ -1549,6 +1551,8 @@ bool DeleteDirectory(const char* Path, bool Recursive) +@@ -1789,6 +1791,8 @@ bool FileSystem::DeleteDirectory(const char* path) - std::string GetProgramPath() + std::string FileSystem::GetProgramPath() { + return "/storage/.config/duckstation"; + diff --git a/packages/games/emulators/duckstationsa/patches/new/002-path-getdirectory.patch b/packages/games/emulators/duckstationsa/patches/new/002-path-getdirectory.patch new file mode 100755 index 000000000..3452853d2 --- /dev/null +++ b/packages/games/emulators/duckstationsa/patches/new/002-path-getdirectory.patch @@ -0,0 +1,14 @@ +diff --git a/src/common/file_system.cpp b/src/common/file_system.cpp +index b22db26e..ad856d93 100644 +--- a/src/common/file_system.cpp ++++ b/src/common/file_system.cpp +@@ -315,6 +315,9 @@ std::string FileSystem::GetDisplayNameFromPath(const std::string_view& path) + + std::string_view Path::GetDirectory(const std::string_view& path) + { ++ ++return "/storage/.config/duckstation"; ++ + const std::string::size_type pos = GetLastSeperatorPosition(path, false); + if (pos == std::string_view::npos) + return {}; diff --git a/packages/games/emulators/duckstationsa/patches/new/003-default-to-fullscreen.patch b/packages/games/emulators/duckstationsa/patches/new/003-default-to-fullscreen.patch new file mode 100644 index 000000000..99df30c3f --- /dev/null +++ b/packages/games/emulators/duckstationsa/patches/new/003-default-to-fullscreen.patch @@ -0,0 +1,33 @@ +diff --git a/src/frontend-common/fullscreen_ui.cpp b/src/frontend-common/fullscreen_ui.cpp +index ce53e69f..fc0b24d5 100644 +--- a/src/frontend-common/fullscreen_ui.cpp ++++ b/src/frontend-common/fullscreen_ui.cpp +@@ -244,6 +244,7 @@ static void DoChangeDiscFromFile(); + static void DoChangeDisc(); + static void DoRequestExit(); + static void DoToggleFullscreen(); ++static void EnableDoToggleFullscreen(); + static void DoCheatsMenu(); + static void DoToggleAnalogMode(); + +@@ -1038,6 +1039,11 @@ void FullscreenUI::DoToggleFullscreen() + Host::RunOnCPUThread([]() { Host::SetFullscreen(!Host::IsFullscreen()); }); + } + ++void FullscreenUI::EnableDoToggleFullscreen() ++{ ++ Host::SetFullscreen(true); ++} ++ + ////////////////////////////////////////////////////////////////////////// + // Landing Window + ////////////////////////////////////////////////////////////////////////// +@@ -1050,6 +1056,8 @@ void FullscreenUI::SwitchToLanding() + + void FullscreenUI::DrawLandingWindow() + { ++ EnableDoToggleFullscreen(); ++ + BeginFullscreenColumns(nullptr, 0.0f, true); + + if (BeginFullscreenColumnWindow(0.0f, -710.0f, "logo", UIPrimaryDarkColor)) diff --git a/packages/games/emulators/duckstationsa/scripts/duckstation.sh b/packages/games/emulators/duckstationsa/scripts/start_duckstation.sh similarity index 86% rename from packages/games/emulators/duckstationsa/scripts/duckstation.sh rename to packages/games/emulators/duckstationsa/scripts/start_duckstation.sh index d6680afa1..75767197f 100644 --- a/packages/games/emulators/duckstationsa/scripts/duckstation.sh +++ b/packages/games/emulators/duckstationsa/scripts/start_duckstation.sh @@ -21,5 +21,6 @@ fi ln -sfv "/storage/roms/savestates/psx" "/storage/.config/duckstation/savestates" cp -rf /storage/.config/SDL-GameControllerDB/gamecontrollerdb.txt /storage/.config/duckstation/database/gamecontrollerdb.txt +cp -rf /storage/.config/SDL-GameControllerDB/gamecontrollerdb.txt /storage/.config/duckstation/resources/gamecontrollerdb.txt duckstation-nogui -fullscreen -settings "/storage/.config/duckstation/settings.ini" -- "${1}" > /dev/null 2>&1 diff --git a/packages/games/emulators/ecwolf/sources/start_ecwolf.sh b/packages/games/emulators/ecwolf/sources/start_ecwolf.sh index 9049b80d9..db53cd9f3 100644 --- a/packages/games/emulators/ecwolf/sources/start_ecwolf.sh +++ b/packages/games/emulators/ecwolf/sources/start_ecwolf.sh @@ -8,17 +8,18 @@ . /etc/os-release EE_DEVICE=${HW_DEVICE} +RUN_DIR="/storage/roms/ecwolf" CONFIG_DIR="/storage/.config/game/ecwolf" CONFIG_FILE="${CONFIG_DIR}/ecwolf.cfg" +PK3_FILE="${CONFIG_DIR}/ecwolf.pk3" SAVE_DIR="/storage/roms/gamedata/ecwolf" +LEGACY=true -if [ ! -L "/storage/.config/ecwolf" ] -then +if [ ! -L "/storage/.config/ecwolf" ]; then ln -sf "/storage/.config/game/ecwolf" "/storage/.config/ecwolf" fi -if [ ! -f "/storage/.config/game/ecwolf/ecwolf.cfg" ] -then +if [ ! -f "/storage/.config/game/ecwolf/ecwolf.cfg" ]; then cp -rf /usr/config/game/ecwolf/ecwolf.cfg /storage/.config/game/ecwolf/ fi @@ -27,34 +28,82 @@ mkdir -p ${SAVE_DIR} params=" --config ${CONFIG_FILE} --savedir ${SAVE_DIR}" # data can be SD2 SD3 SOD WL6 or N3D and it's passed as the ROM -DATA=${1#*.} +EXT=${1##*.} # If its a mod (extension .ecwolf) read the file and parse the data -if [ ${DATA} == "ecwolf" ]; then +if [ ${EXT} == "ecwolf" ]; then dos2unix "${1}" + + # We don't want to break users that have .ecwolf files that predate the PATH + # option, so we'll track that here so we can handle it by: + # 1. Parsing PK3[_N] keys + # 2. Ignoring MOD and PATH keys + # 3. Running from the config dir + if grep -q "^PATH=" "${1}"; then + LEGACY=false + fi + while IFS== read -r key value; do + if $LEGACY; then + if [ "$key" == "PK3" ]; then + params+=" --file $value" + fi + if [ "$key" == "PK3_1" ]; then + params+=" --file $value" + fi + if [ "$key" == "PK3_2" ]; then + params+=" --file $value" + fi + if [ "$key" == "PK3_3" ]; then + params+=" --file $value" + fi + if [ "$key" == "PK3_4" ]; then + params+=" --file $value" + fi + else + if [ "$key" == "PATH" ]; then + # Unquote path value + temp="${value}" + temp="${temp%\"}" + temp="${temp#\"}" + RUN_DIR+="/$temp" + fi + if [ "$key" == "MOD" ]; then + params+=" --file $value" + fi + fi + if [ "$key" == "DATA" ]; then params+=" --data $value" fi - if [ "$key" == "PK3" ]; then - params+=" --file $value" - fi - if [ "$key" == "PK3_1" ]; then - params+=" --file $value" - fi - if [ "$key" == "PK3_2" ]; then - params+=" --file $value" - fi - if [ "$key" == "PK3_3" ]; then - params+=" --file $value" - fi - if [ "$key" == "PK3_4" ]; then - params+=" --file $value" - fi - done < "${1}" + done <"${1}" else - params+=" --data ${DATA}" + params+=" --data ${EXT}" fi -cd "${CONFIG_DIR}" -/usr/bin/ecwolf ${params} > /var/log/ecwolf.log 2>&1 +if $LEGACY; then + cd "${CONFIG_DIR}" +else + + # There doesn't appear to be a way to tell the engine with command line + # arguments where the ecwolf.pk3 is located -- it just looks in the current + # working directory. To work around this, we'll bind the ecwolf.pk3 file that + # ships with the distribution into the provided game path, if one isn't + # already present. + DST_PK3_FILE="${RUN_DIR}/ecwolf.pk3" + + if [ ! -e "$DST_PK3_FILE" ]; then + do_cleanup() { + umount "$DST_PK3_FILE" &>/dev/null + rm "${DST_PK3_FILE}" + } + + touch "$DST_PK3_FILE" + mount -o ro,bind "$PK3_FILE" "$DST_PK3_FILE" >/dev/null 2>&1 + trap do_cleanup EXIT + fi + + cd "${RUN_DIR}" +fi + +echo ${params} | xargs /usr/bin/ecwolf >/var/log/ecwolf.log 2>&1 diff --git a/packages/games/emulators/flycastsa/package.mk b/packages/games/emulators/flycastsa/package.mk index 1328ae81a..ea49ef90d 100644 --- a/packages/games/emulators/flycastsa/package.mk +++ b/packages/games/emulators/flycastsa/package.mk @@ -4,7 +4,7 @@ # Copyright (C) 2022-present Fewtarius PKG_NAME="flycastsa" -PKG_VERSION="7457db8bba3277dcc9b4ec0c3556847f5082a455" +PKG_VERSION="aa97a6d64fb47d3ce0febaa575b26d975dd916e4" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/flyinghead/flycast" PKG_URL="${PKG_SITE}.git" @@ -22,7 +22,7 @@ if [ "${OPENGLES_SUPPORT}" = yes ]; then PKG_CMAKE_OPTS_TARGET+=" -DUSE_GLES=ON" fi -if [ "${ARCH}" = "x86_64" ] +if [ "${VULKAN_SUPPORT}" = "yes" ] then PKG_DEPENDS_TARGET+=" vulkan-loader vulkan-headers" PKG_CMAKE_OPTS_TARGET+=" -DUSE_VULKAN=ON" diff --git a/packages/games/emulators/gzdoom/config/RG351MP/gzdoom.ini b/packages/games/emulators/gzdoom/config/RG351MP/gzdoom.ini index 7cf5c5cdc..7691b8697 100644 --- a/packages/games/emulators/gzdoom/config/RG351MP/gzdoom.ini +++ b/packages/games/emulators/gzdoom/config/RG351MP/gzdoom.ini @@ -4,40 +4,40 @@ [IWADSearch.Directories] Path=. Path=$DOOMWADDIR -Path=/storage/.config/distribution/gzdoom +Path=/storage/.config/game/gzdoom Path=/storage/roms/doom # These are the directories to search for wads added with the -file # command line parameter, if they cannot be found with the path # as-is. Layout is the same as for IWADSearch.Directories [FileSearch.Directories] -Path=/storage/.config/distribution/gzdoom +Path=/storage/.config/game/gzdoom Path=/storage/roms/doom Path=$DOOMWADDIR # These are the directories to search for soundfonts that let listed in the menu. # Layout is the same as for IWADSearch.Directories [SoundfontSearch.Directories] -Path=/storage/.config/distribution/gzdoom/soundfonts -Path=/storage/.config/distribution/gzdoom/fm_banks +Path=/storage/.config/game/gzdoom/soundfonts +Path=/storage/.config/game/gzdoom/fm_banks # Files to automatically execute when running the corresponding game. # Each file should be on its own line, preceded by Path= [Doom.AutoExec] -Path=/storage/.config/distribution/gzdoom/autoexec.cfg +Path=/storage/.config/game/gzdoom/autoexec.cfg [Heretic.AutoExec] -Path=/storage/.config/distribution/gzdoom/autoexec.cfg +Path=/storage/.config/game/gzdoom/autoexec.cfg [Hexen.AutoExec] -Path=/storage/.config/distribution/gzdoom/autoexec.cfg +Path=/storage/.config/game/gzdoom/autoexec.cfg [Strife.AutoExec] -Path=/storage/.config/distribution/gzdoom/autoexec.cfg +Path=/storage/.config/game/gzdoom/autoexec.cfg [Chex.AutoExec] -Path=/storage/.config/distribution/gzdoom/autoexec.cfg +Path=/storage/.config/game/gzdoom/autoexec.cfg # WAD files to always load. These are loaded after the IWAD but before # any files added with -file. Place each file on its own line, preceded diff --git a/packages/games/emulators/gzdoom/config/RG351P/gzdoom.ini b/packages/games/emulators/gzdoom/config/RG351P/gzdoom.ini index 7cf5c5cdc..7691b8697 100644 --- a/packages/games/emulators/gzdoom/config/RG351P/gzdoom.ini +++ b/packages/games/emulators/gzdoom/config/RG351P/gzdoom.ini @@ -4,40 +4,40 @@ [IWADSearch.Directories] Path=. Path=$DOOMWADDIR -Path=/storage/.config/distribution/gzdoom +Path=/storage/.config/game/gzdoom Path=/storage/roms/doom # These are the directories to search for wads added with the -file # command line parameter, if they cannot be found with the path # as-is. Layout is the same as for IWADSearch.Directories [FileSearch.Directories] -Path=/storage/.config/distribution/gzdoom +Path=/storage/.config/game/gzdoom Path=/storage/roms/doom Path=$DOOMWADDIR # These are the directories to search for soundfonts that let listed in the menu. # Layout is the same as for IWADSearch.Directories [SoundfontSearch.Directories] -Path=/storage/.config/distribution/gzdoom/soundfonts -Path=/storage/.config/distribution/gzdoom/fm_banks +Path=/storage/.config/game/gzdoom/soundfonts +Path=/storage/.config/game/gzdoom/fm_banks # Files to automatically execute when running the corresponding game. # Each file should be on its own line, preceded by Path= [Doom.AutoExec] -Path=/storage/.config/distribution/gzdoom/autoexec.cfg +Path=/storage/.config/game/gzdoom/autoexec.cfg [Heretic.AutoExec] -Path=/storage/.config/distribution/gzdoom/autoexec.cfg +Path=/storage/.config/game/gzdoom/autoexec.cfg [Hexen.AutoExec] -Path=/storage/.config/distribution/gzdoom/autoexec.cfg +Path=/storage/.config/game/gzdoom/autoexec.cfg [Strife.AutoExec] -Path=/storage/.config/distribution/gzdoom/autoexec.cfg +Path=/storage/.config/game/gzdoom/autoexec.cfg [Chex.AutoExec] -Path=/storage/.config/distribution/gzdoom/autoexec.cfg +Path=/storage/.config/game/gzdoom/autoexec.cfg # WAD files to always load. These are loaded after the IWAD but before # any files added with -file. Place each file on its own line, preceded diff --git a/packages/games/emulators/gzdoom/patches/RG351MP/01-fixes.patch b/packages/games/emulators/gzdoom/patches/RG351MP/01-fixes.patch new file mode 100644 index 000000000..55fef135f --- /dev/null +++ b/packages/games/emulators/gzdoom/patches/RG351MP/01-fixes.patch @@ -0,0 +1,13 @@ +diff --git a/src/common/menu/menu.cpp b/src/common/menu/menu.cpp +index 4532dae1d..c81ec2e9a 100644 +--- a/src/common/menu/menu.cpp ++++ b/src/common/menu/menu.cpp +@@ -702,7 +702,7 @@ bool M_Responder (event_t *ev) + mkey = MKEY_Back; + break; + +- case KEY_JOY4: ++ case KEY_JOY3: + case KEY_PAD_X: + mkey = MKEY_Clear; + break; diff --git a/packages/games/emulators/gzdoom/patches/RG503/01-fixes.patch b/packages/games/emulators/gzdoom/patches/RG503/01-fixes.patch new file mode 100644 index 000000000..27486f965 --- /dev/null +++ b/packages/games/emulators/gzdoom/patches/RG503/01-fixes.patch @@ -0,0 +1,49 @@ +diff --git a/src/common/menu/menu.cpp b/src/common/menu/menu.cpp +index 4532dae1d..8c394dc79 100644 +--- a/src/common/menu/menu.cpp ++++ b/src/common/menu/menu.cpp +@@ -702,7 +702,7 @@ bool M_Responder (event_t *ev) + mkey = MKEY_Back; + break; + +- case KEY_JOY4: ++ case KEY_JOY3: + case KEY_PAD_X: + mkey = MKEY_Clear; + break; +@@ -721,7 +721,7 @@ bool M_Responder (event_t *ev) + case KEY_PAD_LTHUMB_UP: + case KEY_JOYAXIS2MINUS: + case KEY_JOYPOV1_UP: +- case KEY_JOY9: ++ case KEY_JOY14: + mkey = MKEY_Up; + break; + +@@ -729,7 +729,7 @@ bool M_Responder (event_t *ev) + case KEY_PAD_LTHUMB_DOWN: + case KEY_JOYAXIS2PLUS: + case KEY_JOYPOV1_DOWN: +- case KEY_JOY10: ++ case KEY_JOY15: + mkey = MKEY_Down; + break; + +@@ -737,7 +737,7 @@ bool M_Responder (event_t *ev) + case KEY_PAD_LTHUMB_LEFT: + case KEY_JOYAXIS1MINUS: + case KEY_JOYPOV1_LEFT: +- case KEY_JOY11: ++ case KEY_JOY16: + mkey = MKEY_Left; + break; + +@@ -745,7 +745,7 @@ bool M_Responder (event_t *ev) + case KEY_PAD_LTHUMB_RIGHT: + case KEY_JOYAXIS1PLUS: + case KEY_JOYPOV1_RIGHT: +- case KEY_JOY12: ++ case KEY_JOY17: + mkey = MKEY_Right; + break; + } diff --git a/packages/games/emulators/gzdoom/patches/RG552/01-fixes.patch b/packages/games/emulators/gzdoom/patches/RG552/01-fixes.patch new file mode 100644 index 000000000..278405962 --- /dev/null +++ b/packages/games/emulators/gzdoom/patches/RG552/01-fixes.patch @@ -0,0 +1,91 @@ +diff --git a/src/common/menu/menu.cpp b/src/common/menu/menu.cpp +index 4532dae1d..8c394dc79 100644 +--- a/src/common/menu/menu.cpp ++++ b/src/common/menu/menu.cpp +@@ -702,7 +702,7 @@ bool M_Responder (event_t *ev) + mkey = MKEY_Back; + break; + +- case KEY_JOY4: ++ case KEY_JOY3: + case KEY_PAD_X: + mkey = MKEY_Clear; + break; +@@ -721,7 +721,7 @@ bool M_Responder (event_t *ev) + case KEY_PAD_LTHUMB_UP: + case KEY_JOYAXIS2MINUS: + case KEY_JOYPOV1_UP: +- case KEY_JOY9: ++ case KEY_JOY14: + mkey = MKEY_Up; + break; + +@@ -729,7 +729,7 @@ bool M_Responder (event_t *ev) + case KEY_PAD_LTHUMB_DOWN: + case KEY_JOYAXIS2PLUS: + case KEY_JOYPOV1_DOWN: +- case KEY_JOY10: ++ case KEY_JOY15: + mkey = MKEY_Down; + break; + +@@ -737,7 +737,7 @@ bool M_Responder (event_t *ev) + case KEY_PAD_LTHUMB_LEFT: + case KEY_JOYAXIS1MINUS: + case KEY_JOYPOV1_LEFT: +- case KEY_JOY11: ++ case KEY_JOY16: + mkey = MKEY_Left; + break; + +@@ -745,7 +745,7 @@ bool M_Responder (event_t *ev) + case KEY_PAD_LTHUMB_RIGHT: + case KEY_JOYAXIS1PLUS: + case KEY_JOYPOV1_RIGHT: +- case KEY_JOY12: ++ case KEY_JOY17: + mkey = MKEY_Right; + break; + } + +diff --git a/src/common/console/keydef.h b/src/common/console/keydef.h +index 971ab398f..726a2c432 100644 +--- a/src/common/console/keydef.h ++++ b/src/common/console/keydef.h +@@ -68,20 +68,22 @@ enum EKeyCodes + + KEY_FIRSTJOYBUTTON = 0x108, + KEY_JOY1 = KEY_FIRSTJOYBUTTON+0, +- KEY_JOY2, +- KEY_JOY3, +- KEY_JOY4, +- KEY_JOY5, +- KEY_JOY6, +- KEY_JOY7, +- KEY_JOY8, +- KEY_JOY9, +- KEY_JOY10, +- KEY_JOY11, +- KEY_JOY12, +- KEY_JOY13, +- KEY_JOY14, +- KEY_JOY15, ++ KEY_JOY2 = KEY_FIRSTJOYBUTTON+1, ++ KEY_JOY3 = KEY_FIRSTJOYBUTTON+2, ++ KEY_JOY4 = KEY_FIRSTJOYBUTTON+3, ++ KEY_JOY5 = KEY_FIRSTJOYBUTTON+4, ++ KEY_JOY6 = KEY_FIRSTJOYBUTTON+5, ++ KEY_JOY7 = KEY_FIRSTJOYBUTTON+6, ++ KEY_JOY8 = KEY_FIRSTJOYBUTTON+7, ++ KEY_JOY9 = KEY_FIRSTJOYBUTTON+8, ++ KEY_JOY10 = KEY_FIRSTJOYBUTTON+9, ++ KEY_JOY11 = KEY_FIRSTJOYBUTTON+10, ++ KEY_JOY12 = KEY_FIRSTJOYBUTTON+11, ++ KEY_JOY13 = KEY_FIRSTJOYBUTTON+12, ++ KEY_JOY14 = KEY_FIRSTJOYBUTTON+13, ++ KEY_JOY15 = KEY_FIRSTJOYBUTTON+14, ++ KEY_JOY16 = KEY_FIRSTJOYBUTTON+15, ++ KEY_JOY17 = KEY_FIRSTJOYBUTTON+16, + KEY_LASTJOYBUTTON = 0x187, + KEY_JOYPOV1_UP = 0x188, + KEY_JOYPOV1_RIGHT = 0x189, diff --git a/packages/games/emulators/hatarisa/package.mk b/packages/games/emulators/hatarisa/package.mk index 260be964e..dfb360c88 100644 --- a/packages/games/emulators/hatarisa/package.mk +++ b/packages/games/emulators/hatarisa/package.mk @@ -2,8 +2,8 @@ # Copyright (C) 2018-present 5schatten (https://github.com/5schatten) PKG_NAME="hatarisa" -PKG_VERSION="e81c9addd39898e2897056b2bc3fd6908afabf9e" -PKG_SHA256="d3dc44ea719695be0bce2646ca4a431470b2008b7f9ed4c243b2f867a432996c" +PKG_VERSION="4a4c2f174bd1f5e5da87a109c02a046fe30dbfa0" +PKG_SHA256="1e6ba340b380006aa18842f6890bd393e816ef23cbf3c51312d5ffa7a3026697" PKG_LICENSE="GPL" PKG_SITE="https://github.com/hatari/hatari" PKG_URL="https://github.com/hatari/hatari/archive/${PKG_VERSION}.tar.gz" diff --git a/packages/games/emulators/hypseus-singe/package.mk b/packages/games/emulators/hypseus-singe/package.mk index f2b1d2067..67f216bb4 100644 --- a/packages/games/emulators/hypseus-singe/package.mk +++ b/packages/games/emulators/hypseus-singe/package.mk @@ -3,13 +3,13 @@ # Copyright (C) 2022-present Fewtarius PKG_NAME="hypseus-singe" -PKG_VERSION="9d20d5f92ab612ac7596da05b991d89333679ae5" +PKG_VERSION="a0c3de2c02d210dfe78a7ecb54781f3842d817b9" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL3" PKG_SITE="https://github.com/DirtBagXon/hypseus-singe" PKG_URL="${PKG_SITE}.git" -PKG_DEPENDS_TARGET="toolchain SDL2 SDL2_ttf SDL2_image libogg libvorbis" +PKG_DEPENDS_TARGET="toolchain SDL2 SDL2_ttf SDL2_image libmpeg2 libogg libvorbis" PKG_LONGDESC="Hypseus is a fork of Daphne. A program that lets one play the original versions of many laserdisc arcade games on one's PC." PKG_TOOLCHAIN="cmake" GET_HANDLER_SUPPORT="git" diff --git a/packages/games/emulators/lzdoom/patches/RG351MP/01-fixes.patch b/packages/games/emulators/lzdoom/patches/RG351MP/01-fixes.patch new file mode 100644 index 000000000..8b621beca --- /dev/null +++ b/packages/games/emulators/lzdoom/patches/RG351MP/01-fixes.patch @@ -0,0 +1,61 @@ +diff --git a/src/menu/menu.cpp b/src/menu/menu.cpp +index 2af6616fa0..8ef95e1358 100644 +--- a/src/menu/menu.cpp ++++ b/src/menu/menu.cpp +@@ -666,17 +666,17 @@ bool M_Responder (event_t *ev) + ch = ev->data1; + switch (ch) + { +- case KEY_JOY2: ++ case KEY_JOY1: //B button + case KEY_PAD_A: + mkey = MKEY_Back; + break; + +- case KEY_JOY1: ++ case KEY_JOY2: //A button + case KEY_PAD_B: + mkey = MKEY_Enter; + break; + +- case KEY_JOY4: ++ case KEY_JOY3: //X button + case KEY_PAD_X: + mkey = MKEY_Clear; + break; +@@ -695,7 +695,7 @@ bool M_Responder (event_t *ev) + case KEY_PAD_LTHUMB_UP: + case KEY_JOYAXIS2MINUS: + case KEY_JOYPOV1_UP: +- case KEY_JOY9: ++ case KEY_JOY9: //Dpad up + mkey = MKEY_Up; + break; + +@@ -703,7 +703,7 @@ bool M_Responder (event_t *ev) + case KEY_PAD_LTHUMB_DOWN: + case KEY_JOYAXIS2PLUS: + case KEY_JOYPOV1_DOWN: +- case KEY_JOY10: ++ case KEY_JOY10: //Dpad down + mkey = MKEY_Down; + break; + +@@ -711,7 +711,7 @@ bool M_Responder (event_t *ev) + case KEY_PAD_LTHUMB_LEFT: + case KEY_JOYAXIS1MINUS: + case KEY_JOYPOV1_LEFT: +- case KEY_JOY11: ++ case KEY_JOY11: //Dpad left + mkey = MKEY_Left; + break; + +@@ -719,7 +719,7 @@ bool M_Responder (event_t *ev) + case KEY_PAD_LTHUMB_RIGHT: + case KEY_JOYAXIS1PLUS: + case KEY_JOYPOV1_RIGHT: +- case KEY_JOY12: ++ case KEY_JOY12: //Dpad right + mkey = MKEY_Right; + break; + } diff --git a/packages/games/emulators/lzdoom/patches/RG503/01-fixes.patch b/packages/games/emulators/lzdoom/patches/RG503/01-fixes.patch new file mode 100644 index 000000000..4773f3562 --- /dev/null +++ b/packages/games/emulators/lzdoom/patches/RG503/01-fixes.patch @@ -0,0 +1,74 @@ +diff --git a/src/doomdef.h b/src/doomdef.h +index 34fad7318f..06e77b0dd3 100644 +--- a/src/doomdef.h ++++ b/src/doomdef.h +@@ -191,6 +191,8 @@ enum ESkillLevels + #define KEY_JOY13 (KEY_FIRSTJOYBUTTON+12) + #define KEY_JOY14 (KEY_FIRSTJOYBUTTON+13) + #define KEY_JOY15 (KEY_FIRSTJOYBUTTON+14) ++#define KEY_JOY16 (KEY_FIRSTJOYBUTTON+15) ++#define KEY_JOY17 (KEY_FIRSTJOYBUTTON+16) + #define KEY_LASTJOYBUTTON 0x187 + #define KEY_JOYPOV1_UP 0x188 + #define KEY_JOYPOV1_RIGHT 0x189 +diff --git a/src/menu/menu.cpp b/src/menu/menu.cpp +index 2af6616fa0..cf6ff999d1 100644 +--- a/src/menu/menu.cpp ++++ b/src/menu/menu.cpp +@@ -666,17 +666,17 @@ bool M_Responder (event_t *ev) + ch = ev->data1; + switch (ch) + { +- case KEY_JOY2: ++ case KEY_JOY1: //B button on rg552/rg503 + case KEY_PAD_A: + mkey = MKEY_Back; + break; + +- case KEY_JOY1: ++ case KEY_JOY2: //A button on rg552/rg503 + case KEY_PAD_B: + mkey = MKEY_Enter; + break; + +- case KEY_JOY4: ++ case KEY_JOY3: //X button on rg552/rg503 + case KEY_PAD_X: + mkey = MKEY_Clear; + break; +@@ -695,7 +695,7 @@ bool M_Responder (event_t *ev) + case KEY_PAD_LTHUMB_UP: + case KEY_JOYAXIS2MINUS: + case KEY_JOYPOV1_UP: +- case KEY_JOY9: ++ case KEY_JOY14: //Dpad up on rg552/rg503 + mkey = MKEY_Up; + break; + +@@ -703,7 +703,7 @@ bool M_Responder (event_t *ev) + case KEY_PAD_LTHUMB_DOWN: + case KEY_JOYAXIS2PLUS: + case KEY_JOYPOV1_DOWN: +- case KEY_JOY10: ++ case KEY_JOY15: //Dpad down on rg552/rg503 + mkey = MKEY_Down; + break; + +@@ -711,7 +711,7 @@ bool M_Responder (event_t *ev) + case KEY_PAD_LTHUMB_LEFT: + case KEY_JOYAXIS1MINUS: + case KEY_JOYPOV1_LEFT: +- case KEY_JOY11: ++ case KEY_JOY16: //Dpad left on rg552/rg503 + mkey = MKEY_Left; + break; + +@@ -719,7 +719,7 @@ bool M_Responder (event_t *ev) + case KEY_PAD_LTHUMB_RIGHT: + case KEY_JOYAXIS1PLUS: + case KEY_JOYPOV1_RIGHT: +- case KEY_JOY12: ++ case KEY_JOY17: //Dpad right on rg552/rg503 + mkey = MKEY_Right; + break; + } diff --git a/packages/games/emulators/lzdoom/patches/RG552/01-fixes.patch b/packages/games/emulators/lzdoom/patches/RG552/01-fixes.patch new file mode 100644 index 000000000..4773f3562 --- /dev/null +++ b/packages/games/emulators/lzdoom/patches/RG552/01-fixes.patch @@ -0,0 +1,74 @@ +diff --git a/src/doomdef.h b/src/doomdef.h +index 34fad7318f..06e77b0dd3 100644 +--- a/src/doomdef.h ++++ b/src/doomdef.h +@@ -191,6 +191,8 @@ enum ESkillLevels + #define KEY_JOY13 (KEY_FIRSTJOYBUTTON+12) + #define KEY_JOY14 (KEY_FIRSTJOYBUTTON+13) + #define KEY_JOY15 (KEY_FIRSTJOYBUTTON+14) ++#define KEY_JOY16 (KEY_FIRSTJOYBUTTON+15) ++#define KEY_JOY17 (KEY_FIRSTJOYBUTTON+16) + #define KEY_LASTJOYBUTTON 0x187 + #define KEY_JOYPOV1_UP 0x188 + #define KEY_JOYPOV1_RIGHT 0x189 +diff --git a/src/menu/menu.cpp b/src/menu/menu.cpp +index 2af6616fa0..cf6ff999d1 100644 +--- a/src/menu/menu.cpp ++++ b/src/menu/menu.cpp +@@ -666,17 +666,17 @@ bool M_Responder (event_t *ev) + ch = ev->data1; + switch (ch) + { +- case KEY_JOY2: ++ case KEY_JOY1: //B button on rg552/rg503 + case KEY_PAD_A: + mkey = MKEY_Back; + break; + +- case KEY_JOY1: ++ case KEY_JOY2: //A button on rg552/rg503 + case KEY_PAD_B: + mkey = MKEY_Enter; + break; + +- case KEY_JOY4: ++ case KEY_JOY3: //X button on rg552/rg503 + case KEY_PAD_X: + mkey = MKEY_Clear; + break; +@@ -695,7 +695,7 @@ bool M_Responder (event_t *ev) + case KEY_PAD_LTHUMB_UP: + case KEY_JOYAXIS2MINUS: + case KEY_JOYPOV1_UP: +- case KEY_JOY9: ++ case KEY_JOY14: //Dpad up on rg552/rg503 + mkey = MKEY_Up; + break; + +@@ -703,7 +703,7 @@ bool M_Responder (event_t *ev) + case KEY_PAD_LTHUMB_DOWN: + case KEY_JOYAXIS2PLUS: + case KEY_JOYPOV1_DOWN: +- case KEY_JOY10: ++ case KEY_JOY15: //Dpad down on rg552/rg503 + mkey = MKEY_Down; + break; + +@@ -711,7 +711,7 @@ bool M_Responder (event_t *ev) + case KEY_PAD_LTHUMB_LEFT: + case KEY_JOYAXIS1MINUS: + case KEY_JOYPOV1_LEFT: +- case KEY_JOY11: ++ case KEY_JOY16: //Dpad left on rg552/rg503 + mkey = MKEY_Left; + break; + +@@ -719,7 +719,7 @@ bool M_Responder (event_t *ev) + case KEY_PAD_LTHUMB_RIGHT: + case KEY_JOYAXIS1PLUS: + case KEY_JOYPOV1_RIGHT: +- case KEY_JOY12: ++ case KEY_JOY17: //Dpad right on rg552/rg503 + mkey = MKEY_Right; + break; + } diff --git a/packages/games/emulators/mupen64plussa/mupen64plussa-audio-sdl/package.mk b/packages/games/emulators/mupen64plussa/mupen64plussa-audio-sdl/package.mk index f57f5e093..6210eb856 100644 --- a/packages/games/emulators/mupen64plussa/mupen64plussa-audio-sdl/package.mk +++ b/packages/games/emulators/mupen64plussa/mupen64plussa-audio-sdl/package.mk @@ -4,7 +4,7 @@ PKG_NAME="mupen64plussa-audio-sdl" PKG_VERSION="df0770215f743f70244b09978c123a0a8b2a7d9d" PKG_SHA256="2d6da3935cfdca9ca19065ec1cd95a17ec8d53ba4995b043cd6a5ace3be49775" -PKG_ARCH="any" +PKG_ARCH="aarch64" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/mupen64plus/mupen64plus-audio-sdl" PKG_URL="https://github.com/mupen64plus/mupen64plus-audio-sdl/archive/${PKG_VERSION}.tar.gz" diff --git a/packages/games/emulators/mupen64plussa/mupen64plussa-core/package.mk b/packages/games/emulators/mupen64plussa/mupen64plussa-core/package.mk index 8a0a7d607..6dbf01466 100644 --- a/packages/games/emulators/mupen64plussa/mupen64plussa-core/package.mk +++ b/packages/games/emulators/mupen64plussa/mupen64plussa-core/package.mk @@ -2,9 +2,9 @@ # Copyright (C) 2019-present Shanti Gilbert (https://github.com/shantigilbert) PKG_NAME="mupen64plussa-core" -PKG_VERSION="f29984331b20de47fd1c2de776018fa40f50bac5" -PKG_SHA256="2f53976ede7982e2e8d36a41721afca79109bda3f23c712953246b8d8d7313b6" -PKG_ARCH="any" +PKG_VERSION="5a5ffc0c78b0e255f54b15d2480f617d5cbc33ec" +PKG_SHA256="1831b8aa5b400c0be424794ed0867715b0cae59a7fe21a630135f8f4bccdd321" +PKG_ARCH="aarch64" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/mupen64plus/mupen64plus-core" PKG_URL="https://github.com/mupen64plus/mupen64plus-core/archive/${PKG_VERSION}.tar.gz" @@ -14,28 +14,28 @@ PKG_LONGDESC="Mupen64Plus Standalone" PKG_TOOLCHAIN="manual" if [ ! "${OPENGL}" = "no" ]; then - PKG_DEPENDS_TARGET+=" ${OPENGL} glu libglvnd" + PKG_DEPENDS_TARGET+=" ${OPENGL} glu" fi if [ "${OPENGLES_SUPPORT}" = yes ]; then PKG_DEPENDS_TARGET+=" ${OPENGLES}" - PKG_MAKE_OPTS_TARGET+="USE_GLES=1" fi make_target() { case ${ARCH} in arm|aarch64) export HOST_CPU=aarch64 - export USE_GLES=1 + export VC=0 + export CROSS_COMPILE="${TARGET_PREFIX}" BINUTILS="$(get_build_dir binutils)/.aarch64-libreelec-linux-gnueabi" ;; esac export SDL_CFLAGS="-I${SYSROOT_PREFIX}/usr/include/SDL2 -D_REENTRANT" export SDL_LDLIBS="-lSDL2_net -lSDL2" - export CROSS_COMPILE="${TARGET_PREFIX}" + export USE_GLES=1 export V=1 - export VC=0 + export OSD=0 make -C projects/unix clean make -C projects/unix all ${PKG_MAKE_OPTS_TARGET} } diff --git a/packages/games/emulators/mupen64plussa/mupen64plussa-input-sdl/config/handheld b/packages/games/emulators/mupen64plussa/mupen64plussa-input-sdl/config/handheld new file mode 120000 index 000000000..2988caf9b --- /dev/null +++ b/packages/games/emulators/mupen64plussa/mupen64plussa-input-sdl/config/handheld @@ -0,0 +1 @@ +X86_64 \ No newline at end of file diff --git a/packages/games/emulators/mupen64plussa/mupen64plussa-input-sdl/package.mk b/packages/games/emulators/mupen64plussa/mupen64plussa-input-sdl/package.mk index 7d55dbcc2..850d91bae 100644 --- a/packages/games/emulators/mupen64plussa/mupen64plussa-input-sdl/package.mk +++ b/packages/games/emulators/mupen64plussa/mupen64plussa-input-sdl/package.mk @@ -4,7 +4,7 @@ PKG_NAME="mupen64plussa-input-sdl" PKG_VERSION="9cbe63f8e80f4dfc6dcdd8408b51358d248a050e" PKG_SHA256="8c4c22dfb5b478b60a0059a38f7c0e2d01e9e9da65385340e0aa32b876cdc065" -PKG_ARCH="any" +PKG_ARCH="aarch64" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/mupen64plus/mupen64plus-input-sdl" PKG_URL="https://github.com/mupen64plus/mupen64plus-input-sdl/archive/${PKG_VERSION}.tar.gz" diff --git a/packages/games/emulators/mupen64plussa/mupen64plussa-rsp-hle/package.mk b/packages/games/emulators/mupen64plussa/mupen64plussa-rsp-hle/package.mk index e4fbeef84..79a0b88d6 100644 --- a/packages/games/emulators/mupen64plussa/mupen64plussa-rsp-hle/package.mk +++ b/packages/games/emulators/mupen64plussa/mupen64plussa-rsp-hle/package.mk @@ -4,7 +4,7 @@ PKG_NAME="mupen64plussa-rsp-hle" PKG_VERSION="aa0ea78030d3c2b80184a35bbb36909fd7a28e70" PKG_SHA256="94acfd45c9b6974bde6ee38e9df60979cb906cec89efd37642be6f20f3737841" -PKG_ARCH="any" +PKG_ARCH="aarch64" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/mupen64plus/mupen64plus-rsp-hle" PKG_URL="https://github.com/mupen64plus/mupen64plus-rsp-hle/archive/${PKG_VERSION}.tar.gz" diff --git a/packages/games/emulators/mupen64plussa/mupen64plussa-ui-console/package.mk b/packages/games/emulators/mupen64plussa/mupen64plussa-ui-console/package.mk index 54770997b..f8c54ecf9 100644 --- a/packages/games/emulators/mupen64plussa/mupen64plussa-ui-console/package.mk +++ b/packages/games/emulators/mupen64plussa/mupen64plussa-ui-console/package.mk @@ -4,7 +4,7 @@ PKG_NAME="mupen64plussa-ui-console" PKG_VERSION="42546ab00b23a8052b9c974882628912609990c2" PKG_SHA256="210324e4ab3445e7891d999780106db0c2c96857b31a723eda61847ac0fdd745" -PKG_ARCH="any" +PKG_ARCH="aarch64" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/mupen64plus/mupen64plus-ui-console" PKG_URL="https://github.com/mupen64plus/mupen64plus-ui-console/archive/${PKG_VERSION}.tar.gz" diff --git a/packages/games/emulators/mupen64plussa/mupen64plussa-video-glide64mk2/package.mk b/packages/games/emulators/mupen64plussa/mupen64plussa-video-glide64mk2/package.mk index a2e35f5c2..bed4c9879 100644 --- a/packages/games/emulators/mupen64plussa/mupen64plussa-video-glide64mk2/package.mk +++ b/packages/games/emulators/mupen64plussa/mupen64plussa-video-glide64mk2/package.mk @@ -4,7 +4,7 @@ PKG_NAME="mupen64plussa-video-glide64mk2" PKG_VERSION="79809753e83180e6bbc3b5b3dc65120fef3e7a43" PKG_SHA256="124cf056bed1534a95aee363cf7682095bfe8ef9580461fc26be834b8749ac04" -PKG_ARCH="any" +PKG_ARCH="aarch64" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/mupen64plus/mupen64plus-video-glide64mk2" PKG_URL="https://github.com/mupen64plus/mupen64plus-video-glide64mk2/archive/${PKG_VERSION}.tar.gz" diff --git a/packages/games/emulators/mupen64plussa/mupen64plussa-video-gliden64/package.mk b/packages/games/emulators/mupen64plussa/mupen64plussa-video-gliden64/package.mk index a82dcf1c6..007d6be7f 100644 --- a/packages/games/emulators/mupen64plussa/mupen64plussa-video-gliden64/package.mk +++ b/packages/games/emulators/mupen64plussa/mupen64plussa-video-gliden64/package.mk @@ -3,7 +3,7 @@ PKG_NAME="mupen64plussa-video-gliden64" PKG_VERSION="2973f5351b6326ca588b60521522df34ed7a426e" -PKG_ARCH="any" +PKG_ARCH="aarch64" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/gonetz/GLideN64" PKG_URL="${PKG_SITE}.git" diff --git a/packages/games/emulators/mupen64plussa/mupen64plussa-video-rice/package.mk b/packages/games/emulators/mupen64plussa/mupen64plussa-video-rice/package.mk index 20257ce9b..fdba0926e 100644 --- a/packages/games/emulators/mupen64plussa/mupen64plussa-video-rice/package.mk +++ b/packages/games/emulators/mupen64plussa/mupen64plussa-video-rice/package.mk @@ -4,7 +4,7 @@ PKG_NAME="mupen64plussa-video-rice" PKG_VERSION="51582f9e62082f2937a17ac3acfaab08cb7f46ef" PKG_SHA256="e72f1c865cb4f7fff4691eaccbdd23c26638e3e2205ee7bceca9e3a33ada6e73" -PKG_ARCH="any" +PKG_ARCH="aarch64" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/mupen64plus/mupen64plus-video-rice" PKG_URL="https://github.com/mupen64plus/mupen64plus-video-rice/archive/${PKG_VERSION}.tar.gz" diff --git a/packages/games/emulators/pcsx2sa/config/PCSX2/PCSX2-reg.ini b/packages/games/emulators/pcsx2sa/config/PCSX2/PCSX2-reg.ini new file mode 100644 index 000000000..055c56549 --- /dev/null +++ b/packages/games/emulators/pcsx2sa/config/PCSX2/PCSX2-reg.ini @@ -0,0 +1,6 @@ +DocumentsFolderMode=User +CustomDocumentsFolder=/storage/.config/PCSX2 +UseDefaultSettingsFolder=enabled +SettingsFolder=/storage/.config/PCSX2/inis +Install_Dir=/usr/bin +RunWizard=0 diff --git a/packages/games/emulators/pcsx2sa/config/PCSX2/inis/DEV9Hosts.ini b/packages/games/emulators/pcsx2sa/config/PCSX2/inis/DEV9Hosts.ini new file mode 100644 index 000000000..41c43591c --- /dev/null +++ b/packages/games/emulators/pcsx2sa/config/PCSX2/inis/DEV9Hosts.ini @@ -0,0 +1,5 @@ +[Host0] +Url=www.example.com +Desc=Set DNS to 192.0.2.1 to use this host list +Address=0.0.0.0 +Enabled=disabled diff --git a/packages/games/emulators/pcsx2sa/config/PCSX2/inis/GS.ini b/packages/games/emulators/pcsx2sa/config/PCSX2/inis/GS.ini new file mode 100644 index 000000000..934150a54 --- /dev/null +++ b/packages/games/emulators/pcsx2sa/config/PCSX2/inis/GS.ini @@ -0,0 +1,93 @@ +DisableDualSourceBlend = 0 +DisableFramebufferFetch = 0 +DumpDirectTextures = 1 +DumpPaletteTextures = 1 +DumpReplaceableMipmaps = 0 +DumpReplaceableTextures = 0 +DumpTexturesWithFMVActive = 0 +GSDumpCompression = 0 +HWDisableReadbacks = 0 +IntegerScaling = 0 +LoadTextureReplacements = 0 +LoadTextureReplacementsAsync = 1 +MaxAnisotropy = 0 +OsdScale = 100 +OsdShowCPU = 0 +OsdShowFPS = 0 +OsdShowGPU = 0 +OsdShowGSStats = 0 +OsdShowIndicators = 1 +OsdShowMessages = 1 +OsdShowResolution = 0 +OsdShowSpeed = 0 +OverrideGeometryShaders = -1 +OverrideTextureBarriers = -1 +PrecacheTextureReplacements = 0 +Renderer = 14 +ShadeBoost = 0 +ShadeBoost_Brightness = 50 +ShadeBoost_Contrast = 50 +ShadeBoost_Saturation = 50 +SkipDuplicateFrames = 0 +TVShader = 0 +ThreadedPresentation = 0 +UseBlitSwapChain = 0 +UseDebugDevice = 0 +UserHacks = 0 +UserHacks_AutoFlush = 0 +UserHacks_CPUSpriteRenderBW = 0 +UserHacks_CPU_FB_Conversion = 0 +UserHacks_DisableDepthSupport = 0 +UserHacks_DisablePartialInvalidation = 0 +UserHacks_Disable_Safe_Features = 0 +UserHacks_HalfPixelOffset = 0 +UserHacks_Half_Bottom_Override = -1 +UserHacks_SkipDraw_End = 0 +UserHacks_SkipDraw_Start = 0 +UserHacks_TCOffsetX = 0 +UserHacks_TCOffsetY = 0 +UserHacks_TextureInsideRt = 0 +UserHacks_TriFilter = -1 +UserHacks_WildHack = 0 +UserHacks_align_sprite_X = 0 +UserHacks_merge_pp_sprite = 0 +UserHacks_round_sprite_offset = 0 +accurate_blending_unit = 1 +accurate_date = 1 +autoflush_sw = 1 +crc_hack_level = -1 +deinterlace = 7 +disable_hw_gl_draw = 0 +disable_interlace_offset = 0 +disable_shader_cache = 0 +dithering_ps2 = 2 +dump = 0 +extrathreads = 2 +extrathreads_height = 4 +filter = 2 +fxaa = 0 +linear_present = 1 +mipmap = 1 +mipmap_hw = -1 +override_GL_ARB_clear_texture = -1 +override_GL_ARB_direct_state_access = -1 +override_GL_ARB_gpu_shader5 = -1 +override_GL_ARB_shader_image_load_store = -1 +override_GL_ARB_texture_barrier = -1 +paltex = 0 +pcrtc_antiblur = 1 +pcrtc_offsets = 0 +pcrtc_overscan = 0 +preload_frame_with_gs_data = 0 +save = 0 +savef = 0 +savel = 5000 +saven = 0 +savet = 0 +savez = 0 +shaderfx = 0 +shaderfx_conf = shaders/GS_FX_Settings.ini +shaderfx_glsl = shaders/GS.fx +texture_preloading = 2 +upscale_multiplier = 1 +wrap_gs_mem = 0 diff --git a/packages/games/emulators/pcsx2sa/config/PCSX2/inis/PAD.ini b/packages/games/emulators/pcsx2sa/config/PCSX2/inis/PAD.ini new file mode 100644 index 000000000..ed07e6328 --- /dev/null +++ b/packages/games/emulators/pcsx2sa/config/PCSX2/inis/PAD.ini @@ -0,0 +1,6 @@ +first_time_wizard = 1 +options = 0 +mouse_sensibility = 100 +ff_intensity = 1 +uid[0] = 0 +uid[1] = 0 diff --git a/packages/games/emulators/pcsx2sa/config/PCSX2/inis/PCSX2.ini b/packages/games/emulators/pcsx2sa/config/PCSX2/inis/PCSX2.ini new file mode 100644 index 000000000..56aa33855 --- /dev/null +++ b/packages/games/emulators/pcsx2sa/config/PCSX2/inis/PCSX2.ini @@ -0,0 +1,434 @@ +[UI] +SettingsVersion = 1 +InhibitScreensaver = true +ConfirmShutdown = true +StartPaused = false +PauseOnFocusLoss = false +StartFullscreen = true +DoubleClickTogglesFullscreen = true +HideMouseCursor = false +RenderToSeparateWindow = false +HideMainWindowWhenRunning = false +DisableWindowResize = false +Theme = darkfusion +MainWindowGeometry = AdnQywADAAAAAAAAAAAAFAAABP8AAALjAAAAAAAAABQAAAO1AAACkwAAAAAABAAABQAAAAAAAAAAFAAABP8AAALj +MainWindowState = AAAA/wAAAAD9AAAAAAAABQAAAAK9AAAABAAAAAQAAAAIAAAACPwAAAABAAAAAgAAAAEAAAAOAHQAbwBvAGwAQgBhAHIAAAAAAP////8AAAAAAAAAAA== +ShowStatusBar = false + + +[Folders] +Bios = /storage/roms/bios +Snapshots = snaps +Savestates = sstates +MemoryCards = memcards +Logs = logs +Cheats = cheats +CheatsWS = cheats_ws +CheatsNI = cheats_ni +Cache = cache +Textures = textures +InputProfiles = inputprofiles + + +[EmuCore] +CdvdVerboseReads = false +CdvdDumpBlocks = false +CdvdShareWrite = false +EnablePatches = true +EnableCheats = false +EnablePINE = false +EnableWideScreenPatches = false +EnableNoInterlacingPatches = false +EnableRecordingTools = true +EnableGameFixes = true +SaveStateOnShutdown = false +ConsoleToStdio = false +HostFs = false +BackupSavestate = true +SavestateZstdCompression = true +McdEnableEjection = true +McdFolderAutoManage = true +WarnAboutUnsafeSettings = true +GzipIsoIndexTemplate = $(f).pindex.tmp +BlockDumpSaveDirectory = +EnableFastBoot = true + + +[EmuCore/Speedhacks] +EECycleRate = 0 +EECycleSkip = 0 +fastCDVD = false +IntcStat = true +WaitLoop = true +vuFlagHack = true +vuThread = true +vu1Instant = true + + +[EmuCore/CPU] +FPU.DenormalsAreZero = true +FPU.FlushToZero = true +FPU.Roundmode = 3 +AffinityControlMode = 0 +VU.DenormalsAreZero = true +VU.FlushToZero = true +VU.Roundmode = 3 + + +[EmuCore/CPU/Recompiler] +EnableEE = true +EnableIOP = true +EnableEECache = false +EnableVU0 = true +EnableVU1 = true +vuOverflow = true +vuExtraOverflow = false +vuSignOverflow = false +vuUnderflow = false +fpuOverflow = true +fpuExtraOverflow = false +fpuFullMode = false +StackFrameChecks = false +PreBlockCheckEE = false +PreBlockCheckIOP = false + + +[EmuCore/GS] +VsyncQueueSize = 2 +FrameLimitEnable = true +VsyncEnable = 1 +FramerateNTSC = 59.939999 +FrameratePAL = 50.000000 +SyncToHostRefreshRate = false +AspectRatio = Auto 4:3/3:2 +FMVAspectRatioSwitch = Off +Zoom = 100.000000 +StretchY = 100.000000 +CropLeft = 0 +CropTop = 0 +CropRight = 0 +CropBottom = 0 +pcrtc_antiblur = true +disable_interlace_offset = false +pcrtc_offsets = false +pcrtc_overscan = false +IntegerScaling = false +linear_present = true +UseDebugDevice = false +UseBlitSwapChain = false +disable_shader_cache = false +DisableDualSourceBlend = false +DisableFramebufferFetch = false +ThreadedPresentation = false +SkipDuplicateFrames = false +OsdShowMessages = true +OsdShowSpeed = true +OsdShowFPS = true +OsdShowCPU = true +OsdShowGPU = true +OsdShowResolution = true +OsdShowGSStats = true +OsdShowIndicators = true +HWDisableReadbacks = false +paltex = false +autoflush_sw = true +preload_frame_with_gs_data = false +wrap_gs_mem = false +mipmap = true +UserHacks = false +UserHacks_align_sprite_X = false +UserHacks_AutoFlush = false +UserHacks_CPU_FB_Conversion = false +UserHacks_DisableDepthSupport = false +UserHacks_DisablePartialInvalidation = false +UserHacks_Disable_Safe_Features = false +UserHacks_merge_pp_sprite = false +UserHacks_WildHack = false +UserHacks_TextureInsideRt = false +fxaa = false +ShadeBoost = false +shaderfx = false +dump = false +save = false +savef = false +savet = false +savez = false +DumpReplaceableTextures = false +DumpReplaceableMipmaps = false +DumpTexturesWithFMVActive = false +DumpDirectTextures = true +DumpPaletteTextures = true +LoadTextureReplacements = false +LoadTextureReplacementsAsync = true +PrecacheTextureReplacements = false +deinterlace = 7 +OsdScale = 100 +Renderer = 14 +upscale_multiplier = 1 +mipmap_hw = -1 +accurate_blending_unit = 1 +crc_hack_level = -1 +filter = 2 +texture_preloading = 2 +GSDumpCompression = 1 +dithering_ps2 = 2 +MaxAnisotropy = 0 +extrathreads = 2 +extrathreads_height = 4 +TVShader = 0 +UserHacks_SkipDraw_Start = 0 +UserHacks_SkipDraw_End = 0 +UserHacks_Half_Bottom_Override = -1 +UserHacks_HalfPixelOffset = 0 +UserHacks_round_sprite_offset = 0 +UserHacks_TCOffsetX = 0 +UserHacks_TCOffsetY = 0 +UserHacks_CPUSpriteRenderBW = 0 +UserHacks_TriFilter = -1 +OverrideTextureBarriers = -1 +OverrideGeometryShaders = -1 +ShadeBoost_Brightness = 50 +ShadeBoost_Contrast = 50 +ShadeBoost_Saturation = 50 +saven = 0 +savel = 5000 +Adapter = +shaderfx_conf = shaders/GS_FX_Settings.ini +shaderfx_glsl = shaders/GS.fx + + +[SPU2/Mixing] +Interpolation = 5 +FinalVolume = 100 +VolumeAdjustC = 0.000000 +VolumeAdjustFL = 0.000000 +VolumeAdjustFR = 0.000000 +VolumeAdjustBL = 0.000000 +VolumeAdjustBR = 0.000000 +VolumeAdjustSL = 0.000000 +VolumeAdjustSR = 0.000000 +VolumeAdjustLFE = 0.000000 + + +[SPU2/Output] +OutputModule = cubeb +Latency = 100 +SynchMode = 0 +SpeakerConfiguration = 0 +DplDecodingLevel = 0 + + +[DEV9/Eth] +EthEnable = false +EthApi = Unset +EthDevice = +EthLogDNS = false +InterceptDHCP = false +PS2IP = 0.0.0.0 +Mask = 0.0.0.0 +Gateway = 0.0.0.0 +DNS1 = 0.0.0.0 +DNS2 = 0.0.0.0 +AutoMask = true +AutoGateway = true +ModeDNS1 = Auto +ModeDNS2 = Auto + + +[DEV9/Eth/Hosts] +Count = 0 + + +[DEV9/Hdd] +HddEnable = false +HddFile = DEV9hdd.raw +HddSizeSectors = 83886080 + + +[EmuCore/Gamefixes] +VuAddSubHack = false +FpuMulHack = false +FpuNegDivHack = false +XgKickHack = false +EETimingHack = false +SoftwareRendererFMVHack = false +SkipMPEGHack = false +OPHFlagHack = false +DMABusyHack = false +VIFFIFOHack = false +VIF1StallHack = false +GIFFIFOHack = false +GoemonTlbHack = false +IbitHack = false +VUSyncHack = false +VUOverflowHack = false +BlitInternalFPSHack = false + + +[EmuCore/Profiler] +Enabled = false +RecBlocks_EE = true +RecBlocks_IOP = true +RecBlocks_VU0 = true +RecBlocks_VU1 = true + + +[EmuCore/Debugger] +ShowDebuggerOnStart = false +AlignMemoryWindowStart = true +FontWidth = 8 +FontHeight = 12 +WindowWidth = 0 +WindowHeight = 0 +MemoryViewBytesPerRow = 16 + + +[EmuCore/TraceLog] +Enabled = false +EE.bitset = 0 +IOP.bitset = 0 + + +[Filenames] +BIOS = scph39001.bin + + +[Framerate] +NominalScalar = 1.000000 +TurboScalar = 2.000000 +SlomoScalar = 0.500000 + + +[MemoryCards] +Slot1_Enable = true +Slot1_Filename = Mcd001.ps2 +Slot2_Enable = true +Slot2_Filename = Mcd002.ps2 +Multitap1_Slot2_Enable = false +Multitap1_Slot2_Filename = Mcd-Multitap1-Slot02.ps2 +Multitap1_Slot3_Enable = false +Multitap1_Slot3_Filename = Mcd-Multitap1-Slot03.ps2 +Multitap1_Slot4_Enable = false +Multitap1_Slot4_Filename = Mcd-Multitap1-Slot04.ps2 +Multitap2_Slot2_Enable = false +Multitap2_Slot2_Filename = Mcd-Multitap2-Slot02.ps2 +Multitap2_Slot3_Enable = false +Multitap2_Slot3_Filename = Mcd-Multitap2-Slot03.ps2 +Multitap2_Slot4_Enable = false +Multitap2_Slot4_Filename = Mcd-Multitap2-Slot04.ps2 + + +[Logging] +EnableSystemConsole = false +EnableFileLogging = false +EnableTimestamps = true +EnableVerbose = false +EnableEEConsole = false +EnableIOPConsole = false +EnableInputRecordingLogs = true +EnableControllerLogs = false + + +[InputSources] +Keyboard = true +Mouse = true +SDL = true +SDLControllerEnhancedMode = false + + +[Hotkeys] +ToggleFullscreen = Keyboard/Alt & Keyboard/Return +CycleAspectRatio = Keyboard/F6 +CycleInterlaceMode = Keyboard/F5 +CycleMipmapMode = Keyboard/Insert +GSDumpMultiFrame = Keyboard/Control & Keyboard/Shift & Keyboard/F8 +Screenshot = Keyboard/F8 +GSDumpSingleFrame = Keyboard/Shift & Keyboard/F8 +ToggleSoftwareRendering = Keyboard/F9 +ZoomIn = Keyboard/Control & Keyboard/Plus +ZoomOut = Keyboard/Control & Keyboard/Minus +InputRecToggleMode = Keyboard/Shift & Keyboard/R +LoadStateFromSlot = Keyboard/F3 +SaveStateToSlot = Keyboard/F1 +NextSaveStateSlot = Keyboard/F2 +PreviousSaveStateSlot = Keyboard/Shift & Keyboard/F2 +OpenPauseMenu = Keyboard/Escape +ToggleFrameLimit = Keyboard/F4 +TogglePause = Keyboard/Space +ToggleSlowMotion = Keyboard/Shift & Keyboard/Backtab +ToggleTurbo = Keyboard/Tab +HoldTurbo = Keyboard/Period + + +[Pad] +MultitapPort1 = false +MultitapPort2 = false +PointerXScale = 8.000000 +PointerYScale = 8.000000 + + +[Pad1] +Type = DualShock2 +InvertL = 0 +InvertR = 0 +Deadzone = 0.000000 +AxisScale = 1.330000 +LargeMotorScale = 1.000000 +SmallMotorScale = 1.000000 +ButtonDeadzone = 0.000000 +PressureModifier = 0.500000 +Up = SDL-0/DPadUp +Right = SDL-0/DPadRight +Down = SDL-0/DPadDown +Left = SDL-0/DPadLeft +Triangle = SDL-0/Y +Circle = SDL-0/B +Cross = SDL-0/A +Square = SDL-0/X +Select = SDL-0/Back +Start = SDL-0/Start +L1 = SDL-0/LeftShoulder +L2 = SDL-0/+LeftTrigger +R1 = SDL-0/RightShoulder +R2 = SDL-0/+RightTrigger +L3 = SDL-0/LeftStick +R3 = SDL-0/RightStick +LUp = SDL-0/-LeftY +LRight = SDL-0/+LeftX +LDown = SDL-0/+LeftY +LLeft = SDL-0/-LeftX +RUp = SDL-0/-RightY +RRight = SDL-0/+RightX +RDown = SDL-0/+RightY +RLeft = SDL-0/-RightX +Analog = SDL-0/Guide +LargeMotor = SDL-0/LargeMotor +SmallMotor = SDL-0/SmallMotor + + +[Pad2] +Type = None + + +[Pad3] +Type = None + + +[Pad4] +Type = None + + +[Pad5] +Type = None + + +[Pad6] +Type = None + + +[Pad7] +Type = None + + +[Pad8] +Type = None diff --git a/packages/games/emulators/pcsx2sa/config/PCSX2/inis/PCSX2_ui.ini b/packages/games/emulators/pcsx2sa/config/PCSX2/inis/PCSX2_ui.ini new file mode 100644 index 000000000..5ba9e22cc --- /dev/null +++ b/packages/games/emulators/pcsx2sa/config/PCSX2/inis/PCSX2_ui.ini @@ -0,0 +1,157 @@ +MainGuiPosition=93,371 +SysSettingsTabName=Cpu +McdSettingsTabName=none +ComponentsTabName= +AppSettingsTabName=none +GameDatabaseTabName=none +LanguageId=0 +LanguageCode=default +RecentIsoCount=20 +GzipIsoIndexTemplate=$(f).pindex.tmp +Listbook_ImageSize=32 +Toolbar_ImageSize=24 +Toolbar_ShowLabels=enabled +CurrentBlockdump= +CurrentELF= +CurrentIRX= +EnableSpeedHacks=enabled +EnableGameFixes=disabled +EnableFastBoot=enabled +EnablePresets=enabled +PresetIndex=1 +AskOnBoot=disabled +DevMode=disabled +CdvdSource=ISO +[ProgramLog] +Visible=disabled +AutoDock=enabled +DisplayPosition=492,371 +DisplaySize=680,560 +FontSize=8 +Theme=Default +[Folders] +UseDefaultBios=enabled +UseDefaultSnapshots=enabled +UseDefaultSavestates=enabled +UseDefaultMemoryCards=enabled +UseDefaultLogs=enabled +UseDefaultLangs=enabled +UseDefaultCheats=enabled +UseDefaultCheatsWS=enabled +UseDefaultTextures=enabled +Bios=/storage/roms/bios +Snapshots=/storage/roms/screenshots +Savestates=/storage/saves/ps2 +MemoryCards=/storage/saves/ps2 +Logs=/var/log +Langs=/usr/bin/resources/locale +Cheats=/storage/cheats/ps2/cheats +CheatsWS=/storage/cheats/ps2/cheats_ws +Cache=/system/cache/ps2 +Textures=/storage/.config/PCSX2 +RunIso=/storage/PCSX2 +RunELF=/storage/PCSX2 +RunDisc= +[GSWindow] +CloseOnEsc=enabled +DefaultToFullscreen=disabled +AlwaysHideMouse=disabled +DisableResizeBorders=disabled +DisableScreenSaver=enabled +WindowSize=640,480 +WindowPos=0,0 +IsMaximized=disabled +IsFullscreen=disabled +EnableVsyncWindowFlag=disabled +IsToggleFullscreenOnDoubleClick=enabled +SyncToHostRefreshRate=disabled +AspectRatio=Auto 4:3/3:2 (Progressive) +FMVAspectRatioSwitch=Off +Zoom=100 +[InputRecording] +VirtualPadPosition=-1,-1 +m_frame_advance_amount=1 +[Capture] +EnableAudio=enabled +[UiTemplates] +LimiterUnlimited=Max +LimiterTurbo=Turbo +LimiterSlowmo=Slowmo +LimiterNormal=Normal +OutputFrame=Frame +OutputField=Field +OutputProgressive=Progressive +OutputInterlaced=Interlaced +Paused= +TitleTemplate=Slot: ${slot} | Speed: ${speed} (${vfps}) | ${videomode} | Limiter: ${limiter} | ${gs} | ${omodei} | ${cpuusage} +RecordingTemplate=Slot: ${slot} | Frame: ${frame}/${maxFrame} | Rec. Mode: ${mode} | Speed: ${speed} (${vfps}) | Limiter: ${limiter} +[MemoryCards] +Slot1_Enable=enabled +Slot1_Filename=Mcd001.ps2 +Slot2_Enable=enabled +Slot2_Filename=Mcd002.ps2 +Multitap1_Slot2_Enable=disabled +Multitap1_Slot2_Filename=Mcd-Multitap1-Slot02.ps2 +Multitap1_Slot3_Enable=disabled +Multitap1_Slot3_Filename=Mcd-Multitap1-Slot03.ps2 +Multitap1_Slot4_Enable=disabled +Multitap1_Slot4_Filename=Mcd-Multitap1-Slot04.ps2 +Multitap2_Slot2_Enable=disabled +Multitap2_Slot2_Filename=Mcd-Multitap2-Slot02.ps2 +Multitap2_Slot3_Enable=disabled +Multitap2_Slot3_Filename=Mcd-Multitap2-Slot03.ps2 +Multitap2_Slot4_Enable=disabled +Multitap2_Slot4_Filename=Mcd-Multitap2-Slot04.ps2 +[Filenames] +BIOS=scph39001.bin +[Framerate] +NominalScalar=1 +TurboScalar=2 +SlomoScalar=0.5 +[ConsoleLogSources] +Devel=disabled +.EEout=enabled +.IOPout=enabled +.EErecPerf=disabled +.ELF=disabled +.SysEvents=disabled +.p\&xThread=disabled +.SYSout=disabled +.PGIFout=disabled +.Input\ Recording=disabled +.Controller\ Info=disabled +[TraceLogSources] +.SIF=disabled +EE.Bios=disabled +EE.Memory=disabled +EE.Disasm.R5900=disabled +EE.Disasm.COP0=disabled +EE.Disasm.FPU=disabled +EE.Disasm.VUmacro=disabled +EE.Disasm.Cache=disabled +EE.Registers.HwRegs=disabled +EE.Registers.UnknownRegs=disabled +EE.Registers.DmaRegs=disabled +EE.Registers.IPU=disabled +EE.GIFtags=disabled +EE.VIFcodes=disabled +EE.MSKPATH3=disabled +EE.Events.DmaCtrl=disabled +EE.Events.Counters=disabled +EE.Events.MFIFO=disabled +EE.Events.VIF=disabled +EE.Events.GIF=disabled +IOP.Bios=disabled +IOP.Memorycards=disabled +IOP.Pad=disabled +IOP.Disasm.R3000A=disabled +IOP.Disasm.Memory=disabled +IOP.Registers.HwRegs=disabled +IOP.Registers.UnknownRegs=disabled +IOP.Registers.DmaRegs=disabled +IOP.Events.DmaCrl=disabled +IOP.Events.Counters=disabled +IOP.Events.CDVD=disabled +IOP.Events.MDEC=disabled +[TraceLogSources/IOP.Disasm.COP2] +GPU=disabled diff --git a/packages/games/emulators/pcsx2sa/config/PCSX2/inis/PCSX2_vm.ini b/packages/games/emulators/pcsx2sa/config/PCSX2/inis/PCSX2_vm.ini new file mode 100644 index 000000000..3cda500f6 --- /dev/null +++ b/packages/games/emulators/pcsx2sa/config/PCSX2/inis/PCSX2_vm.ini @@ -0,0 +1,116 @@ +[EmuCore] +CdvdVerboseReads=disabled +CdvdDumpBlocks=disabled +CdvdShareWrite=disabled +EnablePatches=enabled +EnableCheats=disabled +EnablePINE=disabled +EnableWideScreenPatches=disabled +EnableNoInterlacingPatches=disabled +EnableRecordingTools=enabled +ConsoleToStdio=disabled +HostFs=disabled +PatchBios=disabled +PatchRegion= +BackupSavestate=enabled +SavestateZstdCompression=enabled +McdEnableEjection=enabled +McdFolderAutoManage=enabled +MultitapPort0_Enabled=disabled +MultitapPort1_Enabled=disabled +GzipIsoIndexTemplate=$(f).pindex.tmp +[EmuCore/Speedhacks] +EECycleRate=0 +EECycleSkip=0 +fastCDVD=disabled +IntcStat=enabled +WaitLoop=enabled +vuFlagHack=enabled +vuThread=disabled +vu1Instant=enabled +[EmuCore/CPU] +FPU.DenormalsAreZero=enabled +FPU.FlushToZero=enabled +FPU.Roundmode=3 +AffinityControlMode=0 +VU.DenormalsAreZero=enabled +VU.FlushToZero=enabled +VU.Roundmode=3 +[EmuCore/CPU/Recompiler] +EnableEE=enabled +EnableIOP=enabled +EnableEECache=disabled +EnableVU0=enabled +EnableVU1=enabled +vuOverflow=enabled +vuExtraOverflow=disabled +vuSignOverflow=disabled +vuUnderflow=disabled +fpuOverflow=enabled +fpuExtraOverflow=disabled +fpuFullMode=disabled +StackFrameChecks=disabled +PreBlockCheckEE=disabled +PreBlockCheckIOP=disabled +[EmuCore/GS] +VsyncQueueSize=2 +FrameLimitEnable=enabled +VsyncEnable=0 +FramerateNTSC=59.94 +FrameratePAL=50 +[EmuCore/Gamefixes] +VuAddSubHack=disabled +FpuMulHack=disabled +FpuNegDivHack=disabled +XgKickHack=disabled +EETimingHack=disabled +SoftwareRendererFMVHack=disabled +SkipMPEGHack=disabled +OPHFlagHack=disabled +DMABusyHack=disabled +VIFFIFOHack=disabled +VIF1StallHack=disabled +GIFFIFOHack=disabled +GoemonTlbHack=disabled +IbitHack=disabled +VUSyncHack=disabled +VUOverflowHack=disabled +BlitInternalFPSHack=disabled +[EmuCore/Profiler] +Enabled=disabled +RecBlocks_EE=enabled +RecBlocks_IOP=enabled +RecBlocks_VU0=enabled +RecBlocks_VU1=enabled +[EmuCore/Debugger] +ShowDebuggerOnStart=disabled +AlignMemoryWindowStart=enabled +FontWidth=8 +FontHeight=12 +WindowWidth=1000 +WindowHeight=720 +MemoryViewBytesPerRow=16 +[EmuCore/TraceLog] +Enabled=disabled +EE.bitset=0 +IOP.bitset=0 +[DEV9] +[DEV9/Eth] +EthEnable=disabled +EthApi=Unset +EthDevice= +EthLogDNS=disabled +InterceptDHCP=disabled +PS2IP=0.0.0.0 +Mask=0.0.0.0 +Gateway=0.0.0.0 +DNS1=0.0.0.0 +DNS2=0.0.0.0 +AutoMask=enabled +AutoGateway=enabled +ModeDNS1=Auto +ModeDNS2=Auto +[DEV9/Hdd] +HddEnable=disabled +HddFile=DEV9hdd.raw +HddSizeSectors=83886080 diff --git a/packages/games/emulators/pcsx2sa/config/PCSX2/inis/SPU2.ini b/packages/games/emulators/pcsx2sa/config/PCSX2/inis/SPU2.ini new file mode 100644 index 000000000..ecd06b3a1 --- /dev/null +++ b/packages/games/emulators/pcsx2sa/config/PCSX2/inis/SPU2.ini @@ -0,0 +1,43 @@ +[SOUNDTOUCH] +SequenceLengthMS=30 +SeekWindowMS=20 +OverlapMS=10 +[MIXING] +Interpolation=5 +FinalVolume=100 +AdvancedVolumeControl=0 +VolumeAdjustC(dB)=0 +VolumeAdjustFL(dB)=0 +VolumeAdjustFR(dB)=0 +VolumeAdjustBL(dB)=0 +VolumeAdjustBR(dB)=0 +VolumeAdjustSL(dB)=0 +VolumeAdjustSR(dB)=0 +VolumeAdjustLFE(dB)=0 +[OUTPUT] +Output_Module=cubeb +Latency=100 +Synch_Mode=0 +SpeakerConfiguration=0 +[DEBUG] +Global_Enable=0 +Show_Messages=0 +Show_Messages_Key_On_Off=0 +Show_Messages_Voice_Off=0 +Show_Messages_DMA_Transfer=0 +Show_Messages_AutoDMA=0 +Show_Messages_Overruns=0 +Show_Messages_CacheStats=0 +Log_Register_Access=0 +Log_DMA_Transfers=0 +Log_WAVE_Output=0 +Dump_Info=0 +Dump_Memory=0 +Dump_Regs=0 +Access_Log_Filename=SPU2Log.txt +WaveLog_Filename=SPU2log.wav +DMA4Log_Filename=SPU2dma4.dat +DMA7Log_Filename=SPU2dma7.dat +Info_Dump_Filename=SPU2Cores.txt +Mem_Dump_Filename=SPU2mem.dat +Reg_Dump_Filename=SPU2regs.dat diff --git a/packages/games/emulators/pcsx2sa/package.mk b/packages/games/emulators/pcsx2sa/package.mk new file mode 100644 index 000000000..00b75bacd --- /dev/null +++ b/packages/games/emulators/pcsx2sa/package.mk @@ -0,0 +1,23 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2022-present Fewtarius + +PKG_NAME="pcsx2sa" +PKG_VERSION="v1.7.3329" +PKG_ARCH="x86_64" +PKG_LICENSE="GPLv3" +PKG_SITE="https://github.com/pcsx2/pcsx2" +PKG_URL="${PKG_SITE}/releases/download/${PKG_VERSION}/pcsx2-${PKG_VERSION}-linux-AppImage-64bit-AVX2-Qt.AppImage" +PKG_LONGDESC="PS2 Emulator appimage" +PKG_TOOLCHAIN="manual" + +makeinstall_target() { + # Redefine strip or the AppImage will be stripped rendering it unusable. + export STRIP=true + mkdir -p ${INSTALL}/usr/bin + cp ${PKG_BUILD}/${PKG_NAME}-${PKG_VERSION}.AppImage ${INSTALL}/usr/bin/${PKG_NAME} + cp -rf ${PKG_DIR}/sources/start_pcsx2.sh ${INSTALL}/usr/bin + sed -e "s/@APPIMAGE@/${PKG_NAME}/g" -i ${INSTALL}/usr/bin/start_pcsx2.sh + chmod 755 ${INSTALL}/usr/bin/* + mkdir -p ${INSTALL}/usr/config + cp -rf ${PKG_DIR}/config/PCSX2 ${INSTALL}/usr/config +} diff --git a/packages/games/emulators/pcsx2sa/sources/start_pcsx2.sh b/packages/games/emulators/pcsx2sa/sources/start_pcsx2.sh new file mode 100755 index 000000000..3150d88ef --- /dev/null +++ b/packages/games/emulators/pcsx2sa/sources/start_pcsx2.sh @@ -0,0 +1,14 @@ +#!/bin/sh +# SPDX-License-Identifier: Apache-2.0 +# Copyright (C) 2021-present - Fewtarius + +. /etc/profile + +ARG=${1//[\\]/} +set_audio alsa +export SDL_AUDIODRIVER=alsa +if [ ! -d "/storage/.config/PCSX2" ] +then + cp -rf /usr/config/PCSX2 /storage/.config +fi +${FAST_CORES} @APPIMAGE@ "$ARG" diff --git a/packages/games/emulators/pico-8/package.mk b/packages/games/emulators/pico-8/package.mk index e6f987c33..465ccab23 100644 --- a/packages/games/emulators/pico-8/package.mk +++ b/packages/games/emulators/pico-8/package.mk @@ -2,7 +2,7 @@ # Copyright (C) 2022-present Fewtarius PKG_NAME="pico-8" -PKG_VERSION="49e2ffa6372739a1661e1a92d6d9684ae1e423f3" +PKG_VERSION="75bf4d9552915f00984ed5031b2111b448565b9f" PKG_SHA256="" PKG_ARCH="any" PKG_LICENSE="GPLv2" diff --git a/packages/games/emulators/pico-8/sources/start_pico8.sh b/packages/games/emulators/pico-8/sources/start_pico8.sh index 7002542d2..2c3d46793 100644 --- a/packages/games/emulators/pico-8/sources/start_pico8.sh +++ b/packages/games/emulators/pico-8/sources/start_pico8.sh @@ -13,18 +13,28 @@ else OPTIONS="-splore" fi +if [ "${HW_ARCH}" = "aarch64" ] +then + STATIC_BIN="pico8_64" +elif [ "${HW_ARCH}" = "x86_64" ] +then + STATIC_BIN="pico8" +fi + cp -f /usr/config/SDL-GameControllerDB/gamecontrollerdb.txt /storage/roms/pico-8/sdl_controllers.txt -if [ -e "/storage/roms/pico-8/pico8_64" ] +if [ -e "/storage/roms/pico-8/${STATIC_BIN}" ] then - jslisten set "pico8_64" - /storage/roms/pico-8/pico8_64 -home -root_path /storage/roms/pico-8 -joystick 0 ${OPTIONS} "${CART}" -elif [ -e "/storage/roms/pico-8/pico8_dyn" ] && [ ! -e "/storage/roms/pico-8/pico8_64" ] + jslisten set "${STATIC_BIN}" + /storage/roms/pico-8/${STATIC_BIN} -home -root_path /storage/roms/pico-8 -joystick 0 ${OPTIONS} "${CART}" +fi + +if [ -e "/storage/roms/pico-8/pico8_dyn" ] || [ ! "$?" = 0 ] then jslisten set "pico8_dyn" /storage/roms/pico-8/pico8_dyn -home -root_path /storage/roms/pico-8 -joystick 0 ${OPTIONS} "${CART}" else - text_viewer -e -w -t "Missing Pico-8 binaries!" -m "Extract your purchased pico8_64 and pico8.dat and place them in the pico-8 directory on your games partition." + text_viewer -e -w -t "Missing Pico-8 binaries!" -m "Extract your purchased pico8 and pico8.dat and place them in the pico-8 directory on your games partition." fi ret_error=$? diff --git a/packages/games/emulators/raze/config/common/games/_Scan Build Engine Games.sh b/packages/games/emulators/raze/config/common/games/_Scan Build Engine Games.sh index 014fb6639..8ad1e8b48 100644 --- a/packages/games/emulators/raze/config/common/games/_Scan Build Engine Games.sh +++ b/packages/games/emulators/raze/config/common/games/_Scan Build Engine Games.sh @@ -25,8 +25,8 @@ SUPPORTED_GRP=( "PLATOONL.DAT" ) -clear >/dev/console -echo "Scanning for games..." >/dev/console +clear +echo "Scanning for games..." find_names=() for i in "${!SUPPORTED_GRP[@]}"; do if [[ "${i}" != 0 ]]; then @@ -43,7 +43,7 @@ grp_files=$(find "${BUILDENGINEPATH}" -mindepth 1 -type f \( "${find_names[@]}" # expansion GRP files are named alphabetically later than base game GRP files, # meaning we can get by with a simple lexical sort before processing. grp_files=$(echo "${grp_files}" | sort) -echo "Adding games..." >/dev/console +echo "Adding games..." while read -r grp_file; do abs_path=$(dirname "${grp_file}") path=${abs_path#"$BUILDENGINEPATH/"} @@ -63,5 +63,4 @@ while read -r grp_file; do -- end -- EOM done <<<"${grp_files}" -systemctl restart emustation -clear >/dev/console +clear diff --git a/packages/games/emulators/raze/package.mk b/packages/games/emulators/raze/package.mk index 003668166..3fdc33b80 100644 --- a/packages/games/emulators/raze/package.mk +++ b/packages/games/emulators/raze/package.mk @@ -3,9 +3,9 @@ # Copyright (C) 2022-present Fewtarius PKG_NAME="raze" -PKG_VERSION="1c0c41e88d5521fbdf5cd5ae1eb2f7de073036ab" +PKG_VERSION="fdb13ffdfd35a00a4523939cae374ee01aba7887" PKG_LICENSE="GPL" -PKG_SITE="https://github.com/coelckers/Raze" +PKG_SITE="https://github.com/zdoom/Raze" PKG_URL="${PKG_SITE}.git" PKG_DEPENDS_TARGET="toolchain SDL2 raze:host zmusic libvpx" PKG_SHORTDESC="Raze is a fork of Build engine games backed by GZDoom tech and combines Duke Nukem 3D, Blood, Redneck Rampage, Shadow Warrior and Exhumed/Powerslave in a single package." diff --git a/packages/games/emulators/raze/patches/RG351MP/002-fixes.patch b/packages/games/emulators/raze/patches/RG351MP/002-fixes.patch new file mode 100644 index 000000000..6237b9a4d --- /dev/null +++ b/packages/games/emulators/raze/patches/RG351MP/002-fixes.patch @@ -0,0 +1,97 @@ +diff --git a/source/common/console/keydef.h b/source/common/console/keydef.h +index 108806774..726a2c432 100644 +--- a/source/common/console/keydef.h ++++ b/source/common/console/keydef.h +@@ -68,15 +68,22 @@ enum EKeyCodes + + KEY_FIRSTJOYBUTTON = 0x108, + KEY_JOY1 = KEY_FIRSTJOYBUTTON+0, +- KEY_JOY2, +- KEY_JOY3, +- KEY_JOY4, +- KEY_JOY5, +- KEY_JOY6, +- KEY_JOY7, +- KEY_JOY8, +- KEY_JOY14 = KEY_FIRSTJOYBUTTON+13, +- KEY_JOY15 = KEY_FIRSTJOYBUTTON+14, ++ KEY_JOY2 = KEY_FIRSTJOYBUTTON+1, ++ KEY_JOY3 = KEY_FIRSTJOYBUTTON+2, ++ KEY_JOY4 = KEY_FIRSTJOYBUTTON+3, ++ KEY_JOY5 = KEY_FIRSTJOYBUTTON+4, ++ KEY_JOY6 = KEY_FIRSTJOYBUTTON+5, ++ KEY_JOY7 = KEY_FIRSTJOYBUTTON+6, ++ KEY_JOY8 = KEY_FIRSTJOYBUTTON+7, ++ KEY_JOY9 = KEY_FIRSTJOYBUTTON+8, ++ KEY_JOY10 = KEY_FIRSTJOYBUTTON+9, ++ KEY_JOY11 = KEY_FIRSTJOYBUTTON+10, ++ KEY_JOY12 = KEY_FIRSTJOYBUTTON+11, ++ KEY_JOY13 = KEY_FIRSTJOYBUTTON+12, ++ KEY_JOY14 = KEY_FIRSTJOYBUTTON+13, ++ KEY_JOY15 = KEY_FIRSTJOYBUTTON+14, ++ KEY_JOY16 = KEY_FIRSTJOYBUTTON+15, ++ KEY_JOY17 = KEY_FIRSTJOYBUTTON+16, + KEY_LASTJOYBUTTON = 0x187, + KEY_JOYPOV1_UP = 0x188, + KEY_JOYPOV1_RIGHT = 0x189, +diff --git a/source/common/menu/menu.cpp b/source/common/menu/menu.cpp +index 89017d67b..5217897b3 100644 +--- a/source/common/menu/menu.cpp ++++ b/source/common/menu/menu.cpp +@@ -692,20 +692,18 @@ bool M_Responder (event_t *ev) + ch = ev->data1; + switch (ch) + { +- case KEY_JOY1: +- case KEY_JOY3: +- case KEY_JOY15: ++ case KEY_JOY2: ++ case KEY_JOY4: + case KEY_PAD_A: + mkey = MKEY_Enter; + break; + +- case KEY_JOY2: +- case KEY_JOY14: ++ case KEY_JOY1: + case KEY_PAD_B: + mkey = MKEY_Back; + break; + +- case KEY_JOY4: ++ case KEY_JOY3: + case KEY_PAD_X: + mkey = MKEY_Clear; + break; +@@ -720,6 +718,7 @@ bool M_Responder (event_t *ev) + mkey = MKEY_PageDown; + break; + ++ case KEY_JOY9: + case KEY_PAD_DPAD_UP: + case KEY_PAD_LTHUMB_UP: + case KEY_JOYAXIS2MINUS: +@@ -727,6 +726,7 @@ bool M_Responder (event_t *ev) + mkey = MKEY_Up; + break; + ++ case KEY_JOY10: + case KEY_PAD_DPAD_DOWN: + case KEY_PAD_LTHUMB_DOWN: + case KEY_JOYAXIS2PLUS: +@@ -734,6 +734,7 @@ bool M_Responder (event_t *ev) + mkey = MKEY_Down; + break; + ++ case KEY_JOY11: + case KEY_PAD_DPAD_LEFT: + case KEY_PAD_LTHUMB_LEFT: + case KEY_JOYAXIS1MINUS: +@@ -741,6 +742,7 @@ bool M_Responder (event_t *ev) + mkey = MKEY_Left; + break; + ++ case KEY_JOY12: + case KEY_PAD_DPAD_RIGHT: + case KEY_PAD_LTHUMB_RIGHT: + case KEY_JOYAXIS1PLUS: diff --git a/packages/games/emulators/raze/patches/RG503/002-fixes.patch b/packages/games/emulators/raze/patches/RG503/002-fixes.patch new file mode 100644 index 000000000..bb3f51ae0 --- /dev/null +++ b/packages/games/emulators/raze/patches/RG503/002-fixes.patch @@ -0,0 +1,92 @@ +diff --git a/source/common/console/keydef.h b/source/common/console/keydef.h +index 108806774..deeb90de8 100644 +--- a/source/common/console/keydef.h ++++ b/source/common/console/keydef.h +@@ -68,15 +68,17 @@ enum EKeyCodes + + KEY_FIRSTJOYBUTTON = 0x108, + KEY_JOY1 = KEY_FIRSTJOYBUTTON+0, +- KEY_JOY2, +- KEY_JOY3, +- KEY_JOY4, +- KEY_JOY5, +- KEY_JOY6, +- KEY_JOY7, +- KEY_JOY8, +- KEY_JOY14 = KEY_FIRSTJOYBUTTON+13, +- KEY_JOY15 = KEY_FIRSTJOYBUTTON+14, ++ KEY_JOY2 = KEY_FIRSTJOYBUTTON+1, ++ KEY_JOY3 = KEY_FIRSTJOYBUTTON+2, ++ KEY_JOY4 = KEY_FIRSTJOYBUTTON+3, ++ KEY_JOY5 = KEY_FIRSTJOYBUTTON+4, ++ KEY_JOY6 = KEY_FIRSTJOYBUTTON+5, ++ KEY_JOY7 = KEY_FIRSTJOYBUTTON+6, ++ KEY_JOY8 = KEY_FIRSTJOYBUTTON+7, ++ KEY_JOY14 = KEY_FIRSTJOYBUTTON+13, ++ KEY_JOY15 = KEY_FIRSTJOYBUTTON+14, ++ KEY_JOY16 = KEY_FIRSTJOYBUTTON+15, ++ KEY_JOY17 = KEY_FIRSTJOYBUTTON+16, + KEY_LASTJOYBUTTON = 0x187, + KEY_JOYPOV1_UP = 0x188, + KEY_JOYPOV1_RIGHT = 0x189, +diff --git a/source/common/menu/menu.cpp b/source/common/menu/menu.cpp +index 89017d67b..fcd09ffb8 100644 +--- a/source/common/menu/menu.cpp ++++ b/source/common/menu/menu.cpp +@@ -692,20 +692,18 @@ bool M_Responder (event_t *ev) + ch = ev->data1; + switch (ch) + { +- case KEY_JOY1: +- case KEY_JOY3: +- case KEY_JOY15: ++ case KEY_JOY2: ++ case KEY_JOY4: + case KEY_PAD_A: + mkey = MKEY_Enter; + break; + +- case KEY_JOY2: +- case KEY_JOY14: ++ case KEY_JOY1: + case KEY_PAD_B: + mkey = MKEY_Back; + break; + +- case KEY_JOY4: ++ case KEY_JOY3: + case KEY_PAD_X: + mkey = MKEY_Clear; + break; +@@ -720,6 +718,7 @@ bool M_Responder (event_t *ev) + mkey = MKEY_PageDown; + break; + ++ case KEY_JOY14: + case KEY_PAD_DPAD_UP: + case KEY_PAD_LTHUMB_UP: + case KEY_JOYAXIS2MINUS: +@@ -727,6 +726,7 @@ bool M_Responder (event_t *ev) + mkey = MKEY_Up; + break; + ++ case KEY_JOY15: + case KEY_PAD_DPAD_DOWN: + case KEY_PAD_LTHUMB_DOWN: + case KEY_JOYAXIS2PLUS: +@@ -734,6 +734,7 @@ bool M_Responder (event_t *ev) + mkey = MKEY_Down; + break; + ++ case KEY_JOY16: + case KEY_PAD_DPAD_LEFT: + case KEY_PAD_LTHUMB_LEFT: + case KEY_JOYAXIS1MINUS: +@@ -741,6 +742,7 @@ bool M_Responder (event_t *ev) + mkey = MKEY_Left; + break; + ++ case KEY_JOY17: + case KEY_PAD_DPAD_RIGHT: + case KEY_PAD_LTHUMB_RIGHT: + case KEY_JOYAXIS1PLUS: diff --git a/packages/games/emulators/raze/patches/RG552/002-fixes.patch b/packages/games/emulators/raze/patches/RG552/002-fixes.patch new file mode 100644 index 000000000..bb3f51ae0 --- /dev/null +++ b/packages/games/emulators/raze/patches/RG552/002-fixes.patch @@ -0,0 +1,92 @@ +diff --git a/source/common/console/keydef.h b/source/common/console/keydef.h +index 108806774..deeb90de8 100644 +--- a/source/common/console/keydef.h ++++ b/source/common/console/keydef.h +@@ -68,15 +68,17 @@ enum EKeyCodes + + KEY_FIRSTJOYBUTTON = 0x108, + KEY_JOY1 = KEY_FIRSTJOYBUTTON+0, +- KEY_JOY2, +- KEY_JOY3, +- KEY_JOY4, +- KEY_JOY5, +- KEY_JOY6, +- KEY_JOY7, +- KEY_JOY8, +- KEY_JOY14 = KEY_FIRSTJOYBUTTON+13, +- KEY_JOY15 = KEY_FIRSTJOYBUTTON+14, ++ KEY_JOY2 = KEY_FIRSTJOYBUTTON+1, ++ KEY_JOY3 = KEY_FIRSTJOYBUTTON+2, ++ KEY_JOY4 = KEY_FIRSTJOYBUTTON+3, ++ KEY_JOY5 = KEY_FIRSTJOYBUTTON+4, ++ KEY_JOY6 = KEY_FIRSTJOYBUTTON+5, ++ KEY_JOY7 = KEY_FIRSTJOYBUTTON+6, ++ KEY_JOY8 = KEY_FIRSTJOYBUTTON+7, ++ KEY_JOY14 = KEY_FIRSTJOYBUTTON+13, ++ KEY_JOY15 = KEY_FIRSTJOYBUTTON+14, ++ KEY_JOY16 = KEY_FIRSTJOYBUTTON+15, ++ KEY_JOY17 = KEY_FIRSTJOYBUTTON+16, + KEY_LASTJOYBUTTON = 0x187, + KEY_JOYPOV1_UP = 0x188, + KEY_JOYPOV1_RIGHT = 0x189, +diff --git a/source/common/menu/menu.cpp b/source/common/menu/menu.cpp +index 89017d67b..fcd09ffb8 100644 +--- a/source/common/menu/menu.cpp ++++ b/source/common/menu/menu.cpp +@@ -692,20 +692,18 @@ bool M_Responder (event_t *ev) + ch = ev->data1; + switch (ch) + { +- case KEY_JOY1: +- case KEY_JOY3: +- case KEY_JOY15: ++ case KEY_JOY2: ++ case KEY_JOY4: + case KEY_PAD_A: + mkey = MKEY_Enter; + break; + +- case KEY_JOY2: +- case KEY_JOY14: ++ case KEY_JOY1: + case KEY_PAD_B: + mkey = MKEY_Back; + break; + +- case KEY_JOY4: ++ case KEY_JOY3: + case KEY_PAD_X: + mkey = MKEY_Clear; + break; +@@ -720,6 +718,7 @@ bool M_Responder (event_t *ev) + mkey = MKEY_PageDown; + break; + ++ case KEY_JOY14: + case KEY_PAD_DPAD_UP: + case KEY_PAD_LTHUMB_UP: + case KEY_JOYAXIS2MINUS: +@@ -727,6 +726,7 @@ bool M_Responder (event_t *ev) + mkey = MKEY_Up; + break; + ++ case KEY_JOY15: + case KEY_PAD_DPAD_DOWN: + case KEY_PAD_LTHUMB_DOWN: + case KEY_JOYAXIS2PLUS: +@@ -734,6 +734,7 @@ bool M_Responder (event_t *ev) + mkey = MKEY_Down; + break; + ++ case KEY_JOY16: + case KEY_PAD_DPAD_LEFT: + case KEY_PAD_LTHUMB_LEFT: + case KEY_JOYAXIS1MINUS: +@@ -741,6 +742,7 @@ bool M_Responder (event_t *ev) + mkey = MKEY_Left; + break; + ++ case KEY_JOY17: + case KEY_PAD_DPAD_RIGHT: + case KEY_PAD_LTHUMB_RIGHT: + case KEY_JOYAXIS1PLUS: diff --git a/packages/games/emulators/raze/sources/autostart/common/011-raze b/packages/games/emulators/raze/sources/autostart/common/011-raze index 8b7194731..67b3fe72b 100644 --- a/packages/games/emulators/raze/sources/autostart/common/011-raze +++ b/packages/games/emulators/raze/sources/autostart/common/011-raze @@ -3,7 +3,6 @@ # SPDX-License-Identifier: GPL-3.0-or-later # Copyright (C) 2022-present travis134 -#If ThemeMaster does not exist copy ThemeMaster folder to roms/ports if [ ! -e "/storage/roms/build/_Scan Build Engine Games.sh" ]; then cp "/usr/config/game/raze/games/_Scan Build Engine Games.sh" "/storage/roms/build/_Scan Build Engine Games.sh" chmod +x "/storage/roms/build/_Scan Build Engine Games.sh" diff --git a/packages/games/emulators/retroarch/gamepads/device/X86_64/Atari Game Controller.cfg b/packages/games/emulators/retroarch/gamepads/device/X86_64/Atari Game Controller.cfg new file mode 100644 index 000000000..5459ea22b --- /dev/null +++ b/packages/games/emulators/retroarch/gamepads/device/X86_64/Atari Game Controller.cfg @@ -0,0 +1,29 @@ +input_driver = "udev" +input_device = "Atari Game Controller" +input_vendor_id = "12880" +input_product_id = "4098" +input_b_btn = "1" +input_y_btn = "3" +input_select_btn = "10" +input_start_btn = "9" +input_up_btn = "h0up" +input_down_btn = "h0down" +input_left_btn = "h0left" +input_right_btn = "h0right" +input_a_btn = "2" +input_x_btn = "4" +input_l_btn = "5" +input_r_btn = "6" +input_l2_axis = "+5" +input_r2_axis = "+4" +input_l3_btn = "7" +input_r3_btn = "8" +input_l_x_plus_axis = "+0" +input_l_x_minus_axis = "-0" +input_l_y_plus_axis = "+1" +input_l_y_minus_axis = "-1" +input_r_x_plus_axis = "+2" +input_r_x_minus_axis = "-2" +input_r_y_plus_axis = "+3" +input_r_y_minus_axis = "-3" +input_gun_trigger_mbtn = "1" diff --git a/packages/games/emulators/retroarch/gamepads/device/X86_64/Microsoft X-Box 360 pad.cfg b/packages/games/emulators/retroarch/gamepads/device/X86_64/Microsoft X-Box 360 pad.cfg new file mode 100644 index 000000000..b051d05aa --- /dev/null +++ b/packages/games/emulators/retroarch/gamepads/device/X86_64/Microsoft X-Box 360 pad.cfg @@ -0,0 +1,29 @@ +input_driver = "udev" +input_device = "Microsoft X-Box 360 pad" +input_vendor_id = "1118" +input_product_id = "654" +input_b_btn = "0" +input_y_btn = "2" +input_select_btn = "6" +input_start_btn = "7" +input_up_btn = "h0up" +input_down_btn = "h0down" +input_left_btn = "h0left" +input_right_btn = "h0right" +input_a_btn = "1" +input_x_btn = "3" +input_l_btn = "4" +input_r_btn = "5" +input_l2_axis = "+2" +input_r2_axis = "+5" +input_l3_btn = "9" +input_r3_btn = "10" +input_l_x_plus_axis = "+0" +input_l_x_minus_axis = "-0" +input_l_y_plus_axis = "+1" +input_l_y_minus_axis = "-1" +input_r_x_plus_axis = "+3" +input_r_x_minus_axis = "-3" +input_r_y_plus_axis = "+4" +input_r_y_minus_axis = "-4" +input_gun_trigger_mbtn = "1" diff --git a/packages/games/emulators/retroarch/gamepads/device/X86_64/retrogame_joypad.cfg b/packages/games/emulators/retroarch/gamepads/device/X86_64/retrogame_joypad.cfg deleted file mode 100644 index af31a293f..000000000 --- a/packages/games/emulators/retroarch/gamepads/device/X86_64/retrogame_joypad.cfg +++ /dev/null @@ -1,44 +0,0 @@ -input_driver = "udev" -input_device = "retrogame_joypad" -input_vendor_id = "18507" -input_product_id = "4353" -input_a = "x" -input_a_btn = "1" -input_analog_dpad_mode = "0" -input_b = "z" -input_b_btn = "0" -input_down = "down" -input_down_btn = "14" -input_gun_trigger_mbtn = "1" -input_joypad_index = "0" -input_l = "q" -input_l2_btn = "6" -input_l3_btn = "11" -input_l_btn = "4" -input_l_x_minus_axis = "-0" -input_l_x_plus_axis = "+0" -input_l_y_minus_axis = "-1" -input_l_y_plus_axis = "+1" -input_left = "left" -input_left_btn = "15" -input_mouse_index = "0" -input_r = "w" -input_r2_btn = "7" -input_r3_btn = "12" -input_r_btn = "5" -input_r_x_minus_axis = "-2" -input_r_x_plus_axis = "+2" -input_r_y_minus_axis = "-3" -input_r_y_plus_axis = "+3" -input_right = "right" -input_right_btn = "16" -input_select = "rshift" -input_select_btn = "8" -input_start = "enter" -input_start_btn = "9" -input_up = "up" -input_up_btn = "13" -input_x = "s" -input_x_btn = "2" -input_y = "a" -input_y_btn = "3" diff --git a/packages/games/emulators/retroarch/gamepads/device/handheld b/packages/games/emulators/retroarch/gamepads/device/handheld new file mode 120000 index 000000000..2988caf9b --- /dev/null +++ b/packages/games/emulators/retroarch/gamepads/device/handheld @@ -0,0 +1 @@ +X86_64 \ No newline at end of file diff --git a/packages/games/emulators/retroarch/package.mk b/packages/games/emulators/retroarch/package.mk index bf18af1cf..2193b9cc1 100644 --- a/packages/games/emulators/retroarch/package.mk +++ b/packages/games/emulators/retroarch/package.mk @@ -2,7 +2,7 @@ # Copyright (C) 2021-present 351ELEC (https://github.com/351ELEC) PKG_NAME="retroarch" -PKG_VERSION="e1a139ec0f26aed87c1ff9042e733e2c4b1df39b" +PKG_VERSION="ab57d3cab7d870b5dd55ddf9d9c584775bcdf03d" PKG_SITE="https://github.com/libretro/RetroArch" PKG_URL="${PKG_SITE}.git" PKG_LICENSE="GPLv3" @@ -19,6 +19,9 @@ pre_configure_target() { --enable-udev \ --disable-opengl1 \ --disable-opengl \ + --disable-opengles \ + --disable-opengles3 \ + --disable-opengles3_2 \ --disable-wayland \ --disable-x11 \ --enable-zlib \ @@ -31,20 +34,42 @@ pre_configure_target() { case ${ARCH} in arm) - PKG_DEPENDS_TARGET+=" ${OPENGLES}" - PKG_CONFIGURE_OPTS_TARGET+=" --enable-neon --enable-opengles --enable-opengles3 --enable-opengles3_2 --enable-kms --disable-mali_fbdev" + PKG_CONFIGURE_OPTS_TARGET+=" --enable-neon" ;; aarch64) - PKG_DEPENDS_TARGET+=" ${OPENGLES}" - PKG_CONFIGURE_OPTS_TARGET+=" --disable-neon --enable-opengles --enable-opengles3 --enable-opengles3_2 --enable-kms --disable-mali_fbdev" + PKG_CONFIGURE_OPTS_TARGET+=" --disable-neon" ;; *) - PKG_DEPENDS_TARGET+=" ${OPENGL} glu libglvnd vulkan-loader vulkan-headers" - PKG_CONFIGURE_OPTS_TARGET+=" --enable-opengl --enable-vulkan --enable-vulkan_display" esac + if [ "${DISPLAYSERVER}" = "wl" ]; then + PKG_DEPENDS_TARGET+=" wayland ${WINDOWMANAGER}" + PKG_CONFIGURE_OPTS_TARGET+=" --enable-wayland" + fi + + if [ ! "${OPENGL}" = "no" ]; then + PKG_DEPENDS_TARGET+=" ${OPENGL} glu libglvnd" + PKG_CONFIGURE_OPTS_TARGET+=" --enable-opengl" + else + PKG_CONFIGURE_OPTS_TARGET+=" --disable-opengl" + fi + + if [ "${OPENGLES_SUPPORT}" = yes ] && \ + [ ! "${ARCH}" = "x86_64" ]; then + PKG_DEPENDS_TARGET+=" ${OPENGLES}" + PKG_CONFIGURE_OPTS_TARGET+=" --enable-opengles --enable-opengles3 --enable-opengles3_2 --enable-kms" + else + PKG_CONFIGURE_OPTS_TARGET+=" --disable-opengles --disable-opengles3 --disable-opengles3_2" + fi + + if [ "${VULKAN_SUPPORT}" = "yes" ] + then + PKG_DEPENDS_TARGET+=" vulkan-loader vulkan-headers" + PKG_CONFIGURE_OPTS_TARGET+=" --enable-vulkan --enable-vulkan_display" + fi + case ${DEVICE} in - RG351P|RG552) + RG351P) PKG_DEPENDS_TARGET+=" librga libgo2" PKG_CONFIGURE_OPTS_TARGET+=" --enable-odroidgo2" ;; @@ -63,49 +88,45 @@ make_target() { } makeinstall_target() { - if [ "${ARCH}" == "aarch64" ]; then - mkdir -p ${INSTALL}/usr/bin - cp ${PKG_BUILD}/retroarch ${INSTALL}/usr/bin - cp -vP ${ROOT}/build.${DISTRO}-${DEVICE}.arm/retroarch-*/.install_pkg/usr/bin/retroarch ${INSTALL}/usr/bin/retroarch32 + mkdir -p ${INSTALL}/usr/bin + cp ${PKG_BUILD}/retroarch ${INSTALL}/usr/bin + mkdir -p ${INSTALL}/usr/share/retroarch/filters - mkdir -p ${INSTALL}/usr/share/retroarch/filters - cp -rvP ${ROOT}/build.${DISTRO}-${DEVICE}.arm/retroarch-*/.install_pkg/usr/share/retroarch/filters/* ${INSTALL}/usr/share/retroarch/filters + case ${ARCH} in + aarch64) + cp -vP ${ROOT}/build.${DISTRO}-${DEVICE}.arm/retroarch-*/.install_pkg/usr/bin/retroarch ${INSTALL}/usr/bin/retroarch32 + cp -rvP ${ROOT}/build.${DISTRO}-${DEVICE}.arm/retroarch-*/.install_pkg/usr/share/retroarch/filters/* ${INSTALL}/usr/share/retroarch/filters - mkdir -p ${INSTALL}/etc - cp ${PKG_BUILD}/retroarch.cfg ${INSTALL}/etc + ;; + esac - mkdir -p ${INSTALL}/usr/share/retroarch/filters/64bit/video - cp ${PKG_BUILD}/gfx/video_filters/*.so ${INSTALL}/usr/share/retroarch/filters/64bit/video - cp ${PKG_BUILD}/gfx/video_filters/*.filt ${INSTALL}/usr/share/retroarch/filters/64bit/video + mkdir -p ${INSTALL}/etc + cp ${PKG_BUILD}/retroarch.cfg ${INSTALL}/etc - mkdir -p ${INSTALL}/usr/share/retroarch/filters/64bit/audio - cp ${PKG_BUILD}/libretro-common/audio/dsp_filters/*.so ${INSTALL}/usr/share/retroarch/filters/64bit/audio - cp ${PKG_BUILD}/libretro-common/audio/dsp_filters/*.dsp ${INSTALL}/usr/share/retroarch/filters/64bit/audio + mkdir -p ${INSTALL}/usr/share/retroarch/filters/64bit/video + cp ${PKG_BUILD}/gfx/video_filters/*.so ${INSTALL}/usr/share/retroarch/filters/64bit/video + cp ${PKG_BUILD}/gfx/video_filters/*.filt ${INSTALL}/usr/share/retroarch/filters/64bit/video - # General configuration - mkdir -p ${INSTALL}/usr/config/retroarch/ - if [ -d "${PKG_DIR}/sources/${DEVICE}" ]; then - cp -rf ${PKG_DIR}/sources/${DEVICE}/* ${INSTALL}/usr/config/retroarch/ - else - cp -rf ${PKG_DIR}/sources/* ${INSTALL}/usr/config/retroarch/ - fi + mkdir -p ${INSTALL}/usr/share/retroarch/filters/64bit/audio + cp ${PKG_BUILD}/libretro-common/audio/dsp_filters/*.so ${INSTALL}/usr/share/retroarch/filters/64bit/audio + cp ${PKG_BUILD}/libretro-common/audio/dsp_filters/*.dsp ${INSTALL}/usr/share/retroarch/filters/64bit/audio + + # General configuration + mkdir -p ${INSTALL}/usr/config/retroarch/ + if [ -d "${PKG_DIR}/sources/${DEVICE}" ]; then + cp -rf ${PKG_DIR}/sources/${DEVICE}/* ${INSTALL}/usr/config/retroarch/ else - mkdir -p ${INSTALL}/usr/bin - cp ${PKG_BUILD}/retroarch ${INSTALL}/usr/bin - - mkdir -p ${INSTALL}/usr/share/retroarch/filters/32bit/video - cp ${PKG_BUILD}/gfx/video_filters/*.so ${INSTALL}/usr/share/retroarch/filters/32bit/video - cp ${PKG_BUILD}/gfx/video_filters/*.filt ${INSTALL}/usr/share/retroarch/filters/32bit/video - - mkdir -p ${INSTALL}/usr/share/retroarch/filters/32bit/audio - cp ${PKG_BUILD}/libretro-common/audio/dsp_filters/*.so ${INSTALL}/usr/share/retroarch/filters/32bit/audio - cp ${PKG_BUILD}/libretro-common/audio/dsp_filters/*.dsp ${INSTALL}/usr/share/retroarch/filters/32bit/audio + echo "Configure retroarch for ${DEVICE}" + exit 1 fi } post_install() { mkdir -p ${INSTALL}/etc/retroarch-joypad-autoconfig - cp -r ${PKG_DIR}/gamepads/device/${DEVICE}/* ${INSTALL}/etc/retroarch-joypad-autoconfig + if [ -d "${PKG_DIR}/gamepads/device/${DEVICE}" ] + then + cp -r ${PKG_DIR}/gamepads/device/${DEVICE}/* ${INSTALL}/etc/retroarch-joypad-autoconfig ||: + fi enable_service tmp-cores.mount enable_service tmp-joypads.mount diff --git a/packages/games/emulators/retroarch/sources/RG552/retroarch.cfg b/packages/games/emulators/retroarch/sources/RG552/retroarch.cfg index ee2e7098e..aeca33967 100644 --- a/packages/games/emulators/retroarch/sources/RG552/retroarch.cfg +++ b/packages/games/emulators/retroarch/sources/RG552/retroarch.cfg @@ -457,7 +457,7 @@ menu_rgui_full_width_layout = "true" menu_rgui_shadows = "false" menu_rgui_transparency = "true" menu_savestate_resume = "true" -menu_scale_factor = "0.750000" +menu_scale_factor = "0.300000" menu_screensaver_animation = "0" menu_screensaver_animation_speed = "1.000000" menu_screensaver_timeout = "0" @@ -500,7 +500,7 @@ menu_use_preferred_system_color_theme = "false" menu_wallpaper = "" menu_wallpaper_opacity = "1.000000" menu_widget_scale_auto = "false" -menu_widget_scale_factor = "1.000000" +menu_widget_scale_factor = "0.350000" menu_widget_scale_factor_windowed = "1.000000" menu_xmb_animation_horizontal_highlight = "0" menu_xmb_animation_move_up_down = "0" @@ -734,7 +734,7 @@ video_context_driver = "" video_crop_overscan = "true" video_ctx_scaling = "false" video_disable_composition = "false" -video_driver = "gl" +video_driver = "glcore" video_filter = "" video_filter_dir = "~/.config/retroarch/filters/video" video_font_enable = "true" @@ -745,8 +745,8 @@ video_force_srgb_disable = "false" video_frame_delay = "0" video_frame_delay_auto = "false" video_fullscreen = "true" -video_fullscreen_x = "0" -video_fullscreen_y = "0" +video_fullscreen_x = "1920" +video_fullscreen_y = "1152" video_gpu_record = "false" video_gpu_screenshot = "false" video_hard_sync = "false" diff --git a/packages/games/emulators/retroarch/sources/X86_64/TATE-MAME 2003-Plus.rmp b/packages/games/emulators/retroarch/sources/X86_64/TATE-MAME 2003-Plus.rmp new file mode 100644 index 000000000..366e47afa --- /dev/null +++ b/packages/games/emulators/retroarch/sources/X86_64/TATE-MAME 2003-Plus.rmp @@ -0,0 +1,27 @@ +input_libretro_device_p1 = "1" +input_libretro_device_p2 = "1" +input_libretro_device_p3 = "1" +input_libretro_device_p4 = "1" +input_libretro_device_p5 = "1" +input_player1_analog_dpad_mode = "1" +input_player1_btn_down = "6" +input_player1_btn_left = "4" +input_player1_btn_right = "5" +input_player1_btn_up = "7" +input_player1_stk_l_x+ = "5" +input_player1_stk_l_x- = "4" +input_player1_stk_l_y+ = "6" +input_player1_stk_l_y- = "7" +input_player1_stk_r_x+ = "5" +input_player1_stk_r_x- = "4" +input_player1_stk_r_y+ = "6" +input_player1_stk_r_y- = "7" +input_player2_analog_dpad_mode = "0" +input_player3_analog_dpad_mode = "0" +input_player4_analog_dpad_mode = "0" +input_player5_analog_dpad_mode = "0" +input_remap_port_p1 = "0" +input_remap_port_p2 = "1" +input_remap_port_p3 = "2" +input_remap_port_p4 = "3" +input_remap_port_p5 = "4" diff --git a/packages/games/emulators/retroarch/sources/X86_64/retroarch-core-options.cfg b/packages/games/emulators/retroarch/sources/X86_64/retroarch-core-options.cfg new file mode 100644 index 000000000..1c64ec5e4 --- /dev/null +++ b/packages/games/emulators/retroarch/sources/X86_64/retroarch-core-options.cfg @@ -0,0 +1,91 @@ +pcsx_rearmed_analog_axis_modifier = "circle" +pcsx_rearmed_async_cd = "sync" +pcsx_rearmed_bios = "auto" +pcsx_rearmed_display_internal_fps = "disabled" +pcsx_rearmed_dithering = "enabled" +pcsx_rearmed_drc = "enabled" +pcsx_rearmed_duping_enable = "enabled" +pcsx_rearmed_frameskip_type = "disabled" +pcsx_rearmed_gteregsunneeded = "disabled" +pcsx_rearmed_gunconadjustratiox = "1" +pcsx_rearmed_gunconadjustratioy = "1" +pcsx_rearmed_gunconadjustx = "0" +pcsx_rearmed_gunconadjusty = "0" +pcsx_rearmed_idiablofix = "disabled" +pcsx_rearmed_input_sensitivity = "1.00" +pcsx_rearmed_inuyasha_fix = "disabled" +pcsx_rearmed_memcard2 = "disabled" +pcsx_rearmed_multitap1 = "auto" +pcsx_rearmed_multitap2 = "auto" +pcsx_rearmed_negcon_deadzone = "0" +pcsx_rearmed_negcon_response = "linear" +pcsx_rearmed_neon_enhancement_enable = "disabled" +pcsx_rearmed_neon_enhancement_no_main = "disabled" +pcsx_rearmed_neon_interlace_enable = "disabled" +pcsx_rearmed_nocdaudio = "enabled" +pcsx_rearmed_nogteflags = "disabled" +pcsx_rearmed_nosmccheck = "disabled" +pcsx_rearmed_noxadecoding = "enabled" +pcsx_rearmed_pad1type = "standard" +pcsx_rearmed_pad2type = "standard" +pcsx_rearmed_pad3type = "none" +pcsx_rearmed_pad4type = "none" +pcsx_rearmed_pad5type = "none" +pcsx_rearmed_pad6type = "none" +pcsx_rearmed_pad7type = "none" +pcsx_rearmed_pad8type = "none" +pcsx_rearmed_pe2_fix = "disabled" +pcsx_rearmed_psxclock = "57" +pcsx_rearmed_region = "auto" +pcsx_rearmed_show_bios_bootlogo = "disabled" +pcsx_rearmed_show_other_input_settings = "disabled" +pcsx_rearmed_spu_interpolation = "simple" +pcsx_rearmed_spu_reverb = "enabled" +pcsx_rearmed_spuirq = "disabled" +pcsx_rearmed_vibration = "enabled" +gambatte_gb_colorization = "disabled" +gambatte_gb_internal_palette = "" +mame2003-plus_analog = "digital" +mame2003-plus_art_resolution = "1" +mame2003-plus_brightness = "1.0" +mame2003-plus_cheat_input_ports = "disabled" +mame2003-plus_core_save_subfolder = "enabled" +mame2003-plus_core_sys_subfolder = "enabled" +mame2003-plus_dcs_speedhack = "enabled" +mame2003-plus_deadzone = "20" +mame2003-plus_digital_joy_centering = "enabled" +mame2003-plus_display_artwork = "enabled" +mame2003-plus_display_setup = "disabled" +mame2003-plus_four_way_emulation = "disabled" +mame2003-plus_frameskip = "0" +mame2003-plus_gamma = "1.0" +mame2003-plus_input_interface = "retropad" +mame2003-plus_machine_timing = "enabled" +mame2003-plus_mame_remapping = "enabled" +mame2003-plus_mouse_device = "mouse" +mame2003-plus_sample_rate = "48000" +mame2003-plus_skip_disclaimer = "disabled" +mame2003-plus_skip_warnings = "disabled" +flycast_internal_resolution = "640x480" +flycast_alpha_sorting = "per-strip (fast, least accurate)" +flycast_enable_dsp = "disabled" +flycast_threaded_rendering = "enabled" +flycast_anisotropic_filtering = "off" +flycast_synchronous_rendering = "enabled" +flycast_enable_rtt = "disabled" +flycast_enable_rttb = "disabled" +flycast_delay_frame_swapping = "disabled" +flycast_div_matching = "auto" +flycast_texupscale = "off" +flycast_auto_skip_frame = "normal" +opera_swi_hle = "enabled" +opera_dsp_threaded = "enabled" +opera_madam_matrix_engine = "software" +puae_deadzone = "25" +melonds_screen_layout = "Left/Right" +melonds_swapscreen_mode = "Toggle" +melonds_threaded_renderer = "enabled" +melonds_touch_mode = "Joystick" +duckstation_GPU.Renderer = "Software" +virtualjaguar_bios = "enabled" +virtualjaguar_usefastblitter = "enabled" diff --git a/packages/games/emulators/retroarch/sources/X86_64/retroarch.cfg b/packages/games/emulators/retroarch/sources/X86_64/retroarch.cfg new file mode 100644 index 000000000..6afbd3a53 --- /dev/null +++ b/packages/games/emulators/retroarch/sources/X86_64/retroarch.cfg @@ -0,0 +1,3208 @@ +accessibility_enable = "false" +accessibility_narrator_speech_speed = "5" +ai_service_enable = "true" +ai_service_mode = "1" +ai_service_pause = "false" +ai_service_source_lang = "0" +ai_service_target_lang = "0" +ai_service_url = "http://localhost:4404/" +all_users_control_menu = "true" +apply_cheats_after_load = "false" +apply_cheats_after_toggle = "false" +aspect_ratio_index = "22" +assets_directory = "/tmp/assets" +audio_block_frames = "0" +audio_device = "" +audio_driver = "alsathread" +audio_dsp_plugin = "" +audio_enable = "true" +audio_enable_menu = "false" +audio_enable_menu_bgm = "false" +audio_enable_menu_cancel = "false" +audio_enable_menu_notice = "false" +audio_enable_menu_ok = "false" +audio_fastforward_mute = "false" +audio_filter_dir = "/usr/share/retroarch/filters/64bit/audio" +audio_latency = "64" +audio_max_timing_skew = "0.049999" +audio_mixer_mute_enable = "false" +audio_mixer_volume = "0.000000" +audio_mute_enable = "false" +audio_out_rate = "48000" +audio_rate_control = "true" +audio_rate_control_delta = "0.004999" +audio_resampler = "sinc" +audio_resampler_quality = "2" +audio_sync = "true" +audio_volume = "0.000000" +auto_overrides_enable = "true" +auto_remaps_enable = "true" +auto_screenshot_filename = "true" +auto_shaders_enable = "true" +autosave_interval = "10" +block_sram_overwrite = "false" +bluetooth_driver = "null" +builtin_imageviewer_enable = "true" +builtin_mediaplayer_enable = "true" +bundle_assets_dst_path = "" +bundle_assets_dst_path_subdir = "" +bundle_assets_extract_enable = "false" +bundle_assets_extract_last_version = "0" +bundle_assets_extract_version_current = "0" +bundle_assets_src_path = "" +cache_directory = "/tmp/cache" +camera_allow = "false" +camera_device = "" +camera_driver = "null" +cheat_database_path = "/tmp/database/cht" +check_firmware_before_loading = "false" +cheevos_auto_screenshot = "false" +cheevos_badges_enable = "false" +cheevos_challenge_indicators = "true" +cheevos_custom_host = "" +cheevos_enable = "false" +cheevos_hardcore_mode_enable = "false" +cheevos_leaderboards_enable = "" +cheevos_password = "" +cheevos_richpresence_enable = "true" +cheevos_start_active = "false" +cheevos_test_unofficial = "false" +cheevos_token = "" +cheevos_unlock_sound_enable = "false" +cheevos_username = "" +cheevos_verbose_enable = "false" +config_save_on_exit = "true" +content_database_path = "/tmp/database/rdb" +content_favorites_directory = "default" +content_favorites_path = "~/.config/retroarch/content_favorites.lpl" +content_favorites_size = "200" +content_history_dir = "" +content_history_directory = "default" +content_history_path = "~/.config/retroarch/content_history.lpl" +content_history_size = "200" +content_image_history_directory = "default" +content_image_history_path = "~/.config/retroarch/content_image_history.lpl" +content_music_history_directory = "default" +content_music_history_path = "~/.config/retroarch/content_music_history.lpl" +content_runtime_log = "true" +content_runtime_log_aggregate = "false" +content_show_add = "true" +content_show_add_entry = "2" +content_show_contentless_cores = "2" +content_show_explore = "true" +content_show_favorites = "true" +content_show_history = "true" +content_show_images = "false" +content_show_music = "false" +content_show_netplay = "true" +content_show_playlists = "true" +content_show_settings = "true" +content_show_settings_password = "" +content_show_video = "false" +content_video_directory = "default" +content_video_history_path = "~/.config/retroarch/content_video_history.lpl" +core_assets_directory = "~/roms/downloads" +core_info_cache_enable = "true" +core_option_category_enable = "true" +core_options_path = "" +core_set_supports_no_game_enable = "true" +core_updater_auto_backup = "false" +core_updater_auto_backup_history_size = "1" +core_updater_auto_extract_archive = "true" +core_updater_buildbot_assets_url = "http://buildbot.libretro.com/assets/" +core_updater_buildbot_cores_url = "" +core_updater_buildbot_url = "http://buildbot.libretro.com/nightly/linux/armhf/latest/" +core_updater_show_experimental_cores = "false" +cpu_main_gov = "performance" +cpu_max_freq = "-1" +cpu_menu_gov = "interactive" +cpu_min_freq = "1" +cpu_scaling_mode = "0" +crt_switch_center_adjust = "0" +crt_switch_hires_menu = "false" +crt_switch_porch_adjust = "0" +crt_switch_resolution = "0" +crt_switch_resolution_super = "2560" +crt_switch_resolution_use_custom_refresh_rate = "false" +crt_switch_timings = "" +crt_video_refresh_rate = "60.000000" +current_resolution_id = "0" +cursor_directory = "~/.config/retroarch/database/cursors" +custom_viewport_height = "480" +custom_viewport_width = "640" +custom_viewport_x = "0" +custom_viewport_y = "0" +desktop_menu_enable = "true" +discord_allow = "false" +discord_app_id = "475456035851599874" +driver_switch_enable = "true" +dynamic_wallpapers_directory = "default" +emuelec_exit_to_kodi = "false" +enable_device_vibration = "true" +facebook_stream_key = "" +fastforward_frameskip = "true" +fastforward_ratio = "0.000000" +filter_by_current_core = "false" +flicker_filter_enable = "false" +flicker_filter_index = "0" +fps_show = "false" +fps_update_interval = "256" +frame_time_counter_reset_after_fastforwarding = "false" +frame_time_counter_reset_after_load_state = "false" +frame_time_counter_reset_after_save_state = "false" +framecount_show = "false" +frontend_log_level = "1" +game_specific_options = "true" +gamemode_enable = "false" +gamma_correction = "0" +global_core_options = "false" +history_list_enable = "true" +input_ai_service = "nul" +input_ai_service_axis = "nul" +input_ai_service_btn = "nul" +input_ai_service_mbtn = "nul" +input_analog_deadzone = "0.000000" +input_analog_sensitivity = "1.000000" +input_audio_mute = "f9" +input_audio_mute_axis = "nul" +input_audio_mute_btn = "nul" +input_audio_mute_mbtn = "nul" +input_auto_game_focus = "0" +input_auto_mouse_grab = "false" +input_autodetect_enable = "true" +input_axis_threshold = "0.500000" +input_bind_hold = "2" +input_bind_timeout = "5" +input_cheat_index_minus = "t" +input_cheat_index_minus_axis = "nul" +input_cheat_index_minus_btn = "nul" +input_cheat_index_minus_mbtn = "nul" +input_cheat_index_plus = "y" +input_cheat_index_plus_axis = "nul" +input_cheat_index_plus_btn = "nul" +input_cheat_index_plus_mbtn = "nul" +input_cheat_toggle = "u" +input_cheat_toggle_axis = "nul" +input_cheat_toggle_btn = "nul" +input_cheat_toggle_mbtn = "nul" +input_close_content = "nul" +input_close_content_axis = "nul" +input_close_content_btn = "nul" +input_close_content_mbtn = "nul" +input_descriptor_hide_unbound = "false" +input_descriptor_label_show = "true" +input_desktop_menu_toggle = "f5" +input_desktop_menu_toggle_axis = "nul" +input_desktop_menu_toggle_btn = "nul" +input_desktop_menu_toggle_mbtn = "nul" +input_device_p1 = "0" +input_device_p10 = "0" +input_device_p11 = "0" +input_device_p12 = "0" +input_device_p13 = "0" +input_device_p14 = "0" +input_device_p15 = "0" +input_device_p16 = "0" +input_device_p2 = "0" +input_device_p3 = "0" +input_device_p4 = "0" +input_device_p5 = "0" +input_device_p6 = "0" +input_device_p7 = "0" +input_device_p8 = "0" +input_device_p9 = "0" +input_disk_eject_toggle = "nul" +input_disk_eject_toggle_axis = "nul" +input_disk_eject_toggle_btn = "nul" +input_disk_eject_toggle_mbtn = "nul" +input_disk_next = "nul" +input_disk_next_axis = "nul" +input_disk_next_btn = "nul" +input_disk_next_mbtn = "nul" +input_disk_prev = "nul" +input_disk_prev_axis = "nul" +input_disk_prev_btn = "nul" +input_disk_prev_mbtn = "nul" +input_driver = "udev" +input_duty_cycle = "3" +input_enable_hotkey = "nul" +input_enable_hotkey_axis = "nul" +input_enable_hotkey_btn = "6" +input_enable_hotkey_mbtn = "nul" +input_exit_emulator = "escape" +input_exit_emulator_axis = "nul" +input_exit_emulator_btn = "7" +input_exit_emulator_mbtn = "nul" +input_fps_toggle = "f3" +input_fps_toggle_axis = "nul" +input_fps_toggle_btn = "2" +input_fps_toggle_mbtn = "nul" +input_frame_advance = "k" +input_frame_advance_axis = "nul" +input_frame_advance_btn = "nul" +input_frame_advance_mbtn = "nul" +input_game_focus_toggle = "scroll_lock" +input_game_focus_toggle_axis = "nul" +input_game_focus_toggle_btn = "nul" +input_game_focus_toggle_mbtn = "nul" +input_grab_mouse_toggle = "f11" +input_grab_mouse_toggle_axis = "nul" +input_grab_mouse_toggle_btn = "nul" +input_grab_mouse_toggle_mbtn = "nul" +input_hold_fast_forward = "l" +input_hold_fast_forward_axis = "+5" +input_hold_fast_forward_btn = "nul" +input_hold_fast_forward_mbtn = "nul" +input_hold_slowmotion = "e" +input_hold_slowmotion_axis = "nul" +input_hold_slowmotion_btn = "nul" +input_hold_slowmotion_mbtn = "nul" +input_hotkey_block_delay = "5" +input_joypad_driver = "udev" +input_keyboard_layout = "" +input_load_state = "f4" +input_load_state_axis = "nul" +input_load_state_btn = "4" +input_load_state_mbtn = "nul" +input_max_users = "5" +input_menu_toggle = "f1" +input_menu_toggle_axis = "nul" +input_menu_toggle_btn = "3" +input_menu_toggle_gamepad_combo = "2" +input_menu_toggle_mbtn = "nul" +input_movie_record_toggle = "o" +input_movie_record_toggle_axis = "nul" +input_movie_record_toggle_btn = "nul" +input_movie_record_toggle_mbtn = "nul" +input_netplay_fade_chat_toggle = "nul" +input_netplay_fade_chat_toggle_axis = "nul" +input_netplay_fade_chat_toggle_btn = "nul" +input_netplay_fade_chat_toggle_mbtn = "nul" +input_netplay_game_watch = "i" +input_netplay_game_watch_axis = "nul" +input_netplay_game_watch_btn = "nul" +input_netplay_game_watch_mbtn = "nul" +input_netplay_host_toggle = "nul" +input_netplay_host_toggle_axis = "nul" +input_netplay_host_toggle_btn = "nul" +input_netplay_host_toggle_mbtn = "nul" +input_netplay_ping_toggle = "nul" +input_netplay_ping_toggle_axis = "nul" +input_netplay_ping_toggle_btn = "nul" +input_netplay_ping_toggle_mbtn = "nul" +input_netplay_player_chat = "tilde" +input_netplay_player_chat_axis = "nul" +input_netplay_player_chat_btn = "nul" +input_netplay_player_chat_mbtn = "nul" +input_nowinkey_enable = "false" +input_osk_toggle = "f12" +input_osk_toggle_axis = "nul" +input_osk_toggle_btn = "nul" +input_osk_toggle_mbtn = "nul" +input_overlay = "" +input_overlay_aspect_adjust_landscape = "0.000000" +input_overlay_aspect_adjust_portrait = "0.000000" +input_overlay_auto_rotate = "false" +input_overlay_auto_scale = "false" +input_overlay_behind_menu = "false" +input_overlay_enable = "true" +input_overlay_enable_autopreferred = "true" +input_overlay_hide_in_menu = "true" +input_overlay_hide_when_gamepad_connected = "false" +input_overlay_next = "nul" +input_overlay_next_axis = "nul" +input_overlay_next_btn = "nul" +input_overlay_next_mbtn = "nul" +input_overlay_opacity = "0.700000" +input_overlay_scale_landscape = "1.000000" +input_overlay_scale_portrait = "1.000000" +input_overlay_show_inputs = "2" +input_overlay_show_inputs_port = "0" +input_overlay_show_mouse_cursor = "true" +input_overlay_x_offset_landscape = "0.000000" +input_overlay_x_offset_portrait = "0.000000" +input_overlay_x_separation_landscape = "0.000000" +input_overlay_x_separation_portrait = "0.000000" +input_overlay_y_offset_landscape = "0.000000" +input_overlay_y_offset_portrait = "0.000000" +input_overlay_y_separation_landscape = "0.000000" +input_overlay_y_separation_portrait = "0.000000" +input_pause_toggle = "p" +input_pause_toggle_axis = "nul" +input_pause_toggle_btn = "nul" +input_pause_toggle_mbtn = "nul" +input_player10_a = "nul" +input_player10_a_axis = "nul" +input_player10_a_btn = "nul" +input_player10_a_mbtn = "nul" +input_player10_analog_dpad_mode = "0" +input_player10_b = "nul" +input_player10_b_axis = "nul" +input_player10_b_btn = "nul" +input_player10_b_mbtn = "nul" +input_player10_down = "nul" +input_player10_down_axis = "nul" +input_player10_down_btn = "nul" +input_player10_down_mbtn = "nul" +input_player10_gun_aux_a = "nul" +input_player10_gun_aux_a_axis = "nul" +input_player10_gun_aux_a_btn = "nul" +input_player10_gun_aux_a_mbtn = "nul" +input_player10_gun_aux_b = "nul" +input_player10_gun_aux_b_axis = "nul" +input_player10_gun_aux_b_btn = "nul" +input_player10_gun_aux_b_mbtn = "nul" +input_player10_gun_aux_c = "nul" +input_player10_gun_aux_c_axis = "nul" +input_player10_gun_aux_c_btn = "nul" +input_player10_gun_aux_c_mbtn = "nul" +input_player10_gun_dpad_down = "nul" +input_player10_gun_dpad_down_axis = "nul" +input_player10_gun_dpad_down_btn = "nul" +input_player10_gun_dpad_down_mbtn = "nul" +input_player10_gun_dpad_left = "nul" +input_player10_gun_dpad_left_axis = "nul" +input_player10_gun_dpad_left_btn = "nul" +input_player10_gun_dpad_left_mbtn = "nul" +input_player10_gun_dpad_right = "nul" +input_player10_gun_dpad_right_axis = "nul" +input_player10_gun_dpad_right_btn = "nul" +input_player10_gun_dpad_right_mbtn = "nul" +input_player10_gun_dpad_up = "nul" +input_player10_gun_dpad_up_axis = "nul" +input_player10_gun_dpad_up_btn = "nul" +input_player10_gun_dpad_up_mbtn = "nul" +input_player10_gun_offscreen_shot = "nul" +input_player10_gun_offscreen_shot_axis = "nul" +input_player10_gun_offscreen_shot_btn = "nul" +input_player10_gun_offscreen_shot_mbtn = "nul" +input_player10_gun_select = "nul" +input_player10_gun_select_axis = "nul" +input_player10_gun_select_btn = "nul" +input_player10_gun_select_mbtn = "nul" +input_player10_gun_start = "nul" +input_player10_gun_start_axis = "nul" +input_player10_gun_start_btn = "nul" +input_player10_gun_start_mbtn = "nul" +input_player10_gun_trigger = "nul" +input_player10_gun_trigger_axis = "nul" +input_player10_gun_trigger_btn = "nul" +input_player10_gun_trigger_mbtn = "1" +input_player10_joypad_index = "9" +input_player10_l = "nul" +input_player10_l2 = "nul" +input_player10_l2_axis = "nul" +input_player10_l2_btn = "nul" +input_player10_l2_mbtn = "nul" +input_player10_l3 = "nul" +input_player10_l3_axis = "nul" +input_player10_l3_btn = "nul" +input_player10_l3_mbtn = "nul" +input_player10_l_axis = "nul" +input_player10_l_btn = "nul" +input_player10_l_mbtn = "nul" +input_player10_l_x_minus = "nul" +input_player10_l_x_minus_axis = "nul" +input_player10_l_x_minus_btn = "nul" +input_player10_l_x_minus_mbtn = "nul" +input_player10_l_x_plus = "nul" +input_player10_l_x_plus_axis = "nul" +input_player10_l_x_plus_btn = "nul" +input_player10_l_x_plus_mbtn = "nul" +input_player10_l_y_minus = "nul" +input_player10_l_y_minus_axis = "nul" +input_player10_l_y_minus_btn = "nul" +input_player10_l_y_minus_mbtn = "nul" +input_player10_l_y_plus = "nul" +input_player10_l_y_plus_axis = "nul" +input_player10_l_y_plus_btn = "nul" +input_player10_l_y_plus_mbtn = "nul" +input_player10_left = "nul" +input_player10_left_axis = "nul" +input_player10_left_btn = "nul" +input_player10_left_mbtn = "nul" +input_player10_mouse_index = "9" +input_player10_r = "nul" +input_player10_r2 = "nul" +input_player10_r2_axis = "nul" +input_player10_r2_btn = "nul" +input_player10_r2_mbtn = "nul" +input_player10_r3 = "nul" +input_player10_r3_axis = "nul" +input_player10_r3_btn = "nul" +input_player10_r3_mbtn = "nul" +input_player10_r_axis = "nul" +input_player10_r_btn = "nul" +input_player10_r_mbtn = "nul" +input_player10_r_x_minus = "nul" +input_player10_r_x_minus_axis = "nul" +input_player10_r_x_minus_btn = "nul" +input_player10_r_x_minus_mbtn = "nul" +input_player10_r_x_plus = "nul" +input_player10_r_x_plus_axis = "nul" +input_player10_r_x_plus_btn = "nul" +input_player10_r_x_plus_mbtn = "nul" +input_player10_r_y_minus = "nul" +input_player10_r_y_minus_axis = "nul" +input_player10_r_y_minus_btn = "nul" +input_player10_r_y_minus_mbtn = "nul" +input_player10_r_y_plus = "nul" +input_player10_r_y_plus_axis = "nul" +input_player10_r_y_plus_btn = "nul" +input_player10_r_y_plus_mbtn = "nul" +input_player10_right = "nul" +input_player10_right_axis = "nul" +input_player10_right_btn = "nul" +input_player10_right_mbtn = "nul" +input_player10_select = "nul" +input_player10_select_axis = "nul" +input_player10_select_btn = "nul" +input_player10_select_mbtn = "nul" +input_player10_start = "nul" +input_player10_start_axis = "nul" +input_player10_start_btn = "nul" +input_player10_start_mbtn = "nul" +input_player10_turbo = "nul" +input_player10_turbo_axis = "nul" +input_player10_turbo_btn = "nul" +input_player10_turbo_mbtn = "nul" +input_player10_up = "nul" +input_player10_up_axis = "nul" +input_player10_up_btn = "nul" +input_player10_up_mbtn = "nul" +input_player10_x = "nul" +input_player10_x_axis = "nul" +input_player10_x_btn = "nul" +input_player10_x_mbtn = "nul" +input_player10_y = "nul" +input_player10_y_axis = "nul" +input_player10_y_btn = "nul" +input_player10_y_mbtn = "nul" +input_player11_a = "nul" +input_player11_a_axis = "nul" +input_player11_a_btn = "nul" +input_player11_a_mbtn = "nul" +input_player11_analog_dpad_mode = "0" +input_player11_b = "nul" +input_player11_b_axis = "nul" +input_player11_b_btn = "nul" +input_player11_b_mbtn = "nul" +input_player11_down = "nul" +input_player11_down_axis = "nul" +input_player11_down_btn = "nul" +input_player11_down_mbtn = "nul" +input_player11_gun_aux_a = "nul" +input_player11_gun_aux_a_axis = "nul" +input_player11_gun_aux_a_btn = "nul" +input_player11_gun_aux_a_mbtn = "nul" +input_player11_gun_aux_b = "nul" +input_player11_gun_aux_b_axis = "nul" +input_player11_gun_aux_b_btn = "nul" +input_player11_gun_aux_b_mbtn = "nul" +input_player11_gun_aux_c = "nul" +input_player11_gun_aux_c_axis = "nul" +input_player11_gun_aux_c_btn = "nul" +input_player11_gun_aux_c_mbtn = "nul" +input_player11_gun_dpad_down = "nul" +input_player11_gun_dpad_down_axis = "nul" +input_player11_gun_dpad_down_btn = "nul" +input_player11_gun_dpad_down_mbtn = "nul" +input_player11_gun_dpad_left = "nul" +input_player11_gun_dpad_left_axis = "nul" +input_player11_gun_dpad_left_btn = "nul" +input_player11_gun_dpad_left_mbtn = "nul" +input_player11_gun_dpad_right = "nul" +input_player11_gun_dpad_right_axis = "nul" +input_player11_gun_dpad_right_btn = "nul" +input_player11_gun_dpad_right_mbtn = "nul" +input_player11_gun_dpad_up = "nul" +input_player11_gun_dpad_up_axis = "nul" +input_player11_gun_dpad_up_btn = "nul" +input_player11_gun_dpad_up_mbtn = "nul" +input_player11_gun_offscreen_shot = "nul" +input_player11_gun_offscreen_shot_axis = "nul" +input_player11_gun_offscreen_shot_btn = "nul" +input_player11_gun_offscreen_shot_mbtn = "nul" +input_player11_gun_select = "nul" +input_player11_gun_select_axis = "nul" +input_player11_gun_select_btn = "nul" +input_player11_gun_select_mbtn = "nul" +input_player11_gun_start = "nul" +input_player11_gun_start_axis = "nul" +input_player11_gun_start_btn = "nul" +input_player11_gun_start_mbtn = "nul" +input_player11_gun_trigger = "nul" +input_player11_gun_trigger_axis = "nul" +input_player11_gun_trigger_btn = "nul" +input_player11_gun_trigger_mbtn = "1" +input_player11_joypad_index = "10" +input_player11_l = "nul" +input_player11_l2 = "nul" +input_player11_l2_axis = "nul" +input_player11_l2_btn = "nul" +input_player11_l2_mbtn = "nul" +input_player11_l3 = "nul" +input_player11_l3_axis = "nul" +input_player11_l3_btn = "nul" +input_player11_l3_mbtn = "nul" +input_player11_l_axis = "nul" +input_player11_l_btn = "nul" +input_player11_l_mbtn = "nul" +input_player11_l_x_minus = "nul" +input_player11_l_x_minus_axis = "nul" +input_player11_l_x_minus_btn = "nul" +input_player11_l_x_minus_mbtn = "nul" +input_player11_l_x_plus = "nul" +input_player11_l_x_plus_axis = "nul" +input_player11_l_x_plus_btn = "nul" +input_player11_l_x_plus_mbtn = "nul" +input_player11_l_y_minus = "nul" +input_player11_l_y_minus_axis = "nul" +input_player11_l_y_minus_btn = "nul" +input_player11_l_y_minus_mbtn = "nul" +input_player11_l_y_plus = "nul" +input_player11_l_y_plus_axis = "nul" +input_player11_l_y_plus_btn = "nul" +input_player11_l_y_plus_mbtn = "nul" +input_player11_left = "nul" +input_player11_left_axis = "nul" +input_player11_left_btn = "nul" +input_player11_left_mbtn = "nul" +input_player11_mouse_index = "10" +input_player11_r = "nul" +input_player11_r2 = "nul" +input_player11_r2_axis = "nul" +input_player11_r2_btn = "nul" +input_player11_r2_mbtn = "nul" +input_player11_r3 = "nul" +input_player11_r3_axis = "nul" +input_player11_r3_btn = "nul" +input_player11_r3_mbtn = "nul" +input_player11_r_axis = "nul" +input_player11_r_btn = "nul" +input_player11_r_mbtn = "nul" +input_player11_r_x_minus = "nul" +input_player11_r_x_minus_axis = "nul" +input_player11_r_x_minus_btn = "nul" +input_player11_r_x_minus_mbtn = "nul" +input_player11_r_x_plus = "nul" +input_player11_r_x_plus_axis = "nul" +input_player11_r_x_plus_btn = "nul" +input_player11_r_x_plus_mbtn = "nul" +input_player11_r_y_minus = "nul" +input_player11_r_y_minus_axis = "nul" +input_player11_r_y_minus_btn = "nul" +input_player11_r_y_minus_mbtn = "nul" +input_player11_r_y_plus = "nul" +input_player11_r_y_plus_axis = "nul" +input_player11_r_y_plus_btn = "nul" +input_player11_r_y_plus_mbtn = "nul" +input_player11_right = "nul" +input_player11_right_axis = "nul" +input_player11_right_btn = "nul" +input_player11_right_mbtn = "nul" +input_player11_select = "nul" +input_player11_select_axis = "nul" +input_player11_select_btn = "nul" +input_player11_select_mbtn = "nul" +input_player11_start = "nul" +input_player11_start_axis = "nul" +input_player11_start_btn = "nul" +input_player11_start_mbtn = "nul" +input_player11_turbo = "nul" +input_player11_turbo_axis = "nul" +input_player11_turbo_btn = "nul" +input_player11_turbo_mbtn = "nul" +input_player11_up = "nul" +input_player11_up_axis = "nul" +input_player11_up_btn = "nul" +input_player11_up_mbtn = "nul" +input_player11_x = "nul" +input_player11_x_axis = "nul" +input_player11_x_btn = "nul" +input_player11_x_mbtn = "nul" +input_player11_y = "nul" +input_player11_y_axis = "nul" +input_player11_y_btn = "nul" +input_player11_y_mbtn = "nul" +input_player12_a = "nul" +input_player12_a_axis = "nul" +input_player12_a_btn = "nul" +input_player12_a_mbtn = "nul" +input_player12_analog_dpad_mode = "0" +input_player12_b = "nul" +input_player12_b_axis = "nul" +input_player12_b_btn = "nul" +input_player12_b_mbtn = "nul" +input_player12_down = "nul" +input_player12_down_axis = "nul" +input_player12_down_btn = "nul" +input_player12_down_mbtn = "nul" +input_player12_gun_aux_a = "nul" +input_player12_gun_aux_a_axis = "nul" +input_player12_gun_aux_a_btn = "nul" +input_player12_gun_aux_a_mbtn = "nul" +input_player12_gun_aux_b = "nul" +input_player12_gun_aux_b_axis = "nul" +input_player12_gun_aux_b_btn = "nul" +input_player12_gun_aux_b_mbtn = "nul" +input_player12_gun_aux_c = "nul" +input_player12_gun_aux_c_axis = "nul" +input_player12_gun_aux_c_btn = "nul" +input_player12_gun_aux_c_mbtn = "nul" +input_player12_gun_dpad_down = "nul" +input_player12_gun_dpad_down_axis = "nul" +input_player12_gun_dpad_down_btn = "nul" +input_player12_gun_dpad_down_mbtn = "nul" +input_player12_gun_dpad_left = "nul" +input_player12_gun_dpad_left_axis = "nul" +input_player12_gun_dpad_left_btn = "nul" +input_player12_gun_dpad_left_mbtn = "nul" +input_player12_gun_dpad_right = "nul" +input_player12_gun_dpad_right_axis = "nul" +input_player12_gun_dpad_right_btn = "nul" +input_player12_gun_dpad_right_mbtn = "nul" +input_player12_gun_dpad_up = "nul" +input_player12_gun_dpad_up_axis = "nul" +input_player12_gun_dpad_up_btn = "nul" +input_player12_gun_dpad_up_mbtn = "nul" +input_player12_gun_offscreen_shot = "nul" +input_player12_gun_offscreen_shot_axis = "nul" +input_player12_gun_offscreen_shot_btn = "nul" +input_player12_gun_offscreen_shot_mbtn = "nul" +input_player12_gun_select = "nul" +input_player12_gun_select_axis = "nul" +input_player12_gun_select_btn = "nul" +input_player12_gun_select_mbtn = "nul" +input_player12_gun_start = "nul" +input_player12_gun_start_axis = "nul" +input_player12_gun_start_btn = "nul" +input_player12_gun_start_mbtn = "nul" +input_player12_gun_trigger = "nul" +input_player12_gun_trigger_axis = "nul" +input_player12_gun_trigger_btn = "nul" +input_player12_gun_trigger_mbtn = "1" +input_player12_joypad_index = "11" +input_player12_l = "nul" +input_player12_l2 = "nul" +input_player12_l2_axis = "nul" +input_player12_l2_btn = "nul" +input_player12_l2_mbtn = "nul" +input_player12_l3 = "nul" +input_player12_l3_axis = "nul" +input_player12_l3_btn = "nul" +input_player12_l3_mbtn = "nul" +input_player12_l_axis = "nul" +input_player12_l_btn = "nul" +input_player12_l_mbtn = "nul" +input_player12_l_x_minus = "nul" +input_player12_l_x_minus_axis = "nul" +input_player12_l_x_minus_btn = "nul" +input_player12_l_x_minus_mbtn = "nul" +input_player12_l_x_plus = "nul" +input_player12_l_x_plus_axis = "nul" +input_player12_l_x_plus_btn = "nul" +input_player12_l_x_plus_mbtn = "nul" +input_player12_l_y_minus = "nul" +input_player12_l_y_minus_axis = "nul" +input_player12_l_y_minus_btn = "nul" +input_player12_l_y_minus_mbtn = "nul" +input_player12_l_y_plus = "nul" +input_player12_l_y_plus_axis = "nul" +input_player12_l_y_plus_btn = "nul" +input_player12_l_y_plus_mbtn = "nul" +input_player12_left = "nul" +input_player12_left_axis = "nul" +input_player12_left_btn = "nul" +input_player12_left_mbtn = "nul" +input_player12_mouse_index = "11" +input_player12_r = "nul" +input_player12_r2 = "nul" +input_player12_r2_axis = "nul" +input_player12_r2_btn = "nul" +input_player12_r2_mbtn = "nul" +input_player12_r3 = "nul" +input_player12_r3_axis = "nul" +input_player12_r3_btn = "nul" +input_player12_r3_mbtn = "nul" +input_player12_r_axis = "nul" +input_player12_r_btn = "nul" +input_player12_r_mbtn = "nul" +input_player12_r_x_minus = "nul" +input_player12_r_x_minus_axis = "nul" +input_player12_r_x_minus_btn = "nul" +input_player12_r_x_minus_mbtn = "nul" +input_player12_r_x_plus = "nul" +input_player12_r_x_plus_axis = "nul" +input_player12_r_x_plus_btn = "nul" +input_player12_r_x_plus_mbtn = "nul" +input_player12_r_y_minus = "nul" +input_player12_r_y_minus_axis = "nul" +input_player12_r_y_minus_btn = "nul" +input_player12_r_y_minus_mbtn = "nul" +input_player12_r_y_plus = "nul" +input_player12_r_y_plus_axis = "nul" +input_player12_r_y_plus_btn = "nul" +input_player12_r_y_plus_mbtn = "nul" +input_player12_right = "nul" +input_player12_right_axis = "nul" +input_player12_right_btn = "nul" +input_player12_right_mbtn = "nul" +input_player12_select = "nul" +input_player12_select_axis = "nul" +input_player12_select_btn = "nul" +input_player12_select_mbtn = "nul" +input_player12_start = "nul" +input_player12_start_axis = "nul" +input_player12_start_btn = "nul" +input_player12_start_mbtn = "nul" +input_player12_turbo = "nul" +input_player12_turbo_axis = "nul" +input_player12_turbo_btn = "nul" +input_player12_turbo_mbtn = "nul" +input_player12_up = "nul" +input_player12_up_axis = "nul" +input_player12_up_btn = "nul" +input_player12_up_mbtn = "nul" +input_player12_x = "nul" +input_player12_x_axis = "nul" +input_player12_x_btn = "nul" +input_player12_x_mbtn = "nul" +input_player12_y = "nul" +input_player12_y_axis = "nul" +input_player12_y_btn = "nul" +input_player12_y_mbtn = "nul" +input_player13_a = "nul" +input_player13_a_axis = "nul" +input_player13_a_btn = "nul" +input_player13_a_mbtn = "nul" +input_player13_analog_dpad_mode = "0" +input_player13_b = "nul" +input_player13_b_axis = "nul" +input_player13_b_btn = "nul" +input_player13_b_mbtn = "nul" +input_player13_down = "nul" +input_player13_down_axis = "nul" +input_player13_down_btn = "nul" +input_player13_down_mbtn = "nul" +input_player13_gun_aux_a = "nul" +input_player13_gun_aux_a_axis = "nul" +input_player13_gun_aux_a_btn = "nul" +input_player13_gun_aux_a_mbtn = "nul" +input_player13_gun_aux_b = "nul" +input_player13_gun_aux_b_axis = "nul" +input_player13_gun_aux_b_btn = "nul" +input_player13_gun_aux_b_mbtn = "nul" +input_player13_gun_aux_c = "nul" +input_player13_gun_aux_c_axis = "nul" +input_player13_gun_aux_c_btn = "nul" +input_player13_gun_aux_c_mbtn = "nul" +input_player13_gun_dpad_down = "nul" +input_player13_gun_dpad_down_axis = "nul" +input_player13_gun_dpad_down_btn = "nul" +input_player13_gun_dpad_down_mbtn = "nul" +input_player13_gun_dpad_left = "nul" +input_player13_gun_dpad_left_axis = "nul" +input_player13_gun_dpad_left_btn = "nul" +input_player13_gun_dpad_left_mbtn = "nul" +input_player13_gun_dpad_right = "nul" +input_player13_gun_dpad_right_axis = "nul" +input_player13_gun_dpad_right_btn = "nul" +input_player13_gun_dpad_right_mbtn = "nul" +input_player13_gun_dpad_up = "nul" +input_player13_gun_dpad_up_axis = "nul" +input_player13_gun_dpad_up_btn = "nul" +input_player13_gun_dpad_up_mbtn = "nul" +input_player13_gun_offscreen_shot = "nul" +input_player13_gun_offscreen_shot_axis = "nul" +input_player13_gun_offscreen_shot_btn = "nul" +input_player13_gun_offscreen_shot_mbtn = "nul" +input_player13_gun_select = "nul" +input_player13_gun_select_axis = "nul" +input_player13_gun_select_btn = "nul" +input_player13_gun_select_mbtn = "nul" +input_player13_gun_start = "nul" +input_player13_gun_start_axis = "nul" +input_player13_gun_start_btn = "nul" +input_player13_gun_start_mbtn = "nul" +input_player13_gun_trigger = "nul" +input_player13_gun_trigger_axis = "nul" +input_player13_gun_trigger_btn = "nul" +input_player13_gun_trigger_mbtn = "1" +input_player13_joypad_index = "12" +input_player13_l = "nul" +input_player13_l2 = "nul" +input_player13_l2_axis = "nul" +input_player13_l2_btn = "nul" +input_player13_l2_mbtn = "nul" +input_player13_l3 = "nul" +input_player13_l3_axis = "nul" +input_player13_l3_btn = "nul" +input_player13_l3_mbtn = "nul" +input_player13_l_axis = "nul" +input_player13_l_btn = "nul" +input_player13_l_mbtn = "nul" +input_player13_l_x_minus = "nul" +input_player13_l_x_minus_axis = "nul" +input_player13_l_x_minus_btn = "nul" +input_player13_l_x_minus_mbtn = "nul" +input_player13_l_x_plus = "nul" +input_player13_l_x_plus_axis = "nul" +input_player13_l_x_plus_btn = "nul" +input_player13_l_x_plus_mbtn = "nul" +input_player13_l_y_minus = "nul" +input_player13_l_y_minus_axis = "nul" +input_player13_l_y_minus_btn = "nul" +input_player13_l_y_minus_mbtn = "nul" +input_player13_l_y_plus = "nul" +input_player13_l_y_plus_axis = "nul" +input_player13_l_y_plus_btn = "nul" +input_player13_l_y_plus_mbtn = "nul" +input_player13_left = "nul" +input_player13_left_axis = "nul" +input_player13_left_btn = "nul" +input_player13_left_mbtn = "nul" +input_player13_mouse_index = "12" +input_player13_r = "nul" +input_player13_r2 = "nul" +input_player13_r2_axis = "nul" +input_player13_r2_btn = "nul" +input_player13_r2_mbtn = "nul" +input_player13_r3 = "nul" +input_player13_r3_axis = "nul" +input_player13_r3_btn = "nul" +input_player13_r3_mbtn = "nul" +input_player13_r_axis = "nul" +input_player13_r_btn = "nul" +input_player13_r_mbtn = "nul" +input_player13_r_x_minus = "nul" +input_player13_r_x_minus_axis = "nul" +input_player13_r_x_minus_btn = "nul" +input_player13_r_x_minus_mbtn = "nul" +input_player13_r_x_plus = "nul" +input_player13_r_x_plus_axis = "nul" +input_player13_r_x_plus_btn = "nul" +input_player13_r_x_plus_mbtn = "nul" +input_player13_r_y_minus = "nul" +input_player13_r_y_minus_axis = "nul" +input_player13_r_y_minus_btn = "nul" +input_player13_r_y_minus_mbtn = "nul" +input_player13_r_y_plus = "nul" +input_player13_r_y_plus_axis = "nul" +input_player13_r_y_plus_btn = "nul" +input_player13_r_y_plus_mbtn = "nul" +input_player13_right = "nul" +input_player13_right_axis = "nul" +input_player13_right_btn = "nul" +input_player13_right_mbtn = "nul" +input_player13_select = "nul" +input_player13_select_axis = "nul" +input_player13_select_btn = "nul" +input_player13_select_mbtn = "nul" +input_player13_start = "nul" +input_player13_start_axis = "nul" +input_player13_start_btn = "nul" +input_player13_start_mbtn = "nul" +input_player13_turbo = "nul" +input_player13_turbo_axis = "nul" +input_player13_turbo_btn = "nul" +input_player13_turbo_mbtn = "nul" +input_player13_up = "nul" +input_player13_up_axis = "nul" +input_player13_up_btn = "nul" +input_player13_up_mbtn = "nul" +input_player13_x = "nul" +input_player13_x_axis = "nul" +input_player13_x_btn = "nul" +input_player13_x_mbtn = "nul" +input_player13_y = "nul" +input_player13_y_axis = "nul" +input_player13_y_btn = "nul" +input_player13_y_mbtn = "nul" +input_player14_a = "nul" +input_player14_a_axis = "nul" +input_player14_a_btn = "nul" +input_player14_a_mbtn = "nul" +input_player14_analog_dpad_mode = "0" +input_player14_b = "nul" +input_player14_b_axis = "nul" +input_player14_b_btn = "nul" +input_player14_b_mbtn = "nul" +input_player14_down = "nul" +input_player14_down_axis = "nul" +input_player14_down_btn = "nul" +input_player14_down_mbtn = "nul" +input_player14_gun_aux_a = "nul" +input_player14_gun_aux_a_axis = "nul" +input_player14_gun_aux_a_btn = "nul" +input_player14_gun_aux_a_mbtn = "nul" +input_player14_gun_aux_b = "nul" +input_player14_gun_aux_b_axis = "nul" +input_player14_gun_aux_b_btn = "nul" +input_player14_gun_aux_b_mbtn = "nul" +input_player14_gun_aux_c = "nul" +input_player14_gun_aux_c_axis = "nul" +input_player14_gun_aux_c_btn = "nul" +input_player14_gun_aux_c_mbtn = "nul" +input_player14_gun_dpad_down = "nul" +input_player14_gun_dpad_down_axis = "nul" +input_player14_gun_dpad_down_btn = "nul" +input_player14_gun_dpad_down_mbtn = "nul" +input_player14_gun_dpad_left = "nul" +input_player14_gun_dpad_left_axis = "nul" +input_player14_gun_dpad_left_btn = "nul" +input_player14_gun_dpad_left_mbtn = "nul" +input_player14_gun_dpad_right = "nul" +input_player14_gun_dpad_right_axis = "nul" +input_player14_gun_dpad_right_btn = "nul" +input_player14_gun_dpad_right_mbtn = "nul" +input_player14_gun_dpad_up = "nul" +input_player14_gun_dpad_up_axis = "nul" +input_player14_gun_dpad_up_btn = "nul" +input_player14_gun_dpad_up_mbtn = "nul" +input_player14_gun_offscreen_shot = "nul" +input_player14_gun_offscreen_shot_axis = "nul" +input_player14_gun_offscreen_shot_btn = "nul" +input_player14_gun_offscreen_shot_mbtn = "nul" +input_player14_gun_select = "nul" +input_player14_gun_select_axis = "nul" +input_player14_gun_select_btn = "nul" +input_player14_gun_select_mbtn = "nul" +input_player14_gun_start = "nul" +input_player14_gun_start_axis = "nul" +input_player14_gun_start_btn = "nul" +input_player14_gun_start_mbtn = "nul" +input_player14_gun_trigger = "nul" +input_player14_gun_trigger_axis = "nul" +input_player14_gun_trigger_btn = "nul" +input_player14_gun_trigger_mbtn = "1" +input_player14_joypad_index = "13" +input_player14_l = "nul" +input_player14_l2 = "nul" +input_player14_l2_axis = "nul" +input_player14_l2_btn = "nul" +input_player14_l2_mbtn = "nul" +input_player14_l3 = "nul" +input_player14_l3_axis = "nul" +input_player14_l3_btn = "nul" +input_player14_l3_mbtn = "nul" +input_player14_l_axis = "nul" +input_player14_l_btn = "nul" +input_player14_l_mbtn = "nul" +input_player14_l_x_minus = "nul" +input_player14_l_x_minus_axis = "nul" +input_player14_l_x_minus_btn = "nul" +input_player14_l_x_minus_mbtn = "nul" +input_player14_l_x_plus = "nul" +input_player14_l_x_plus_axis = "nul" +input_player14_l_x_plus_btn = "nul" +input_player14_l_x_plus_mbtn = "nul" +input_player14_l_y_minus = "nul" +input_player14_l_y_minus_axis = "nul" +input_player14_l_y_minus_btn = "nul" +input_player14_l_y_minus_mbtn = "nul" +input_player14_l_y_plus = "nul" +input_player14_l_y_plus_axis = "nul" +input_player14_l_y_plus_btn = "nul" +input_player14_l_y_plus_mbtn = "nul" +input_player14_left = "nul" +input_player14_left_axis = "nul" +input_player14_left_btn = "nul" +input_player14_left_mbtn = "nul" +input_player14_mouse_index = "13" +input_player14_r = "nul" +input_player14_r2 = "nul" +input_player14_r2_axis = "nul" +input_player14_r2_btn = "nul" +input_player14_r2_mbtn = "nul" +input_player14_r3 = "nul" +input_player14_r3_axis = "nul" +input_player14_r3_btn = "nul" +input_player14_r3_mbtn = "nul" +input_player14_r_axis = "nul" +input_player14_r_btn = "nul" +input_player14_r_mbtn = "nul" +input_player14_r_x_minus = "nul" +input_player14_r_x_minus_axis = "nul" +input_player14_r_x_minus_btn = "nul" +input_player14_r_x_minus_mbtn = "nul" +input_player14_r_x_plus = "nul" +input_player14_r_x_plus_axis = "nul" +input_player14_r_x_plus_btn = "nul" +input_player14_r_x_plus_mbtn = "nul" +input_player14_r_y_minus = "nul" +input_player14_r_y_minus_axis = "nul" +input_player14_r_y_minus_btn = "nul" +input_player14_r_y_minus_mbtn = "nul" +input_player14_r_y_plus = "nul" +input_player14_r_y_plus_axis = "nul" +input_player14_r_y_plus_btn = "nul" +input_player14_r_y_plus_mbtn = "nul" +input_player14_right = "nul" +input_player14_right_axis = "nul" +input_player14_right_btn = "nul" +input_player14_right_mbtn = "nul" +input_player14_select = "nul" +input_player14_select_axis = "nul" +input_player14_select_btn = "nul" +input_player14_select_mbtn = "nul" +input_player14_start = "nul" +input_player14_start_axis = "nul" +input_player14_start_btn = "nul" +input_player14_start_mbtn = "nul" +input_player14_turbo = "nul" +input_player14_turbo_axis = "nul" +input_player14_turbo_btn = "nul" +input_player14_turbo_mbtn = "nul" +input_player14_up = "nul" +input_player14_up_axis = "nul" +input_player14_up_btn = "nul" +input_player14_up_mbtn = "nul" +input_player14_x = "nul" +input_player14_x_axis = "nul" +input_player14_x_btn = "nul" +input_player14_x_mbtn = "nul" +input_player14_y = "nul" +input_player14_y_axis = "nul" +input_player14_y_btn = "nul" +input_player14_y_mbtn = "nul" +input_player15_a = "nul" +input_player15_a_axis = "nul" +input_player15_a_btn = "nul" +input_player15_a_mbtn = "nul" +input_player15_analog_dpad_mode = "0" +input_player15_b = "nul" +input_player15_b_axis = "nul" +input_player15_b_btn = "nul" +input_player15_b_mbtn = "nul" +input_player15_down = "nul" +input_player15_down_axis = "nul" +input_player15_down_btn = "nul" +input_player15_down_mbtn = "nul" +input_player15_gun_aux_a = "nul" +input_player15_gun_aux_a_axis = "nul" +input_player15_gun_aux_a_btn = "nul" +input_player15_gun_aux_a_mbtn = "nul" +input_player15_gun_aux_b = "nul" +input_player15_gun_aux_b_axis = "nul" +input_player15_gun_aux_b_btn = "nul" +input_player15_gun_aux_b_mbtn = "nul" +input_player15_gun_aux_c = "nul" +input_player15_gun_aux_c_axis = "nul" +input_player15_gun_aux_c_btn = "nul" +input_player15_gun_aux_c_mbtn = "nul" +input_player15_gun_dpad_down = "nul" +input_player15_gun_dpad_down_axis = "nul" +input_player15_gun_dpad_down_btn = "nul" +input_player15_gun_dpad_down_mbtn = "nul" +input_player15_gun_dpad_left = "nul" +input_player15_gun_dpad_left_axis = "nul" +input_player15_gun_dpad_left_btn = "nul" +input_player15_gun_dpad_left_mbtn = "nul" +input_player15_gun_dpad_right = "nul" +input_player15_gun_dpad_right_axis = "nul" +input_player15_gun_dpad_right_btn = "nul" +input_player15_gun_dpad_right_mbtn = "nul" +input_player15_gun_dpad_up = "nul" +input_player15_gun_dpad_up_axis = "nul" +input_player15_gun_dpad_up_btn = "nul" +input_player15_gun_dpad_up_mbtn = "nul" +input_player15_gun_offscreen_shot = "nul" +input_player15_gun_offscreen_shot_axis = "nul" +input_player15_gun_offscreen_shot_btn = "nul" +input_player15_gun_offscreen_shot_mbtn = "nul" +input_player15_gun_select = "nul" +input_player15_gun_select_axis = "nul" +input_player15_gun_select_btn = "nul" +input_player15_gun_select_mbtn = "nul" +input_player15_gun_start = "nul" +input_player15_gun_start_axis = "nul" +input_player15_gun_start_btn = "nul" +input_player15_gun_start_mbtn = "nul" +input_player15_gun_trigger = "nul" +input_player15_gun_trigger_axis = "nul" +input_player15_gun_trigger_btn = "nul" +input_player15_gun_trigger_mbtn = "1" +input_player15_joypad_index = "14" +input_player15_l = "nul" +input_player15_l2 = "nul" +input_player15_l2_axis = "nul" +input_player15_l2_btn = "nul" +input_player15_l2_mbtn = "nul" +input_player15_l3 = "nul" +input_player15_l3_axis = "nul" +input_player15_l3_btn = "nul" +input_player15_l3_mbtn = "nul" +input_player15_l_axis = "nul" +input_player15_l_btn = "nul" +input_player15_l_mbtn = "nul" +input_player15_l_x_minus = "nul" +input_player15_l_x_minus_axis = "nul" +input_player15_l_x_minus_btn = "nul" +input_player15_l_x_minus_mbtn = "nul" +input_player15_l_x_plus = "nul" +input_player15_l_x_plus_axis = "nul" +input_player15_l_x_plus_btn = "nul" +input_player15_l_x_plus_mbtn = "nul" +input_player15_l_y_minus = "nul" +input_player15_l_y_minus_axis = "nul" +input_player15_l_y_minus_btn = "nul" +input_player15_l_y_minus_mbtn = "nul" +input_player15_l_y_plus = "nul" +input_player15_l_y_plus_axis = "nul" +input_player15_l_y_plus_btn = "nul" +input_player15_l_y_plus_mbtn = "nul" +input_player15_left = "nul" +input_player15_left_axis = "nul" +input_player15_left_btn = "nul" +input_player15_left_mbtn = "nul" +input_player15_mouse_index = "14" +input_player15_r = "nul" +input_player15_r2 = "nul" +input_player15_r2_axis = "nul" +input_player15_r2_btn = "nul" +input_player15_r2_mbtn = "nul" +input_player15_r3 = "nul" +input_player15_r3_axis = "nul" +input_player15_r3_btn = "nul" +input_player15_r3_mbtn = "nul" +input_player15_r_axis = "nul" +input_player15_r_btn = "nul" +input_player15_r_mbtn = "nul" +input_player15_r_x_minus = "nul" +input_player15_r_x_minus_axis = "nul" +input_player15_r_x_minus_btn = "nul" +input_player15_r_x_minus_mbtn = "nul" +input_player15_r_x_plus = "nul" +input_player15_r_x_plus_axis = "nul" +input_player15_r_x_plus_btn = "nul" +input_player15_r_x_plus_mbtn = "nul" +input_player15_r_y_minus = "nul" +input_player15_r_y_minus_axis = "nul" +input_player15_r_y_minus_btn = "nul" +input_player15_r_y_minus_mbtn = "nul" +input_player15_r_y_plus = "nul" +input_player15_r_y_plus_axis = "nul" +input_player15_r_y_plus_btn = "nul" +input_player15_r_y_plus_mbtn = "nul" +input_player15_right = "nul" +input_player15_right_axis = "nul" +input_player15_right_btn = "nul" +input_player15_right_mbtn = "nul" +input_player15_select = "nul" +input_player15_select_axis = "nul" +input_player15_select_btn = "nul" +input_player15_select_mbtn = "nul" +input_player15_start = "nul" +input_player15_start_axis = "nul" +input_player15_start_btn = "nul" +input_player15_start_mbtn = "nul" +input_player15_turbo = "nul" +input_player15_turbo_axis = "nul" +input_player15_turbo_btn = "nul" +input_player15_turbo_mbtn = "nul" +input_player15_up = "nul" +input_player15_up_axis = "nul" +input_player15_up_btn = "nul" +input_player15_up_mbtn = "nul" +input_player15_x = "nul" +input_player15_x_axis = "nul" +input_player15_x_btn = "nul" +input_player15_x_mbtn = "nul" +input_player15_y = "nul" +input_player15_y_axis = "nul" +input_player15_y_btn = "nul" +input_player15_y_mbtn = "nul" +input_player16_a = "nul" +input_player16_a_axis = "nul" +input_player16_a_btn = "nul" +input_player16_a_mbtn = "nul" +input_player16_analog_dpad_mode = "0" +input_player16_b = "nul" +input_player16_b_axis = "nul" +input_player16_b_btn = "nul" +input_player16_b_mbtn = "nul" +input_player16_down = "nul" +input_player16_down_axis = "nul" +input_player16_down_btn = "nul" +input_player16_down_mbtn = "nul" +input_player16_gun_aux_a = "nul" +input_player16_gun_aux_a_axis = "nul" +input_player16_gun_aux_a_btn = "nul" +input_player16_gun_aux_a_mbtn = "nul" +input_player16_gun_aux_b = "nul" +input_player16_gun_aux_b_axis = "nul" +input_player16_gun_aux_b_btn = "nul" +input_player16_gun_aux_b_mbtn = "nul" +input_player16_gun_aux_c = "nul" +input_player16_gun_aux_c_axis = "nul" +input_player16_gun_aux_c_btn = "nul" +input_player16_gun_aux_c_mbtn = "nul" +input_player16_gun_dpad_down = "nul" +input_player16_gun_dpad_down_axis = "nul" +input_player16_gun_dpad_down_btn = "nul" +input_player16_gun_dpad_down_mbtn = "nul" +input_player16_gun_dpad_left = "nul" +input_player16_gun_dpad_left_axis = "nul" +input_player16_gun_dpad_left_btn = "nul" +input_player16_gun_dpad_left_mbtn = "nul" +input_player16_gun_dpad_right = "nul" +input_player16_gun_dpad_right_axis = "nul" +input_player16_gun_dpad_right_btn = "nul" +input_player16_gun_dpad_right_mbtn = "nul" +input_player16_gun_dpad_up = "nul" +input_player16_gun_dpad_up_axis = "nul" +input_player16_gun_dpad_up_btn = "nul" +input_player16_gun_dpad_up_mbtn = "nul" +input_player16_gun_offscreen_shot = "nul" +input_player16_gun_offscreen_shot_axis = "nul" +input_player16_gun_offscreen_shot_btn = "nul" +input_player16_gun_offscreen_shot_mbtn = "nul" +input_player16_gun_select = "nul" +input_player16_gun_select_axis = "nul" +input_player16_gun_select_btn = "nul" +input_player16_gun_select_mbtn = "nul" +input_player16_gun_start = "nul" +input_player16_gun_start_axis = "nul" +input_player16_gun_start_btn = "nul" +input_player16_gun_start_mbtn = "nul" +input_player16_gun_trigger = "nul" +input_player16_gun_trigger_axis = "nul" +input_player16_gun_trigger_btn = "nul" +input_player16_gun_trigger_mbtn = "1" +input_player16_joypad_index = "15" +input_player16_l = "nul" +input_player16_l2 = "nul" +input_player16_l2_axis = "nul" +input_player16_l2_btn = "nul" +input_player16_l2_mbtn = "nul" +input_player16_l3 = "nul" +input_player16_l3_axis = "nul" +input_player16_l3_btn = "nul" +input_player16_l3_mbtn = "nul" +input_player16_l_axis = "nul" +input_player16_l_btn = "nul" +input_player16_l_mbtn = "nul" +input_player16_l_x_minus = "nul" +input_player16_l_x_minus_axis = "nul" +input_player16_l_x_minus_btn = "nul" +input_player16_l_x_minus_mbtn = "nul" +input_player16_l_x_plus = "nul" +input_player16_l_x_plus_axis = "nul" +input_player16_l_x_plus_btn = "nul" +input_player16_l_x_plus_mbtn = "nul" +input_player16_l_y_minus = "nul" +input_player16_l_y_minus_axis = "nul" +input_player16_l_y_minus_btn = "nul" +input_player16_l_y_minus_mbtn = "nul" +input_player16_l_y_plus = "nul" +input_player16_l_y_plus_axis = "nul" +input_player16_l_y_plus_btn = "nul" +input_player16_l_y_plus_mbtn = "nul" +input_player16_left = "nul" +input_player16_left_axis = "nul" +input_player16_left_btn = "nul" +input_player16_left_mbtn = "nul" +input_player16_mouse_index = "15" +input_player16_r = "nul" +input_player16_r2 = "nul" +input_player16_r2_axis = "nul" +input_player16_r2_btn = "nul" +input_player16_r2_mbtn = "nul" +input_player16_r3 = "nul" +input_player16_r3_axis = "nul" +input_player16_r3_btn = "nul" +input_player16_r3_mbtn = "nul" +input_player16_r_axis = "nul" +input_player16_r_btn = "nul" +input_player16_r_mbtn = "nul" +input_player16_r_x_minus = "nul" +input_player16_r_x_minus_axis = "nul" +input_player16_r_x_minus_btn = "nul" +input_player16_r_x_minus_mbtn = "nul" +input_player16_r_x_plus = "nul" +input_player16_r_x_plus_axis = "nul" +input_player16_r_x_plus_btn = "nul" +input_player16_r_x_plus_mbtn = "nul" +input_player16_r_y_minus = "nul" +input_player16_r_y_minus_axis = "nul" +input_player16_r_y_minus_btn = "nul" +input_player16_r_y_minus_mbtn = "nul" +input_player16_r_y_plus = "nul" +input_player16_r_y_plus_axis = "nul" +input_player16_r_y_plus_btn = "nul" +input_player16_r_y_plus_mbtn = "nul" +input_player16_right = "nul" +input_player16_right_axis = "nul" +input_player16_right_btn = "nul" +input_player16_right_mbtn = "nul" +input_player16_select = "nul" +input_player16_select_axis = "nul" +input_player16_select_btn = "nul" +input_player16_select_mbtn = "nul" +input_player16_start = "nul" +input_player16_start_axis = "nul" +input_player16_start_btn = "nul" +input_player16_start_mbtn = "nul" +input_player16_turbo = "nul" +input_player16_turbo_axis = "nul" +input_player16_turbo_btn = "nul" +input_player16_turbo_mbtn = "nul" +input_player16_up = "nul" +input_player16_up_axis = "nul" +input_player16_up_btn = "nul" +input_player16_up_mbtn = "nul" +input_player16_x = "nul" +input_player16_x_axis = "nul" +input_player16_x_btn = "nul" +input_player16_x_mbtn = "nul" +input_player16_y = "nul" +input_player16_y_axis = "nul" +input_player16_y_btn = "nul" +input_player16_y_mbtn = "nul" +input_player1_a = "x" +input_player1_a_axis = "nul" +input_player1_a_btn = "nul" +input_player1_a_mbtn = "nul" +input_player1_analog_dpad_mode = "0" +input_player1_b = "z" +input_player1_b_axis = "nul" +input_player1_b_btn = "nul" +input_player1_b_mbtn = "nul" +input_player1_down = "down" +input_player1_down_axis = "nul" +input_player1_down_btn = "nul" +input_player1_down_mbtn = "nul" +input_player1_gun_aux_a = "nul" +input_player1_gun_aux_a_axis = "nul" +input_player1_gun_aux_a_btn = "nul" +input_player1_gun_aux_a_mbtn = "nul" +input_player1_gun_aux_b = "nul" +input_player1_gun_aux_b_axis = "nul" +input_player1_gun_aux_b_btn = "nul" +input_player1_gun_aux_b_mbtn = "nul" +input_player1_gun_aux_c = "nul" +input_player1_gun_aux_c_axis = "nul" +input_player1_gun_aux_c_btn = "nul" +input_player1_gun_aux_c_mbtn = "nul" +input_player1_gun_dpad_down = "nul" +input_player1_gun_dpad_down_axis = "nul" +input_player1_gun_dpad_down_btn = "nul" +input_player1_gun_dpad_down_mbtn = "nul" +input_player1_gun_dpad_left = "nul" +input_player1_gun_dpad_left_axis = "nul" +input_player1_gun_dpad_left_btn = "nul" +input_player1_gun_dpad_left_mbtn = "nul" +input_player1_gun_dpad_right = "nul" +input_player1_gun_dpad_right_axis = "nul" +input_player1_gun_dpad_right_btn = "nul" +input_player1_gun_dpad_right_mbtn = "nul" +input_player1_gun_dpad_up = "nul" +input_player1_gun_dpad_up_axis = "nul" +input_player1_gun_dpad_up_btn = "nul" +input_player1_gun_dpad_up_mbtn = "nul" +input_player1_gun_offscreen_shot = "nul" +input_player1_gun_offscreen_shot_axis = "nul" +input_player1_gun_offscreen_shot_btn = "nul" +input_player1_gun_offscreen_shot_mbtn = "nul" +input_player1_gun_select = "nul" +input_player1_gun_select_axis = "nul" +input_player1_gun_select_btn = "nul" +input_player1_gun_select_mbtn = "nul" +input_player1_gun_start = "nul" +input_player1_gun_start_axis = "nul" +input_player1_gun_start_btn = "nul" +input_player1_gun_start_mbtn = "nul" +input_player1_gun_trigger = "nul" +input_player1_gun_trigger_axis = "nul" +input_player1_gun_trigger_btn = "nul" +input_player1_gun_trigger_mbtn = "1" +input_player1_joypad_index = "0" +input_player1_l = "q" +input_player1_l2 = "nul" +input_player1_l2_axis = "nul" +input_player1_l2_btn = "nul" +input_player1_l2_mbtn = "nul" +input_player1_l3 = "nul" +input_player1_l3_axis = "nul" +input_player1_l3_btn = "nul" +input_player1_l3_mbtn = "nul" +input_player1_l_axis = "nul" +input_player1_l_btn = "nul" +input_player1_l_mbtn = "nul" +input_player1_l_x_minus = "nul" +input_player1_l_x_minus_axis = "nul" +input_player1_l_x_minus_btn = "nul" +input_player1_l_x_minus_mbtn = "nul" +input_player1_l_x_plus = "nul" +input_player1_l_x_plus_axis = "nul" +input_player1_l_x_plus_btn = "nul" +input_player1_l_x_plus_mbtn = "nul" +input_player1_l_y_minus = "nul" +input_player1_l_y_minus_axis = "nul" +input_player1_l_y_minus_btn = "nul" +input_player1_l_y_minus_mbtn = "nul" +input_player1_l_y_plus = "nul" +input_player1_l_y_plus_axis = "nul" +input_player1_l_y_plus_btn = "nul" +input_player1_l_y_plus_mbtn = "nul" +input_player1_left = "left" +input_player1_left_axis = "nul" +input_player1_left_btn = "nul" +input_player1_left_mbtn = "nul" +input_player1_mouse_index = "0" +input_player1_r = "w" +input_player1_r2 = "nul" +input_player1_r2_axis = "nul" +input_player1_r2_btn = "nul" +input_player1_r2_mbtn = "nul" +input_player1_r3 = "nul" +input_player1_r3_axis = "nul" +input_player1_r3_btn = "nul" +input_player1_r3_mbtn = "nul" +input_player1_r_axis = "nul" +input_player1_r_btn = "nul" +input_player1_r_mbtn = "nul" +input_player1_r_x_minus = "nul" +input_player1_r_x_minus_axis = "nul" +input_player1_r_x_minus_btn = "nul" +input_player1_r_x_minus_mbtn = "nul" +input_player1_r_x_plus = "nul" +input_player1_r_x_plus_axis = "nul" +input_player1_r_x_plus_btn = "nul" +input_player1_r_x_plus_mbtn = "nul" +input_player1_r_y_minus = "nul" +input_player1_r_y_minus_axis = "nul" +input_player1_r_y_minus_btn = "nul" +input_player1_r_y_minus_mbtn = "nul" +input_player1_r_y_plus = "nul" +input_player1_r_y_plus_axis = "nul" +input_player1_r_y_plus_btn = "nul" +input_player1_r_y_plus_mbtn = "nul" +input_player1_right = "right" +input_player1_right_axis = "nul" +input_player1_right_btn = "nul" +input_player1_right_mbtn = "nul" +input_player1_select = "rshift" +input_player1_select_axis = "nul" +input_player1_select_btn = "nul" +input_player1_select_mbtn = "nul" +input_player1_start = "enter" +input_player1_start_axis = "nul" +input_player1_start_btn = "nul" +input_player1_start_mbtn = "nul" +input_player1_turbo = "nul" +input_player1_turbo_axis = "nul" +input_player1_turbo_btn = "nul" +input_player1_turbo_mbtn = "nul" +input_player1_up = "up" +input_player1_up_axis = "nul" +input_player1_up_btn = "nul" +input_player1_up_mbtn = "nul" +input_player1_x = "s" +input_player1_x_axis = "nul" +input_player1_x_btn = "nul" +input_player1_x_mbtn = "nul" +input_player1_y = "a" +input_player1_y_axis = "nul" +input_player1_y_btn = "nul" +input_player1_y_mbtn = "nul" +input_player2_a = "nul" +input_player2_a_axis = "nul" +input_player2_a_btn = "nul" +input_player2_a_mbtn = "nul" +input_player2_analog_dpad_mode = "0" +input_player2_b = "nul" +input_player2_b_axis = "nul" +input_player2_b_btn = "nul" +input_player2_b_mbtn = "nul" +input_player2_down = "nul" +input_player2_down_axis = "nul" +input_player2_down_btn = "nul" +input_player2_down_mbtn = "nul" +input_player2_gun_aux_a = "nul" +input_player2_gun_aux_a_axis = "nul" +input_player2_gun_aux_a_btn = "nul" +input_player2_gun_aux_a_mbtn = "nul" +input_player2_gun_aux_b = "nul" +input_player2_gun_aux_b_axis = "nul" +input_player2_gun_aux_b_btn = "nul" +input_player2_gun_aux_b_mbtn = "nul" +input_player2_gun_aux_c = "nul" +input_player2_gun_aux_c_axis = "nul" +input_player2_gun_aux_c_btn = "nul" +input_player2_gun_aux_c_mbtn = "nul" +input_player2_gun_dpad_down = "nul" +input_player2_gun_dpad_down_axis = "nul" +input_player2_gun_dpad_down_btn = "nul" +input_player2_gun_dpad_down_mbtn = "nul" +input_player2_gun_dpad_left = "nul" +input_player2_gun_dpad_left_axis = "nul" +input_player2_gun_dpad_left_btn = "nul" +input_player2_gun_dpad_left_mbtn = "nul" +input_player2_gun_dpad_right = "nul" +input_player2_gun_dpad_right_axis = "nul" +input_player2_gun_dpad_right_btn = "nul" +input_player2_gun_dpad_right_mbtn = "nul" +input_player2_gun_dpad_up = "nul" +input_player2_gun_dpad_up_axis = "nul" +input_player2_gun_dpad_up_btn = "nul" +input_player2_gun_dpad_up_mbtn = "nul" +input_player2_gun_offscreen_shot = "nul" +input_player2_gun_offscreen_shot_axis = "nul" +input_player2_gun_offscreen_shot_btn = "nul" +input_player2_gun_offscreen_shot_mbtn = "nul" +input_player2_gun_select = "nul" +input_player2_gun_select_axis = "nul" +input_player2_gun_select_btn = "nul" +input_player2_gun_select_mbtn = "nul" +input_player2_gun_start = "nul" +input_player2_gun_start_axis = "nul" +input_player2_gun_start_btn = "nul" +input_player2_gun_start_mbtn = "nul" +input_player2_gun_trigger = "nul" +input_player2_gun_trigger_axis = "nul" +input_player2_gun_trigger_btn = "nul" +input_player2_gun_trigger_mbtn = "1" +input_player2_joypad_index = "1" +input_player2_l = "nul" +input_player2_l2 = "nul" +input_player2_l2_axis = "nul" +input_player2_l2_btn = "nul" +input_player2_l2_mbtn = "nul" +input_player2_l3 = "nul" +input_player2_l3_axis = "nul" +input_player2_l3_btn = "nul" +input_player2_l3_mbtn = "nul" +input_player2_l_axis = "nul" +input_player2_l_btn = "nul" +input_player2_l_mbtn = "nul" +input_player2_l_x_minus = "nul" +input_player2_l_x_minus_axis = "nul" +input_player2_l_x_minus_btn = "nul" +input_player2_l_x_minus_mbtn = "nul" +input_player2_l_x_plus = "nul" +input_player2_l_x_plus_axis = "nul" +input_player2_l_x_plus_btn = "nul" +input_player2_l_x_plus_mbtn = "nul" +input_player2_l_y_minus = "nul" +input_player2_l_y_minus_axis = "nul" +input_player2_l_y_minus_btn = "nul" +input_player2_l_y_minus_mbtn = "nul" +input_player2_l_y_plus = "nul" +input_player2_l_y_plus_axis = "nul" +input_player2_l_y_plus_btn = "nul" +input_player2_l_y_plus_mbtn = "nul" +input_player2_left = "nul" +input_player2_left_axis = "nul" +input_player2_left_btn = "nul" +input_player2_left_mbtn = "nul" +input_player2_mouse_index = "1" +input_player2_r = "nul" +input_player2_r2 = "nul" +input_player2_r2_axis = "nul" +input_player2_r2_btn = "nul" +input_player2_r2_mbtn = "nul" +input_player2_r3 = "nul" +input_player2_r3_axis = "nul" +input_player2_r3_btn = "nul" +input_player2_r3_mbtn = "nul" +input_player2_r_axis = "nul" +input_player2_r_btn = "nul" +input_player2_r_mbtn = "nul" +input_player2_r_x_minus = "nul" +input_player2_r_x_minus_axis = "nul" +input_player2_r_x_minus_btn = "nul" +input_player2_r_x_minus_mbtn = "nul" +input_player2_r_x_plus = "nul" +input_player2_r_x_plus_axis = "nul" +input_player2_r_x_plus_btn = "nul" +input_player2_r_x_plus_mbtn = "nul" +input_player2_r_y_minus = "nul" +input_player2_r_y_minus_axis = "nul" +input_player2_r_y_minus_btn = "nul" +input_player2_r_y_minus_mbtn = "nul" +input_player2_r_y_plus = "nul" +input_player2_r_y_plus_axis = "nul" +input_player2_r_y_plus_btn = "nul" +input_player2_r_y_plus_mbtn = "nul" +input_player2_right = "nul" +input_player2_right_axis = "nul" +input_player2_right_btn = "nul" +input_player2_right_mbtn = "nul" +input_player2_select = "nul" +input_player2_select_axis = "nul" +input_player2_select_btn = "nul" +input_player2_select_mbtn = "nul" +input_player2_start = "nul" +input_player2_start_axis = "nul" +input_player2_start_btn = "nul" +input_player2_start_mbtn = "nul" +input_player2_turbo = "nul" +input_player2_turbo_axis = "nul" +input_player2_turbo_btn = "nul" +input_player2_turbo_mbtn = "nul" +input_player2_up = "nul" +input_player2_up_axis = "nul" +input_player2_up_btn = "nul" +input_player2_up_mbtn = "nul" +input_player2_x = "nul" +input_player2_x_axis = "nul" +input_player2_x_btn = "nul" +input_player2_x_mbtn = "nul" +input_player2_y = "nul" +input_player2_y_axis = "nul" +input_player2_y_btn = "nul" +input_player2_y_mbtn = "nul" +input_player3_a = "nul" +input_player3_a_axis = "nul" +input_player3_a_btn = "nul" +input_player3_a_mbtn = "nul" +input_player3_analog_dpad_mode = "0" +input_player3_b = "nul" +input_player3_b_axis = "nul" +input_player3_b_btn = "nul" +input_player3_b_mbtn = "nul" +input_player3_down = "nul" +input_player3_down_axis = "nul" +input_player3_down_btn = "nul" +input_player3_down_mbtn = "nul" +input_player3_gun_aux_a = "nul" +input_player3_gun_aux_a_axis = "nul" +input_player3_gun_aux_a_btn = "nul" +input_player3_gun_aux_a_mbtn = "nul" +input_player3_gun_aux_b = "nul" +input_player3_gun_aux_b_axis = "nul" +input_player3_gun_aux_b_btn = "nul" +input_player3_gun_aux_b_mbtn = "nul" +input_player3_gun_aux_c = "nul" +input_player3_gun_aux_c_axis = "nul" +input_player3_gun_aux_c_btn = "nul" +input_player3_gun_aux_c_mbtn = "nul" +input_player3_gun_dpad_down = "nul" +input_player3_gun_dpad_down_axis = "nul" +input_player3_gun_dpad_down_btn = "nul" +input_player3_gun_dpad_down_mbtn = "nul" +input_player3_gun_dpad_left = "nul" +input_player3_gun_dpad_left_axis = "nul" +input_player3_gun_dpad_left_btn = "nul" +input_player3_gun_dpad_left_mbtn = "nul" +input_player3_gun_dpad_right = "nul" +input_player3_gun_dpad_right_axis = "nul" +input_player3_gun_dpad_right_btn = "nul" +input_player3_gun_dpad_right_mbtn = "nul" +input_player3_gun_dpad_up = "nul" +input_player3_gun_dpad_up_axis = "nul" +input_player3_gun_dpad_up_btn = "nul" +input_player3_gun_dpad_up_mbtn = "nul" +input_player3_gun_offscreen_shot = "nul" +input_player3_gun_offscreen_shot_axis = "nul" +input_player3_gun_offscreen_shot_btn = "nul" +input_player3_gun_offscreen_shot_mbtn = "nul" +input_player3_gun_select = "nul" +input_player3_gun_select_axis = "nul" +input_player3_gun_select_btn = "nul" +input_player3_gun_select_mbtn = "nul" +input_player3_gun_start = "nul" +input_player3_gun_start_axis = "nul" +input_player3_gun_start_btn = "nul" +input_player3_gun_start_mbtn = "nul" +input_player3_gun_trigger = "nul" +input_player3_gun_trigger_axis = "nul" +input_player3_gun_trigger_btn = "nul" +input_player3_gun_trigger_mbtn = "1" +input_player3_joypad_index = "2" +input_player3_l = "nul" +input_player3_l2 = "nul" +input_player3_l2_axis = "nul" +input_player3_l2_btn = "nul" +input_player3_l2_mbtn = "nul" +input_player3_l3 = "nul" +input_player3_l3_axis = "nul" +input_player3_l3_btn = "nul" +input_player3_l3_mbtn = "nul" +input_player3_l_axis = "nul" +input_player3_l_btn = "nul" +input_player3_l_mbtn = "nul" +input_player3_l_x_minus = "nul" +input_player3_l_x_minus_axis = "nul" +input_player3_l_x_minus_btn = "nul" +input_player3_l_x_minus_mbtn = "nul" +input_player3_l_x_plus = "nul" +input_player3_l_x_plus_axis = "nul" +input_player3_l_x_plus_btn = "nul" +input_player3_l_x_plus_mbtn = "nul" +input_player3_l_y_minus = "nul" +input_player3_l_y_minus_axis = "nul" +input_player3_l_y_minus_btn = "nul" +input_player3_l_y_minus_mbtn = "nul" +input_player3_l_y_plus = "nul" +input_player3_l_y_plus_axis = "nul" +input_player3_l_y_plus_btn = "nul" +input_player3_l_y_plus_mbtn = "nul" +input_player3_left = "nul" +input_player3_left_axis = "nul" +input_player3_left_btn = "nul" +input_player3_left_mbtn = "nul" +input_player3_mouse_index = "2" +input_player3_r = "nul" +input_player3_r2 = "nul" +input_player3_r2_axis = "nul" +input_player3_r2_btn = "nul" +input_player3_r2_mbtn = "nul" +input_player3_r3 = "nul" +input_player3_r3_axis = "nul" +input_player3_r3_btn = "nul" +input_player3_r3_mbtn = "nul" +input_player3_r_axis = "nul" +input_player3_r_btn = "nul" +input_player3_r_mbtn = "nul" +input_player3_r_x_minus = "nul" +input_player3_r_x_minus_axis = "nul" +input_player3_r_x_minus_btn = "nul" +input_player3_r_x_minus_mbtn = "nul" +input_player3_r_x_plus = "nul" +input_player3_r_x_plus_axis = "nul" +input_player3_r_x_plus_btn = "nul" +input_player3_r_x_plus_mbtn = "nul" +input_player3_r_y_minus = "nul" +input_player3_r_y_minus_axis = "nul" +input_player3_r_y_minus_btn = "nul" +input_player3_r_y_minus_mbtn = "nul" +input_player3_r_y_plus = "nul" +input_player3_r_y_plus_axis = "nul" +input_player3_r_y_plus_btn = "nul" +input_player3_r_y_plus_mbtn = "nul" +input_player3_right = "nul" +input_player3_right_axis = "nul" +input_player3_right_btn = "nul" +input_player3_right_mbtn = "nul" +input_player3_select = "nul" +input_player3_select_axis = "nul" +input_player3_select_btn = "nul" +input_player3_select_mbtn = "nul" +input_player3_start = "nul" +input_player3_start_axis = "nul" +input_player3_start_btn = "nul" +input_player3_start_mbtn = "nul" +input_player3_turbo = "nul" +input_player3_turbo_axis = "nul" +input_player3_turbo_btn = "nul" +input_player3_turbo_mbtn = "nul" +input_player3_up = "nul" +input_player3_up_axis = "nul" +input_player3_up_btn = "nul" +input_player3_up_mbtn = "nul" +input_player3_x = "nul" +input_player3_x_axis = "nul" +input_player3_x_btn = "nul" +input_player3_x_mbtn = "nul" +input_player3_y = "nul" +input_player3_y_axis = "nul" +input_player3_y_btn = "nul" +input_player3_y_mbtn = "nul" +input_player4_a = "nul" +input_player4_a_axis = "nul" +input_player4_a_btn = "nul" +input_player4_a_mbtn = "nul" +input_player4_analog_dpad_mode = "0" +input_player4_b = "nul" +input_player4_b_axis = "nul" +input_player4_b_btn = "nul" +input_player4_b_mbtn = "nul" +input_player4_down = "nul" +input_player4_down_axis = "nul" +input_player4_down_btn = "nul" +input_player4_down_mbtn = "nul" +input_player4_gun_aux_a = "nul" +input_player4_gun_aux_a_axis = "nul" +input_player4_gun_aux_a_btn = "nul" +input_player4_gun_aux_a_mbtn = "nul" +input_player4_gun_aux_b = "nul" +input_player4_gun_aux_b_axis = "nul" +input_player4_gun_aux_b_btn = "nul" +input_player4_gun_aux_b_mbtn = "nul" +input_player4_gun_aux_c = "nul" +input_player4_gun_aux_c_axis = "nul" +input_player4_gun_aux_c_btn = "nul" +input_player4_gun_aux_c_mbtn = "nul" +input_player4_gun_dpad_down = "nul" +input_player4_gun_dpad_down_axis = "nul" +input_player4_gun_dpad_down_btn = "nul" +input_player4_gun_dpad_down_mbtn = "nul" +input_player4_gun_dpad_left = "nul" +input_player4_gun_dpad_left_axis = "nul" +input_player4_gun_dpad_left_btn = "nul" +input_player4_gun_dpad_left_mbtn = "nul" +input_player4_gun_dpad_right = "nul" +input_player4_gun_dpad_right_axis = "nul" +input_player4_gun_dpad_right_btn = "nul" +input_player4_gun_dpad_right_mbtn = "nul" +input_player4_gun_dpad_up = "nul" +input_player4_gun_dpad_up_axis = "nul" +input_player4_gun_dpad_up_btn = "nul" +input_player4_gun_dpad_up_mbtn = "nul" +input_player4_gun_offscreen_shot = "nul" +input_player4_gun_offscreen_shot_axis = "nul" +input_player4_gun_offscreen_shot_btn = "nul" +input_player4_gun_offscreen_shot_mbtn = "nul" +input_player4_gun_select = "nul" +input_player4_gun_select_axis = "nul" +input_player4_gun_select_btn = "nul" +input_player4_gun_select_mbtn = "nul" +input_player4_gun_start = "nul" +input_player4_gun_start_axis = "nul" +input_player4_gun_start_btn = "nul" +input_player4_gun_start_mbtn = "nul" +input_player4_gun_trigger = "nul" +input_player4_gun_trigger_axis = "nul" +input_player4_gun_trigger_btn = "nul" +input_player4_gun_trigger_mbtn = "1" +input_player4_joypad_index = "3" +input_player4_l = "nul" +input_player4_l2 = "nul" +input_player4_l2_axis = "nul" +input_player4_l2_btn = "nul" +input_player4_l2_mbtn = "nul" +input_player4_l3 = "nul" +input_player4_l3_axis = "nul" +input_player4_l3_btn = "nul" +input_player4_l3_mbtn = "nul" +input_player4_l_axis = "nul" +input_player4_l_btn = "nul" +input_player4_l_mbtn = "nul" +input_player4_l_x_minus = "nul" +input_player4_l_x_minus_axis = "nul" +input_player4_l_x_minus_btn = "nul" +input_player4_l_x_minus_mbtn = "nul" +input_player4_l_x_plus = "nul" +input_player4_l_x_plus_axis = "nul" +input_player4_l_x_plus_btn = "nul" +input_player4_l_x_plus_mbtn = "nul" +input_player4_l_y_minus = "nul" +input_player4_l_y_minus_axis = "nul" +input_player4_l_y_minus_btn = "nul" +input_player4_l_y_minus_mbtn = "nul" +input_player4_l_y_plus = "nul" +input_player4_l_y_plus_axis = "nul" +input_player4_l_y_plus_btn = "nul" +input_player4_l_y_plus_mbtn = "nul" +input_player4_left = "nul" +input_player4_left_axis = "nul" +input_player4_left_btn = "nul" +input_player4_left_mbtn = "nul" +input_player4_mouse_index = "3" +input_player4_r = "nul" +input_player4_r2 = "nul" +input_player4_r2_axis = "nul" +input_player4_r2_btn = "nul" +input_player4_r2_mbtn = "nul" +input_player4_r3 = "nul" +input_player4_r3_axis = "nul" +input_player4_r3_btn = "nul" +input_player4_r3_mbtn = "nul" +input_player4_r_axis = "nul" +input_player4_r_btn = "nul" +input_player4_r_mbtn = "nul" +input_player4_r_x_minus = "nul" +input_player4_r_x_minus_axis = "nul" +input_player4_r_x_minus_btn = "nul" +input_player4_r_x_minus_mbtn = "nul" +input_player4_r_x_plus = "nul" +input_player4_r_x_plus_axis = "nul" +input_player4_r_x_plus_btn = "nul" +input_player4_r_x_plus_mbtn = "nul" +input_player4_r_y_minus = "nul" +input_player4_r_y_minus_axis = "nul" +input_player4_r_y_minus_btn = "nul" +input_player4_r_y_minus_mbtn = "nul" +input_player4_r_y_plus = "nul" +input_player4_r_y_plus_axis = "nul" +input_player4_r_y_plus_btn = "nul" +input_player4_r_y_plus_mbtn = "nul" +input_player4_right = "nul" +input_player4_right_axis = "nul" +input_player4_right_btn = "nul" +input_player4_right_mbtn = "nul" +input_player4_select = "nul" +input_player4_select_axis = "nul" +input_player4_select_btn = "nul" +input_player4_select_mbtn = "nul" +input_player4_start = "nul" +input_player4_start_axis = "nul" +input_player4_start_btn = "nul" +input_player4_start_mbtn = "nul" +input_player4_turbo = "nul" +input_player4_turbo_axis = "nul" +input_player4_turbo_btn = "nul" +input_player4_turbo_mbtn = "nul" +input_player4_up = "nul" +input_player4_up_axis = "nul" +input_player4_up_btn = "nul" +input_player4_up_mbtn = "nul" +input_player4_x = "nul" +input_player4_x_axis = "nul" +input_player4_x_btn = "nul" +input_player4_x_mbtn = "nul" +input_player4_y = "nul" +input_player4_y_axis = "nul" +input_player4_y_btn = "nul" +input_player4_y_mbtn = "nul" +input_player5_a = "nul" +input_player5_a_axis = "nul" +input_player5_a_btn = "nul" +input_player5_a_mbtn = "nul" +input_player5_analog_dpad_mode = "0" +input_player5_b = "nul" +input_player5_b_axis = "nul" +input_player5_b_btn = "nul" +input_player5_b_mbtn = "nul" +input_player5_down = "nul" +input_player5_down_axis = "nul" +input_player5_down_btn = "nul" +input_player5_down_mbtn = "nul" +input_player5_gun_aux_a = "nul" +input_player5_gun_aux_a_axis = "nul" +input_player5_gun_aux_a_btn = "nul" +input_player5_gun_aux_a_mbtn = "nul" +input_player5_gun_aux_b = "nul" +input_player5_gun_aux_b_axis = "nul" +input_player5_gun_aux_b_btn = "nul" +input_player5_gun_aux_b_mbtn = "nul" +input_player5_gun_aux_c = "nul" +input_player5_gun_aux_c_axis = "nul" +input_player5_gun_aux_c_btn = "nul" +input_player5_gun_aux_c_mbtn = "nul" +input_player5_gun_dpad_down = "nul" +input_player5_gun_dpad_down_axis = "nul" +input_player5_gun_dpad_down_btn = "nul" +input_player5_gun_dpad_down_mbtn = "nul" +input_player5_gun_dpad_left = "nul" +input_player5_gun_dpad_left_axis = "nul" +input_player5_gun_dpad_left_btn = "nul" +input_player5_gun_dpad_left_mbtn = "nul" +input_player5_gun_dpad_right = "nul" +input_player5_gun_dpad_right_axis = "nul" +input_player5_gun_dpad_right_btn = "nul" +input_player5_gun_dpad_right_mbtn = "nul" +input_player5_gun_dpad_up = "nul" +input_player5_gun_dpad_up_axis = "nul" +input_player5_gun_dpad_up_btn = "nul" +input_player5_gun_dpad_up_mbtn = "nul" +input_player5_gun_offscreen_shot = "nul" +input_player5_gun_offscreen_shot_axis = "nul" +input_player5_gun_offscreen_shot_btn = "nul" +input_player5_gun_offscreen_shot_mbtn = "nul" +input_player5_gun_select = "nul" +input_player5_gun_select_axis = "nul" +input_player5_gun_select_btn = "nul" +input_player5_gun_select_mbtn = "nul" +input_player5_gun_start = "nul" +input_player5_gun_start_axis = "nul" +input_player5_gun_start_btn = "nul" +input_player5_gun_start_mbtn = "nul" +input_player5_gun_trigger = "nul" +input_player5_gun_trigger_axis = "nul" +input_player5_gun_trigger_btn = "nul" +input_player5_gun_trigger_mbtn = "1" +input_player5_joypad_index = "4" +input_player5_l = "nul" +input_player5_l2 = "nul" +input_player5_l2_axis = "nul" +input_player5_l2_btn = "nul" +input_player5_l2_mbtn = "nul" +input_player5_l3 = "nul" +input_player5_l3_axis = "nul" +input_player5_l3_btn = "nul" +input_player5_l3_mbtn = "nul" +input_player5_l_axis = "nul" +input_player5_l_btn = "nul" +input_player5_l_mbtn = "nul" +input_player5_l_x_minus = "nul" +input_player5_l_x_minus_axis = "nul" +input_player5_l_x_minus_btn = "nul" +input_player5_l_x_minus_mbtn = "nul" +input_player5_l_x_plus = "nul" +input_player5_l_x_plus_axis = "nul" +input_player5_l_x_plus_btn = "nul" +input_player5_l_x_plus_mbtn = "nul" +input_player5_l_y_minus = "nul" +input_player5_l_y_minus_axis = "nul" +input_player5_l_y_minus_btn = "nul" +input_player5_l_y_minus_mbtn = "nul" +input_player5_l_y_plus = "nul" +input_player5_l_y_plus_axis = "nul" +input_player5_l_y_plus_btn = "nul" +input_player5_l_y_plus_mbtn = "nul" +input_player5_left = "nul" +input_player5_left_axis = "nul" +input_player5_left_btn = "nul" +input_player5_left_mbtn = "nul" +input_player5_mouse_index = "4" +input_player5_r = "nul" +input_player5_r2 = "nul" +input_player5_r2_axis = "nul" +input_player5_r2_btn = "nul" +input_player5_r2_mbtn = "nul" +input_player5_r3 = "nul" +input_player5_r3_axis = "nul" +input_player5_r3_btn = "nul" +input_player5_r3_mbtn = "nul" +input_player5_r_axis = "nul" +input_player5_r_btn = "nul" +input_player5_r_mbtn = "nul" +input_player5_r_x_minus = "nul" +input_player5_r_x_minus_axis = "nul" +input_player5_r_x_minus_btn = "nul" +input_player5_r_x_minus_mbtn = "nul" +input_player5_r_x_plus = "nul" +input_player5_r_x_plus_axis = "nul" +input_player5_r_x_plus_btn = "nul" +input_player5_r_x_plus_mbtn = "nul" +input_player5_r_y_minus = "nul" +input_player5_r_y_minus_axis = "nul" +input_player5_r_y_minus_btn = "nul" +input_player5_r_y_minus_mbtn = "nul" +input_player5_r_y_plus = "nul" +input_player5_r_y_plus_axis = "nul" +input_player5_r_y_plus_btn = "nul" +input_player5_r_y_plus_mbtn = "nul" +input_player5_right = "nul" +input_player5_right_axis = "nul" +input_player5_right_btn = "nul" +input_player5_right_mbtn = "nul" +input_player5_select = "nul" +input_player5_select_axis = "nul" +input_player5_select_btn = "nul" +input_player5_select_mbtn = "nul" +input_player5_start = "nul" +input_player5_start_axis = "nul" +input_player5_start_btn = "nul" +input_player5_start_mbtn = "nul" +input_player5_turbo = "nul" +input_player5_turbo_axis = "nul" +input_player5_turbo_btn = "nul" +input_player5_turbo_mbtn = "nul" +input_player5_up = "nul" +input_player5_up_axis = "nul" +input_player5_up_btn = "nul" +input_player5_up_mbtn = "nul" +input_player5_x = "nul" +input_player5_x_axis = "nul" +input_player5_x_btn = "nul" +input_player5_x_mbtn = "nul" +input_player5_y = "nul" +input_player5_y_axis = "nul" +input_player5_y_btn = "nul" +input_player5_y_mbtn = "nul" +input_player6_a = "nul" +input_player6_a_axis = "nul" +input_player6_a_btn = "nul" +input_player6_a_mbtn = "nul" +input_player6_analog_dpad_mode = "0" +input_player6_b = "nul" +input_player6_b_axis = "nul" +input_player6_b_btn = "nul" +input_player6_b_mbtn = "nul" +input_player6_down = "nul" +input_player6_down_axis = "nul" +input_player6_down_btn = "nul" +input_player6_down_mbtn = "nul" +input_player6_gun_aux_a = "nul" +input_player6_gun_aux_a_axis = "nul" +input_player6_gun_aux_a_btn = "nul" +input_player6_gun_aux_a_mbtn = "nul" +input_player6_gun_aux_b = "nul" +input_player6_gun_aux_b_axis = "nul" +input_player6_gun_aux_b_btn = "nul" +input_player6_gun_aux_b_mbtn = "nul" +input_player6_gun_aux_c = "nul" +input_player6_gun_aux_c_axis = "nul" +input_player6_gun_aux_c_btn = "nul" +input_player6_gun_aux_c_mbtn = "nul" +input_player6_gun_dpad_down = "nul" +input_player6_gun_dpad_down_axis = "nul" +input_player6_gun_dpad_down_btn = "nul" +input_player6_gun_dpad_down_mbtn = "nul" +input_player6_gun_dpad_left = "nul" +input_player6_gun_dpad_left_axis = "nul" +input_player6_gun_dpad_left_btn = "nul" +input_player6_gun_dpad_left_mbtn = "nul" +input_player6_gun_dpad_right = "nul" +input_player6_gun_dpad_right_axis = "nul" +input_player6_gun_dpad_right_btn = "nul" +input_player6_gun_dpad_right_mbtn = "nul" +input_player6_gun_dpad_up = "nul" +input_player6_gun_dpad_up_axis = "nul" +input_player6_gun_dpad_up_btn = "nul" +input_player6_gun_dpad_up_mbtn = "nul" +input_player6_gun_offscreen_shot = "nul" +input_player6_gun_offscreen_shot_axis = "nul" +input_player6_gun_offscreen_shot_btn = "nul" +input_player6_gun_offscreen_shot_mbtn = "nul" +input_player6_gun_select = "nul" +input_player6_gun_select_axis = "nul" +input_player6_gun_select_btn = "nul" +input_player6_gun_select_mbtn = "nul" +input_player6_gun_start = "nul" +input_player6_gun_start_axis = "nul" +input_player6_gun_start_btn = "nul" +input_player6_gun_start_mbtn = "nul" +input_player6_gun_trigger = "nul" +input_player6_gun_trigger_axis = "nul" +input_player6_gun_trigger_btn = "nul" +input_player6_gun_trigger_mbtn = "1" +input_player6_joypad_index = "5" +input_player6_l = "nul" +input_player6_l2 = "nul" +input_player6_l2_axis = "nul" +input_player6_l2_btn = "nul" +input_player6_l2_mbtn = "nul" +input_player6_l3 = "nul" +input_player6_l3_axis = "nul" +input_player6_l3_btn = "nul" +input_player6_l3_mbtn = "nul" +input_player6_l_axis = "nul" +input_player6_l_btn = "nul" +input_player6_l_mbtn = "nul" +input_player6_l_x_minus = "nul" +input_player6_l_x_minus_axis = "nul" +input_player6_l_x_minus_btn = "nul" +input_player6_l_x_minus_mbtn = "nul" +input_player6_l_x_plus = "nul" +input_player6_l_x_plus_axis = "nul" +input_player6_l_x_plus_btn = "nul" +input_player6_l_x_plus_mbtn = "nul" +input_player6_l_y_minus = "nul" +input_player6_l_y_minus_axis = "nul" +input_player6_l_y_minus_btn = "nul" +input_player6_l_y_minus_mbtn = "nul" +input_player6_l_y_plus = "nul" +input_player6_l_y_plus_axis = "nul" +input_player6_l_y_plus_btn = "nul" +input_player6_l_y_plus_mbtn = "nul" +input_player6_left = "nul" +input_player6_left_axis = "nul" +input_player6_left_btn = "nul" +input_player6_left_mbtn = "nul" +input_player6_mouse_index = "5" +input_player6_r = "nul" +input_player6_r2 = "nul" +input_player6_r2_axis = "nul" +input_player6_r2_btn = "nul" +input_player6_r2_mbtn = "nul" +input_player6_r3 = "nul" +input_player6_r3_axis = "nul" +input_player6_r3_btn = "nul" +input_player6_r3_mbtn = "nul" +input_player6_r_axis = "nul" +input_player6_r_btn = "nul" +input_player6_r_mbtn = "nul" +input_player6_r_x_minus = "nul" +input_player6_r_x_minus_axis = "nul" +input_player6_r_x_minus_btn = "nul" +input_player6_r_x_minus_mbtn = "nul" +input_player6_r_x_plus = "nul" +input_player6_r_x_plus_axis = "nul" +input_player6_r_x_plus_btn = "nul" +input_player6_r_x_plus_mbtn = "nul" +input_player6_r_y_minus = "nul" +input_player6_r_y_minus_axis = "nul" +input_player6_r_y_minus_btn = "nul" +input_player6_r_y_minus_mbtn = "nul" +input_player6_r_y_plus = "nul" +input_player6_r_y_plus_axis = "nul" +input_player6_r_y_plus_btn = "nul" +input_player6_r_y_plus_mbtn = "nul" +input_player6_right = "nul" +input_player6_right_axis = "nul" +input_player6_right_btn = "nul" +input_player6_right_mbtn = "nul" +input_player6_select = "nul" +input_player6_select_axis = "nul" +input_player6_select_btn = "nul" +input_player6_select_mbtn = "nul" +input_player6_start = "nul" +input_player6_start_axis = "nul" +input_player6_start_btn = "nul" +input_player6_start_mbtn = "nul" +input_player6_turbo = "nul" +input_player6_turbo_axis = "nul" +input_player6_turbo_btn = "nul" +input_player6_turbo_mbtn = "nul" +input_player6_up = "nul" +input_player6_up_axis = "nul" +input_player6_up_btn = "nul" +input_player6_up_mbtn = "nul" +input_player6_x = "nul" +input_player6_x_axis = "nul" +input_player6_x_btn = "nul" +input_player6_x_mbtn = "nul" +input_player6_y = "nul" +input_player6_y_axis = "nul" +input_player6_y_btn = "nul" +input_player6_y_mbtn = "nul" +input_player7_a = "nul" +input_player7_a_axis = "nul" +input_player7_a_btn = "nul" +input_player7_a_mbtn = "nul" +input_player7_analog_dpad_mode = "0" +input_player7_b = "nul" +input_player7_b_axis = "nul" +input_player7_b_btn = "nul" +input_player7_b_mbtn = "nul" +input_player7_down = "nul" +input_player7_down_axis = "nul" +input_player7_down_btn = "nul" +input_player7_down_mbtn = "nul" +input_player7_gun_aux_a = "nul" +input_player7_gun_aux_a_axis = "nul" +input_player7_gun_aux_a_btn = "nul" +input_player7_gun_aux_a_mbtn = "nul" +input_player7_gun_aux_b = "nul" +input_player7_gun_aux_b_axis = "nul" +input_player7_gun_aux_b_btn = "nul" +input_player7_gun_aux_b_mbtn = "nul" +input_player7_gun_aux_c = "nul" +input_player7_gun_aux_c_axis = "nul" +input_player7_gun_aux_c_btn = "nul" +input_player7_gun_aux_c_mbtn = "nul" +input_player7_gun_dpad_down = "nul" +input_player7_gun_dpad_down_axis = "nul" +input_player7_gun_dpad_down_btn = "nul" +input_player7_gun_dpad_down_mbtn = "nul" +input_player7_gun_dpad_left = "nul" +input_player7_gun_dpad_left_axis = "nul" +input_player7_gun_dpad_left_btn = "nul" +input_player7_gun_dpad_left_mbtn = "nul" +input_player7_gun_dpad_right = "nul" +input_player7_gun_dpad_right_axis = "nul" +input_player7_gun_dpad_right_btn = "nul" +input_player7_gun_dpad_right_mbtn = "nul" +input_player7_gun_dpad_up = "nul" +input_player7_gun_dpad_up_axis = "nul" +input_player7_gun_dpad_up_btn = "nul" +input_player7_gun_dpad_up_mbtn = "nul" +input_player7_gun_offscreen_shot = "nul" +input_player7_gun_offscreen_shot_axis = "nul" +input_player7_gun_offscreen_shot_btn = "nul" +input_player7_gun_offscreen_shot_mbtn = "nul" +input_player7_gun_select = "nul" +input_player7_gun_select_axis = "nul" +input_player7_gun_select_btn = "nul" +input_player7_gun_select_mbtn = "nul" +input_player7_gun_start = "nul" +input_player7_gun_start_axis = "nul" +input_player7_gun_start_btn = "nul" +input_player7_gun_start_mbtn = "nul" +input_player7_gun_trigger = "nul" +input_player7_gun_trigger_axis = "nul" +input_player7_gun_trigger_btn = "nul" +input_player7_gun_trigger_mbtn = "1" +input_player7_joypad_index = "6" +input_player7_l = "nul" +input_player7_l2 = "nul" +input_player7_l2_axis = "nul" +input_player7_l2_btn = "nul" +input_player7_l2_mbtn = "nul" +input_player7_l3 = "nul" +input_player7_l3_axis = "nul" +input_player7_l3_btn = "nul" +input_player7_l3_mbtn = "nul" +input_player7_l_axis = "nul" +input_player7_l_btn = "nul" +input_player7_l_mbtn = "nul" +input_player7_l_x_minus = "nul" +input_player7_l_x_minus_axis = "nul" +input_player7_l_x_minus_btn = "nul" +input_player7_l_x_minus_mbtn = "nul" +input_player7_l_x_plus = "nul" +input_player7_l_x_plus_axis = "nul" +input_player7_l_x_plus_btn = "nul" +input_player7_l_x_plus_mbtn = "nul" +input_player7_l_y_minus = "nul" +input_player7_l_y_minus_axis = "nul" +input_player7_l_y_minus_btn = "nul" +input_player7_l_y_minus_mbtn = "nul" +input_player7_l_y_plus = "nul" +input_player7_l_y_plus_axis = "nul" +input_player7_l_y_plus_btn = "nul" +input_player7_l_y_plus_mbtn = "nul" +input_player7_left = "nul" +input_player7_left_axis = "nul" +input_player7_left_btn = "nul" +input_player7_left_mbtn = "nul" +input_player7_mouse_index = "6" +input_player7_r = "nul" +input_player7_r2 = "nul" +input_player7_r2_axis = "nul" +input_player7_r2_btn = "nul" +input_player7_r2_mbtn = "nul" +input_player7_r3 = "nul" +input_player7_r3_axis = "nul" +input_player7_r3_btn = "nul" +input_player7_r3_mbtn = "nul" +input_player7_r_axis = "nul" +input_player7_r_btn = "nul" +input_player7_r_mbtn = "nul" +input_player7_r_x_minus = "nul" +input_player7_r_x_minus_axis = "nul" +input_player7_r_x_minus_btn = "nul" +input_player7_r_x_minus_mbtn = "nul" +input_player7_r_x_plus = "nul" +input_player7_r_x_plus_axis = "nul" +input_player7_r_x_plus_btn = "nul" +input_player7_r_x_plus_mbtn = "nul" +input_player7_r_y_minus = "nul" +input_player7_r_y_minus_axis = "nul" +input_player7_r_y_minus_btn = "nul" +input_player7_r_y_minus_mbtn = "nul" +input_player7_r_y_plus = "nul" +input_player7_r_y_plus_axis = "nul" +input_player7_r_y_plus_btn = "nul" +input_player7_r_y_plus_mbtn = "nul" +input_player7_right = "nul" +input_player7_right_axis = "nul" +input_player7_right_btn = "nul" +input_player7_right_mbtn = "nul" +input_player7_select = "nul" +input_player7_select_axis = "nul" +input_player7_select_btn = "nul" +input_player7_select_mbtn = "nul" +input_player7_start = "nul" +input_player7_start_axis = "nul" +input_player7_start_btn = "nul" +input_player7_start_mbtn = "nul" +input_player7_turbo = "nul" +input_player7_turbo_axis = "nul" +input_player7_turbo_btn = "nul" +input_player7_turbo_mbtn = "nul" +input_player7_up = "nul" +input_player7_up_axis = "nul" +input_player7_up_btn = "nul" +input_player7_up_mbtn = "nul" +input_player7_x = "nul" +input_player7_x_axis = "nul" +input_player7_x_btn = "nul" +input_player7_x_mbtn = "nul" +input_player7_y = "nul" +input_player7_y_axis = "nul" +input_player7_y_btn = "nul" +input_player7_y_mbtn = "nul" +input_player8_a = "nul" +input_player8_a_axis = "nul" +input_player8_a_btn = "nul" +input_player8_a_mbtn = "nul" +input_player8_analog_dpad_mode = "0" +input_player8_b = "nul" +input_player8_b_axis = "nul" +input_player8_b_btn = "nul" +input_player8_b_mbtn = "nul" +input_player8_down = "nul" +input_player8_down_axis = "nul" +input_player8_down_btn = "nul" +input_player8_down_mbtn = "nul" +input_player8_gun_aux_a = "nul" +input_player8_gun_aux_a_axis = "nul" +input_player8_gun_aux_a_btn = "nul" +input_player8_gun_aux_a_mbtn = "nul" +input_player8_gun_aux_b = "nul" +input_player8_gun_aux_b_axis = "nul" +input_player8_gun_aux_b_btn = "nul" +input_player8_gun_aux_b_mbtn = "nul" +input_player8_gun_aux_c = "nul" +input_player8_gun_aux_c_axis = "nul" +input_player8_gun_aux_c_btn = "nul" +input_player8_gun_aux_c_mbtn = "nul" +input_player8_gun_dpad_down = "nul" +input_player8_gun_dpad_down_axis = "nul" +input_player8_gun_dpad_down_btn = "nul" +input_player8_gun_dpad_down_mbtn = "nul" +input_player8_gun_dpad_left = "nul" +input_player8_gun_dpad_left_axis = "nul" +input_player8_gun_dpad_left_btn = "nul" +input_player8_gun_dpad_left_mbtn = "nul" +input_player8_gun_dpad_right = "nul" +input_player8_gun_dpad_right_axis = "nul" +input_player8_gun_dpad_right_btn = "nul" +input_player8_gun_dpad_right_mbtn = "nul" +input_player8_gun_dpad_up = "nul" +input_player8_gun_dpad_up_axis = "nul" +input_player8_gun_dpad_up_btn = "nul" +input_player8_gun_dpad_up_mbtn = "nul" +input_player8_gun_offscreen_shot = "nul" +input_player8_gun_offscreen_shot_axis = "nul" +input_player8_gun_offscreen_shot_btn = "nul" +input_player8_gun_offscreen_shot_mbtn = "nul" +input_player8_gun_select = "nul" +input_player8_gun_select_axis = "nul" +input_player8_gun_select_btn = "nul" +input_player8_gun_select_mbtn = "nul" +input_player8_gun_start = "nul" +input_player8_gun_start_axis = "nul" +input_player8_gun_start_btn = "nul" +input_player8_gun_start_mbtn = "nul" +input_player8_gun_trigger = "nul" +input_player8_gun_trigger_axis = "nul" +input_player8_gun_trigger_btn = "nul" +input_player8_gun_trigger_mbtn = "1" +input_player8_joypad_index = "7" +input_player8_l = "nul" +input_player8_l2 = "nul" +input_player8_l2_axis = "nul" +input_player8_l2_btn = "nul" +input_player8_l2_mbtn = "nul" +input_player8_l3 = "nul" +input_player8_l3_axis = "nul" +input_player8_l3_btn = "nul" +input_player8_l3_mbtn = "nul" +input_player8_l_axis = "nul" +input_player8_l_btn = "nul" +input_player8_l_mbtn = "nul" +input_player8_l_x_minus = "nul" +input_player8_l_x_minus_axis = "nul" +input_player8_l_x_minus_btn = "nul" +input_player8_l_x_minus_mbtn = "nul" +input_player8_l_x_plus = "nul" +input_player8_l_x_plus_axis = "nul" +input_player8_l_x_plus_btn = "nul" +input_player8_l_x_plus_mbtn = "nul" +input_player8_l_y_minus = "nul" +input_player8_l_y_minus_axis = "nul" +input_player8_l_y_minus_btn = "nul" +input_player8_l_y_minus_mbtn = "nul" +input_player8_l_y_plus = "nul" +input_player8_l_y_plus_axis = "nul" +input_player8_l_y_plus_btn = "nul" +input_player8_l_y_plus_mbtn = "nul" +input_player8_left = "nul" +input_player8_left_axis = "nul" +input_player8_left_btn = "nul" +input_player8_left_mbtn = "nul" +input_player8_mouse_index = "7" +input_player8_r = "nul" +input_player8_r2 = "nul" +input_player8_r2_axis = "nul" +input_player8_r2_btn = "nul" +input_player8_r2_mbtn = "nul" +input_player8_r3 = "nul" +input_player8_r3_axis = "nul" +input_player8_r3_btn = "nul" +input_player8_r3_mbtn = "nul" +input_player8_r_axis = "nul" +input_player8_r_btn = "nul" +input_player8_r_mbtn = "nul" +input_player8_r_x_minus = "nul" +input_player8_r_x_minus_axis = "nul" +input_player8_r_x_minus_btn = "nul" +input_player8_r_x_minus_mbtn = "nul" +input_player8_r_x_plus = "nul" +input_player8_r_x_plus_axis = "nul" +input_player8_r_x_plus_btn = "nul" +input_player8_r_x_plus_mbtn = "nul" +input_player8_r_y_minus = "nul" +input_player8_r_y_minus_axis = "nul" +input_player8_r_y_minus_btn = "nul" +input_player8_r_y_minus_mbtn = "nul" +input_player8_r_y_plus = "nul" +input_player8_r_y_plus_axis = "nul" +input_player8_r_y_plus_btn = "nul" +input_player8_r_y_plus_mbtn = "nul" +input_player8_right = "nul" +input_player8_right_axis = "nul" +input_player8_right_btn = "nul" +input_player8_right_mbtn = "nul" +input_player8_select = "nul" +input_player8_select_axis = "nul" +input_player8_select_btn = "nul" +input_player8_select_mbtn = "nul" +input_player8_start = "nul" +input_player8_start_axis = "nul" +input_player8_start_btn = "nul" +input_player8_start_mbtn = "nul" +input_player8_turbo = "nul" +input_player8_turbo_axis = "nul" +input_player8_turbo_btn = "nul" +input_player8_turbo_mbtn = "nul" +input_player8_up = "nul" +input_player8_up_axis = "nul" +input_player8_up_btn = "nul" +input_player8_up_mbtn = "nul" +input_player8_x = "nul" +input_player8_x_axis = "nul" +input_player8_x_btn = "nul" +input_player8_x_mbtn = "nul" +input_player8_y = "nul" +input_player8_y_axis = "nul" +input_player8_y_btn = "nul" +input_player8_y_mbtn = "nul" +input_player9_a = "nul" +input_player9_a_axis = "nul" +input_player9_a_btn = "nul" +input_player9_a_mbtn = "nul" +input_player9_analog_dpad_mode = "0" +input_player9_b = "nul" +input_player9_b_axis = "nul" +input_player9_b_btn = "nul" +input_player9_b_mbtn = "nul" +input_player9_down = "nul" +input_player9_down_axis = "nul" +input_player9_down_btn = "nul" +input_player9_down_mbtn = "nul" +input_player9_gun_aux_a = "nul" +input_player9_gun_aux_a_axis = "nul" +input_player9_gun_aux_a_btn = "nul" +input_player9_gun_aux_a_mbtn = "nul" +input_player9_gun_aux_b = "nul" +input_player9_gun_aux_b_axis = "nul" +input_player9_gun_aux_b_btn = "nul" +input_player9_gun_aux_b_mbtn = "nul" +input_player9_gun_aux_c = "nul" +input_player9_gun_aux_c_axis = "nul" +input_player9_gun_aux_c_btn = "nul" +input_player9_gun_aux_c_mbtn = "nul" +input_player9_gun_dpad_down = "nul" +input_player9_gun_dpad_down_axis = "nul" +input_player9_gun_dpad_down_btn = "nul" +input_player9_gun_dpad_down_mbtn = "nul" +input_player9_gun_dpad_left = "nul" +input_player9_gun_dpad_left_axis = "nul" +input_player9_gun_dpad_left_btn = "nul" +input_player9_gun_dpad_left_mbtn = "nul" +input_player9_gun_dpad_right = "nul" +input_player9_gun_dpad_right_axis = "nul" +input_player9_gun_dpad_right_btn = "nul" +input_player9_gun_dpad_right_mbtn = "nul" +input_player9_gun_dpad_up = "nul" +input_player9_gun_dpad_up_axis = "nul" +input_player9_gun_dpad_up_btn = "nul" +input_player9_gun_dpad_up_mbtn = "nul" +input_player9_gun_offscreen_shot = "nul" +input_player9_gun_offscreen_shot_axis = "nul" +input_player9_gun_offscreen_shot_btn = "nul" +input_player9_gun_offscreen_shot_mbtn = "nul" +input_player9_gun_select = "nul" +input_player9_gun_select_axis = "nul" +input_player9_gun_select_btn = "nul" +input_player9_gun_select_mbtn = "nul" +input_player9_gun_start = "nul" +input_player9_gun_start_axis = "nul" +input_player9_gun_start_btn = "nul" +input_player9_gun_start_mbtn = "nul" +input_player9_gun_trigger = "nul" +input_player9_gun_trigger_axis = "nul" +input_player9_gun_trigger_btn = "nul" +input_player9_gun_trigger_mbtn = "1" +input_player9_joypad_index = "8" +input_player9_l = "nul" +input_player9_l2 = "nul" +input_player9_l2_axis = "nul" +input_player9_l2_btn = "nul" +input_player9_l2_mbtn = "nul" +input_player9_l3 = "nul" +input_player9_l3_axis = "nul" +input_player9_l3_btn = "nul" +input_player9_l3_mbtn = "nul" +input_player9_l_axis = "nul" +input_player9_l_btn = "nul" +input_player9_l_mbtn = "nul" +input_player9_l_x_minus = "nul" +input_player9_l_x_minus_axis = "nul" +input_player9_l_x_minus_btn = "nul" +input_player9_l_x_minus_mbtn = "nul" +input_player9_l_x_plus = "nul" +input_player9_l_x_plus_axis = "nul" +input_player9_l_x_plus_btn = "nul" +input_player9_l_x_plus_mbtn = "nul" +input_player9_l_y_minus = "nul" +input_player9_l_y_minus_axis = "nul" +input_player9_l_y_minus_btn = "nul" +input_player9_l_y_minus_mbtn = "nul" +input_player9_l_y_plus = "nul" +input_player9_l_y_plus_axis = "nul" +input_player9_l_y_plus_btn = "nul" +input_player9_l_y_plus_mbtn = "nul" +input_player9_left = "nul" +input_player9_left_axis = "nul" +input_player9_left_btn = "nul" +input_player9_left_mbtn = "nul" +input_player9_mouse_index = "8" +input_player9_r = "nul" +input_player9_r2 = "nul" +input_player9_r2_axis = "nul" +input_player9_r2_btn = "nul" +input_player9_r2_mbtn = "nul" +input_player9_r3 = "nul" +input_player9_r3_axis = "nul" +input_player9_r3_btn = "nul" +input_player9_r3_mbtn = "nul" +input_player9_r_axis = "nul" +input_player9_r_btn = "nul" +input_player9_r_mbtn = "nul" +input_player9_r_x_minus = "nul" +input_player9_r_x_minus_axis = "nul" +input_player9_r_x_minus_btn = "nul" +input_player9_r_x_minus_mbtn = "nul" +input_player9_r_x_plus = "nul" +input_player9_r_x_plus_axis = "nul" +input_player9_r_x_plus_btn = "nul" +input_player9_r_x_plus_mbtn = "nul" +input_player9_r_y_minus = "nul" +input_player9_r_y_minus_axis = "nul" +input_player9_r_y_minus_btn = "nul" +input_player9_r_y_minus_mbtn = "nul" +input_player9_r_y_plus = "nul" +input_player9_r_y_plus_axis = "nul" +input_player9_r_y_plus_btn = "nul" +input_player9_r_y_plus_mbtn = "nul" +input_player9_right = "nul" +input_player9_right_axis = "nul" +input_player9_right_btn = "nul" +input_player9_right_mbtn = "nul" +input_player9_select = "nul" +input_player9_select_axis = "nul" +input_player9_select_btn = "nul" +input_player9_select_mbtn = "nul" +input_player9_start = "nul" +input_player9_start_axis = "nul" +input_player9_start_btn = "nul" +input_player9_start_mbtn = "nul" +input_player9_turbo = "nul" +input_player9_turbo_axis = "nul" +input_player9_turbo_btn = "nul" +input_player9_turbo_mbtn = "nul" +input_player9_up = "nul" +input_player9_up_axis = "nul" +input_player9_up_btn = "nul" +input_player9_up_mbtn = "nul" +input_player9_x = "nul" +input_player9_x_axis = "nul" +input_player9_x_btn = "nul" +input_player9_x_mbtn = "nul" +input_player9_y = "nul" +input_player9_y_axis = "nul" +input_player9_y_btn = "nul" +input_player9_y_mbtn = "nul" +input_poll_type_behavior = "2" +input_quit_gamepad_combo = "0" +input_recording_toggle = "nul" +input_recording_toggle_axis = "nul" +input_recording_toggle_btn = "nul" +input_recording_toggle_mbtn = "nul" +input_remap_binds_enable = "true" +input_remapping_directory = "~/.config/retroarch/config/remaps" +input_reset = "h" +input_reset_axis = "nul" +input_reset_btn = "nul" +input_reset_mbtn = "nul" +input_rewind = "r" +input_rewind_axis = "+2" +input_rewind_btn = "nul" +input_rewind_mbtn = "nul" +input_rumble_gain = "100" +input_runahead_toggle = "nul" +input_runahead_toggle_axis = "nul" +input_runahead_toggle_btn = "nul" +input_runahead_toggle_mbtn = "nul" +input_save_state = "f2" +input_save_state_axis = "nul" +input_save_state_btn = "5" +input_save_state_mbtn = "nul" +input_screenshot = "f8" +input_screenshot_axis = "nul" +input_screenshot_btn = "nul" +input_screenshot_mbtn = "nul" +input_send_debug_info = "f10" +input_send_debug_info_axis = "nul" +input_send_debug_info_btn = "nul" +input_send_debug_info_mbtn = "nul" +input_sensors_enable = "true" +input_shader_next = "m" +input_shader_next_axis = "nul" +input_shader_next_btn = "nul" +input_shader_next_mbtn = "nul" +input_shader_prev = "n" +input_shader_prev_axis = "nul" +input_shader_prev_btn = "nul" +input_shader_prev_mbtn = "nul" +input_state_slot_decrease = "f6" +input_state_slot_decrease_axis = "nul" +input_state_slot_decrease_btn = "nul" +input_state_slot_decrease_mbtn = "nul" +input_state_slot_increase = "f7" +input_state_slot_increase_axis = "nul" +input_state_slot_increase_btn = "nul" +input_state_slot_increase_mbtn = "nul" +input_streaming_toggle = "nul" +input_streaming_toggle_axis = "nul" +input_streaming_toggle_btn = "nul" +input_streaming_toggle_mbtn = "nul" +input_toggle_fast_forward = "space" +input_toggle_fast_forward_axis = "nul" +input_toggle_fast_forward_btn = "nul" +input_toggle_fast_forward_mbtn = "nul" +input_toggle_fullscreen = "f" +input_toggle_fullscreen_axis = "nul" +input_toggle_fullscreen_btn = "nul" +input_toggle_fullscreen_mbtn = "nul" +input_toggle_slowmotion = "nul" +input_toggle_slowmotion_axis = "nul" +input_toggle_slowmotion_btn = "nul" +input_toggle_slowmotion_mbtn = "nul" +input_toggle_statistics = "nul" +input_toggle_statistics_axis = "nul" +input_toggle_statistics_btn = "nul" +input_toggle_statistics_mbtn = "nul" +input_toggle_vrr_runloop = "nul" +input_toggle_vrr_runloop_axis = "nul" +input_toggle_vrr_runloop_btn = "nul" +input_toggle_vrr_runloop_mbtn = "nul" +input_touch_scale = "1" +input_turbo_default_button = "0" +input_turbo_mode = "0" +input_turbo_period = "6" +input_volume_down = "subtract" +input_volume_down_axis = "nul" +input_volume_down_btn = "nul" +input_volume_down_mbtn = "nul" +input_volume_up = "add" +input_volume_up_axis = "nul" +input_volume_up_btn = "nul" +input_volume_up_mbtn = "nul" +joypad_autoconfig_dir = "/tmp/joypads" +keyboard_gamepad_enable = "true" +keyboard_gamepad_mapping_type = "1" +kiosk_mode_enable = "false" +kiosk_mode_password = "" +led_driver = "null" +libretro_directory = "/tmp/cores" +libretro_info_path = "/tmp/cores" +libretro_log_level = "1" +load_dummy_on_core_shutdown = "true" +location_allow = "false" +location_driver = "null" +log_dir = "~/.config/retroarch/logs" +log_to_file = "false" +log_to_file_timestamp = "false" +log_verbosity = "true" +materialui_auto_rotate_nav_bar = "true" +materialui_dual_thumbnail_list_view_enable = "true" +materialui_icons_enable = "true" +materialui_landscape_layout_optimization = "1" +materialui_menu_color_theme = "9" +materialui_menu_transition_animation = "0" +materialui_playlist_icons_enable = "true" +materialui_show_nav_bar = "true" +materialui_thumbnail_background_enable = "true" +materialui_thumbnail_view_landscape = "2" +materialui_thumbnail_view_portrait = "1" +memory_show = "false" +memory_update_interval = "256" +menu_battery_level_enable = "true" +menu_core_enable = "true" +menu_driver = "ozone" +menu_dynamic_wallpaper_enable = "false" +menu_enable_widgets = "true" +menu_font_color_blue = "255" +menu_font_color_green = "255" +menu_font_color_red = "255" +menu_footer_opacity = "1.000000" +menu_framebuffer_opacity = "0.899999" +menu_header_opacity = "1.000000" +menu_horizontal_animation = "true" +menu_insert_disk_resume = "true" +menu_left_thumbnails = "0" +menu_linear_filter = "false" +menu_mouse_enable = "false" +menu_navigation_browser_filter_supported_extensions_enable = "true" +menu_navigation_wraparound_enable = "true" +menu_pause_libretro = "true" +menu_pointer_enable = "false" +menu_rgui_full_width_layout = "true" +menu_rgui_shadows = "false" +menu_rgui_transparency = "true" +menu_savestate_resume = "true" +menu_scale_factor = "0.300000" +menu_screensaver_animation = "0" +menu_screensaver_animation_speed = "1.000000" +menu_screensaver_timeout = "0" +menu_scroll_delay = "256" +menu_scroll_fast = "false" +menu_shader_pipeline = "2" +menu_show_advanced_settings = "true" +menu_show_configurations = "true" +menu_show_core_updater = "false" +menu_show_dump_disc = "true" +menu_show_help = "true" +menu_show_information = "true" +menu_show_latency = "true" +menu_show_legacy_thumbnail_updater = "false" +menu_show_load_content = "true" +menu_show_load_content_animation = "false" +menu_show_load_core = "true" +menu_show_load_disc = "true" +menu_show_online_updater = "true" +menu_show_overlays = "true" +menu_show_quit_retroarch = "true" +menu_show_reboot = "false" +menu_show_restart_retroarch = "true" +menu_show_rewind = "true" +menu_show_shutdown = "false" +menu_show_sublabels = "true" +menu_show_video_layout = "true" +menu_swap_ok_cancel_buttons = "false" +menu_throttle_framerate = "true" +menu_thumbnail_upscale_threshold = "0" +menu_thumbnails = "3" +menu_ticker_smooth = "true" +menu_ticker_speed = "2.000000" +menu_ticker_type = "1" +menu_timedate_date_separator = "0" +menu_timedate_enable = "true" +menu_timedate_style = "11" +menu_unified_controls = "false" +menu_use_preferred_system_color_theme = "false" +menu_wallpaper = "" +menu_wallpaper_opacity = "1.000000" +menu_widget_scale_auto = "false" +menu_widget_scale_factor = "1.000000" +menu_widget_scale_factor_windowed = "1.000000" +menu_xmb_animation_horizontal_highlight = "0" +menu_xmb_animation_move_up_down = "0" +menu_xmb_animation_opening_main_menu = "0" +menu_xmb_thumbnail_scale_factor = "100" +menu_xmb_title_margin = "5" +menu_xmb_vertical_fade_factor = "100" +midi_driver = "alsa" +midi_input = "Off" +midi_output = "Off" +midi_volume = "100" +netplay_allow_pausing = "false" +netplay_allow_slaves = "true" +netplay_chat_color_msg = "16777215" +netplay_chat_color_name = "32768" +netplay_check_frames = "600" +netplay_custom_mitm_server = "" +netplay_fade_chat = "true" +netplay_input_latency_frames_min = "0" +netplay_input_latency_frames_range = "0" +netplay_ip_address = "" +netplay_ip_port = "55435" +netplay_max_connections = "3" +netplay_max_ping = "0" +netplay_mitm_server = "nyc" +netplay_nat_traversal = "true" +netplay_nickname = "" +netplay_password = "" +netplay_ping_show = "false" +netplay_public_announce = "true" +netplay_request_device_p1 = "false" +netplay_request_device_p10 = "false" +netplay_request_device_p11 = "false" +netplay_request_device_p12 = "false" +netplay_request_device_p13 = "false" +netplay_request_device_p14 = "false" +netplay_request_device_p15 = "false" +netplay_request_device_p16 = "false" +netplay_request_device_p2 = "false" +netplay_request_device_p3 = "false" +netplay_request_device_p4 = "false" +netplay_request_device_p5 = "false" +netplay_request_device_p6 = "false" +netplay_request_device_p7 = "false" +netplay_request_device_p8 = "false" +netplay_request_device_p9 = "false" +netplay_require_slaves = "false" +netplay_share_analog = "1" +netplay_share_digital = "1" +netplay_show_only_connectable = "true" +netplay_show_only_installed_cores = "false" +netplay_show_passworded = "true" +netplay_spectate_password = "" +netplay_start_as_spectator = "false" +netplay_stateless_mode = "false" +netplay_use_mitm_server = "false" +network_cmd_enable = "false" +network_cmd_port = "55355" +network_on_demand_thumbnails = "false" +network_remote_base_port = "55400" +network_remote_enable = "false" +network_remote_enable_user_p1 = "false" +network_remote_enable_user_p10 = "false" +network_remote_enable_user_p11 = "false" +network_remote_enable_user_p12 = "false" +network_remote_enable_user_p13 = "false" +network_remote_enable_user_p14 = "false" +network_remote_enable_user_p15 = "false" +network_remote_enable_user_p16 = "false" +network_remote_enable_user_p2 = "false" +network_remote_enable_user_p3 = "false" +network_remote_enable_user_p4 = "false" +network_remote_enable_user_p5 = "false" +network_remote_enable_user_p6 = "false" +network_remote_enable_user_p7 = "false" +network_remote_enable_user_p8 = "false" +network_remote_enable_user_p9 = "false" +notification_show_autoconfig = "false" +notification_show_cheats_applied = "true" +notification_show_config_override_load = "false" +notification_show_fast_forward = "true" +notification_show_netplay_extra = "false" +notification_show_patch_applied = "true" +notification_show_refresh_rate = "true" +notification_show_remap_load = "false" +notification_show_screenshot = "false" +notification_show_screenshot_duration = "2" +notification_show_screenshot_flash = "1" +notification_show_set_initial_disk = "true" +notification_show_when_menu_is_alive = "false" +overlay_directory = "/tmp/overlays" +ozone_collapse_sidebar = "false" +ozone_menu_color_theme = "1" +ozone_scroll_content_metadata = "false" +ozone_sort_after_truncate_playlist_name = "true" +ozone_thumbnail_scale_factor = "1.000000" +ozone_truncate_playlist_name = "true" +pause_nonactive = "true" +perfcnt_enable = "false" +playlist_compression = "false" +playlist_cores = "/usr/lib/libretro/stella_libretro.so;/usr/lib/libretro/atari800_libretro.so;/usr/lib/libretro/prosystem_libretro.so;/usr/lib/libretro/virtualjaguar_libretro.so;/usr/lib/libretro/handy_libretro.so;/usr/lib/libretro/hatari_libretro.so;/usr/lib/libretro/beetle_wswan_libretro.so;/usr/lib/libretro/beetle_wswan_libretro.so;/usr/lib/libretro/nxengine_libretro.so;/usr/lib/libretro/chailove_libretro.so;/usr/lib/libretro/bluemsx_libretro.so;/tmp/cores/vice_xpet_libretro.so;/usr/lib/libretro/vice_x64_libretro.so;/usr/lib/libretro/vice_x64_libretro.so;/usr/lib/libretro/vice_x64_libretro.so;/usr/lib/libretro/puae_libretro.so;/usr/lib/libretro/vice_xplus4_libretro.so;/usr/lib/libretro/vice_xvic_libretro.so;/usr/lib/libretro/dinothawr_libretro.so;/usr/lib/libretro/prboom_libretro.so;/usr/lib/libretro/dosbox_libretro.so;/usr/lib/libretro/fbneo_libretro.so;/usr/lib/libretro/reminiscence_libretro.so;/usr/lib/libretro/vecx_libretro.so;/usr/lib/libretro/lutro_libretro.so;/usr/lib/libretro/o2em_libretro.so;/usr/lib/libretro/mame2003_plus_libretro.so;/usr/lib/libretro/mame2010_libretro.so;/usr/lib/libretro/freeintv_libretro.so;/usr/lib/libretro/bluemsx_libretro.so;/usr/lib/libretro/bluemsx_libretro.so;/usr/lib/libretro/beetle_supergrafx_libretro.so;/usr/lib/libretro/beetle_pce_fast_libretro.so;/usr/lib/libretro/nestopia_libretro.so;/usr/lib/libretro/mgba_libretro.so;/usr/lib/libretro/mgba_libretro.so;/usr/lib/libretro/gambatte_libretro.so;/usr/lib/libretro/gambatte_libretro.so;/usr/lib/libretro/dolphin_libretro.so;/usr/lib/libretro/citra_libretro.so;/usr/lib/libretro/parallel_n64_libretro.so;/usr/lib/libretro/desmume_libretro.so;/usr/lib/libretro/desmume_libretro.so;/usr/lib/libretro/desmume_libretro.so;/usr/lib/libretro/desmume_libretro.so;/usr/lib/libretro/desmume_libretro.so;/usr/lib/libretro/nestopia_libretro.so;/usr/lib/libretro/snes9x2010_libretro.so;/usr/lib/libretro/snes9x2010_libretro.so;/usr/lib/libretro/beetle_vb_libretro.so;/usr/lib/libretro/dolphin_libretro.so;/usr/lib/libretro/pokemini_libretro.so;/usr/lib/libretro/tyrquake_libretro.so;/usr/lib/libretro/scummvm_libretro.so;/usr/lib/libretro/picodrive_libretro.so;/usr/lib/libretro/flycast_libretro.so;/usr/lib/libretro/genesis_plus_gx_libretro.so;/usr/lib/libretro/genesis_plus_gx_libretro.so;/usr/lib/libretro/genesis_plus_gx_libretro.so;/usr/lib/libretro/picodrive_libretro.so;/usr/lib/libretro/genesis_plus_gx_libretro.so;/usr/lib/libretro/yabause_libretro.so;/usr/lib/libretro/fuse_libretro.so;/usr/lib/libretro/beetle_ngp_libretro.so;/usr/lib/libretro/beetle_ngp_libretro.so;/usr/lib/libretro/play_libretro.so;/usr/lib/libretro/ppsspp_libretro.so;/usr/lib/libretro/pcsx_rearmed_libretro.so;/usr/lib/libretro/theodore_libretro.so;/usr/lib/libretro/tic80_libretro.so;/usr/lib/libretro/4do_libretro.so" +playlist_directory = "~/playlists" +playlist_entry_remove = "false" +playlist_entry_remove_enable = "1" +playlist_entry_rename = "false" +playlist_fuzzy_archive_match = "false" +playlist_names = "Atari - 2600.lpl;Atari - 5200.lpl;Atari - 7800.lpl;Atari - Jaguar.lpl;Atari - Lynx.lpl;Atari - ST.lpl;Bandai - WonderSwan Color.lpl;Bandai - WonderSwan.lpl;Cave Story.lpl;ChaiLove.lpl;Coleco - ColecoVision.lpl;Commodore - 64 (PP).lpl;Commodore - 64 (Tapes).lpl;Commodore - 64.lpl;Commodore - Amiga.lpl;Commodore - Plus-4.lpl;Commodore - PET.lpl;Commodore - VIC20.lpl;Dinothawr.lpl;DOOM.lpl;DOS.lpl;FBNeo - Arcade Games.lpl;Flashback.lpl;GCE - Vectrex.lpl;Lutro.lpl;Magnavox - Odyssey2.lpl;MAME 2003-Plus.lpl;MAME 2010.lpl;Mattel - Intellivision.lpl;Microsoft - MSX2.lpl;Microsoft - MSX.lpl;NEC - PC Engine SuperGrafx.lpl;NEC - PC Engine - TurboGrafx 16.lpl;Nintendo - Famicom Disk System.lpl;Nintendo - Game Boy Advance (e-Cards).lpl;Nintendo - Game Boy Advance.lpl;Nintendo - Game Boy Color.lpl;Nintendo - Game Boy.lpl;Nintendo - GameCube.lpl;Nintendo - Nintendo 3DS.lpl;Nintendo - Nintendo 64.lpl;Nintendo - Nintendo DS.lpl;Nintendo - Nintendo DS Decrypted.lpl;Nintendo - Nintendo DS (Download Play) (BETA).lpl;Nintendo - Nintendo DSi Decrypted.lpl;Nintendo - Nintendo DSi (DLC).lpl;Nintendo - Nintendo Entertainment System.lpl;Nintendo - Satellaview.lpl;Nintendo - Super Nintendo Entertainment System.lpl;Nintendo - Virtual Boy.lpl;Nintendo - Wii.lpl;Nintendo - Pokemon Mini (PokeMini).lpl;Quake.lpl;ScummVM.lpl;Sega - 32X.lpl;Sega - Dreamcast.lpl;Sega - Game Gear.lpl;Sega - Master System - Mark III.lpl;Sega - Mega Drive - Genesis.lpl;Sega - PICO.lpl;Sega - SG-1000.lpl;Sega - Saturn.lpl;Sinclair - ZX Spectrum +3.lpl;SNK - Neo Geo Pocket Color.lpl;SNK - Neo Geo Pocket.lpl;Sony - PlayStation 2.lpl;Sony - PlayStation Portable.lpl;Sony - PlayStation.lpl;Thomson - MOTO.lpl;TIC-80.lpl;The 3DO Company - 3DO.lpl" +playlist_portable_paths = "false" +playlist_show_entry_idx = "true" +playlist_show_history_icons = "0" +playlist_show_inline_core_name = "0" +playlist_show_sublabels = "true" +playlist_sort_alphabetical = "true" +playlist_sublabel_last_played_style = "0" +playlist_sublabel_runtime_type = "0" +playlist_use_old_format = "false" +quick_menu_show_add_to_favorites = "true" +quick_menu_show_cheats = "true" +quick_menu_show_close_content = "true" +quick_menu_show_controls = "true" +quick_menu_show_core_options_flush = "false" +quick_menu_show_download_thumbnails = "true" +quick_menu_show_information = "true" +quick_menu_show_options = "true" +quick_menu_show_recording = "true" +quick_menu_show_reset_core_association = "true" +quick_menu_show_restart_content = "true" +quick_menu_show_resume_content = "true" +quick_menu_show_save_content_dir_overrides = "true" +quick_menu_show_save_core_overrides = "false" +quick_menu_show_save_game_overrides = "false" +quick_menu_show_save_load_state = "true" +quick_menu_show_savestate_submenu = "false" +quick_menu_show_set_core_association = "true" +quick_menu_show_shaders = "true" +quick_menu_show_start_recording = "true" +quick_menu_show_start_streaming = "true" +quick_menu_show_streaming = "true" +quick_menu_show_take_screenshot = "true" +quick_menu_show_undo_save_load_state = "false" +quit_on_close_content = "0" +quit_press_twice = "true" +record_driver = "null" +recording_config_directory = "" +recording_output_directory = "~/roms/screenshots" +remap_save_on_exit = "true" +resampler_directory = "" +rewind_buffer_size = "20971520" +rewind_buffer_size_step = "10" +rewind_enable = "false" +rewind_granularity = "1" +rgui_aspect_ratio = "0" +rgui_aspect_ratio_lock = "0" +rgui_background_filler_thickness_enable = "true" +rgui_border_filler_enable = "true" +rgui_border_filler_thickness_enable = "true" +rgui_browser_directory = "~/roms" +rgui_config_directory = "~/.config/retroarch/config" +rgui_extended_ascii = "false" +rgui_inline_thumbnails = "false" +rgui_internal_upscale_level = "0" +rgui_menu_color_theme = "4" +rgui_menu_theme_preset = "" +rgui_particle_effect = "0" +rgui_particle_effect_screensaver = "true" +rgui_particle_effect_speed = "1.000000" +rgui_show_start_screen = "false" +rgui_swap_thumbnails = "false" +rgui_switch_icons = "true" +rgui_thumbnail_delay = "0" +rgui_thumbnail_downscaler = "0" +run_ahead_enabled = "false" +run_ahead_frames = "1" +run_ahead_hide_warnings = "false" +run_ahead_secondary_instance = "true" +runtime_log_directory = "default" +save_file_compression = "false" +savefile_directory = "~/.config/retroarch/saves" +savefiles_in_content_dir = "true" +savestate_auto_index = "false" +savestate_auto_load = "false" +savestate_auto_save = "false" +savestate_directory = "~/.config/retroarch/states" +savestate_file_compression = "true" +savestate_max_keep = "0" +savestate_thumbnail_enable = "true" +savestates_in_content_dir = "false" +scan_without_core_match = "false" +screen_brightness = "100" +screen_orientation = "0" +screenshot_directory = "~/roms/screenshots" +screenshots_in_content_dir = "false" +settings_show_accessibility = "true" +settings_show_achievements = "true" +settings_show_ai_service = "true" +settings_show_audio = "true" +settings_show_configuration = "true" +settings_show_core = "true" +settings_show_directory = "true" +settings_show_drivers = "true" +settings_show_file_browser = "true" +settings_show_frame_throttle = "true" +settings_show_input = "true" +settings_show_latency = "true" +settings_show_logging = "true" +settings_show_network = "true" +settings_show_onscreen_display = "true" +settings_show_playlists = "true" +settings_show_power_management = "true" +settings_show_recording = "true" +settings_show_saving = "true" +settings_show_user = "true" +settings_show_user_interface = "true" +settings_show_video = "true" +show_hidden_files = "false" +slowmotion_ratio = "3.000000" +soft_filter_enable = "false" +soft_filter_index = "0" +sort_savefiles_by_content_enable = "false" +sort_savefiles_enable = "false" +sort_savestates_by_content_enable = "false" +sort_savestates_enable = "false" +sort_screenshots_by_content_enable = "false" +state_slot = "0" +statistics_show = "false" +stdin_cmd_enable = "false" +streaming_mode = "0" +suspend_screensaver_enable = "true" +sustained_performance_mode = "false" +system_directory = "~/roms/bios" +systemfiles_in_content_dir = "false" +threaded_data_runloop_enable = "true" +thumbnails_directory = "~/thumbnails" +twitch_stream_key = "" +ui_companion_enable = "false" +ui_companion_start_on_boot = "true" +ui_companion_toggle = "false" +ui_menubar_enable = "true" +use_last_start_directory = "false" +user_language = "0" +vibrate_on_keypress = "true" +video_adaptive_vsync = "false" +video_allow_rotate = "true" +video_aspect_ratio = "-1.000000" +video_aspect_ratio_auto = "true" +video_autoswitch_refresh_rate = "0" +video_black_frame_insertion = "0" +video_context_driver = "" +video_crop_overscan = "true" +video_ctx_scaling = "false" +video_disable_composition = "false" +video_driver = "vulkan" +video_filter = "" +video_filter_dir = "/usr/share/retroarch/filters/64bit/video" +video_font_enable = "true" +video_font_path = "/usr/share/retroarch-assets/xmb/monochrome/font.ttf" +video_font_size = "32.000000" +video_force_aspect = "true" +video_force_srgb_disable = "false" +video_frame_delay = "0" +video_frame_delay_auto = "false" +video_fullscreen = "true" +video_fullscreen_x = "0" +video_fullscreen_y = "0" +video_gpu_record = "false" +video_gpu_screenshot = "false" +video_hard_sync = "false" +video_hard_sync_frames = "0" +video_hdr_display_contrast = "5.000000" +video_hdr_enable = "false" +video_hdr_expand_gamut = "true" +video_hdr_max_nits = "1000.000000" +video_hdr_paper_white_nits = "200.000000" +video_layout_directory = "~/.config/retroarch/layouts" +video_layout_enable = "true" +video_layout_path = "" +video_layout_selected_view = "0" +video_max_frame_latency = "1" +video_max_swapchain_images = "3" +video_message_color = "ffff00" +video_message_pos_x = "0.049999" +video_message_pos_y = "0.049999" +video_monitor_index = "0" +video_msg_bgcolor_blue = "0" +video_msg_bgcolor_enable = "false" +video_msg_bgcolor_green = "0" +video_msg_bgcolor_opacity = "1.000000" +video_msg_bgcolor_red = "0" +video_notch_write_over_enable = "false" +video_oga_vertical_enable = "false" +video_post_filter_record = "false" +video_record_config = "" +video_record_quality = "4" +video_record_scale_factor = "1" +video_record_threads = "2" +video_refresh_rate = "60.000000" +video_rotation = "0" +video_scale = "3.000000" +video_scale_integer = "false" +video_scale_integer_overscale = "false" +video_shader_delay = "0" +video_shader_dir = "/tmp/shaders" +video_shader_enable = "false" +video_shader_preset_save_reference_enable = "true" +video_shader_remember_last_dir = "false" +video_shader_watch_files = "false" +video_shared_context = "false" +video_smooth = "false" +video_stream_config = "" +video_stream_port = "56400" +video_stream_quality = "10" +video_stream_scale_factor = "1" +video_stream_url = "" +video_swap_interval = "1" +video_threaded = "true" +video_vsync = "true" +video_waitable_swapchains = "true" +video_window_auto_height_max = "1080" +video_window_auto_width_max = "1920" +video_window_custom_size_enable = "false" +video_window_opacity = "100" +video_window_save_positions = "false" +video_window_show_decorations = "true" +video_windowed_fullscreen = "false" +video_windowed_position_height = "720" +video_windowed_position_width = "1280" +video_windowed_position_x = "0" +video_windowed_position_y = "0" +vrr_runloop_enable = "false" +vulkan_gpu_index = "0" +wifi_driver = "null" +wifi_enabled = "true" +xmb_alpha_factor = "75" +xmb_font = "/usr/share/retroarch-assets/xmb/monochrome/font.ttf" +xmb_layout = "2" +xmb_menu_color_theme = "4" +xmb_shadows_enable = "true" +xmb_theme = "0" +xmb_vertical_thumbnails = "false" +youtube_stream_key = "" diff --git a/packages/games/emulators/retroarch/sources/X86_64/retroarch32bit-append.cfg b/packages/games/emulators/retroarch/sources/X86_64/retroarch32bit-append.cfg new file mode 100644 index 000000000..9e743a38f --- /dev/null +++ b/packages/games/emulators/retroarch/sources/X86_64/retroarch32bit-append.cfg @@ -0,0 +1,2 @@ +audio_filter_dir = "/usr/share/retroarch/filters/32bit/audio" +video_filter_dir = "/usr/share/retroarch/filters/32bit/video" diff --git a/packages/games/emulators/retroarch/sources/X86_64/retroarch64bit-append.cfg b/packages/games/emulators/retroarch/sources/X86_64/retroarch64bit-append.cfg new file mode 100644 index 000000000..b6cbf6831 --- /dev/null +++ b/packages/games/emulators/retroarch/sources/X86_64/retroarch64bit-append.cfg @@ -0,0 +1,2 @@ +audio_filter_dir = "/usr/share/retroarch/filters/64bit/audio" +video_filter_dir = "/usr/share/retroarch/filters/64bit/video" diff --git a/packages/games/emulators/retroarch/sources/handheld b/packages/games/emulators/retroarch/sources/handheld new file mode 120000 index 000000000..2988caf9b --- /dev/null +++ b/packages/games/emulators/retroarch/sources/handheld @@ -0,0 +1 @@ +X86_64 \ No newline at end of file diff --git a/packages/games/emulators/scummvmsa/config/games/_Scan ScummVM Games.sh b/packages/games/emulators/scummvmsa/config/games/_Scan ScummVM Games.sh index 3d6e8cfe8..d69eb3968 100644 --- a/packages/games/emulators/scummvmsa/config/games/_Scan ScummVM Games.sh +++ b/packages/games/emulators/scummvmsa/config/games/_Scan ScummVM Games.sh @@ -6,10 +6,9 @@ . /etc/profile -clear >/dev/console -echo "Scanning for games..." >/dev/console -bash /usr/bin/start_scummvm.sh add >/dev/console -echo "Adding games..." >/dev/console -bash /usr/bin/start_scummvm.sh create >/dev/console -systemctl restart emustation -clear >/dev/console +clear +echo "Scanning for games..." +bash /usr/bin/start_scummvm.sh add +echo "Adding games..." +bash /usr/bin/start_scummvm.sh create +clear diff --git a/packages/games/emulators/scummvmsa/package.mk b/packages/games/emulators/scummvmsa/package.mk index f99975ba4..15694c3f5 100644 --- a/packages/games/emulators/scummvmsa/package.mk +++ b/packages/games/emulators/scummvmsa/package.mk @@ -3,8 +3,8 @@ # Copyright (C) 2020-present Fewtarius PKG_NAME="scummvmsa" -PKG_VERSION="f492ace2f0c11fb504a47a02201ea3f359be8251" -PKG_SHA256="2c10b80eaa9347ae6b3e4de4fc9285206170d402adb149fbdb6ca094da3a2183" +PKG_VERSION="94a79bfeb3f70afbec61d7cc60de10a86d918c40" +PKG_SHA256="e449325aaf7265bc52eaebb2a33544606989307c064b2da7dc3a93a5757be482" PKG_REV="1" PKG_LICENSE="GPL2" PKG_SITE="https://github.com/scummvm/scummvm" diff --git a/packages/games/emulators/vicesa/package.mk b/packages/games/emulators/vicesa/package.mk index 0e61879d6..ce9fceb8c 100644 --- a/packages/games/emulators/vicesa/package.mk +++ b/packages/games/emulators/vicesa/package.mk @@ -8,7 +8,7 @@ PKG_ARCH="any" PKG_LICENSE="GPLv2" PKG_SITE="https://sourceforge.net/projects/vice-emu" PKG_URL="${PKG_SITE}/files/releases/vice-${PKG_VERSION}.tar.gz" -PKG_DEPENDS_TARGET="toolchain xa:host SDL2 SDL2_image" +PKG_DEPENDS_TARGET="toolchain xa:host SDL2 SDL2_image ncurses readline" PKG_PRIORITY="optional" PKG_SECTION="emulators" PKG_SHORTDESC="Commodore 8-bit Emulator" @@ -23,6 +23,11 @@ if [ "${OPENGLES_SUPPORT}" = yes ]; then PKG_DEPENDS_TARGET+=" ${OPENGLES}" fi +pre_configure_target() { + export LDFLAGS="${LDFLAGS} -lreadline -lncursesw -ltinfow" + export CFLAGS="${CFLAGS} -fcommon" +} + post_makeinstall_target() { mkdir -p ${INSTALL}/usr/config/vice if [ -d "${PKG_DIR}/config/${DEVICE}" ] diff --git a/packages/games/emulators/yabasanshiroSA/package.mk b/packages/games/emulators/yabasanshiroSA/package.mk index ca2f6f33d..1820c1a14 100644 --- a/packages/games/emulators/yabasanshiroSA/package.mk +++ b/packages/games/emulators/yabasanshiroSA/package.mk @@ -1,17 +1,28 @@ PKG_NAME="yabasanshiroSA" -PKG_VERSION="c7618d2ecbf77b1e8188fa8af4fa1cfb34833a72" -PKG_ARCH="arm aarch64" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/devmiyax/yabause" +PKG_ARCH="arm aarch64" PKG_URL="${PKG_SITE}.git" PKG_DEPENDS_TARGET="toolchain SDL2 boost openal-soft zlib" PKG_LONGDESC="Yabause is a Sega Saturn emulator and took over as Yaba Sanshiro" PKG_TOOLCHAIN="cmake-make" GET_HANDLER_SUPPORT="git" -PKG_GIT_CLONE_BRANCH="pi4-1-9-0" PKG_BUILD_FLAGS="+speed" PKG_PATCH_DIRS+="${DEVICE}" +case ${ARCH} in + aarch64|arm) + PKG_VERSION="c7618d2ecbf77b1e8188fa8af4fa1cfb34833a72" + PKG_GIT_CLONE_BRANCH="pi4-1-9-0" + ;; + *) + PKG_VERSION="82cb291" + PKG_GIT_CLONE_BRANCH="master" + ;; +esac + +PKG_CMAKE_OPTS_TARGET="${PKG_BUILD}/yabause " + if [ ! "${OPENGL}" = "no" ]; then PKG_DEPENDS_TARGET+=" ${OPENGL} glu libglvnd" fi @@ -20,6 +31,11 @@ if [ "${OPENGLES_SUPPORT}" = yes ]; then PKG_DEPENDS_TARGET+=" ${OPENGLES}" fi +if [ "${VULKAN_SUPPORT}" = "yes" ] +then + PKG_DEPENDS_TARGET+=" vulkan-loader vulkan-headers" +fi + post_unpack() { # use host versions sed -i "s|COMMAND m68kmake|COMMAND ${PKG_BUILD}/m68kmake_host|" ${PKG_BUILD}/yabause/src/musashi/CMakeLists.txt @@ -33,19 +49,42 @@ pre_make_target() { } pre_configure_target() { - PKG_CMAKE_OPTS_TARGET="${PKG_BUILD}/yabause \ - -DYAB_PORTS=retro_arena \ - -DYAB_WANT_DYNAREC_DEVMIYAX=ON \ - -DYAB_WANT_ARM7=ON \ - -DCMAKE_TOOLCHAIN_FILE=${PKG_BUILD}/yabause/src/retro_arena/n2.cmake \ - -DYAB_WANT_VULKAN=OFF \ - -DOPENGL_INCLUDE_DIR=${SYSROOT_PREFIX}/usr/include \ - -DOPENGL_opengl_LIBRARY=${SYSROOT_PREFIX}/usr/lib \ - -DOPENGL_glx_LIBRARY=${SYSROOT_PREFIX}/usr/lib \ - -DLIBPNG_LIB_DIR=${SYSROOT_PREFIX}/usr/lib \ - -DUSE_EGL=ON \ - -Dpng_STATIC_LIBRARIES=${SYSROOT_PREFIX}/usr/lib/libpng16.so \ - -DCMAKE_BUILD_TYPE=Release" + + PKG_CMAKE_OPTS_TARGET="${PKG_BUILD}/yabause " + + if [ ! "${OPENGL}" = "no" ]; then + PKG_CMAKE_OPTS_TARGET+=" -DUSE_EGL=ON" + fi + + if [ "${OPENGLES_SUPPORT}" = yes ]; then + PKG_CMAKE_OPTS_TARGET+=" -DUSE_EGL=ON" + fi + + #if [ "${VULKAN_SUPPORT}" = "yes" ] + #then + # PKG_CMAKE_OPTS_TARGET+=" -DYAB_WANT_VULKAN=ON" + #else + # PKG_CMAKE_OPTS_TARGET+=" -DYAB_WANT_VULKAN=OFF" + #fi + + case ${ARCH} in + aarch64) + PKG_CMAKE_OPTS_TARGET+=" -DYAB_WANT_ARM7=ON \ + -DYAB_WANT_DYNAREC_DEVMIYAX=ON + -DCMAKE_TOOLCHAIN_FILE=${PKG_BUILD}/yabause/src/retro_arena/n2.cmake \ + -DYAB_PORTS=retro_arena" + ;; + esac + +PKG_CMAKE_OPTS_TARGET+=" -DCMAKE_SYSTEM_PROCESSOR=x86_64" + + + PKG_CMAKE_OPTS_TARGET+=" -DOPENGL_INCLUDE_DIR=${SYSROOT_PREFIX}/usr/include \ + -DOPENGL_opengl_LIBRARY=${SYSROOT_PREFIX}/usr/lib \ + -DOPENGL_glx_LIBRARY=${SYSROOT_PREFIX}/usr/lib \ + -DLIBPNG_LIB_DIR=${SYSROOT_PREFIX}/usr/lib \ + -Dpng_STATIC_LIBRARIES=${SYSROOT_PREFIX}/usr/lib/libpng16.so \ + -DCMAKE_BUILD_TYPE=Release" } diff --git a/packages/games/emulators/yabasanshiroSA/patches/01-yabasanshiroSA-add-missing-include.patch b/packages/games/emulators/yabasanshiroSA/patches/aarch64/01-yabasanshiroSA-add-missing-include.patch similarity index 100% rename from packages/games/emulators/yabasanshiroSA/patches/01-yabasanshiroSA-add-missing-include.patch rename to packages/games/emulators/yabasanshiroSA/patches/aarch64/01-yabasanshiroSA-add-missing-include.patch diff --git a/packages/games/emulators/yabasanshiroSA/patches/02-yabasanshiroSA-use-system-libpng.patch b/packages/games/emulators/yabasanshiroSA/patches/aarch64/02-yabasanshiroSA-use-system-libpng.patch similarity index 100% rename from packages/games/emulators/yabasanshiroSA/patches/02-yabasanshiroSA-use-system-libpng.patch rename to packages/games/emulators/yabasanshiroSA/patches/aarch64/02-yabasanshiroSA-use-system-libpng.patch diff --git a/packages/games/emulators/yabasanshiroSA/patches/03-yabasanshiroSA-removegl3ext.patch b/packages/games/emulators/yabasanshiroSA/patches/aarch64/03-yabasanshiroSA-removegl3ext.patch similarity index 100% rename from packages/games/emulators/yabasanshiroSA/patches/03-yabasanshiroSA-removegl3ext.patch rename to packages/games/emulators/yabasanshiroSA/patches/aarch64/03-yabasanshiroSA-removegl3ext.patch diff --git a/packages/games/emulators/yabasanshiroSA/patches/04-yabasanshiroSA-use-paths.patch b/packages/games/emulators/yabasanshiroSA/patches/aarch64/04-yabasanshiroSA-use-paths.patch similarity index 100% rename from packages/games/emulators/yabasanshiroSA/patches/04-yabasanshiroSA-use-paths.patch rename to packages/games/emulators/yabasanshiroSA/patches/aarch64/04-yabasanshiroSA-use-paths.patch diff --git a/packages/games/emulators/yabasanshiroSA/patches/05-yabasanshiroSA-low-res-mode.patch b/packages/games/emulators/yabasanshiroSA/patches/aarch64/05-yabasanshiroSA-low-res-mode.patch similarity index 100% rename from packages/games/emulators/yabasanshiroSA/patches/05-yabasanshiroSA-low-res-mode.patch rename to packages/games/emulators/yabasanshiroSA/patches/aarch64/05-yabasanshiroSA-low-res-mode.patch diff --git a/packages/games/emulators/yabasanshiroSA/patches/06-yabasanshiroSA-sh2-cache-perf.patch b/packages/games/emulators/yabasanshiroSA/patches/aarch64/06-yabasanshiroSA-sh2-cache-perf.patch similarity index 100% rename from packages/games/emulators/yabasanshiroSA/patches/06-yabasanshiroSA-sh2-cache-perf.patch rename to packages/games/emulators/yabasanshiroSA/patches/aarch64/06-yabasanshiroSA-sh2-cache-perf.patch diff --git a/packages/games/libretro/TIC-80/package.mk b/packages/games/libretro/TIC-80/package.mk index 2832ad61b..3202b3057 100644 --- a/packages/games/libretro/TIC-80/package.mk +++ b/packages/games/libretro/TIC-80/package.mk @@ -20,7 +20,7 @@ ################################################################################ PKG_NAME="TIC-80" -PKG_VERSION="047185082bf8eac62858590afc562490d5f34199" +PKG_VERSION="e58c583ea7b000446971a311d5469d0b7d90531b" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPLv3" diff --git a/packages/games/libretro/beetle-pce-fast/package.mk b/packages/games/libretro/beetle-pce-fast/package.mk index 31102bc57..85fb3386b 100644 --- a/packages/games/libretro/beetle-pce-fast/package.mk +++ b/packages/games/libretro/beetle-pce-fast/package.mk @@ -20,8 +20,8 @@ ################################################################################ PKG_NAME="beetle-pce-fast" -PKG_VERSION="f2115bd53a87242064fbd722dfeacbc85c80f9ef" -PKG_SHA256="710d8814c87631f45fd29944e18b6d1fc0b5a49664e42d24a023a12d8bc0171d" +PKG_VERSION="cc248db4d2f47d0f255fbc1a3c651df4beb3d835" +PKG_SHA256="35ec999649e4211f97e95390e0329292bd31019984717b9a44f9acc737e96d96" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPLv2" diff --git a/packages/games/libretro/beetle-vb/package.mk b/packages/games/libretro/beetle-vb/package.mk index f374b03c7..1492d21e9 100644 --- a/packages/games/libretro/beetle-vb/package.mk +++ b/packages/games/libretro/beetle-vb/package.mk @@ -20,8 +20,8 @@ ################################################################################ PKG_NAME="beetle-vb" -PKG_VERSION="0b9ea3882e187bc1fe0daf3d258fde660798ed7e" -PKG_SHA256="a9ee7684687f622bfdaba4b92b8da213ef3add92ebaa4583c548544ee01778c6" +PKG_VERSION="162918f06d9a705330b2ba128e0d3b65fd1a1bcc" +PKG_SHA256="9763153d0e5d60b7356f115bc9fee60b60597e44c040d4aa89088e026ca019c8" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPLv2" diff --git a/packages/games/libretro/common-shaders/package.mk b/packages/games/libretro/common-shaders/package.mk index 34f352e69..75eba25e9 100644 --- a/packages/games/libretro/common-shaders/package.mk +++ b/packages/games/libretro/common-shaders/package.mk @@ -27,7 +27,7 @@ PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="https://github.com/libretro/common-shaders" PKG_URL="${PKG_SITE}.git" -PKG_DEPENDS_TARGET="toolchain glsl-shaders" +PKG_DEPENDS_TARGET="toolchain glsl-shaders slang-shaders" PKG_PRIORITY="optional" PKG_SECTION="libretro" PKG_SHORTDESC="Libretro common shaders" diff --git a/packages/games/libretro/core-info/package.mk b/packages/games/libretro/core-info/package.mk index c588fb8e4..bbe8c8088 100644 --- a/packages/games/libretro/core-info/package.mk +++ b/packages/games/libretro/core-info/package.mk @@ -20,8 +20,8 @@ ################################################################################ PKG_NAME="core-info" -PKG_VERSION="dee78cffe268c9e01be4a861ef914eb135d3da44" -PKG_SHA256="383918f25eb3472e3bdfc2b5f6374a574a43da3dc96401e1dba4c4b180946d8c" +PKG_VERSION="8f74759a814bdd05c4abf9f3b4e8e6cabb5d3b57" +PKG_SHA256="870647a5ac56f16355b90305c50aaca5ce7b7cb2fc5fcb4f9e91733e956d0e3b" PKG_LICENSE="GPL" PKG_SITE="https://github.com/libretro/libretro-core-info" PKG_URL="https://github.com/libretro/libretro-core-info/archive/${PKG_VERSION}.tar.gz" diff --git a/packages/games/libretro/dolphin/package.mk b/packages/games/libretro/dolphin/package.mk new file mode 100644 index 000000000..376561ea7 --- /dev/null +++ b/packages/games/libretro/dolphin/package.mk @@ -0,0 +1,60 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech) + +PKG_NAME="dolphin" +PKG_VERSION="016a5926aeda89087a073b1e6d245396da4b2256" +PKG_ARCH="any" +PKG_LICENSE="GPLv2" +PKG_DEPENDS_TARGET="toolchain libevdev libdrm ffmpeg zlib libpng lzo libusb" +PKG_SITE="https://github.com/libretro/dolphin" +PKG_URL="$PKG_SITE/archive/$PKG_VERSION.tar.gz" +PKG_DEPENDS_TARGET="toolchain" +PKG_SECTION="libretro" +PKG_SHORTDESC="Dolphin Libretro, a Gamecube & Wii emulator core for Retroarch" +PKG_TOOLCHAIN="cmake" + +if [ ! "${OPENGL}" = "no" ]; then + PKG_DEPENDS_TARGET+=" ${OPENGL} glu libglvnd" + PKG_CONFIGURE_OPTS_TARGET+=" -DENABLE_X11=OFF \ + -DENABLE_EGL=ON" +fi + +if [ "${OPENGLES_SUPPORT}" = yes ]; then + PKG_DEPENDS_TARGET+=" ${OPENGLES}" + PKG_CONFIGURE_OPTS_TARGET+=" -DENABLE_X11=OFF \ + -DENABLE_EGL=ON" +fi + +if [ "${DISPLAYSERVER}" = "wl" ]; then + PKG_DEPENDS_TARGET+=" wayland ${WINDOWMANAGER} xorg-server xrandr libXi" + PKG_CONFIGURE_OPTS_TARGET+=" -DENABLE_X11=ON \ + -DENABLE_EGL=ON" +fi + +if [ "${VULKAN_SUPPORT}" = "yes" ] +then + PKG_DEPENDS_TARGET+=" vulkan-loader vulkan-headers" + PKG_CONFIGURE_OPTS_TARGET+=" -DENABLE_VULKAN=ON" +fi + +pre_configure_target() { + PKG_CMAKE_OPTS_TARGET+=" -DENABLE_EGL=ON \ + -DUSE_SHARED_ENET=OFF \ + -DUSE_UPNP=ON \ + -DENABLE_NOGUI=ON \ + -DENABLE_QT=OFF \ + -DENABLE_LTO=ON \ + -DENABLE_GENERIC=OFF \ + -DENABLE_HEADLESS=ON \ + -DENABLE_ALSA=ALSA \ + -DENABLE_PULSEAUDIO=ON \ + -DENABLE_LLVM=OFF \ + -DENABLE_TESTS=OFF \ + -DUSE_DISCORD_PRESENCE=OFF \ + -DLIBRETRO=ON" + } + +makeinstall_target() { + mkdir -p $INSTALL/usr/lib/libretro + cp $PKG_BUILD/.$TARGET_NAME/dolphin_libretro.so $INSTALL/usr/lib/libretro/ +} diff --git a/packages/games/libretro/dosbox-pure/package.mk b/packages/games/libretro/dosbox-pure/package.mk index 006655da5..cfefe93ed 100644 --- a/packages/games/libretro/dosbox-pure/package.mk +++ b/packages/games/libretro/dosbox-pure/package.mk @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="dosbox-pure" -PKG_VERSION="6f2ded6" +PKG_VERSION="b9cd0790c042956760c2f526721cd1aa91bfd7d5" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPLv2" diff --git a/packages/games/libretro/easyrpg/easyrpg.sh b/packages/games/libretro/easyrpg/easyrpg.sh index edf7aad5b..22e08951a 100644 --- a/packages/games/libretro/easyrpg/easyrpg.sh +++ b/packages/games/libretro/easyrpg/easyrpg.sh @@ -25,7 +25,7 @@ install_bios() { SHASUM=$(echo $SHASUMS | tr '#' '\n' | awk '/'${BIOS}'/ {print $1}') if [ ! "${SHASUM}" == "${BINSUM}" ] then - echo "Checksum mismatch, please update the package." >/dev/console + echo "Checksum mismatch, please update the package." exit 1 fi if [[ "${BIOS}" =~ .zip$ ]] @@ -34,7 +34,7 @@ install_bios() { rm "${BIOS}" BIOS="$(echo ${BIOS} | sed "s#.zip#.exe#")" fi - /usr/bin/7z x "${BIOS}" >/dev/console + /usr/bin/7z x "${BIOS}" rm "${BIOS}" cd ${SOURCEPATH} } diff --git a/packages/games/libretro/fbneo/package.mk b/packages/games/libretro/fbneo/package.mk index 8e41b6cc3..81d6b330d 100644 --- a/packages/games/libretro/fbneo/package.mk +++ b/packages/games/libretro/fbneo/package.mk @@ -3,8 +3,8 @@ # Maintenance 2020 351ELEC team (https://github.com/fewtarius/351ELEC) PKG_NAME="fbneo" -PKG_VERSION="fabeca6640f84520e68399d8b4329dda8be839cb" -PKG_SHA256="c065247d484575389aed63525f62aa77f3c3a1ba55fb61378854986a22734c5a" +PKG_VERSION="23b56b5e3e11132e3a3168345c04314c623e0d3a" +PKG_SHA256="fc3b6f2f9be0bc19d6e65b9ce5bec7ead019f8fb3d45a24e788311a4b2544db1" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="Non-commercial" diff --git a/packages/games/libretro/fceumm/package.mk b/packages/games/libretro/fceumm/package.mk index e781651f7..651fbaefa 100644 --- a/packages/games/libretro/fceumm/package.mk +++ b/packages/games/libretro/fceumm/package.mk @@ -20,8 +20,8 @@ ################################################################################ PKG_NAME="fceumm" -PKG_VERSION="c9ca9204b5f4d02f3f67e14d077714e41632520a" -PKG_SHA256="e570c39bf7072ea4d59154583893610f51f54444725153d2caf80556a1809e48" +PKG_VERSION="f221a5912715c0083348fd4265d05c45fe825f63" +PKG_SHA256="608c9bd5b84d8d9e2bce30dcadf513ce83ea210df9ceea5f22afb8cc0e798a37" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPLv2" diff --git a/packages/games/libretro/flycast/package.mk b/packages/games/libretro/flycast/package.mk index 82df66acf..315c8fd57 100644 --- a/packages/games/libretro/flycast/package.mk +++ b/packages/games/libretro/flycast/package.mk @@ -3,7 +3,7 @@ # Copyright (C) 2022-present Fewtarius PKG_NAME="flycast" -PKG_VERSION="7457db8bba3277dcc9b4ec0c3556847f5082a455" +PKG_VERSION="aa97a6d64fb47d3ce0febaa575b26d975dd916e4" PKG_SITE="https://github.com/flyinghead/flycast" PKG_URL="${PKG_SITE}.git" PKG_DEPENDS_TARGET="toolchain libzip" @@ -20,7 +20,7 @@ if [ "${OPENGLES_SUPPORT}" = yes ]; then -DUSE_GLES=ON" fi -if [ "${ARCH}" = "x86_64" ] +if [ "${VULKAN_SUPPORT}" = "yes" ] then PKG_DEPENDS_TARGET+=" vulkan-loader vulkan-headers" PKG_CMAKE_OPTS_TARGET+=" -DUSE_VULKAN=ON" @@ -36,11 +36,16 @@ pre_configure_target() { makeinstall_target() { mkdir -p ${INSTALL}/usr/lib/libretro - if [ "${TARGET_ARCH}" = "aarch64" ] - then - cp -vP ${ROOT}/build.${DISTRO}-${DEVICE}.arm/flycast-*/.install_pkg/usr/lib/libretro/flycast32_libretro.so ${INSTALL}/usr/lib/libretro - cp flycast_libretro.so ${INSTALL}/usr/lib/libretro/flycast_libretro.so - else - cp flycast_libretro.so ${INSTALL}/usr/lib/libretro/flycast32_libretro.so - fi + case ${TARGET_ARCH} in + aarch64) + cp -vP ${ROOT}/build.${DISTRO}-${DEVICE}.arm/flycast-*/.install_pkg/usr/lib/libretro/flycast32_libretro.so ${INSTALL}/usr/lib/libretro + cp flycast_libretro.so ${INSTALL}/usr/lib/libretro/flycast_libretro.so + ;; + arm) + cp flycast_libretro.so ${INSTALL}/usr/lib/libretro/flycast32_libretro.so + ;; + *) + cp flycast_libretro.so ${INSTALL}/usr/lib/libretro/flycast_libretro.so + ;; + esac } diff --git a/packages/games/libretro/flycast_libretro/package.mk b/packages/games/libretro/flycast_libretro/package.mk index 3dd6c2064..9477d006d 100644 --- a/packages/games/libretro/flycast_libretro/package.mk +++ b/packages/games/libretro/flycast_libretro/package.mk @@ -48,16 +48,17 @@ pre_configure_target() { pre_make_target() { export BUILD_SYSROOT=${SYSROOT_PREFIX} - - if [[ "${DEVICE}" =~ RG351 ]] - then - PKG_MAKE_OPTS_TARGET+=" platform=RG351x" - elif [[ "${DEVICE}" =~ RG503 ]] || [[ "${DEVICE}" =~ RG353P ]] - then - PKG_MAKE_OPTS_TARGET+=" platform=RK3566" - else - PKG_MAKE_OPTS_TARGET+=" platform=${DEVICE}" - fi + case ${DEVICE} in + RG351P|RG351V|RG351MP) + PKG_MAKE_OPTS_TARGET+=" platform=RG351x" + ;; + RG353P|RG503) + PKG_MAKE_OPTS_TARGET+=" platform=RK3566" + ;; + RG552) + PKG_MAKE_OPTS_TARGET+=" platform=${DEVICE}" + ;; + esac } makeinstall_target() { diff --git a/packages/games/libretro/flycast_libretro/patches/RG552/01-platform.patch b/packages/games/libretro/flycast_libretro/patches/RG552/01-platform.patch index c73a29ae3..5d7bdf57f 100644 --- a/packages/games/libretro/flycast_libretro/patches/RG552/01-platform.patch +++ b/packages/games/libretro/flycast_libretro/patches/RG552/01-platform.patch @@ -16,7 +16,7 @@ diff -rupN flycast.orig/Makefile flycast/Makefile + SINGLE_PREC_FLAGS = 1 + FORCE_GLES = 1 + CPUFLAGS += -DTARGET_LINUX_ARMv8 -frename-registers -+ CFLAGS += -march=armv8-a+crc -mcpu=cortex-a72 -mtune=cortex-a72 $(CPUFLAGS) ++ CFLAGS += -mno-outline-atomics -march=armv8-a+crc -mcpu=cortex-a72 -mtune=cortex-a72 $(CPUFLAGS) + CXXFLAGS += -march=armv8-a+crc -mcpu=cortex-a72 -mtune=cortex-a72 $(CPUFLAGS) + ASFLAGS += -march=armv8-a+crc -mcpu=cortex-a72 -c + WITH_DYNAREC=arm64 diff --git a/packages/games/libretro/freej2me/package.mk b/packages/games/libretro/freej2me/package.mk index 3969b3d79..951b6c7ac 100644 --- a/packages/games/libretro/freej2me/package.mk +++ b/packages/games/libretro/freej2me/package.mk @@ -3,8 +3,8 @@ # Copyright (C) 2022-present Fewtarius PKG_NAME="freej2me" -PKG_VERSION="c960ac26cf97123b772fd2b392bde044df5753fa" -PKG_SHA256="6ca3125fd1ade0b8053f965ef358765e1abdfe74b4b81332849a7629dd5346e9" +PKG_VERSION="5af44b9249d352c2c2f05cfc214fccc385c92596" +PKG_SHA256="f09f4c570b3574e8f1904d4cada1b2d3e43b3c8596eceaaff595b7a5ffac94a3" PKG_REV="1" PKG_ARCH="any" PKG_SITE="https://github.com/hex007/freej2me" diff --git a/packages/games/libretro/gambatte/package.mk b/packages/games/libretro/gambatte/package.mk index 02bb7eb4a..8e613c5be 100644 --- a/packages/games/libretro/gambatte/package.mk +++ b/packages/games/libretro/gambatte/package.mk @@ -20,8 +20,8 @@ ################################################################################ PKG_NAME="gambatte" -PKG_VERSION="26e89f11e40f4ecafc4a8467fdedd196530170c1" -PKG_SHA256="8aac1723f3c1aaafcfd8af644bd1af076bd21322e2042eca21dba4fad04e445b" +PKG_VERSION="7e02df60048db0898131ea365f387a026e4e648d" +PKG_SHA256="b8bb21988330b7384ce93c821d08c5b963ebc767ac6885f9aba3e037c7471b97" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPLv2" diff --git a/packages/games/libretro/genesis-plus-gx/package.mk b/packages/games/libretro/genesis-plus-gx/package.mk index 11141c394..21f4a2204 100644 --- a/packages/games/libretro/genesis-plus-gx/package.mk +++ b/packages/games/libretro/genesis-plus-gx/package.mk @@ -20,8 +20,8 @@ ################################################################################ PKG_NAME="genesis-plus-gx" -PKG_VERSION="9f407e830e41f4cbddf55af275008b64b98d6b68" -PKG_SHA256="8fc49b6efd2248c6cf57d2553e5b9ae2884daf9888b0957d08854f6e5f33017c" +PKG_VERSION="aea7b9d5475ec02427fbb00a9093cae74b87ff8a" +PKG_SHA256="5dd318be657e2568e49afe19cd8073fbd1bcf8e3097ead2df15e517bc565bd0f" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="Non-commercial" diff --git a/packages/games/libretro/glsl-shaders/package.mk b/packages/games/libretro/glsl-shaders/package.mk index 6c77a5e02..8118c5afa 100644 --- a/packages/games/libretro/glsl-shaders/package.mk +++ b/packages/games/libretro/glsl-shaders/package.mk @@ -20,7 +20,7 @@ ################################################################################ PKG_NAME="glsl-shaders" -PKG_VERSION="b76ab258cd5e149d77e30e0d32f9d992d068b989" +PKG_VERSION="2aec58e7e75083b689d38e3c4eaf043589ffd36f" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/games/libretro/gpsp/package.mk b/packages/games/libretro/gpsp/package.mk index 135372388..bbd31373c 100644 --- a/packages/games/libretro/gpsp/package.mk +++ b/packages/games/libretro/gpsp/package.mk @@ -24,7 +24,7 @@ PKG_NAME="gpsp" PKG_VERSION="81649a2c8075201bb823cce8fdf16a31c92a3b6c" PKG_SHA256="c1131811760dd78cbb8621b5845b4402a0801690facc77d4e8ea1292384bcd1b" PKG_REV="1" -PKG_ARCH="any" +PKG_ARCH="arm aarch64" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/libretro/gpsp" PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" diff --git a/packages/games/libretro/handy/package.mk b/packages/games/libretro/handy/package.mk index 9df3c5a83..ca9fc3d22 100644 --- a/packages/games/libretro/handy/package.mk +++ b/packages/games/libretro/handy/package.mk @@ -35,11 +35,15 @@ PKG_IS_ADDON="no" PKG_TOOLCHAIN="make" PKG_AUTORECONF="no" -if [ ${ARCH} = "aarch64" ]; then - PKG_MAKE_OPTS_TARGET=" platform=emuelec" -else - PKG_MAKE_OPTS_TARGET=" platform=classic_armv8_a35" -fi +case ${ARCH} in + aarch64) + PKG_MAKE_OPTS_TARGET=" platform=emuelec" + ;; + arm) + PKG_MAKE_OPTS_TARGET=" platform=classic_armv8_a35" + ;; +esac + makeinstall_target() { mkdir -p $INSTALL/usr/lib/libretro diff --git a/packages/games/libretro/libretro-database/package.mk b/packages/games/libretro/libretro-database/package.mk index 1f9661ea4..0cc9bead6 100644 --- a/packages/games/libretro/libretro-database/package.mk +++ b/packages/games/libretro/libretro-database/package.mk @@ -20,8 +20,8 @@ ################################################################################ PKG_NAME="libretro-database" -PKG_VERSION="4a158a091cc8db9cf0e664b84bb0c9e86e13668f" -PKG_SHA256="d51ed92a358c2d03e7979447f3248cf421af587b4d49b119ea8593c5c842ae63" +PKG_VERSION="afe02bc3478307681215881cdfc40b0c04080eae" +PKG_SHA256="54ac3440ce9c53ce43821b6b5a0d624abde56080204b397b86193e9bd2727d6c" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/games/libretro/mame/package.mk b/packages/games/libretro/mame/package.mk index b323f588b..c0e98ef07 100644 --- a/packages/games/libretro/mame/package.mk +++ b/packages/games/libretro/mame/package.mk @@ -2,8 +2,8 @@ # Copyright (C) 2019 Trond Haugland (trondah@gmail.com) PKG_NAME="mame" -PKG_VERSION="08be808a3b1957d07c5d5e43d26e60818feb3738" -PKG_SHA256="4193d38bec5110d42ce3720b0d3d5be381382c425f18d377ddbb9e3d47fbff5d" +PKG_VERSION="5526dd0fbf6d312a12261643915b9f489ef7510b" +PKG_SHA256="3f75a74016e1fa2007d9f1792db0d1d83f2e3ebbcc71673d3f8be76b09bc1241" PKG_ARCH="any" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/libretro/mame" diff --git a/packages/games/libretro/mame2003-plus/package.mk b/packages/games/libretro/mame2003-plus/package.mk index a50c047e2..9a762a326 100644 --- a/packages/games/libretro/mame2003-plus/package.mk +++ b/packages/games/libretro/mame2003-plus/package.mk @@ -20,8 +20,8 @@ ################################################################################ PKG_NAME="mame2003-plus" -PKG_VERSION="0e52288cb2a75b8c4cbd96d58c0f36b043f70156" -PKG_SHA256="9976960465e95a63df0ff6cf24cdd29da153e543abbb07caaf9d227185d3986a" +PKG_VERSION="df23da8827aa6e85ff69fa17cf4a1621ed85e7a5" +PKG_SHA256="a9e55876ae713fa01dda452aabda184aa7cbf2b9ab5d55d23d86df598706d571" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="MAME" diff --git a/packages/games/libretro/mame2015/package.mk b/packages/games/libretro/mame2015/package.mk index 65614ebcc..88333df21 100644 --- a/packages/games/libretro/mame2015/package.mk +++ b/packages/games/libretro/mame2015/package.mk @@ -38,13 +38,21 @@ pre_make_target() { } pre_configure_target() { - PKG_MAKE_OPTS_TARGET=" platform=armv8-neon-hardfloat-cortex-a53" - sed -i 's/CCOMFLAGS += -mstructure-size-boundary=32//g' Makefile - sed -i 's/LDFLAGS += -Wl,--fix-cortex-a8 -Wl,--no-as-needed//g' Makefile + case ${ARCH} in + arm|aarch64) + PKG_MAKE_OPTS_TARGET=" platform=armv8-neon-hardfloat-cortex-a53" + sed -i 's/LDFLAGS += -Wl,--fix-cortex-a8 -Wl,--no-as-needed//g' Makefile + sed -i 's/CCOMFLAGS += -mstructure-size-boundary=32//g' Makefile + ;; + esac } makeinstall_target() { - aarch64-linux-gnu-strip -s *.so + case ${ARCH} in + arm|aarch64) + aarch64-linux-gnu-strip -s *.so + ;; + esac mkdir -p $INSTALL/usr/lib/libretro cp mame*_libretro.so $INSTALL/usr/lib/libretro/ } diff --git a/packages/games/libretro/melonds/package.mk b/packages/games/libretro/melonds/package.mk index cf588ec27..33636bbed 100644 --- a/packages/games/libretro/melonds/package.mk +++ b/packages/games/libretro/melonds/package.mk @@ -4,7 +4,6 @@ PKG_NAME="melonds" PKG_VERSION="490a66a5834e23304addc9b16a2f95da6db9f061" PKG_REV="1" -PKG_ARCH="any" PKG_LICENSE="GPLv3" PKG_SITE="https://git.libretro.com/libretro/melonDS" PKG_URL="$PKG_SITE.git" @@ -25,15 +24,19 @@ fi pre_make_target() { cd ${PKG_BUILD} - rm CMakeLists.txt - - if [[ "${DEVICE}" =~ RG351 ]] + if [ -e "CMakeLists.txt" ] then - PKG_MAKE_OPTS_TARGET=" platform=odroidgoa" - elif [[ "${DEVICE}" =~ RG552 ]] - then - PKG_MAKE_OPTS_TARGET=" platform=RK3399" + rm CMakeLists.txt fi + + case ${DEVICE} in + RG351P|RG351V|RG351MP) + PKG_MAKE_OPTS_TARGET=" platform=odroidgoa" + ;; + RG552) + PKG_MAKE_OPTS_TARGET=" platform=RK3399" + ;; + esac } makeinstall_target() { diff --git a/packages/games/libretro/mesen/package.mk b/packages/games/libretro/mesen/package.mk index c6d449c89..292bdac8b 100644 --- a/packages/games/libretro/mesen/package.mk +++ b/packages/games/libretro/mesen/package.mk @@ -2,8 +2,8 @@ # Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech) PKG_NAME="mesen" -PKG_VERSION="4026a25a993d5536d4aad135c24738eaf9f0f7eb" -PKG_SHA256="52d9ea2ceb3d9f8a2c12509fae145877ec1736b72895fda9b01862923c30cb67" +PKG_VERSION="9b412c1533a6d7eec7b2904775cbd26c21f02119" +PKG_SHA256="9a321c90c82c15158511b3df7a1b6ee8269b42083afa3de33f9947cceb925e7c" PKG_ARCH="any" PKG_LICENSE="GPLv3" PKG_SITE="https://github.com/libretro/Mesen" diff --git a/packages/games/libretro/mgba/package.mk b/packages/games/libretro/mgba/package.mk index 41475b663..d689804eb 100644 --- a/packages/games/libretro/mgba/package.mk +++ b/packages/games/libretro/mgba/package.mk @@ -40,11 +40,17 @@ PKG_USE_CMAKE="no" make_target() { cd $PKG_BUILD - if [[ "$ARCH" =~ "arm" ]]; then - make -f Makefile.libretro platform=unix-armv HAVE_NEON=1 - else - make -f Makefile.libretro platform=goadvance - fi + case ${ARCH} in + arm) + make -f Makefile.libretro platform=unix-armv HAVE_NEON=1 + ;; + aarch64) + make -f Makefile.libretro platform=goadvance + ;; + *) + make -f Makefile.libretro + ;; + esac } makeinstall_target() { diff --git a/packages/games/libretro/mupen64plus-nx/package.mk b/packages/games/libretro/mupen64plus-nx/package.mk index aeb2c71d0..9e809cff0 100755 --- a/packages/games/libretro/mupen64plus-nx/package.mk +++ b/packages/games/libretro/mupen64plus-nx/package.mk @@ -2,9 +2,8 @@ # Copyright (C) 2020-present Fewtarius PKG_NAME="mupen64plus-nx" -PKG_VERSION="4684cfa56ae7752be284eaaa165c1dc34ec63eb7" -PKG_SHA256="01d63e3f3ecebcb207a5176117f5ad8623c5b3be8c99161695e843e9dea7ee42" -PKG_ARCH="any" +PKG_VERSION="c10546e333d57eb2e5a6ccef1e84cb6f9274c526" +PKG_SHA256="df117844881887a07069e54db28af34668d515fa1b707e00837455ffc2f7bd37" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/libretro/mupen64plus-libretro-nx" PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" @@ -27,16 +26,17 @@ fi pre_configure_target() { sed -e "s|^GIT_VERSION ?.*$|GIT_VERSION := \" ${PKG_VERSION:0:7}\"|" -i Makefile - if [[ "${DEVICE}" =~ RG351 ]] - then - PKG_MAKE_OPTS_TARGET=" platform=RK3326" - elif [[ "${DEVICE}" =~ RG552 ]] - then - PKG_MAKE_OPTS_TARGET=" platform=RK3399" - elif [[ "${DEVICE}" =~ RG503 ]] || [[ "${DEVICE}" =~ RG353P ]] - then - PKG_MAKE_OPTS_TARGET=" platform=RK3566" - fi + case ${DEVICE} in + RG351P|RG351V|RG351MP) + PKG_MAKE_OPTS_TARGET=" platform=RK3326" + ;; + RG552) + PKG_MAKE_OPTS_TARGET=" platform=RK3399" + ;; + RG503|RG353P) + PKG_MAKE_OPTS_TARGET=" platform=RK3566" + ;; + esac } makeinstall_target() { diff --git a/packages/games/libretro/mupen64plus-nx/patches/RG503/001-rg351-optimizations.patch b/packages/games/libretro/mupen64plus-nx/patches/RG503/001-rg351-optimizations.patch index edf13dc20..476eff16e 100644 --- a/packages/games/libretro/mupen64plus-nx/patches/RG503/001-rg351-optimizations.patch +++ b/packages/games/libretro/mupen64plus-nx/patches/RG503/001-rg351-optimizations.patch @@ -1,7 +1,7 @@ diff -rupN mupen64plus.orig/Makefile mupen64plus/Makefile ---- mupen64plus.orig/Makefile 2022-02-07 10:11:16.000000000 -0500 -+++ mupen64plus/Makefile 2022-03-26 18:03:43.323763489 -0400 -@@ -304,7 +304,7 @@ else ifneq (,$(findstring AMLG,$(platfor +--- mupen64plus.orig/Makefile 2022-09-23 07:01:22.758058025 -0400 ++++ mupen64plus/Makefile 2022-09-23 07:05:08.886138368 -0400 +@@ -319,7 +319,7 @@ else ifneq (,$(findstring AMLG,$(platfor HAVE_NEON = 1 WITH_DYNAREC=arm @@ -10,7 +10,7 @@ diff -rupN mupen64plus.orig/Makefile mupen64plus/Makefile ASFLAGS = -f elf -d ELF_TYPE # Amlogic S905/S912 -@@ -325,12 +325,10 @@ else ifneq (,$(findstring RK,$(platform) +@@ -362,13 +362,10 @@ else ifneq (,$(findstring RK,$(platform) LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined -ldl ifneq (,$(findstring RK33,$(platform))) @@ -20,22 +20,670 @@ diff -rupN mupen64plus.orig/Makefile mupen64plus/Makefile - GLES3 = 1 - else ifneq (,$(findstring RK3328,$(platform))) - CPUFLAGS += -mtune=cortex-a53 +- GLES = 1 + CPUFLAGS += -march=armv8-a -mtune=cortex-a72.cortex-a53 + else ifneq (,$(findstring RK3566,$(platform))) + CPUFLAGS += -mtune=cortex-a55 - GLES = 1 endif else ifneq (,$(findstring RK3288,$(platform))) -@@ -342,9 +340,10 @@ else ifneq (,$(findstring RK,$(platform) - COREFLAGS += -DEGL_NO_X11 + CPUFLAGS += -march=armv7ve -mtune=cortex-a17 -mfloat-abi=hard -mfpu=neon-vfpv4 +@@ -380,10 +377,10 @@ else ifneq (,$(findstring RK,$(platform) endif -+ GLES = 1 GL_LIB := -lGLESv2 - HAVE_NEON = 1 - WITH_DYNAREC=arm -+ HAVE_NEON = 0 +- COREFLAGS += -DUSE_GENERIC_GLESV2 -DOS_LINUX +- ASFLAGS = -f elf -d ELF_TYPE + WITH_DYNAREC := aarch64 - COREFLAGS += -DUSE_GENERIC_GLESV2 -DOS_LINUX - ASFLAGS = -f elf -d ELF_TYPE ++ GLES3 = 1 ++ COREFLAGS += -DOS_LINUX ++ ASFLAGS = -f elf64 -d ELF_TYPE + # OS X + else ifneq (,$(findstring osx,$(platform))) +diff -rupN mupen64plus.orig/Makefile.orig mupen64plus/Makefile.orig +--- mupen64plus.orig/Makefile.orig 1969-12-31 19:00:00.000000000 -0500 ++++ mupen64plus/Makefile.orig 2022-09-23 07:01:25.158078690 -0400 +@@ -0,0 +1,641 @@ ++DEBUG = 0 ++FORCE_GLES ?= 0 ++FORCE_GLES3 ?= 0 ++LLE ?= 0 ++HAVE_PARALLEL_RSP ?= 0 ++HAVE_PARALLEL_RDP ?= 0 ++ ++SYSTEM_MINIZIP ?= 0 ++SYSTEM_LIBPNG ?= 0 ++SYSTEM_XXHASH ?= 0 ++SYSTEM_ZLIB ?= 0 ++ ++HAVE_LTCG ?= 0 ++DYNAFLAGS := ++INCFLAGS := ++COREFLAGS := ++CPUFLAGS := ++GLFLAGS := ++AWK ?= awk ++STRINGS ?= strings ++TR ?= tr ++ ++UNAME=$(shell uname -a) ++ ++# Dirs ++ROOT_DIR := . ++LIBRETRO_DIR := $(ROOT_DIR)/libretro ++DEPSDIR := $(CURDIR)/ ++ ++ifeq ($(platform),) ++ platform = unix ++ ifeq ($(UNAME),) ++ platform = win ++ else ifneq ($(findstring MINGW,$(UNAME)),) ++ platform = win ++ else ifneq ($(findstring Darwin,$(UNAME)),) ++ platform = osx ++ else ifneq ($(findstring win,$(UNAME)),) ++ platform = win ++ endif ++else ifneq (,$(findstring armv,$(platform))) ++ override platform += unix ++endif ++ ++# system platform ++system_platform = unix ++ifeq ($(shell uname -a),) ++ EXE_EXT = .exe ++ system_platform = win ++else ifneq ($(findstring Darwin,$(shell uname -a)),) ++ system_platform = osx ++ arch = intel ++ifeq ($(shell uname -p),powerpc) ++ arch = ppc ++endif ++else ifneq ($(findstring MINGW,$(shell uname -a)),) ++ system_platform = win ++endif ++ ++# Cross compile ? ++ ++ifeq (,$(ARCH)) ++ ARCH = $(shell uname -m) ++endif ++ ++# Target Dynarec ++WITH_DYNAREC ?= $(ARCH) ++ ++PIC = 1 ++# on 32bit Haiku the output of "uname -m" is "BePC" ++ifeq ($(ARCH), $(filter $(ARCH), i386 i686 BePC)) ++ WITH_DYNAREC = x86 ++ PIC = 0 ++else ifeq ($(ARCH), $(filter $(ARCH), arm)) ++ WITH_DYNAREC = arm ++endif ++ ++TARGET_NAME := mupen64plus_next ++CC_AS ?= $(CC) ++NASM ?= nasm ++ ++GIT_VERSION ?= " $(shell git rev-parse --short HEAD || echo unknown)" ++ifneq ($(GIT_VERSION)," unknown") ++ COREFLAGS += -DGIT_VERSION=\"$(GIT_VERSION)\" ++endif ++ ++ifneq ($(CORE_NAME),) ++ COREFLAGS += -DCORE_NAME=\""$(CORE_NAME)"\" ++endif ++ ++# Linux ++ifneq (,$(findstring unix,$(platform))) ++ TARGET := $(TARGET_NAME)_libretro.so ++ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined ++ ++ ifeq ($(FORCE_GLES),1) ++ GLES = 1 ++ GL_LIB := -lGLESv2 ++ else ifeq ($(FORCE_GLES3),1) ++ GLES3 = 1 ++ GL_LIB := -lGLESv2 ++ else ++ GL_LIB := -lGL ++ endif ++ ++ COREFLAGS += -DOS_LINUX ++ ifeq ($(ARCH), x86_64) ++ ASFLAGS = -f elf64 -d ELF_TYPE ++ else ++ ASFLAGS = -f elf -d ELF_TYPE ++ endif ++ ++ ifneq (,$(findstring armv,$(platform))) ++ ARCH = arm ++ WITH_DYNAREC = arm ++ CPUFLAGS += -DARM -marm ++ ifneq (,$(findstring cortexa8,$(platform))) ++ CPUFLAGS += -mcpu=cortex-a8 ++ else ifneq (,$(findstring cortexa9,$(platform))) ++ CPUFLAGS += -mcpu=cortex-a9 ++ else ++ CPUFLAGS += -mcpu=cortex-a7 ++ endif ++ ifneq (,$(findstring neon,$(platform))) ++ CPUFLAGS += -mfpu=neon ++ HAVE_NEON = 1 ++ endif ++ ifneq (,$(findstring softfloat,$(platform))) ++ CPUFLAGS += -mfloat-abi=softfp ++ else ifneq (,$(findstring hardfloat,$(platform))) ++ CPUFLAGS += -mfloat-abi=hard ++ endif ++ endif ++ ++# Raspberry Pi ++else ifneq (,$(findstring rpi,$(platform))) ++ TARGET := $(TARGET_NAME)_libretro.so ++ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined -ldl ++ ifeq ($(FORCE_GLES3),1) ++ GLES3 = 1 ++ else ++ GLES = 1 ++ endif ++ ifneq (,$(findstring mesa,$(platform))) ++ MESA = 1 ++ endif ++ ifneq (,$(findstring rpi4,$(platform))) ++ GLES3 = 1 ++ MESA = 1 ++ endif ++ ifeq ($(MESA), 1) ++ GL_LIB := -lGLESv2 ++ else ++ LLE = 0 ++ COREFLAGS += -DVC -DGL_USE_DLSYM ++ GL_LIB := -L/opt/vc/lib -lbrcmGLESv2 ++ EGL_LIB := -lbrcmEGL ++ INCFLAGS += -I/opt/vc/include -I/opt/vc/include/interface/vcos -I/opt/vc/include/interface/vcos/pthreads ++ endif ++ HAVE_NEON = 1 ++ ifneq (,$(findstring rpi2,$(platform))) ++ CPUFLAGS += -mcpu=cortex-a7 ++ ARM_CPUFLAGS = -mfpu=neon-vfpv4 ++ else ifneq (,$(findstring rpi3,$(platform))) ++ ifneq (,$(findstring rpi3_64,$(platform))) ++ CPUFLAGS += -mcpu=cortex-a53 -mtune=cortex-a53 ++ else ++ CPUFLAGS += -march=armv8-a+crc -mtune=cortex-a53 ++ ARM_CPUFLAGS = -mfpu=neon-fp-armv8 ++ endif ++ else ifneq (,$(findstring rpi4,$(platform))) ++ ifneq (,$(findstring rpi4_64,$(platform))) ++ CPUFLAGS += -mcpu=cortex-a72 -mtune=cortex-a72 ++ else ++ CPUFLAGS += -march=armv8-a+crc -mtune=cortex-a72 ++ ARM_CPUFLAGS = -mfpu=neon-fp-armv8 ++ endif ++ else ifneq (,$(findstring rpi,$(platform))) ++ CPUFLAGS += -mcpu=arm1176jzf-s ++ ARM_CPUFLAGS = -mfpu=vfp ++ HAVE_NEON = 0 ++ endif ++ ifeq ($(ARCH), aarch64) ++ WITH_DYNAREC=aarch64 ++ HAVE_NEON = 0 ++ else ++ WITH_DYNAREC=arm ++ CPUFLAGS += $(ARM_CPUFLAGS) -mfloat-abi=hard ++ endif ++ COREFLAGS += -DOS_LINUX ++ ASFLAGS = -f elf -d ELF_TYPE ++ ++# Nintendo Switch ++else ifeq ($(platform), libnx) ++ include $(DEVKITPRO)/devkitA64/base_tools ++ PORTLIBS := $(PORTLIBS_PATH)/switch ++ PATH := $(PORTLIBS)/bin:$(PATH) ++ LIBNX ?= $(DEVKITPRO)/libnx ++ STRINGS := $(PREFIX)$(STRINGS) ++ EGL := 1 ++ PIC = 1 ++ TARGET := $(TARGET_NAME)_libretro_$(platform).a ++ CPUOPTS := -g -march=armv8-a+crc -mtune=cortex-a57 -mtp=soft -mcpu=cortex-a57+crc+fp+simd ++ PLATCFLAGS = -O3 -ffast-math -funsafe-math-optimizations -fPIE -I$(PORTLIBS)/include/ -I$(LIBNX)/include/ -ffunction-sections -fdata-sections -ftls-model=local-exec -specs=$(LIBNX)/switch.specs ++ PLATCFLAGS += $(INCLUDE) -D__SWITCH__=1 -DSWITCH -DHAVE_LIBNX -D_GLIBCXX_USE_C99_MATH_TR1 -D_LDBL_EQ_DBL -funroll-loops #-DM64P_NETPLAY ++ CXXFLAGS += -fno-rtti -std=gnu++11 ++ COREFLAGS += -DOS_LINUX -DEGL ++ GLES = 0 ++ WITH_DYNAREC = aarch64 ++ STATIC_LINKING = 1 ++ ++# Jetson Xavier NX ++else ifeq ($(platform), jetson-xavier) ++ TARGET := $(TARGET_NAME)_libretro.so ++ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined ++ GL_LIB := -lGL ++ CPUOPTS := -march=armv8.2-a+crc -mtune=cortex-a75 -mcpu=cortex-a75+crc+fp+simd ++ PLATCFLAGS = -O3 -ffast-math -funsafe-math-optimizations ++ CXXFLAGS += -std=gnu++11 ++ COREFLAGS += -DOS_LINUX ++ WITH_DYNAREC = aarch64 ++ HAVE_PARALLEL_RSP = 1 ++ HAVE_PARALLEL_RDP = 1 ++ HAVE_THR_AL = 1 ++ LLE = 1 ++ COREFLAGS += -ftree-vectorize -ftree-vectorizer-verbose=2 -funsafe-math-optimizations -fno-finite-math-only ++ ++# 64 bit ODROIDs ++else ifneq (,$(findstring odroid64,$(platform))) ++ TARGET := $(TARGET_NAME)_libretro.so ++ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined ++ BOARD ?= $(shell cat /proc/cpuinfo | grep -i odroid | awk '{print $$3}') ++ GLES = 1 ++ GL_LIB := -lGLESv2 ++ WITH_DYNAREC := aarch64 ++ ifneq (,$(findstring C2,$(BOARD))) ++ # ODROID-C2 ++ CPUFLAGS += -mcpu=cortex-a53 ++ else ifneq (,$(findstring C4,$(BOARD))) ++ # ODROID-C4 ++ CPUFLAGS += -mcpu=cortex-a55 ++ GLES3 = 1 ++ else ifneq (,$(findstring N1,$(BOARD))) ++ # ODROID-N1 ++ CPUFLAGS += -mcpu=cortex-a72.cortex-a53 ++ else ifneq (,$(findstring N2,$(BOARD))) ++ # ODROID-N2 ++ CPUFLAGS += -mcpu=cortex-a73.cortex-a53 ++ GLES = 0 ++ GLES3= 1 ++ GL_LIB := -lGLESv3 ++ endif ++ ++ COREFLAGS += -DOS_LINUX ++ ASFLAGS = -f elf -d ELF_TYPE ++ ++# ODROIDs ++else ifneq (,$(findstring odroid,$(platform))) ++ TARGET := $(TARGET_NAME)_libretro.so ++ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined ++ BOARD ?= $(shell cat /proc/cpuinfo | grep -i odroid | awk '{print $$3}') ++ GLES = 1 ++ GL_LIB := -lGLESv2 ++ CPUFLAGS += -marm -mfloat-abi=hard ++ HAVE_NEON = 1 ++ WITH_DYNAREC=arm ++ ifneq (,$(findstring ODROIDC,$(BOARD))) ++ # ODROID-C1 ++ CPUFLAGS += -mcpu=cortex-a5 -mfpu=neon ++ else ifneq (,$(findstring ODROID-XU,$(BOARD))) ++ # ODROID-XU3 & -XU3 Lite and -XU4 ++ ifeq "$(shell expr `gcc -dumpversion` \>= 4.9)" "1" ++ CPUFLAGS += -mcpu=cortex-a15 -mtune=cortex-a15.cortex-a7 -mfpu=neon-vfpv4 -mvectorize-with-neon-quad ++ else ++ CPUFLAGS += -mcpu=cortex-a9 -mfpu=neon ++ endif ++ # ODROIDGOA ++ else ifneq (,$(findstring ODROIDGOA,$(BOARD))) ++ CPUFLAGS += -march=armv8-a+crc -mfpu=neon-fp-armv8 -mcpu=cortex-a35 -mtune=cortex-a35 ++ else ++ # ODROID-U2, -U3, -X & -X2 ++ CPUFLAGS += -mcpu=cortex-a9 -mfpu=neon ++ endif ++ ++ COREFLAGS += -DOS_LINUX ++ ASFLAGS = -f elf -d ELF_TYPE ++ ++# Amlogic S905/S905X/S912 (AMLGXBB/AMLGXL/AMLGXM) e.g. Khadas VIM1/2 / S905X2 (AMLG12A) & S922X/A311D (AMLG12B) e.g. Khadas VIM3 - 32-bit userspace ++else ifneq (,$(findstring AMLG,$(platform))) ++ TARGET := $(TARGET_NAME)_libretro.so ++ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined -ldl ++ CPUFLAGS += -march=armv8-a+crc -mfloat-abi=hard -mfpu=neon-fp-armv8 ++ ++ ifneq (,$(findstring AMLG12,$(platform))) ++ ifneq (,$(findstring AMLG12B,$(platform))) ++ CPUFLAGS += -mtune=cortex-a73.cortex-a53 ++ else ++ CPUFLAGS += -mtune=cortex-a53 ++ endif ++ GLES3 = 1 ++ else ifneq (,$(findstring AMLGX,$(platform))) ++ CPUFLAGS += -mtune=cortex-a53 ++ ifneq (,$(findstring AMLGXM,$(platform))) ++ GLES3 = 1 ++ else ++ GLES = 1 ++ endif ++ endif ++ ++ ifneq (,$(findstring mesa,$(platform))) ++ COREFLAGS += -DEGL_NO_X11 ++ endif ++ ++ ifneq (,$(findstring mali,$(platform))) ++ GL_LIB := -lGLESv3 ++ else ++ GL_LIB := -lGLESv2 ++ endif ++ ++ HAVE_NEON = 1 ++ WITH_DYNAREC=arm ++ COREFLAGS += -DUSE_GENERIC_GLESV2 -DOS_LINUX ++ ASFLAGS = -f elf -d ELF_TYPE ++ ++# Amlogic S905/S912 ++else ifneq (,$(findstring amlogic,$(platform))) ++ TARGET := $(TARGET_NAME)_libretro.so ++ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined -ldl ++ GLES = 1 ++ GL_LIB := -lGLESv2 ++ CPUFLAGS += -marm -mfloat-abi=hard -mfpu=neon ++ HAVE_NEON = 1 ++ WITH_DYNAREC=arm ++ COREFLAGS += -DUSE_GENERIC_GLESV2 -DOS_LINUX ++ CPUFLAGS += -march=armv8-a -mcpu=cortex-a53 -mtune=cortex-a53 ++ ++# Generic AArch64 Cortex-A53 GLES 2.0 target ++else ifneq (,$(findstring arm64_cortex_a53_gles2,$(platform))) ++ TARGET := $(TARGET_NAME)_libretro.so ++ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined -ldl ++ GL_LIB := -lGLESv2 ++ WITH_DYNAREC := aarch64 ++ CPUFLAGS += -mcpu=cortex-a53 -mtune=cortex-a53 ++ GLES = 1 ++ COREFLAGS += -DOS_LINUX ++ ASFLAGS = -f elf64 -d ELF_TYPE ++ ++# Generic AArch64 Cortex-A53 GLES 3.0 target ++else ifneq (,$(findstring arm64_cortex_a53_gles3,$(platform))) ++ TARGET := $(TARGET_NAME)_libretro.so ++ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined -ldl ++ GL_LIB := -lGLESv2 ++ WITH_DYNAREC := aarch64 ++ CPUFLAGS += -mcpu=cortex-a53 -mtune=cortex-a53 ++ GLES3 = 1 ++ COREFLAGS += -DOS_LINUX ++ ASFLAGS = -f elf64 -d ELF_TYPE ++ ++# Rockchip RK3288 e.g. Asus Tinker Board / RK3328 e.g. PINE64 Rock64 / RK3399 e.g. PINE64 RockPro64 - 32-bit userspace ++else ifneq (,$(findstring RK,$(platform))) ++ TARGET := $(TARGET_NAME)_libretro.so ++ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined -ldl ++ ++ ifneq (,$(findstring RK33,$(platform))) ++ CPUFLAGS += -march=armv8-a+crc -mfloat-abi=hard -mfpu=neon-fp-armv8 ++ ifneq (,$(findstring RK3399,$(platform))) ++ CPUFLAGS += -mtune=cortex-a72.cortex-a53 ++ GLES3 = 1 ++ else ifneq (,$(findstring RK3328,$(platform))) ++ CPUFLAGS += -mtune=cortex-a53 ++ GLES = 1 ++ endif ++ else ifneq (,$(findstring RK3288,$(platform))) ++ CPUFLAGS += -march=armv7ve -mtune=cortex-a17 -mfloat-abi=hard -mfpu=neon-vfpv4 ++ GLES3 = 1 ++ endif ++ ++ ifneq (,$(findstring mesa,$(platform))) ++ COREFLAGS += -DEGL_NO_X11 ++ endif ++ ++ GL_LIB := -lGLESv2 ++ HAVE_NEON = 1 ++ WITH_DYNAREC=arm ++ COREFLAGS += -DUSE_GENERIC_GLESV2 -DOS_LINUX ++ ASFLAGS = -f elf -d ELF_TYPE ++ ++# OS X ++else ifneq (,$(findstring osx,$(platform))) ++ TARGET := $(TARGET_NAME)_libretro.dylib ++ LDFLAGS += -dynamiclib ++ OSXVER = `sw_vers -productVersion | cut -d. -f 2` ++ OSX_LT_MAVERICKS = `(( $(OSXVER) <= 9)) && echo "YES"` ++ LDFLAGS += -mmacosx-version-min=10.7 ++ LDFLAGS += -stdlib=libc++ ++ ++ PLATCFLAGS += -D__MACOSX__ -DOSX -DOS_MAC_OS_X ++ GL_LIB := -framework OpenGL ++ ++ # Target Dynarec ++ ifeq ($(ARCH), $(filter $(ARCH), ppc)) ++ WITH_DYNAREC = ++ endif ++ ++ COREFLAGS += -DOS_LINUX ++ ASFLAGS = -f elf -d ELF_TYPE ++# iOS ++else ifneq (,$(findstring ios,$(platform))) ++ ifeq ($(IOSSDK),) ++ IOSSDK := $(shell xcodebuild -version -sdk iphoneos Path) ++ endif ++ ++ TARGET := $(TARGET_NAME)_libretro_ios.dylib ++ DEFINES += -DIOS ++ GLES = 1 ++ ifeq ($(platform),ios-arm64) ++ WITH_DYNAREC= ++ GLES=1 ++ GLES3=1 ++ FORCE_GLES3=1 ++ EGL := 0 ++ PLATCFLAGS += -DHAVE_POSIX_MEMALIGN -DNO_ASM ++ PLATCFLAGS += -DIOS -marm -DOS_IOS -DDONT_WANT_ARM_OPTIMIZATIONS ++ CPUFLAGS += -marm -mfpu=neon -mfloat-abi=softfp ++ HAVE_NEON=0 ++ CC += -miphoneos-version-min=8.0 ++ CC_AS += -miphoneos-version-min=8.0 ++ CXX += -miphoneos-version-min=8.0 ++ PLATCFLAGS += -miphoneos-version-min=8.0 -Wno-error=implicit-function-declaration ++ CC = clang -arch arm64 -isysroot $(IOSSDK) ++ CXX = clang++ -arch arm64 -isysroot $(IOSSDK) ++ else ++ PLATCFLAGS += -DOS_MAC_OS_X ++ PLATCFLAGS += -DHAVE_POSIX_MEMALIGN -DNO_ASM ++ PLATCFLAGS += -DIOS -marm ++ CPUFLAGS += -DNO_ASM -DARM -D__arm__ -DARM_ASM -D__NEON_OPT ++ CPUFLAGS += -marm -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp ++ WITH_DYNAREC=arm ++ HAVE_NEON=1 ++ CC += -miphoneos-version-min=5.0 ++ CC_AS += -miphoneos-version-min=5.0 ++ CXX += -miphoneos-version-min=5.0 ++ PLATCFLAGS += -miphoneos-version-min=5.0 ++ CC = clang -arch armv7 -isysroot $(IOSSDK) ++ CC_AS = perl ./custom/tools/gas-preprocessor.pl $(CC) ++ CXX = clang++ -arch armv7 -isysroot $(IOSSDK) ++ endif ++ LDFLAGS += -dynamiclib ++ GL_LIB := -framework OpenGLES ++# Android ++else ifneq (,$(findstring android,$(platform))) ++ ANDROID = 1 ++ LDFLAGS += -shared -Wl,--version-script=$(LIBRETRO_DIR)/link.T -Wl,--no-undefined -Wl,--warn-common -llog ++ INCFLAGS += -I$(ROOT_DIR)/GLideN64/src/GLideNHQ/inc ++ ifneq (,$(findstring x86,$(platform))) ++ CC = i686-linux-android-gcc ++ CXX = i686-linux-android-g++ ++ WITH_DYNAREC = x86 ++ LDFLAGS += -L$(ROOT_DIR)/custom/android/x86 ++ else ++ CC = arm-linux-androideabi-gcc ++ CXX = arm-linux-androideabi-g++ ++ WITH_DYNAREC = arm ++ HAVE_NEON = 1 ++ CPUFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=neon ++ LDFLAGS += -march=armv7-a -L$(ROOT_DIR)/custom/android/arm ++ endif ++ ifneq (,$(findstring gles3,$(platform))) ++ GL_LIB := -lGLESv3 ++ GLES3 = 1 ++ TARGET := $(TARGET_NAME)_gles3_libretro_android.so ++ else ++ GL_LIB := -lGLESv2 ++ GLES = 1 ++ TARGET := $(TARGET_NAME)_gles2_libretro_android.so ++ endif ++ CPUFLAGS += -DANDROID -DEGL_EGLEXT_PROTOTYPES ++ COREFLAGS += -DOS_LINUX ++ ASFLAGS = -f elf -d ELF_TYPE ++# emscripten ++else ifeq ($(platform), emscripten) ++ TARGET := $(TARGET_NAME)_libretro_emscripten.bc ++ GLES := 1 ++ WITH_DYNAREC := ++ CPUFLAGS += -DEMSCRIPTEN -DNO_ASM -s USE_ZLIB=1 ++ PLATCFLAGS += \ ++ -Dsinc_resampler=glupen_sinc_resampler \ ++ -DCC_resampler=glupen_CC_resampler \ ++ -Drglgen_symbol_map=glupen_rglgen_symbol_map \ ++ -Drglgen_resolve_symbols_custom=glupen_rglgen_resolve_symbols_custom \ ++ -Drglgen_resolve_symbols=glupen_rglgen_resolve_symbols \ ++ -Dmemalign_alloc=glupen_memalign_alloc \ ++ -Dmemalign_free=glupen_memalign_free \ ++ -Dmemalign_alloc_aligned=glupen_memalign_alloc_aligned \ ++ -Daudio_resampler_driver_find_handle=glupen_audio_resampler_driver_find_handle \ ++ -Daudio_resampler_driver_find_ident=glupen_audio_resampler_driver_find_ident \ ++ -Drarch_resampler_realloc=glupen_rarch_resampler_realloc \ ++ -Dconvert_float_to_s16_C=glupen_convert_float_to_s16_C \ ++ -Dconvert_float_to_s16_init_simd=glupen_convert_float_to_s16_init_simd \ ++ -Dconvert_s16_to_float_C=glupen_convert_s16_to_float_C \ ++ -Dconvert_s16_to_float_init_simd=glupen_convert_s16_to_float_init_simd \ ++ -Dcpu_features_get_perf_counter=glupen_cpu_features_get_perf_counter \ ++ -Dcpu_features_get_time_usec=glupen_cpu_features_get_time_usec \ ++ -Dcpu_features_get_core_amount=glupen_cpu_features_get_core_amount \ ++ -Dcpu_features_get=glupen_cpu_features_get \ ++ -Dffs=glupen_ffs \ ++ -Dstrlcpy_retro__=glupen_strlcpy_retro__ \ ++ -Dstrlcat_retro__=glupen_strlcat_retro__ ++ CC = emcc ++ CXX = em++ ++ HAVE_NEON = 0 ++ ++ COREFLAGS += -DOS_LINUX ++ ASFLAGS = -f elf -d ELF_TYPE ++# Windows ++else ++ TARGET := $(TARGET_NAME)_libretro.dll ++ LDFLAGS += -shared -static-libgcc -static-libstdc++ -Wl,--version-script=$(LIBRETRO_DIR)/link.T #-static -lmingw32 -lSDL2main -lSDL2 -mwindows -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid -lsdl2_net -lsdl2 -lws2_32 -lSetupapi -lIPHLPAPI ++ GL_LIB := -lopengl32 ++ ++ ifeq ($(MSYSTEM),MINGW64) ++ CC ?= x86_64-w64-mingw32-gcc ++ CXX ?= x86_64-w64-mingw32-g++ ++ WITH_DYNAREC = x86_64 ++ COREFLAGS += -DWIN64 #-DM64P_NETPLAY ++ ASFLAGS = -f win64 -d WIN64 ++ PIC = 1 ++ else ifeq ($(MSYSTEM),MINGW32) ++ CC ?= i686-w64-mingw32-gcc ++ CXX ?= i686-w64-mingw32-g++ ++ WITH_DYNAREC = x86 ++ COREFLAGS += -DWIN32 ++ PIC = 1 ++ ASFLAGS = -f win32 -d WIN32 -d LEADING_UNDERSCORE ++ endif ++ ++ HAVE_PARALLEL_RSP = 1 ++ HAVE_PARALLEL_RDP = 1 ++ HAVE_THR_AL = 1 ++ LLE = 1 ++ COREFLAGS += -DOS_WINDOWS -DMINGW -DUNICODE ++ CXXFLAGS += -fpermissive ++endif ++ ++ifeq ($(STATIC_LINKING), 1) ++ ifneq (,$(findstring win,$(platform))) ++ TARGET := $(TARGET:.dll=.lib) ++ else ifneq ($(platform), $(filter $(platform), osx ios)) ++ TARGET := $(TARGET:.dylib=.a) ++ else ++ TARGET := $(TARGET:.so=.a) ++ endif ++endif ++ ++include Makefile.common ++ ++ifeq ($(HAVE_NEON), 1) ++ COREFLAGS += -DHAVE_NEON -D__ARM_NEON__ -D__NEON_OPT -ftree-vectorize -mvectorize-with-neon-quad -ftree-vectorizer-verbose=2 -funsafe-math-optimizations -fno-finite-math-only ++endif ++ ++ifeq ($(LLE), 1) ++ COREFLAGS += -DHAVE_LLE ++endif ++ ++COREFLAGS += -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -D__LIBRETRO__ -DUSE_FILE32API -DM64P_PLUGIN_API -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -DSINC_LOWER_QUALITY -DTXFILTER_LIB -D__VEC4_OPT -DMUPENPLUSAPI ++ ++ifeq ($(DEBUG), 1) ++ CPUOPTS += -O0 -g ++ CPUOPTS += -DOPENGL_DEBUG ++else ++ CPUOPTS += -DNDEBUG -fsigned-char -ffast-math -fno-strict-aliasing -fomit-frame-pointer -fvisibility=hidden ++ifneq ($(platform), libnx) ++ CPUOPTS := -O3 $(CPUOPTS) ++endif ++ CXXFLAGS += -fvisibility-inlines-hidden ++endif ++ ++# Use -fcommon ++CPUOPTS += -fcommon ++ ++# set C/C++ standard to use ++CFLAGS += -std=gnu11 -D_CRT_SECURE_NO_WARNINGS -Wno-discarded-qualifiers ++CXXFLAGS += -std=gnu++11 -D_CRT_SECURE_NO_WARNINGS ++ ++ifeq ($(HAVE_LTCG),1) ++ CPUFLAGS += -flto ++endif ++ ++ifeq ($(PIC), 1) ++ fpic = -fPIC ++else ++ fpic = -fno-PIC ++endif ++ ++OBJECTS += $(SOURCES_CXX:.cpp=.o) $(SOURCES_C:.c=.o) $(SOURCES_ASM:.S=.o) $(SOURCES_NASM:.asm=.o) ++CXXFLAGS += $(CPUOPTS) $(COREFLAGS) $(INCFLAGS) $(PLATCFLAGS) $(fpic) $(CPUFLAGS) $(GLFLAGS) $(DYNAFLAGS) ++CFLAGS += $(CPUOPTS) $(COREFLAGS) $(INCFLAGS) $(PLATCFLAGS) $(fpic) $(CPUFLAGS) $(GLFLAGS) $(DYNAFLAGS) ++ ++ifeq (,$(findstring android,$(platform))) ++ LDFLAGS += -lpthread ++endif ++ ++ifeq ($(platform), ios-arm64) ++ LDFLAGS += $(fpic) -O3 $(CPUOPTS) $(PLATCFLAGS) $(CPUFLAGS) ++else ++ LDFLAGS += $(fpic) -O3 $(CPUOPTS) $(PLATCFLAGS) $(CPUFLAGS) ++endif ++ ++-include $(OBJECTS:.o=.d) ++all: $(TARGET) ++$(TARGET): $(OBJECTS) ++ ++ifeq ($(STATIC_LINKING), 1) ++ $(AR) rcs $@ $(OBJECTS) ++else ++ $(CXX) -o $@ $(OBJECTS) $(LDFLAGS) $(GL_LIB) ++endif ++ ++# Script hackery fll or generating ASM include files for the new dynarec assembly code ++$(AWK_DEST_DIR)/asm_defines_gas.h: $(AWK_DEST_DIR)/asm_defines_nasm.h ++$(AWK_DEST_DIR)/asm_defines_nasm.h: $(ASM_DEFINES_OBJ) ++ $(STRINGS) "$<" | $(TR) -d '\r' | $(AWK) -v dest_dir="$(AWK_DEST_DIR)" -f $(CORE_DIR)/tools/gen_asm_defines.awk ++ ++%.o: %.asm $(AWK_DEST_DIR)/asm_defines_gas.h ++ $(NASM) -i$(AWK_DEST_DIR)/ $(ASFLAGS) $< -o $@ ++ ++%.o: %.S $(AWK_DEST_DIR)/asm_defines_gas.h ++ $(CC_AS) $(CFLAGS) -c $< -o $@ ++ ++%.o: %.c ++ $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@ ++ ++%.o: %.cpp ++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ ++ ++clean: ++ find -name "*.o" -type f -delete ++ find -name "*.d" -type f -delete ++ rm -f $(TARGET) ++ ++.PHONY: clean diff --git a/packages/games/libretro/mupen64plus/package.mk b/packages/games/libretro/mupen64plus/package.mk index c920b08b1..172ed695d 100644 --- a/packages/games/libretro/mupen64plus/package.mk +++ b/packages/games/libretro/mupen64plus/package.mk @@ -23,7 +23,6 @@ PKG_NAME="mupen64plus" PKG_VERSION="ab8134ac90a567581df6de4fc427dd67bfad1b17" PKG_SHA256="98e197cdcac64c0e08eda91a6d63b637c3f151066bede25766e62bc1a59552a0" PKG_REV="1" -PKG_ARCH="any" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/libretro/mupen64plus-libretro" PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz" @@ -37,7 +36,7 @@ PKG_BUILD_FLAGS="-lto" PKG_PATCH_DIRS+="${DEVICE}" if [ ! "${OPENGL}" = "no" ]; then - PKG_DEPENDS_TARGET+=" ${OPENGL} glu libglvnd" + PKG_DEPENDS_TARGET+=" ${OPENGL} glu" fi if [ "${OPENGLES_SUPPORT}" = yes ]; then @@ -49,18 +48,26 @@ pre_make_target() { } pre_configure_target() { - CFLAGS="${CFLAGS} -DLINUX -DEGL_API_FB" - CPPFLAGS="$CPPFLAGS -DLINUX -DEGL_API_FB" - if [[ "${DEVICE}" =~ RG351 ]] - then - PKG_MAKE_OPTS_TARGET=" platform=RK3326" - elif [[ "${DEVICE}" =~ RG552 ]] - then - PKG_MAKE_OPTS_TARGET=" platform=RK3399" - elif [[ "${DEVICE}" =~ RG503 ]] || [[ "${DEVICE}" =~ RG353P ]] - then - PKG_MAKE_OPTS_TARGET=" platform=RK3566" - fi + case ${DEVICE} in + RG351P|RG351V|RG351MP) + PKG_MAKE_OPTS_TARGET=" platform=RK3326" + CFLAGS="${CFLAGS} -DLINUX -DEGL_API_FB" + CPPFLAGS="${CPPFLAGS} -DLINUX -DEGL_API_FB" + ;; + RG552) + PKG_MAKE_OPTS_TARGET=" platform=RK3399" + CFLAGS="${CFLAGS} -DLINUX -DEGL_API_FB" + CPPFLAGS="${CPPFLAGS} -DLINUX -DEGL_API_FB" + ;; + RG503|RG353P) + PKG_MAKE_OPTS_TARGET=" platform=RK3566" + CFLAGS="${CFLAGS} -DLINUX -DEGL_API_FB" + CPPFLAGS="${CPPFLAGS} -DLINUX -DEGL_API_FB" + ;; + *) + PKG_MAKE_OPTS_TARGET="GLES=0 GLES3=0" + ;; + esac } makeinstall_target() { diff --git a/packages/games/libretro/nestopia/package.mk b/packages/games/libretro/nestopia/package.mk index 312778cae..353f65140 100644 --- a/packages/games/libretro/nestopia/package.mk +++ b/packages/games/libretro/nestopia/package.mk @@ -19,8 +19,8 @@ ################################################################################ PKG_NAME="nestopia" -PKG_VERSION="73702a47f937a5ddca984b6adf827a2cffe778ab" -PKG_SHA256="af4dafbdea9388fe64011596f277d954c91a290c8552a68f37b926cad6525aa9" +PKG_VERSION="a9ee6ca84f04990e209880fe47144e62b14253db" +PKG_SHA256="5d2ce2c19ad5b0e6618a669926a3615ecb0688715cbf268439692cc254eb5d4c" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPLv2" diff --git a/packages/games/libretro/parallel-n64_glide64/package.mk b/packages/games/libretro/parallel-n64_glide64/package.mk index 39a48fe86..cf5a5ca41 100644 --- a/packages/games/libretro/parallel-n64_glide64/package.mk +++ b/packages/games/libretro/parallel-n64_glide64/package.mk @@ -2,8 +2,8 @@ # Copyright (C) 2019-present Shanti Gilbert (https://github.com/shantigilbert) PKG_NAME="parallel-n64_glide64" -PKG_VERSION="28ef8ff960efef4fc3c462ddc52707e140fee3be" -PKG_SHA256="25689b7c30a8706979eadbeb971107ea3159d4763f50870d79b4e84548b5ee66" +PKG_VERSION="a03fdcba6b2e9993f050b50112f597ce2f44fa2c" +PKG_SHA256="8ac94a0515bac7aeda51ef5cbb5c042d69d4f73960ca0ae8961e7ecbe3d182fa" PKG_REV="2" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/libretro/parallel-n64" @@ -17,29 +17,34 @@ PKG_BUILD_FLAGS="-lto" PKG_PATCH_DIRS+="${DEVICE}" if [ ! "${OPENGL}" = "no" ]; then - PKG_DEPENDS_TARGET+=" ${OPENGL} glu libglvnd" + PKG_DEPENDS_TARGET+=" ${OPENGL} glu" fi if [ "${OPENGLES_SUPPORT}" = yes ]; then PKG_DEPENDS_TARGET+=" ${OPENGLES}" fi -if [ "${ARCH}" = "arm" ] -then - if [[ "${DEVICE}" =~ RG351 ]] - then - PKG_MAKE_OPTS_TARGET=" platform=RG351x" - elif [[ "${DEVICE}" =~ RG503 ]] || [[ "${DEVICE}" =~ RG353P ]] - then - PKG_MAKE_OPTS_TARGET+=" platform=RK3566" - else - PKG_MAKE_OPTS_TARGET=" platform=${DEVICE}" - fi -else - make_target() { - : - } -fi + +case ${ARCH} in + arm) + case ${DEVICE} in + RG351P|RG351V|RG351MP) + PKG_MAKE_OPTS_TARGET=" platform=RG351x" + ;; + RG503|RG353P) + PKG_MAKE_OPTS_TARGET+=" platform=RK3566" + ;; + RG552) + PKG_MAKE_OPTS_TARGET=" platform=${DEVICE}" + ;; + esac + ;; + aarch64) + make_target() { + : + } + ;; +esac pre_configure_target() { sed -i 's/info->library_name = "ParaLLEl N64";/info->library_name = "ParaLLEl N64 Glide64";/g' ${PKG_BUILD}/libretro/libretro.c @@ -52,12 +57,14 @@ pre_configure_target() { makeinstall_target() { mkdir -p ${INSTALL}/usr/lib/libretro - if [[ "${ARCH}" == "aarch64" ]] - then - cp -vP ${ROOT}/build.${DISTRO}-${DEVICE}.arm/parallel-n64_glide64-*/.install_pkg/usr/lib/libretro/parallel_n64_glide64_libretro.so ${INSTALL}/usr/lib/libretro/parallel_n64_glide64_libretro.so - cp -vP ${PKG_BUILD}/../core-info-*/parallel_n64_libretro.info ${INSTALL}/usr/lib/libretro/parallel_n64_glide64_libretro.info - sed -i 's/ParaLLEl N64/ParaLLEl N64 Glide64/g' ${INSTALL}/usr/lib/libretro/parallel_n64_glide64_libretro.info - else - cp parallel_n64_libretro.so ${INSTALL}/usr/lib/libretro/parallel_n64_glide64_libretro.so - fi + case ${ARCH} in + arm|x86_64) + cp parallel_n64_libretro.so ${INSTALL}/usr/lib/libretro/parallel_n64_glide64_libretro.so + ;; + aarch64) + cp -vP ${ROOT}/build.${DISTRO}-${DEVICE}.arm/parallel-n64_glide64-*/.install_pkg/usr/lib/libretro/parallel_n64_glide64_libretro.so ${INSTALL}/usr/lib/libretro/parallel_n64_glide64_libretro.so + cp -vP ${PKG_BUILD}/../core-info-*/parallel_n64_libretro.info ${INSTALL}/usr/lib/libretro/parallel_n64_glide64_libretro.info + sed -i 's/ParaLLEl N64/ParaLLEl N64 Glide64/g' ${INSTALL}/usr/lib/libretro/parallel_n64_glide64_libretro.info + ;; + esac } diff --git a/packages/games/libretro/parallel-n64_gln64/package.mk b/packages/games/libretro/parallel-n64_gln64/package.mk index 0a333a56c..0f460d041 100644 --- a/packages/games/libretro/parallel-n64_gln64/package.mk +++ b/packages/games/libretro/parallel-n64_gln64/package.mk @@ -2,8 +2,8 @@ # Copyright (C) 2019-present Shanti Gilbert (https://github.com/shantigilbert) PKG_NAME="parallel-n64_gln64" -PKG_VERSION="28ef8ff960efef4fc3c462ddc52707e140fee3be" -PKG_SHA256="25689b7c30a8706979eadbeb971107ea3159d4763f50870d79b4e84548b5ee66" +PKG_VERSION="a03fdcba6b2e9993f050b50112f597ce2f44fa2c" +PKG_SHA256="8ac94a0515bac7aeda51ef5cbb5c042d69d4f73960ca0ae8961e7ecbe3d182fa" PKG_REV="2" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/libretro/parallel-n64" @@ -24,22 +24,26 @@ if [ "${OPENGLES_SUPPORT}" = yes ]; then PKG_DEPENDS_TARGET+=" ${OPENGLES}" fi -if [ "${ARCH}" = "arm" ] -then - if [[ "${DEVICE}" =~ RG351 ]] - then - PKG_MAKE_OPTS_TARGET=" platform=RG351x" - elif [[ "${DEVICE}" =~ RG503 ]] || [[ "${DEVICE}" =~ RG353P ]] - then - PKG_MAKE_OPTS_TARGET+=" platform=RK3566" - else - PKG_MAKE_OPTS_TARGET=" platform=${DEVICE}" - fi -else - make_target() { - : - } -fi +case ${ARCH} in + arm) + case ${DEVICE} in + RG351P|RG351V|RG351MP) + PKG_MAKE_OPTS_TARGET=" platform=RG351x" + ;; + RG503|RG353P) + PKG_MAKE_OPTS_TARGET+=" platform=RK3566" + ;; + RG552) + PKG_MAKE_OPTS_TARGET=" platform=${DEVICE}" + ;; + esac + ;; + aarch64) + make_target() { + : + } + ;; +esac pre_configure_target() { sed -i 's/info->library_name = "ParaLLEl N64";/info->library_name = "ParaLLEl N64 GLN64";/g' ${PKG_BUILD}/libretro/libretro.c @@ -52,12 +56,14 @@ pre_configure_target() { makeinstall_target() { mkdir -p ${INSTALL}/usr/lib/libretro - if [[ "${ARCH}" == "aarch64" ]] - then - cp -vP ${ROOT}/build.${DISTRO}-${DEVICE}.arm/parallel-n64_gln64-*/.install_pkg/usr/lib/libretro/parallel_n64_gln64_libretro.so ${INSTALL}/usr/lib/libretro/parallel_n64_gln64_libretro.so - cp -vP ${PKG_BUILD}/../core-info-*/parallel_n64_libretro.info ${INSTALL}/usr/lib/libretro/parallel_n64_gln64_libretro.info - sed -i 's/ParaLLEl N64/ParaLLEl N64 GLN64/g' ${INSTALL}/usr/lib/libretro/parallel_n64_gln64_libretro.info - else - cp parallel_n64_libretro.so ${INSTALL}/usr/lib/libretro/parallel_n64_gln64_libretro.so - fi + case ${ARCH} in + arm|x86_64) + cp parallel_n64_libretro.so ${INSTALL}/usr/lib/libretro/parallel_n64_gln64_libretro.so + ;; + aarch64) + cp -vP ${ROOT}/build.${DISTRO}-${DEVICE}.arm/parallel-n64_gln64-*/.install_pkg/usr/lib/libretro/parallel_n64_gln64_libretro.so ${INSTALL}/usr/lib/libretro/parallel_n64_gln64_libretro.so + cp -vP ${PKG_BUILD}/../core-info-*/parallel_n64_libretro.info ${INSTALL}/usr/lib/libretro/parallel_n64_gln64_libretro.info + sed -i 's/ParaLLEl N64/ParaLLEl N64 Rice/g' ${INSTALL}/usr/lib/libretro/parallel_n64_gln64_libretro.info + ;; + esac } diff --git a/packages/games/libretro/parallel-n64_rice/package.mk b/packages/games/libretro/parallel-n64_rice/package.mk index cf1e7a300..5dcb0b078 100644 --- a/packages/games/libretro/parallel-n64_rice/package.mk +++ b/packages/games/libretro/parallel-n64_rice/package.mk @@ -2,8 +2,8 @@ # Copyright (C) 2019-present Shanti Gilbert (https://github.com/shantigilbert) PKG_NAME="parallel-n64_rice" -PKG_VERSION="28ef8ff960efef4fc3c462ddc52707e140fee3be" -PKG_SHA256="25689b7c30a8706979eadbeb971107ea3159d4763f50870d79b4e84548b5ee66" +PKG_VERSION="a03fdcba6b2e9993f050b50112f597ce2f44fa2c" +PKG_SHA256="8ac94a0515bac7aeda51ef5cbb5c042d69d4f73960ca0ae8961e7ecbe3d182fa" PKG_REV="2" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/libretro/parallel-n64" @@ -24,22 +24,26 @@ if [ "${OPENGLES_SUPPORT}" = yes ]; then PKG_DEPENDS_TARGET+=" ${OPENGLES}" fi -if [ "${ARCH}" = "arm" ] -then - if [[ "${DEVICE}" =~ RG351 ]] - then - PKG_MAKE_OPTS_TARGET=" platform=RG351x" - elif [[ "${DEVICE}" =~ RG503 ]] || [[ "${DEVICE}" =~ RG353P ]] - then - PKG_MAKE_OPTS_TARGET+=" platform=RK3566" - else - PKG_MAKE_OPTS_TARGET=" platform=${DEVICE}" - fi -else - make_target() { - : - } -fi +case ${ARCH} in + arm) + case ${DEVICE} in + RG351P|RG351V|RG351MP) + PKG_MAKE_OPTS_TARGET=" platform=RG351x" + ;; + RG503|RG353P) + PKG_MAKE_OPTS_TARGET+=" platform=RK3566" + ;; + RG552) + PKG_MAKE_OPTS_TARGET=" platform=${DEVICE}" + ;; + esac + ;; + aarch64) + make_target() { + : + } + ;; +esac pre_configure_target() { sed -i 's/info->library_name = "ParaLLEl N64";/info->library_name = "ParaLLEl N64 Rice";/g' ${PKG_BUILD}/libretro/libretro.c @@ -52,12 +56,14 @@ pre_configure_target() { makeinstall_target() { mkdir -p ${INSTALL}/usr/lib/libretro - if [[ "${ARCH}" == "aarch64" ]] - then - cp -vP ${ROOT}/build.${DISTRO}-${DEVICE}.arm/parallel-n64_rice-*/.install_pkg/usr/lib/libretro/parallel_n64_rice_libretro.so ${INSTALL}/usr/lib/libretro/parallel_n64_rice_libretro.so - cp -vP ${PKG_BUILD}/../core-info-*/parallel_n64_libretro.info ${INSTALL}/usr/lib/libretro/parallel_n64_rice_libretro.info - sed -i 's/ParaLLEl N64/ParaLLEl N64 Rice/g' ${INSTALL}/usr/lib/libretro/parallel_n64_rice_libretro.info - else - cp parallel_n64_libretro.so ${INSTALL}/usr/lib/libretro/parallel_n64_rice_libretro.so - fi + case ${ARCH} in + arm|x86_64) + cp parallel_n64_libretro.so ${INSTALL}/usr/lib/libretro/parallel_n64_rice_libretro.so + ;; + aarch64) + cp -vP ${ROOT}/build.${DISTRO}-${DEVICE}.arm/parallel-n64_rice-*/.install_pkg/usr/lib/libretro/parallel_n64_rice_libretro.so ${INSTALL}/usr/lib/libretro/parallel_n64_rice_libretro.so + cp -vP ${PKG_BUILD}/../core-info-*/parallel_n64_libretro.info ${INSTALL}/usr/lib/libretro/parallel_n64_rice_libretro.info + sed -i 's/ParaLLEl N64/ParaLLEl N64 Rice/g' ${INSTALL}/usr/lib/libretro/parallel_n64_rice_libretro.info + ;; + esac } diff --git a/packages/games/libretro/pcsx2/package.mk b/packages/games/libretro/pcsx2/package.mk new file mode 100644 index 000000000..ba36aa39d --- /dev/null +++ b/packages/games/libretro/pcsx2/package.mk @@ -0,0 +1,56 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2022-present Fewtarius + +PKG_NAME="pcsx2" +PKG_VERSION="ad76509" +PKG_ARCH="any" +PKG_LICENSE="GPLv2" +PKG_DEPENDS_TARGET="toolchain alsa-lib freetype zlib libpng libaio libsamplerate libfmt libpcap soundtouch yamlcpp wxwidgets" +PKG_SITE="https://github.com/libretro/pcsx2" +PKG_URL="${PKG_SITE}.git" +PKG_DEPENDS_TARGET="toolchain" +PKG_SECTION="libretro" +PKG_SHORTDESC="PCSX2 core for RetroArch." + +if [ ! "${OPENGL}" = "no" ]; then + PKG_DEPENDS_TARGET+=" ${OPENGL} glu libglvnd" +fi + +if [ "${OPENGLES_SUPPORT}" = yes ]; then + PKG_DEPENDS_TARGET+=" ${OPENGLES}" +fi + +if [ "${VULKAN_SUPPORT}" = "yes" ] +then + PKG_DEPENDS_TARGET+=" vulkan-loader vulkan-headers" +fi + +if [ "${DISPLAYSERVER}" = "wl" ]; then + PKG_DEPENDS_TARGET+=" wayland ${WINDOWMANAGER}" +fi + +PKG_CMAKE_OPTS_TARGET=" \ + -DSDL2_API=TRUE \ + -DDISABLE_PCSX2_WRAPPER=1 \ + -DPACKAGE_MODE=FALSE \ + -DPCSX2_TARGET_ARCHITECTURES=x86_64 \ + -DENABLE_TESTS=OFF \ + -DEXTRA_PLUGINS=OFF \ + -DQT_BUILD=FALSE \ + -DBUILD_SHARED_LIBS=OFF \ + -DUSE_SYSTEM_LIBS=OFF \ + -DDISABLE_ADVANCE_SIMD=ON \ + -DUSE_VTUNE=OFF \ + -DUSE_VULKAN=ON \ + -DGTK3_API=FALSE \ + -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=FALSE \ + -DCMAKE_BUILD_TYPE=Release" + +pre_configure_target() { + export LDFLAGS="${LDFLAGS} -laio" +} + +makeinstall_target() { + mkdir -p ${INSTALL}/usr/lib/libretro + cp ${PKG_BUILD}/.${TARGET_NAME}/pcsx2/pcsx2_libretro.so ${INSTALL}/usr/lib/libretro/ +} diff --git a/packages/games/libretro/pcsx_rearmed/package.mk b/packages/games/libretro/pcsx_rearmed/package.mk index eda8b1979..399aaeeca 100644 --- a/packages/games/libretro/pcsx_rearmed/package.mk +++ b/packages/games/libretro/pcsx_rearmed/package.mk @@ -3,10 +3,10 @@ # Copyright (C) 2022-present Fewtarius PKG_NAME="pcsx_rearmed" -PKG_VERSION="d38927c1a43f654a6e9e7fc60c837bd35c3497f7" -PKG_SHA256="c825a355bd2f36f5bc71054eeb1c0df8182056cee0b761cd0ad8bd66d719af63" +PKG_VERSION="e884777a544661da5bad2413bdb3755b3c32ddb2" +PKG_SHA256="5718a1f5957147e197b15f38df2ab747e7ef344260cdbbe383cfab377d75bb3a" PKG_REV="1" -PKG_ARCH="any" +PKG_ARCH="arm aarch64" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/libretro/pcsx_rearmed" PKG_URL="$PKG_SITE/archive/$PKG_VERSION.tar.gz" diff --git a/packages/games/libretro/ppsspp/package.mk b/packages/games/libretro/ppsspp/package.mk index 91f5590a6..b0c184eef 100644 --- a/packages/games/libretro/ppsspp/package.mk +++ b/packages/games/libretro/ppsspp/package.mk @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="ppsspp" -PKG_VERSION="d11640a070d7516b6a4660a0543dd9ee285e0d53" +PKG_VERSION="d66c5c11c1532c2850552e8eb2095994021d055c" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/hrydgard/ppsspp" PKG_URL="https://github.com/hrydgard/ppsspp.git" diff --git a/packages/games/libretro/prosystem/package.mk b/packages/games/libretro/prosystem/package.mk index 511a072cc..74fb8baee 100644 --- a/packages/games/libretro/prosystem/package.mk +++ b/packages/games/libretro/prosystem/package.mk @@ -19,8 +19,8 @@ ################################################################################ PKG_NAME="prosystem" -PKG_VERSION="fbf62c3dacaac694f7ec26cf9be10a51b27271e7" -PKG_SHA256="01f8675b0d15a606b44f879cc481fbf17f422ab57c14fce292726b5932fdc7dc" +PKG_VERSION="cf544d3c8e40ff197ea5bb177a1269db31077803" +PKG_SHA256="1fc6575743b580b6e57d0d360bd3d6504b5a475594eb9664a099aedadbf5fffc" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPLv2" diff --git a/packages/games/libretro/px68k/package.mk b/packages/games/libretro/px68k/package.mk index 171ba8e3c..7a643ff28 100644 --- a/packages/games/libretro/px68k/package.mk +++ b/packages/games/libretro/px68k/package.mk @@ -19,8 +19,8 @@ ################################################################################ PKG_NAME="px68k" -PKG_VERSION="12332c0f51f1468759380433b78dde87ab763d7d" -PKG_SHA256="e0517a84f3f9a7df8cdebeb1d0e31e602ed8962cd5373d3083c9ef7efc5c0610" +PKG_VERSION="4713fcd1753546f7cddf53d216759b9316a3e0b4" +PKG_SHA256="6e554ce429e53024c1da32e4de32b51b7266ae4ea8cfcde7ccffd4ddc19540a7" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="Unknown" diff --git a/packages/games/libretro/slang-shaders/package.mk b/packages/games/libretro/slang-shaders/package.mk new file mode 100644 index 000000000..571ccbb16 --- /dev/null +++ b/packages/games/libretro/slang-shaders/package.mk @@ -0,0 +1,49 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2022-present Fewtarius +# +# This Program 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, or (at your option) +# any later version. +# +# This Program 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.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +PKG_NAME="slang-shaders" +PKG_VERSION="379eeca" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="https://github.com/libretro/slang-shaders" +PKG_URL="${PKG_SITE}.git" +PKG_DEPENDS_TARGET="toolchain" +PKG_PRIORITY="optional" +PKG_SECTION="libretro" +PKG_SHORTDESC="Common SLANG shaders for RetroArch" +PKG_LONGDESC="Common SLANG shaders for RetroArch" + +PKG_IS_ADDON="no" +PKG_TOOLCHAIN="make" +PKG_AUTORECONF="no" + +configure_target() { + cd ${PKG_BUILD} +} + +makeinstall_target() { + if [ ! -d "${INSTALL}/usr/share/common-shaders" ] + then + mkdir -p ${INSTALL}/usr/share/common-shaders + fi + make install INSTALLDIR="${INSTALL}/usr/share/common-shaders" +} diff --git a/packages/games/libretro/swanstation/package.mk b/packages/games/libretro/swanstation/package.mk index 9fab49fd9..7a88108f4 100644 --- a/packages/games/libretro/swanstation/package.mk +++ b/packages/games/libretro/swanstation/package.mk @@ -3,9 +3,9 @@ # Maintenance 2020 351ELEC team (https://github.com/fewtarius/351ELEC) PKG_NAME="swanstation" -PKG_VERSION="c1487ab4bd58cfb89d69765b19c9b02a1581b0a6" -PKG_SHA256="fe438bc3d3fdeb49c38c3806e3771c68b6a6dea6c65a41edf56e5f1743127f8e" -PKG_ARCH="aarch64" +PKG_VERSION="bdaafb7662690a969642dfd9b9eaafd91a4639b0" +PKG_SHA256="45fa9c5ced347840cab1681981731446f5e47e97c40a64f08e2434392ebfb08e" +PKG_ARCH="" PKG_LICENSE="GPLv3" PKG_SITE="https://github.com/libretro/swanstation" PKG_URL="$PKG_SITE/archive/$PKG_VERSION.tar.gz" diff --git a/packages/games/libretro/tyrquake/config/common/games/_Scan Quake Games.sh b/packages/games/libretro/tyrquake/config/common/games/_Scan Quake Games.sh new file mode 100644 index 000000000..400289b10 --- /dev/null +++ b/packages/games/libretro/tyrquake/config/common/games/_Scan Quake Games.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# SPDX-License-Identifier: GPL-3.0-or-later +# Copyright (C) 2022-present travis134 + +. /etc/profile + +QUAKEPATH="/storage/roms/quake" + +clear +echo "Scanning for games..." +pak_files=$(find "${QUAKEPATH}" -mindepth 1 -type f -iname pak0.pak) +echo "Adding games..." +while read -r pak_file; do + abs_path=$(dirname "${pak_file}") + path=${abs_path#"$QUAKEPATH/"} + filename="${path##*/}" + if [[ "${path,,}" == *"id1"* ]]; then + filename="Quake" + elif [[ "${path,,}" == *"hipnotic"* ]]; then + filename="Quake Mission Pack 1 - Scourge of Armagon" + elif [[ "${path,,}h" == *"rogue"* ]]; then + filename="Quake Mission Pack 2 - Dissolution of Eternity" + elif [[ "${path,,}" == *"dopa"* ]]; then + filename="Quake - Dimension of the Past" + fi + file="${QUAKEPATH}/${filename}.quake" + cat >"${file}" <<-EOM + PAK=${pak_file} + -- end -- + EOM +done <<<"${pak_files}" +clear diff --git a/packages/games/libretro/tyrquake/package.mk b/packages/games/libretro/tyrquake/package.mk index 91b482b15..4aa9b0930 100644 --- a/packages/games/libretro/tyrquake/package.mk +++ b/packages/games/libretro/tyrquake/package.mk @@ -45,5 +45,10 @@ pre_configure_target() { makeinstall_target() { mkdir -p $INSTALL/usr/lib/libretro + mkdir -p $INSTALL/usr/config/game/tyrquake + mkdir -p $INSTALL/usr/lib/autostart/common cp tyrquake_libretro.so $INSTALL/usr/lib/libretro/ + cp -rf $PKG_DIR/config/common/* $INSTALL/usr/config/game/tyrquake + chmod 0755 $INSTALL/usr/config/game/tyrquake/games/*sh + cp $PKG_DIR/sources/autostart/common/* $INSTALL/usr/lib/autostart/common } diff --git a/packages/games/libretro/tyrquake/sources/autostart/common/011-tyrquake b/packages/games/libretro/tyrquake/sources/autostart/common/011-tyrquake new file mode 100644 index 000000000..b80c65896 --- /dev/null +++ b/packages/games/libretro/tyrquake/sources/autostart/common/011-tyrquake @@ -0,0 +1,9 @@ +#!/bin/bash + +# SPDX-License-Identifier: GPL-3.0-or-later +# Copyright (C) 2022-present travis134 + +if [ ! -e "/storage/roms/quake/_Scan Quake Games.sh" ]; then + cp "/usr/config/game/tyrquake/games/_Scan Quake Games.sh" "/storage/roms/quake/_Scan Quake Games.sh" + chmod +x "/storage/roms/quake/_Scan Quake Games.sh" +fi diff --git a/packages/games/libretro/uae4arm/package.mk b/packages/games/libretro/uae4arm/package.mk index fc056bd3f..1301493e8 100644 --- a/packages/games/libretro/uae4arm/package.mk +++ b/packages/games/libretro/uae4arm/package.mk @@ -22,7 +22,7 @@ PKG_NAME="uae4arm" PKG_VERSION="177c2f0e892adf2603ada9b150e31beffe0f76c3" PKG_SHA256="0be54f926740333d1b2832d4bb78e6b1e47409c75f40e99e544b7265327c0708" PKG_REV="1" -PKG_ARCH="any" +PKG_ARCH="arm aarch64" PKG_LICENSE="GPL" PKG_SITE="https://github.com/Chips-fr/uae4arm-rpi" PKG_URL="$PKG_SITE/archive/$PKG_VERSION.tar.gz" diff --git a/packages/games/libretro/vitaquake2/package.mk b/packages/games/libretro/vitaquake2/package.mk index ee4b5bf94..ded3f6a94 100644 --- a/packages/games/libretro/vitaquake2/package.mk +++ b/packages/games/libretro/vitaquake2/package.mk @@ -1,7 +1,7 @@ PKG_NAME="vitaquake2" PKG_VERSION="59053244a03ed0f0976956365e60ca584fa6f162" PKG_SHA256="eb6303a048cc82e79ed446800df17984ed7c872e6add8eca23f74b645be1e35c" -PKG_ARCH="any" +PKG_ARCH="arm aarch64" PKG_LICENSE="GPLv2" PKG_SITE="https://github.com/libretro/vitaquake2" PKG_URL="$PKG_SITE/archive/$PKG_VERSION.tar.gz" diff --git a/packages/games/libretro/yabasanshiro/package.mk b/packages/games/libretro/yabasanshiro/package.mk index f20da5dc9..dfb119d11 100644 --- a/packages/games/libretro/yabasanshiro/package.mk +++ b/packages/games/libretro/yabasanshiro/package.mk @@ -45,7 +45,14 @@ if [ "${OPENGLES_SUPPORT}" = yes ]; then fi pre_configure_target() { - PKG_MAKE_OPTS_TARGET+=" -C yabause/src/libretro platform=rockpro64 HAVE_NEON=0" + case ${PROJECT} in + Rockchip) + PKG_MAKE_OPTS_TARGET+=" -C yabause/src/libretro platform=rockpro64 HAVE_NEON=0" + ;; + *) + PKG_MAKE_OPTS_TARGET+=" -C yabause/src/libretro FORCE_GLES=1" + ;; + esac } makeinstall_target() { diff --git a/packages/games/native/moonlight/package.mk b/packages/games/native/moonlight/package.mk index 15ff051d9..c0110cc9a 100644 --- a/packages/games/native/moonlight/package.mk +++ b/packages/games/native/moonlight/package.mk @@ -2,20 +2,38 @@ # Copyright (C) 2020-present Fewtarius PKG_NAME="moonlight" -PKG_VERSION="4ebd3fb8ba6f67dde191c9d5539fe40b2f67488a" +PKG_VERSION="1b95f027a220b3aaa5cace57c827e235aef88f20" PKG_ARCH="any" PKG_LICENSE="GPLv3" PKG_SITE="https://github.com/moonlight-stream/moonlight-embedded" PKG_URL="$PKG_SITE.git" -PKG_DEPENDS_TARGET="toolchain opus libevdev alsa enet avahi" +PKG_DEPENDS_TARGET="toolchain opus SDL2 libevdev alsa curl enet avahi" PKG_SHORTDESC="Moonlight Embedded is an open source implementation of NVIDIA's GameStream, as used by the NVIDIA Shield, but built for Linux." PKG_TOOLCHAIN="cmake" GET_HANDLER_SUPPORT="git" PKG_PATCH_DIRS+="${DEVICE}" +if [ "${PROJECT}" = "Rockchip" ] +then + PKG_DEPENDS_TARGET+=" rkmpp" +fi + +if [ ! "${OPENGL}" = "no" ]; then + PKG_DEPENDS_TARGET+=" ${OPENGL} glu" +fi + +if [ "${OPENGLES_SUPPORT}" = yes ]; then + PKG_DEPENDS_TARGET+=" ${OPENGLES}" +fi + +if [ "${VULKAN_SUPPORT}" = "yes" ] + then + PKG_DEPENDS_TARGET+=" vulkan-loader vulkan-headers" +fi + post_makeinstall_target() { - mkdir -p $INSTALL/usr/config/moonlight - cp -R $PKG_BUILD/moonlight.conf $INSTALL/usr/config/moonlight + mkdir -p ${INSTALL}/usr/config/moonlight + cp -R ${PKG_BUILD}/moonlight.conf ${INSTALL}/usr/config/moonlight rm ${INSTALL}/usr/etc/moonlight.conf rm ${INSTALL}/usr/share/moonlight/gamecontrollerdb.txt diff --git a/packages/games/tools/351files/package.mk b/packages/games/tools/351files/package.mk index 5dbbc54ba..3353cd324 100644 --- a/packages/games/tools/351files/package.mk +++ b/packages/games/tools/351files/package.mk @@ -17,7 +17,7 @@ PKG_SHORTDESC="A Single panel file Manager tailored for Anbernic 351 devices: RG PKG_PATCH_DIRS="${DEVICE}" make_target() { - make DEVICE=${DEVICE} RES_PATH=/usr/share/351files/res START_PATH=/storage/roms SDL2_CONFIG=${SYSROOT_PREFIX}/usr/bin/sdl2-config CC=$CXX + make DEVICE=${DEVICE^^} RES_PATH=/usr/share/351files/res START_PATH=/storage/roms SDL2_CONFIG=${SYSROOT_PREFIX}/usr/bin/sdl2-config CC=$CXX } makeinstall_target() { diff --git a/packages/games/tools/351files/patches/handheld/device.patch b/packages/games/tools/351files/patches/handheld/device.patch new file mode 100644 index 000000000..861830af0 --- /dev/null +++ b/packages/games/tools/351files/patches/handheld/device.patch @@ -0,0 +1,66 @@ +diff --git a/Makefile b/Makefile +index 7b9afa5..bd964f1 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,5 +1,6 @@ + TARGET = 351Files + ++# DEVICE ?= HANDHELD + # DEVICE ?= RG351P + # DEVICE ?= RG351V + # DEVICE ?= RGB10 +diff --git a/src/def.h b/src/def.h +index 92d1a01..db4fec4 100644 +--- a/src/def.h ++++ b/src/def.h +@@ -85,6 +85,22 @@ + #define KEYBOARD_MARGIN 8 + #define KEYBOARD_KEY_SPACING 4 + ++// Parameters for handheld ++#elif defined(DEVICE_HANDHELD) ++ #define SCREEN_WIDTH 1280 ++ #define SCREEN_HEIGHT 720 ++ #define HARDWARE_ACCELERATION 0 ++ #define FULLSCREEN 1 ++ #define FONT_NAME "NotoSans-Regular.ttf" ++ #define FONT_NAME_MONO "NotoSansMono-Regular.ttf" ++ #define FONT_SIZE 20 ++ #define LINE_HEIGHT 32 ++ #define ICON_SIZE 24 ++ #define MARGIN_X 10 ++ #define KEYBOARD_MARGIN 8 ++ #define KEYBOARD_KEY_SPACING 4 ++ #define KEYBOARD_SYMBOL_SIZE 24 ++ + // Paramaters for desktop PC + #else + #define SCREEN_WIDTH 640 +@@ -124,7 +139,26 @@ + #define VIEWER_SCROLL_SPEED 20 + + // Button events +-#if defined(DEVICE_RG351P) ++#if defined(DEVICE_HANDHELD) ++ #define BUTTON_PRESSED_UP event.type == SDL_JOYHATMOTION && event.jhat.value == SDL_HAT_UP ++ #define BUTTON_PRESSED_DOWN event.type == SDL_JOYHATMOTION && event.jhat.value == SDL_HAT_DOWN ++ #define BUTTON_PRESSED_LEFT event.type == SDL_JOYHATMOTION && event.jhat.value == SDL_HAT_LEFT ++ #define BUTTON_PRESSED_RIGHT event.type == SDL_JOYHATMOTION && event.jhat.value == SDL_HAT_RIGHT ++ #define BUTTON_PRESSED_PAGEUP event.type == SDL_JOYBUTTONDOWN && (event.jbutton.button == 4 || event.jbutton.button == 6) ++ #define BUTTON_PRESSED_PAGEDOWN event.type == SDL_JOYBUTTONDOWN && (event.jbutton.button == 5 || event.jbutton.button == 7) ++ #define BUTTON_PRESSED_VALIDATE event.type == SDL_JOYBUTTONDOWN && event.jbutton.button == 1 ++ #define BUTTON_PRESSED_BACK event.type == SDL_JOYBUTTONDOWN && event.jbutton.button == 0 ++ #define BUTTON_PRESSED_MENU_CONTEXT event.type == SDL_JOYBUTTONDOWN && event.jbutton.button == 3 ++ #define BUTTON_PRESSED_SELECT event.type == SDL_JOYBUTTONDOWN && event.jbutton.button == 2 ++ #define BUTTON_HELD_UP SDL_JoystickGetButton(g_joystick, 13) ++ #define BUTTON_HELD_DOWN SDL_JoystickGetButton(g_joystick, 14) ++ #define BUTTON_HELD_LEFT SDL_JoystickGetButton(g_joystick, 15) ++ #define BUTTON_HELD_RIGHT SDL_JoystickGetButton(g_joystick, 16) ++ #define BUTTON_HELD_PAGEUP SDL_JoystickGetButton(g_joystick, 4) || SDL_JoystickGetButton(g_joystick, 6) ++ #define BUTTON_HELD_PAGEDOWN SDL_JoystickGetButton(g_joystick, 5) || SDL_JoystickGetButton(g_joystick, 7) ++ #define BUTTON_HELD_SELECT SDL_JoystickGetButton(g_joystick, 3) ++ #define BUTTON_HELD_VALIDATE SDL_JoystickGetButton(g_joystick, 1) ++#elif defined(DEVICE_RG351P) + #define BUTTON_PRESSED_UP event.type == SDL_JOYHATMOTION && event.jhat.value == SDL_HAT_UP + #define BUTTON_PRESSED_DOWN event.type == SDL_JOYHATMOTION && event.jhat.value == SDL_HAT_DOWN + #define BUTTON_PRESSED_LEFT event.type == SDL_JOYHATMOTION && event.jhat.value == SDL_HAT_LEFT diff --git a/packages/games/tools/portmaster/package.mk b/packages/games/tools/portmaster/package.mk index 57ba60a8e..c5a3c3dc3 100644 --- a/packages/games/tools/portmaster/package.mk +++ b/packages/games/tools/portmaster/package.mk @@ -4,7 +4,7 @@ PKG_NAME="portmaster" PKG_VERSION="" -PKG_ARCH="any" +PKG_ARCH="aarch64" PKG_URL="https://github.com/christianhaitian/PortMaster/raw/main/PortMaster.zip" PKG_PRIORITY="optional" PKG_SECTION="tools" diff --git a/packages/games/tools/rinputer/package.mk b/packages/games/tools/rinputer/package.mk new file mode 100644 index 000000000..c486f45c3 --- /dev/null +++ b/packages/games/tools/rinputer/package.mk @@ -0,0 +1,29 @@ +# SPDX-License-Identifier: Apache-2.0 +# Copyright (C) 2020-present Fewtarius + +PKG_NAME="rinputer" +PKG_VERSION="74033c3" +PKG_LICENSE="BSD 4-Clause" +PKG_SITE="https://github.com/R-ARM/Rinputer3" +PKG_URL="${PKG_SITE}.git" +PKG_DEPENDS_TARGET="toolchain rust cargo" +PKG_LONGDESC="Rinputer3, this time in Rust." +PKG_TOOLCHAIN="manual" + +make_target() { + cargo build --release +} + +makeinstall_target() { + mkdir -p ${INSTALL}/usr/bin + cp target/release/rinputer3 ${INSTALL}/usr/bin + chmod 0755 ${INSTALL}/usr/bin/* + mkdir -p ${INSTALL}/etc + cp rinputer3.ron ${INSTALL}/etc/ + mkdir -p ${INSTALL}/usr/lib/system.d + cp Rinputer3.service ${INSTALL}/usr/lib/system.d/ +} + +post_install() { + enable_service Rinputer3.service +} diff --git a/packages/games/tools/rinputer2/package.mk b/packages/games/tools/rinputer2/package.mk new file mode 100644 index 000000000..7479c8f6e --- /dev/null +++ b/packages/games/tools/rinputer2/package.mk @@ -0,0 +1,21 @@ +# Copyright (C) 2022-present Brooksytech (https://github.com/brooksytech) + +PKG_NAME="rinputer2" +PKG_VERSION="b1fc0fb69047011d99b54029be500280d33a8027" +PKG_ARCH="aarch64" +PKG_LICENSE="GPLv3" +PKG_SITE="https://github.com/R-ARM/rinputer2" +PKG_URL="$PKG_SITE.git" +PKG_DEPENDS_TARGET="toolchain" +PKG_TOOLCHAIN="make" +GET_HANDLER_SUPPORT="git" + +makeinstall_target() { + mkdir -p $INSTALL/usr/bin + cp rinputer2 ${INSTALL}/usr/bin + chmod 0755 ${INSTALL}/usr/bin/rinputer2 +} + +post_install() { + enable_service Rinputer2.service +} diff --git a/packages/games/tools/rinputer2/patches/000-fix-buttons.patch b/packages/games/tools/rinputer2/patches/000-fix-buttons.patch new file mode 100644 index 000000000..c027c4ec0 --- /dev/null +++ b/packages/games/tools/rinputer2/patches/000-fix-buttons.patch @@ -0,0 +1,40 @@ +diff --git a/main.c b/main.c +index 8efafc6..6ec8d84 100644 +--- a/main.c ++++ b/main.c +@@ -316,10 +316,10 @@ int main(void) + + ioctl(outfd, UI_SET_EVBIT, EV_KEY); + +- //ioctl(outfd, UI_SET_KEYBIT, BTN_DPAD_UP); // dpad up +- //ioctl(outfd, UI_SET_KEYBIT, BTN_DPAD_DOWN); // dpad down +- //ioctl(outfd, UI_SET_KEYBIT, BTN_DPAD_LEFT); // dpad left +- //ioctl(outfd, UI_SET_KEYBIT, BTN_DPAD_RIGHT); // dpad right ++ ioctl(outfd, UI_SET_KEYBIT, BTN_DPAD_UP); // dpad up ++ ioctl(outfd, UI_SET_KEYBIT, BTN_DPAD_DOWN); // dpad down ++ ioctl(outfd, UI_SET_KEYBIT, BTN_DPAD_LEFT); // dpad left ++ ioctl(outfd, UI_SET_KEYBIT, BTN_DPAD_RIGHT); // dpad right + + ioctl(outfd, UI_SET_KEYBIT, BTN_NORTH); // x + ioctl(outfd, UI_SET_KEYBIT, BTN_SOUTH); // b +@@ -332,6 +332,9 @@ int main(void) + ioctl(outfd, UI_SET_KEYBIT, BTN_TR2); // L2 + ioctl(outfd, UI_SET_KEYBIT, BTN_TL2); // R2 + ++ ioctl(outfd, UI_SET_KEYBIT, BTN_THUMBL); // L3 ++ ioctl(outfd, UI_SET_KEYBIT, BTN_THUMBR); // R3 ++ + ioctl(outfd, UI_SET_KEYBIT, BTN_SELECT); + ioctl(outfd, UI_SET_KEYBIT, BTN_START); + +@@ -350,8 +353,8 @@ int main(void) + setup_abs(outfd, ABS_RZ); + + // dpad +- setup_abs(outfd, ABS_HAT0X); +- setup_abs(outfd, ABS_HAT0Y); ++ //setup_abs(outfd, ABS_HAT0X); ++ //setup_abs(outfd, ABS_HAT0Y); + + // maybe we should pretend to be xbox gamepad? + memset(&usetup, 0, sizeof(usetup)); diff --git a/packages/games/tools/rinputer2/system.d/Rinputer2.service b/packages/games/tools/rinputer2/system.d/Rinputer2.service new file mode 100644 index 000000000..831f152d0 --- /dev/null +++ b/packages/games/tools/rinputer2/system.d/Rinputer2.service @@ -0,0 +1,9 @@ +[Unit] +Description=Ragnarok Input Daemon + +[Service] +Type=simple +ExecStart=/usr/bin/rinputer2 + +[Install] +WantedBy=multi-user.target diff --git a/packages/games/tools/wolfscan/package.mk b/packages/games/tools/wolfscan/package.mk new file mode 100644 index 000000000..a8a0d3691 --- /dev/null +++ b/packages/games/tools/wolfscan/package.mk @@ -0,0 +1,22 @@ +# SPDX-License-Identifier: GPL-3.0-or-later +# Copyright (C) 2022-present travis134 + +PKG_NAME="wolfscan" +PKG_VERSION="0b10a19b3d10b1250a0f41b8db797e3ddf856ccd" +PKG_ARCH="any" +PKG_SITE="https://github.com/travis134/wolfscan" +PKG_URL="${PKG_SITE}.git" +PKG_PRIORITY="optional" +PKG_SECTION="tools" +PKG_SHORTDESC="Creates .ecwolf files based on user selection of WAD and PK3 files." +PKG_TOOLCHAIN="manual" + +makeinstall_target() { + mkdir -p ${INSTALL}/usr/share + cp -r ${PKG_BUILD}/wolfscan ${INSTALL}/usr/share + cp "${PKG_BUILD}/_Scan Wolfenstein 3D Games.sh" ${INSTALL}/usr/share/wolfscan + chmod 0755 ${INSTALL}/usr/share/wolfscan "${INSTALL}/usr/share/wolfscan/_Scan Wolfenstein 3D Games.sh" + + mkdir -p ${INSTALL}/usr/lib/autostart/common + cp ${PKG_DIR}/sources/autostart/common/* ${INSTALL}/usr/lib/autostart/common +} diff --git a/packages/games/tools/wolfscan/sources/autostart/common/011-wolfscan b/packages/games/tools/wolfscan/sources/autostart/common/011-wolfscan new file mode 100755 index 000000000..735417e05 --- /dev/null +++ b/packages/games/tools/wolfscan/sources/autostart/common/011-wolfscan @@ -0,0 +1,11 @@ +#!/bin/bash + +# SPDX-License-Identifier: GPL-3.0-or-later +# Copyright (C) 2022-present travis134 + +#If wolfscan does not exist copy wolfscan folder to roms/ecwolf +if [ ! -e "/storage/roms/ecwolf/wolfscan" ]; then + cp -r /usr/share/wolfscan /storage/roms/ecwolf + chmod +x /storage/roms/ecwolf/wolfscan -R + mv "/storage/roms/ecwolf/wolfscan/_Scan Wolfenstein 3D Games.sh" "/storage/roms/ecwolf/_Scan Wolfenstein 3D Games.sh" +fi diff --git a/packages/graphics/SDL/package.mk b/packages/graphics/SDL/package.mk index d8cfc9c6b..ab9f758d5 100644 --- a/packages/graphics/SDL/package.mk +++ b/packages/graphics/SDL/package.mk @@ -77,20 +77,6 @@ PKG_CONFIGURE_OPTS_TARGET="--enable-shared \ --disable-render-d3d \ --enable-arm-neon" - -PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --enable-video --disable-video-x11 --disable-x11-shared" -PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --disable-video-x11-xcursor --disable-video-x11-xinerama" -PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --disable-video-x11-xinput --disable-video-x11-xrandr" -PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --disable-video-x11-scrnsaver --disable-video-x11-xshape" -PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --disable-video-x11-vm --without-x" - -PKG_CONFIGURE_OPTS_HOST="$PKG_CONFIGURE_OPTS_TARGET --disable-video --disable-video-x11 --disable-x11-shared" -PKG_CONFIGURE_OPTS_HOST="$PKG_CONFIGURE_OPTS_TARGET --disable-video-x11-xcursor --disable-video-x11-xinerama" -PKG_CONFIGURE_OPTS_HOST="$PKG_CONFIGURE_OPTS_TARGET --disable-video-x11-xinput --disable-video-x11-xrandr" -PKG_CONFIGURE_OPTS_HOST="$PKG_CONFIGURE_OPTS_TARGET --disable-video-x11-scrnsaver --disable-video-x11-xshape" -PKG_CONFIGURE_OPTS_HOST="$PKG_CONFIGURE_OPTS_TARGET --disable-video-x11-vm --without-x" - - if [ ! "$OPENGL" = "no" ]; then PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET $OPENGL glu" @@ -99,6 +85,11 @@ else PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --disable-video-opengl --enable-video-opengles --enable-video-fbcon" fi + if [ "${DISPLAYSERVER}" = "wl" ]; then + PKG_DEPENDS_TARGET+=" wayland ${WINDOWMANAGER}" + PKG_CONFIGURE_OPTS_TARGET+=" --enable-video-wayland --enable-video-wayland-qt-touch --enable-wayland-shared" + fi + if [ "$PULSEAUDIO_SUPPORT" = yes ]; then PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET pulseaudio" diff --git a/packages/graphics/SDL2/package.mk b/packages/graphics/SDL2/package.mk index 6d7d60746..7a37f141c 100644 --- a/packages/graphics/SDL2/package.mk +++ b/packages/graphics/SDL2/package.mk @@ -14,23 +14,53 @@ PKG_DEPENDS_HOST="toolchain:host distutilscross:host" PKG_PATCH_DIRS+="${DEVICE}" if [ ! "${OPENGL}" = "no" ]; then - PKG_DEPENDS_TARGET+=" ${OPENGL} glu libglvnd" + PKG_DEPENDS_TARGET+=" ${OPENGL} glu" + PKG_CMAKE_OPTS_TARGET+=" -DSDL_OPENGL=ON \ + -DVIDEO_OPENGL=ON \ + -DVIDEO_KMSDRM=OFF" +else + PKG_CMAKE_OPTS_TARGET+=" -DSDL_OPENGL=OFF \ + -DVIDEO_OPENGL=OFF \ + -DVIDEO_KMSDRM=OFF" fi -if [ "${OPENGLES_SUPPORT}" = yes ]; then +if [ "${OPENGLES_SUPPORT}" = "yes" ]; then PKG_DEPENDS_TARGET+=" ${OPENGLES}" - PKG_CMAKE_OPTS_TARGET+="-DVIDEO_OPENGLES=ON \ - -DVIDEO_VULKAN=OFF \ - -DVIDEO_X11=OFF" + PKG_CMAKE_OPTS_TARGET+=" -DSDL_OPENGLES=ON \ + -DVIDEO_OPENGLES=ON \ + -DVIDEO_KMSDRM=ON" +else + PKG_CMAKE_OPTS_TARGET+=" -DSDL_OPENGLES=OFF \ + -DVIDEO_OPENGLES=OFF \ + -DVIDEO_KMSDRM=OFF" fi -if [ "${ARCH}" = "x86_64" ] -then +if [ "${VULKAN_SUPPORT}" = "yes" ]; then PKG_DEPENDS_TARGET+=" vulkan-loader vulkan-headers" - PKG_CMAKE_OPTS_TARGET+=" -DVIDEO_VULKAN=ON \ - -DVIDEO_X11=ON" + PKG_CMAKE_OPTS_TARGET+=" -DSDL_VULKAN=ON \ + -DVIDEO_OPENGL=OFF \ + -DVIDEO_VULKAN=ON" +else + PKG_CMAKE_OPTS_TARGET+=" -DSDL_VULKAN=OFF \ + -DVIDEO_VULKAN=OFF" fi +if [ "${DISPLAYSERVER}" = "wl" ] +then + PKG_DEPENDS_TARGET+=" wayland ${WINDOWMANAGER}" + PKG_CMAKE_OPTS_TARGET+=" -DSDL_WAYLAND=ON \ + -DVIDEO_WAYLAND=ON \ + -DVIDEO_WAYLAND_QT_TOUCH=OFF \ + -DWAYLAND_SHARED=ON \ + -DVIDEO_X11=OFF \ + -DSDL_X11=OFF" +else + PKG_CMAKE_OPTS_TARGET+=" -DVIDEO_WAYLAND=OFF \ + -DVIDEO_WAYLAND_QT_TOUCH=ON \ + -DWAYLAND_SHARED=OFF \ + -DVIDEO_X11=OFF \ + -DSDL_X11=OFF" +fi case ${PROJECT} in Rockchip) @@ -67,9 +97,7 @@ pre_configure_target(){ -DSNDIO=OFF \ -DDISKAUDIO=OFF \ -DDUMMYAUDIO=OFF \ - -DVIDEO_WAYLAND=OFF \ - -DVIDEO_WAYLAND_QT_TOUCH=ON \ - -DWAYLAND_SHARED=OFF \ + -DVIDEO_X11=OFF \ -DVIDEO_MIR=OFF \ -DMIR_SHARED=OFF \ -DVIDEO_COCOA=OFF \ @@ -87,7 +115,6 @@ pre_configure_target(){ -DCLOCK_GETTIME=OFF \ -DRPATH=OFF \ -DRENDER_D3D=OFF \ - -DVIDEO_KMSDRM=ON \ -DPULSEAUDIO=ON" } diff --git a/packages/graphics/SDL2/patches/RG351P b/packages/graphics/SDL2/patches/RG351P deleted file mode 120000 index 50fc9920d..000000000 --- a/packages/graphics/SDL2/patches/RG351P +++ /dev/null @@ -1 +0,0 @@ -RG552 \ No newline at end of file diff --git a/packages/graphics/SDL2/patches/RG552/0005-SDL-2.0.20.odroidgoa-support.patch b/packages/graphics/SDL2/patches/RG351P/0005-SDL-2.0.20.odroidgoa-support.patch similarity index 100% rename from packages/graphics/SDL2/patches/RG552/0005-SDL-2.0.20.odroidgoa-support.patch rename to packages/graphics/SDL2/patches/RG351P/0005-SDL-2.0.20.odroidgoa-support.patch diff --git a/packages/graphics/SDL2/patches/RG552/0006-KMSDRM-Also-rotate-the-cursor.patch b/packages/graphics/SDL2/patches/RG351P/0006-KMSDRM-Also-rotate-the-cursor.patch similarity index 100% rename from packages/graphics/SDL2/patches/RG552/0006-KMSDRM-Also-rotate-the-cursor.patch rename to packages/graphics/SDL2/patches/RG351P/0006-KMSDRM-Also-rotate-the-cursor.patch diff --git a/packages/graphics/cairo/package.mk b/packages/graphics/cairo/package.mk index 92b2742bd..7490d81b5 100644 --- a/packages/graphics/cairo/package.mk +++ b/packages/graphics/cairo/package.mk @@ -2,11 +2,10 @@ # Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) PKG_NAME="cairo" -PKG_VERSION="1.14.10" -PKG_SHA256="7e87878658f2c9951a14fc64114d4958c0e65ac47530b8ac3078b2ce41b66a09" +PKG_VERSION="1.17.4" PKG_LICENSE="LGPL" PKG_SITE="http://cairographics.org/" -PKG_URL="http://cairographics.org/releases/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_URL="https://www.cairographics.org/snapshots/${PKG_NAME}-${PKG_VERSION}.tar.xz" PKG_DEPENDS_TARGET="toolchain zlib freetype fontconfig glib libpng pixman" PKG_LONGDESC="Cairo is a vector graphics library with cross-device output support." PKG_TOOLCHAIN="configure" # ToDo @@ -15,14 +14,14 @@ if [ "$OPENGL" != "no" ]; then PKG_DEPENDS_TARGET+=" $OPENGL" fi -if [ "$OPENGLES" != "no" ]; then - PKG_DEPENDS_TARGET+=" $OPENGLES" +if [ "${OPENGLES}" != "no" ]; then + PKG_DEPENDS_TARGET+=" ${OPENGLES}" fi -if [ "$DISPLAYSERVER" = "x11" ]; then - PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libXrender libX11 mesa" - PKG_CAIRO_CONFIG="--x-includes="$SYSROOT_PREFIX/usr/include" \ - --x-libraries="$SYSROOT_PREFIX/usr/lib" \ +if [ "${DISPLAYSERVER}" = "x11" ]; then + PKG_DEPENDS_TARGET="${PKG_DEPENDS_TARGET} libXrender libX11 mesa" + PKG_CAIRO_CONFIG="--x-includes="${SYSROOT_PREFIX}/usr/include" \ + --x-libraries="${SYSROOT_PREFIX}/usr/lib" \ --enable-xlib \ --enable-xlib-xrender \ --enable-gl \ @@ -31,14 +30,20 @@ if [ "$DISPLAYSERVER" = "x11" ]; then --disable-egl \ --with-x" -elif [ "$DISPLAYSERVER" = "weston" ]; then - PKG_CAIRO_CONFIG="--disable-xlib \ - --disable-xlib-xrender \ +elif [ "${DISPLAYSERVER}" = "wl" ]; then + PKG_DEPENDS_TARGET="${PKG_DEPENDS_TARGET} mesa libglvnd libXrender libX11" + PKG_CAIRO_CONFIG="--x-includes="${SYSROOT_PREFIX}/usr/include" \ + --x-libraries="${SYSROOT_PREFIX}/usr/lib" \ + --enable-xlib \ + --enable-xlib-xrender \ --disable-gl \ --disable-glx \ --enable-glesv2 \ --enable-egl \ - --without-x" + --enable-xcb \ + --enable-xlib-xcb \ + --enable-xcb-shm \ + --with-x" else PKG_CAIRO_CONFIG="--disable-xlib \ --disable-xlib-xrender \ @@ -46,6 +51,9 @@ else --disable-glx \ --disable-glesv2 \ --disable-egl \ + --disable-xcb \ + --disable-xlib-xcb \ + --disable-xcb-shm \ --without-x" fi @@ -58,9 +66,6 @@ PKG_CONFIGURE_OPTS_TARGET="$PKG_CAIRO_CONFIG \ --enable-atomic \ --disable-gcov \ --disable-valgrind \ - --disable-xcb \ - --disable-xlib-xcb \ - --disable-xcb-shm \ --disable-qt \ --disable-quartz \ --disable-quartz-font \ diff --git a/packages/graphics/gdk-pixbuf/package.mk b/packages/graphics/gdk-pixbuf/package.mk new file mode 100644 index 000000000..11643b89f --- /dev/null +++ b/packages/graphics/gdk-pixbuf/package.mk @@ -0,0 +1,32 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="gdk-pixbuf" +PKG_VERSION="2.42.8" +PKG_SHA256="84acea3acb2411b29134b32015a5b1aaa62844b19c4b1ef8b8971c6b0759f4c6" +PKG_LICENSE="OSS" +PKG_SITE="http://www.gtk.org/" +PKG_URL="https://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/${PKG_VERSION:0:4}/gdk-pixbuf-${PKG_VERSION}.tar.xz" +PKG_DEPENDS_TARGET="toolchain glib libjpeg-turbo libpng jasper shared-mime-info tiff" +PKG_DEPENDS_CONFIG="shared-mime-info" +PKG_LONGDESC="GdkPixbuf is a a GNOME library for image loading and manipulation." + +configure_package() { + if [ "${DISPLAYSERVER}" = "wl" ]; then + PKG_DEPENDS_TARGET+=" libX11 wayland" + fi +} + +pre_configure_target() { + PKG_MESON_OPTS_TARGET="-Dgtk_doc=false \ + -Ddocs=false \ + -Dintrospection=disabled \ + -Dman=false \ + -Drelocatable=false \ + -Dinstalled_tests=false" + + if [ "${DISPLAYSERVER}" != "wl" ]; then + PKG_MESON_OPTS_TARGET+=" -Dbuiltin_loaders=all" + fi +} diff --git a/packages/graphics/glew/package.mk b/packages/graphics/glew/package.mk index 3a23c8c17..dd82415e3 100644 --- a/packages/graphics/glew/package.mk +++ b/packages/graphics/glew/package.mk @@ -1,29 +1,29 @@ # SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) -# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv) +# Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech) PKG_NAME="glew" PKG_VERSION="2.2.0" -PKG_SHA256="d4fc82893cfb00109578d0a1a2337fb8ca335b3ceccf97b97e5cc7f08e4353e1" PKG_LICENSE="BSD" PKG_SITE="http://glew.sourceforge.net/" PKG_URL="${SOURCEFORGE_SRC}/glew/glew/${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}.tgz" PKG_DEPENDS_TARGET="toolchain libX11" -PKG_LONGDESC="A cross-platform C/C++ extension loading library." +PKG_SHORTDESC="GLEW - The OpenGL Extension Wrangler Library" +PKG_TOOLCHAIN="cmake" -make_target() { - make CC="${CC}" LD="${CC}" AR="${AR}" \ - POPT="${CFLAGS}" LDFLAGS.EXTRA="${LDFLAGS}" \ - GLEW_DEST="/usr" LIBDIR="/usr/lib" lib/libGLEW.a glew.pc +pre_configure() { + PKG_CMAKE_SCRIPT=${PKG_BUILD}/build/cmake/CMakeLists.txt } +pre_configure_target() { + PKG_CMAKE_OPTS_TARGET+=" -DBUILD_UTILS=OFF \ + -DGLEW_REGAL=OFF \ + -DGLEW_OSMESA=OFF \ + -DGLEW_X11=ON \ + -DGLEW_EGL=ON \ + -DBUILD_SHARED_LIBS=ON" + } + makeinstall_target() { - mkdir -p ${SYSROOT_PREFIX}/usr/lib - cp -PR lib/libGLEW.a ${SYSROOT_PREFIX}/usr/lib - - mkdir -p ${SYSROOT_PREFIX}/usr/lib/pkgconfig - cp -PR glew.pc ${SYSROOT_PREFIX}/usr/lib/pkgconfig - - mkdir -p ${SYSROOT_PREFIX}/usr/include - cp -PR include/GL ${SYSROOT_PREFIX}/usr/include + mkdir -p $INSTALL/usr/lib/ + cp $PKG_BUILD/lib/libGLEW* $INSTALL/usr/lib/ } diff --git a/packages/graphics/glfw/package.mk b/packages/graphics/glfw/package.mk index 10bcc3440..0d70a0e06 100644 --- a/packages/graphics/glfw/package.mk +++ b/packages/graphics/glfw/package.mk @@ -1,24 +1,41 @@ # SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech) PKG_NAME="glfw" -PKG_VERSION="2.7.9" -PKG_SHA256="b7276dcadc85a07077834d1043f11ffd6a3a379647bb94361b4abc3ffca75e7d" -PKG_ARCH="x86_64" -PKG_LICENSE="BSD" -PKG_SITE="http://glfw.org" -PKG_URL="$SOURCEFORGE_SRC/glfw/$PKG_NAME-$PKG_VERSION.tar.gz" -PKG_DEPENDS_TARGET="toolchain mesa glu" -PKG_LONGDESC="provides a simple API for creating windows, contexts and surfaces, receiving input and events" +PKG_VERSION="6b57e08bb0078c9834889eab871bac2368198c15" +PKG_ARCH="any" +PKG_LICENSE="zlib" +PKG_DEPENDS_TARGET="toolchain expat libdrm libxkbcommon libXrandr libXinerama libXcursor libXi Mako:host " +PKG_SITE="https://github.com/glfw/glfw" +PKG_URL="$PKG_SITE/archive/$PKG_VERSION.tar.gz" +PKG_SHORTDESC="GLFW graphics library for wayland & x11" +PKG_TOOLCHAIN="cmake" -if [ "$OPENGL" = "no" ] ; then - exit 0 +pre_configure_target() { + PKG_CMAKE_OPTS_TARGET+=" -DBUILD_SHARED_LIBS=ON \ + -DGLFW_BUILD_DOCS=OFF \ + -DGLFW_BUILD_EXAMPLES=OFF \ + -DGLFW_BUILD_TESTS=OFF \ + -DGLFW_INSTALL=OFF" + } + +if [ "${DISPLAYSERVER}" = "x11" ]; then + PKG_DEPENDS_TARGET+=" xorgproto libXext libXdamage libXfixes libXxf86vm libxcb libX11 libxshmfence libXrandr libglvnd" + PKG_CMAKE_OPTS_TARGET+=" -DGLFW_BUILD_X11=ON" fi -make_target() { - make x11 PREFIX=$SYSROOT_PREFIX/usr -} +if [ "${DISPLAYSERVER}" = "wl" ]; then + PKG_DEPENDS_TARGET+=" wayland wayland-protocols libglvnd" + PKG_CMAKE_OPTS_TARGET+=" -DGLFW_BUILD_WAYLAND=ON" +fi + +case ${ARCH} in + arm) + PKG_CMAKE_OPTS_TARGET+=" -DGLFW_BUILD_X11=OFF" + ;; +esac makeinstall_target() { - make x11-install PREFIX=$SYSROOT_PREFIX/usr + mkdir -p $INSTALL/usr/lib/ + cp $PKG_BUILD/.$TARGET_NAME/src/libglfw* $INSTALL/usr/lib/ } diff --git a/packages/graphics/glu/package.mk b/packages/graphics/glu/package.mk index 8b1a05095..8884c3efb 100644 --- a/packages/graphics/glu/package.mk +++ b/packages/graphics/glu/package.mk @@ -8,8 +8,6 @@ PKG_SHA256="6e7280ff585c6a1d9dfcdf2fca489251634b3377bfc33c29e4002466a38d02d4" PKG_LICENSE="OSS" PKG_SITE="https://gitlab.freedesktop.org/mesa/glu/" PKG_URL="https://mesa.freedesktop.org/archive/glu/glu-${PKG_VERSION}.tar.xz" -PKG_DEPENDS_TARGET="toolchain libglvnd mesa" +PKG_DEPENDS_TARGET="toolchain ${OPENGL}" PKG_NEED_UNPACK="$(get_pkg_directory mesa)" PKG_LONGDESC="libglu is the The OpenGL utility library" - -PKG_MESON_OPTS_TARGET="-Dgl_provider=gl" diff --git a/packages/graphics/gtk3/files/settings.ini b/packages/graphics/gtk3/files/settings.ini new file mode 100644 index 000000000..c6bdb7fa4 --- /dev/null +++ b/packages/graphics/gtk3/files/settings.ini @@ -0,0 +1,4 @@ +[Settings] +gtk-icon-theme-name = Adwaita +gtk-theme-name = Adwaita +gtk-font-name = Liberation Sans 12 diff --git a/packages/graphics/gtk3/package.mk b/packages/graphics/gtk3/package.mk new file mode 100644 index 000000000..d141974e4 --- /dev/null +++ b/packages/graphics/gtk3/package.mk @@ -0,0 +1,21 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2017 Escalade +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="gtk3" +PKG_VERSION="3.24.34" +PKG_SHA256="dbc69f90ddc821b8d1441f00374dc1da4323a2eafa9078e61edbe5eeefa852ec" +PKG_LICENSE="LGPL" +PKG_SITE="http://www.gtk.org/" +PKG_URL="https://ftp.gnome.org/pub/gnome/sources/gtk+/${PKG_VERSION:0:4}/gtk+-${PKG_VERSION}.tar.xz" +PKG_DEPENDS_TARGET="toolchain at-spi2-atk atk cairo gdk-pixbuf glib libX11 libXi libXrandr libepoxy pango libxkbcommon wayland wayland-protocols libepoxy libpng tiff libjpeg-turbo libffi" +PKG_DEPENDS_CONFIG="libXft pango gdk-pixbuf shared-mime-info" +PKG_LONGDESC="A library for creating graphical user interfaces for the X Window System." +PKG_BUILD_FLAGS="-sysroot" + +PKG_MESON_OPTS_TARGET=" -Dintrospection=false \ + -Dbroadway_backend=true \ + -Dcolord=yes \ + -Dman=false \ + -Dgtk_doc=false" + diff --git a/packages/graphics/jasper/package.mk b/packages/graphics/jasper/package.mk new file mode 100644 index 000000000..757694e6c --- /dev/null +++ b/packages/graphics/jasper/package.mk @@ -0,0 +1,22 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="jasper" +PKG_VERSION="3.0.6" +PKG_SHA256="c79961bc00158f5b5dc5f5fcfa792fde9bebb024432689d0f9e3f95a097d0ec3" +PKG_LICENSE="OpenSource" +PKG_SITE="http://www.ece.uvic.ca/~mdadams/jasper/" +PKG_URL="https://github.com/jasper-software/jasper/archive/refs/tags/version-${PKG_VERSION}.tar.gz" +PKG_DEPENDS_TARGET="toolchain libjpeg-turbo" +PKG_LONGDESC="A implementation of the ISO/IEC 15444-1 also known as JPEG-2000 standard for image compression." +PKG_BUILD_FLAGS="+pic" + +PKG_CMAKE_OPTS_TARGET="-DJAS_ENABLE_DOC=false \ + -DJAS_ENABLE_PROGRAMS=false \ + -DJAS_ENABLE_SHARED=false \ + -DJAS_STDC_VERSION=201710L" + +pre_configure_target() { + export CFLAGS="${CFLAGS} -std=gnu17" +} diff --git a/packages/graphics/libepoxy/package.mk b/packages/graphics/libepoxy/package.mk index b01dcfe41..67bf09988 100644 --- a/packages/graphics/libepoxy/package.mk +++ b/packages/graphics/libepoxy/package.mk @@ -13,23 +13,24 @@ PKG_VERSION="1.5.3" PKG_SHA256="002958c5528321edd53440235d3c44e71b5b1e09b9177e8daf677450b6c4433d" PKG_LICENSE="GPL" PKG_SITE="https://github.com/anholt/libepoxy" -PKG_URL="https://github.com/anholt/libepoxy/releases/download/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_URL="https://github.com/anholt/libepoxy/releases/download/${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}.tar.xz" PKG_DEPENDS_TARGET="toolchain" PKG_LONGDESC="Epoxy is a library for handling OpenGL function pointer management for you." PKG_TOOLCHAIN="autotools" -if [ "$OPENGL" != "no" ]; then - PKG_DEPENDS_TARGET+=" $OPENGL" +if [ "${OPENGL}" != "no" ]; then + PKG_DEPENDS_TARGET+=" ${OPENGL}" fi -if [ "$OPENGLES" != "no" ]; then - PKG_DEPENDS_TARGET+=" $OPENGLES" +if [ "${OPENGLES}" != "no" ]; then + PKG_DEPENDS_TARGET+=" ${OPENGLES}" fi -if [ "$DISPLAYSERVER" != "x11" ]; then +if [ "${DISPLAYSERVER}" != "x11" ] && \ + [ "${DISPLAYSERVER}" != "wl" ]; then PKG_CONFIGURE_OPTS_TARGET="--disable-glx" fi -if [ "$PROJECT" == "Amlogic" -o "$PROJECT" == "Amlogic-ng" ]; then +if [ "${PROJECT}" == "Amlogic" -o "${PROJECT}" == "Amlogic-ng" ]; then PKG_CONFIGURE_OPTS_TARGET+=" --disable-egl" fi diff --git a/packages/graphics/libglvnd/package.mk b/packages/graphics/libglvnd/package.mk index a275c91b9..7255cb4dc 100644 --- a/packages/graphics/libglvnd/package.mk +++ b/packages/graphics/libglvnd/package.mk @@ -11,40 +11,23 @@ PKG_DEPENDS_TARGET="toolchain" PKG_LONGDESC="libglvnd is a vendor-neutral dispatch layer for arbitrating OpenGL API calls between multiple vendors." configure_package() { - if [ "${DISPLAYSERVER}" = "x11" ]; then + if [ "${DISPLAYSERVER}" = "x11" ] || \ + [ "${DISPLAYSERVER}" = "wl" ]; then PKG_DEPENDS_TARGET+=" libX11 libXext xorgproto" fi } pre_configure_target(){ - if [ "${OPENGLES_SUPPORT}" = "no" ]; then - PKG_MESON_OPTS_TARGET+=" -Dgles2=false" + if [ ! "${OPENGL}" = "no" ] + then + PKG_MESON_OPTS_TARGET+=" -Degl=true -Dheaders=true" + fi + + if [ ! "${OPENGLES_SUPPORT}" = "no" ] + then + PKG_MESON_OPTS_TARGET+=" -Dgles1=true -Dgles2=true -Dheaders=true" else - PKG_MESON_OPTS_TARGET+=" -Dgles1=true -Dgles2=true" + PKG_MESON_OPTS_TARGET+=" -Dgles2=false" fi } -post_makeinstall_target() { - if [ "${DISPLAYSERVER}" = "x11" ]; then - # Remove old symlinks to libGL.so.1.7.0 (GLVND) - safe_remove ${INSTALL}/usr/lib/libGL.so - safe_remove ${INSTALL}/usr/lib/libGL.so.1 - # Create new symlinks to /var/lib/libGL.so - ln -sf libGL.so.1 ${INSTALL}/usr/lib/libGL.so - ln -sf /var/lib/libGL.so ${INSTALL}/usr/lib/libGL.so.1 - # Create new symlink to libGL.so.1.7.0 - ln -sf libGL.so.1.7.0 ${INSTALL}/usr/lib/libGL_glvnd.so.1 - - # Remove old symlinks to libGLX.so.0.0.0 (GLVND) - safe_remove ${INSTALL}/usr/lib/libGLX.so - safe_remove ${INSTALL}/usr/lib/libGLX.so.0 - # Create new symlinks to /var/lib/libGLX.so - ln -sf libGLX.so.0 ${INSTALL}/usr/lib/libGLX.so - ln -sf /var/lib/libGLX.so ${INSTALL}/usr/lib/libGLX.so.0 - # Create new symlink to libGLX.so.0.0.0 - ln -sf libGLX.so.0.0.0 ${INSTALL}/usr/lib/libGLX_glvnd.so.0 - - # indirect rendering - ln -sf /var/lib/libGLX_indirect.so.0 ${INSTALL}/usr/lib/libGLX_indirect.so.0 - fi -} diff --git a/packages/graphics/mesa/package.mk b/packages/graphics/mesa/package.mk index c84859d1e..9f21e63b5 100644 --- a/packages/graphics/mesa/package.mk +++ b/packages/graphics/mesa/package.mk @@ -3,11 +3,10 @@ # Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="mesa" -PKG_VERSION="22.1.2" -PKG_SHA256="0971226b4a6a3d10cfc255736b33e4017e18c14c9db1e53863ac1f8ae0deb9ea" +PKG_VERSION="d5394296becfc97bc992c82d6f5d013b35b5275a" PKG_LICENSE="OSS" -PKG_SITE="http://www.mesa3d.org/" -PKG_URL="https://mesa.freedesktop.org/archive/mesa-${PKG_VERSION}.tar.xz" +PKG_SITE="https://gitlab.freedesktop.org/mesa/mesa" +PKG_URL="${PKG_SITE}.git" PKG_DEPENDS_TARGET="toolchain expat libdrm Mako:host" PKG_LONGDESC="Mesa is a 3-D graphics library with an API." PKG_TOOLCHAIN="meson" @@ -26,7 +25,6 @@ PKG_MESON_OPTS_TARGET="-Ddri-drivers= \ -Dopengl=true \ -Dgbm=enabled \ -Degl=enabled \ - -Dvalgrind=disabled \ -Dlibunwind=disabled \ -Dlmsensors=disabled \ -Dbuild-tests=false \ @@ -34,12 +32,14 @@ PKG_MESON_OPTS_TARGET="-Ddri-drivers= \ -Dosmesa=false" if [ "${DISPLAYSERVER}" = "x11" ]; then - PKG_DEPENDS_TARGET+=" xorgproto libXext libXdamage libXfixes libXxf86vm libxcb libX11 libxshmfence libXrandr libglvnd" + PKG_DEPENDS_TARGET+=" xorgproto libXext libXdamage libXfixes libXxf86vm libxcb libX11 libxshmfence libXrandr libglvnd glfw glew" export X11_INCLUDES= PKG_MESON_OPTS_TARGET+=" -Dplatforms=x11 -Ddri3=enabled -Dglx=dri -Dglvnd=true" elif [ "${DISPLAYSERVER}" = "wl" ]; then - PKG_DEPENDS_TARGET+=" wayland wayland-protocols libglvnd" - PKG_MESON_OPTS_TARGET+=" -Dplatforms=wayland -Ddri3=disabled -Dglx=disabled -Dglvnd=true" + PKG_DEPENDS_TARGET+=" wayland wayland-protocols libglvnd glfw" + PKG_MESON_OPTS_TARGET+=" -Dplatforms=wayland,x11 -Ddri3=enabled -Dglx=dri -Dglvnd=true" + PKG_DEPENDS_TARGET+=" xorgproto libXext libXdamage libXfixes libXxf86vm libxcb libX11 libxshmfence libXrandr libglvnd glew" + export X11_INCLUDES= else PKG_MESON_OPTS_TARGET+=" -Dplatforms="" -Ddri3=disabled -Dglx=disabled -Dglvnd=false" fi @@ -72,7 +72,7 @@ else fi if [ "${OPENGLES_SUPPORT}" = "yes" ]; then - PKG_MESON_OPTS_TARGET+=" -Dgles1=disabled -Dgles2=enabled" + PKG_MESON_OPTS_TARGET+=" -Dgles1=enabled -Dgles2=enabled" else PKG_MESON_OPTS_TARGET+=" -Dgles1=disabled -Dgles2=disabled" fi diff --git a/packages/graphics/wxwidgets/package.mk b/packages/graphics/wxwidgets/package.mk new file mode 100644 index 000000000..0f8522e63 --- /dev/null +++ b/packages/graphics/wxwidgets/package.mk @@ -0,0 +1,22 @@ +# SPDX-License-Identifier: Apache-2.0 +# Copyright (C) 2020-present Fewtarius + +PKG_NAME="wxwidgets" +PKG_VERSION="7ad1bffa875f7a38db58b6069ea3ff0c49c211d2" +PKG_LICENSE="wxWindows Library Licence" +PKG_SITE="https://github.com/wxWidgets/wxWidgets" +PKG_URL="${PKG_SITE}.git" +PKG_DEPENDS_TARGET="toolchain zlib libpng libjpeg-turbo gdk-pixbuf gtk3 libaio" +PKG_LONGDESC="wxWidgets is a free and open source cross-platform C++ framework for writing advanced GUI applications using native controls." +PKG_BUILD_FLAGS="+pic" + +pre_configure_target() { + LDFLAGS="${LDFLAGS} -fPIC" + CXXFLAGS="${CXXFLAGS} -fPIC" +} + +post_install() { + cp ${PKG_BUILD}/.${TARGET_NAME}/lib/wx/config/gtk3-unicode-3.1 ${SYSROOT_PREFIX}/usr/bin/wx-config + sed -i 's#^prefix=.*#prefix='${SYSROOT_PREFIX}/usr'#' ${SYSROOT_PREFIX}/usr/bin/wx-config + sed -i 's#^exec_prefix=.*#exec_prefix='${SYSROOT_PREFIX}/usr'#' ${SYSROOT_PREFIX}/usr/bin/wx-config +} diff --git a/packages/jelos/config/system/configs/all/autoconf.cfg b/packages/jelos/config/system/configs/all/autoconf.cfg deleted file mode 100644 index 92edc5548..000000000 --- a/packages/jelos/config/system/configs/all/autoconf.cfg +++ /dev/null @@ -1 +0,0 @@ -8bitdo_hack = "0" diff --git a/packages/jelos/config/system/configs/all/bluetooth.cfg b/packages/jelos/config/system/configs/all/bluetooth.cfg deleted file mode 100644 index 709f97348..000000000 --- a/packages/jelos/config/system/configs/all/bluetooth.cfg +++ /dev/null @@ -1 +0,0 @@ -connect_mode="default" diff --git a/packages/jelos/config/system/configs/system.cfg b/packages/jelos/config/system/configs/system.cfg index 772c89adb..dd0495f6e 100644 --- a/packages/jelos/config/system/configs/system.cfg +++ b/packages/jelos/config/system/configs/system.cfg @@ -57,6 +57,7 @@ cps3.integerscale=1 cps3.rgascale=0 daphne.integerscale=1 daphne.ratio=4/3 +desktop.enabled=0 dreamcast.integerscale=1 dreamcast.cpugovernor=performance dreamcast.ratio=4/3 @@ -72,6 +73,8 @@ fbn.rgascale=0 fds.integerscale=1 fds.ratio=4/3 fds.rgascale=0 +gamecube.cpugovernor=performance +ps2.cpugovernor=performance gamegear.integerscale=1 gbah.ratio=3/2 gba.ratio=3/2 @@ -224,6 +227,8 @@ system.language=en_US system.overclock=off system.cpugovernor=interactive system.timezone=America/New_York +system.automount=1 +fstrim.enabled=0 tg16cd.integerscale=1 tg16cd.ratio=4/3 tg16cd.rgascale=0 diff --git a/packages/jelos/package.mk b/packages/jelos/package.mk index a3f234e03..00b90a950 100644 --- a/packages/jelos/package.mk +++ b/packages/jelos/package.mk @@ -24,7 +24,7 @@ fi PKG_BASEOS="plymouth-lite grep wget libjpeg-turbo util-linux xmlstarlet bluetool gnupg gzip patchelf \ imagemagick terminus-font vim bash pyudev dialog six git dbus-python coreutils miniupnpc \ - nss-mdns avahi alsa-ucm-conf MC fbgrab modules" + nss-mdns avahi alsa-ucm-conf MC fbgrab modules system-utils" PKG_UI="emulationstation es-themes" @@ -32,7 +32,7 @@ PKG_SOFTWARE="" PKG_COMPAT="" -PKG_TOOLS="i2c-tools rclone jslisten evtest textviewer tailscale" +PKG_TOOLS="i2c-tools rclone jslisten evtest tailscale" PKG_MULTIMEDIA="ffmpeg mpv vlc" @@ -41,7 +41,6 @@ PKG_EXPERIMENTAL="" ### Project specific variables case "${PROJECT}" in Rockchip) - PKG_BASEOS+=" system-utils" PKG_EMUS+=" retropie-shaders" PKG_COMPAT+=" lib32" ;; @@ -50,14 +49,6 @@ case "${PROJECT}" in ;; esac -### Device specific variables -case "${DEVICE}" in - RG552|RG503|RG353P|RG351P|RG351V|RG351MP) - PKG_SOFTWARE+=" emulators gamesupport" - PKG_TOOLS+=" 351files" - ;; -esac - if [ ! -z "${BASE_ONLY}" ] then PKG_DEPENDS_TARGET+=" ${PKG_BASEOS} ${PKG_TOOLS} ${PKG_UI}" @@ -154,6 +145,26 @@ EOF sed -i "s#.integerscale=1#.integerscale=0#g" ${INSTALL}/usr/config/system/configs/system.cfg fi + if [[ "${DEVICE}" =~ handheld ]] + then + sed -i "s#fstrim.enabled=0#fstrim.enabled=1#g" ${INSTALL}/usr/config/system/configs/system.cfg + sed -i "s#3do.cpugovernor=performance#3do.cpugovernor=interactive#g" ${INSTALL}/usr/config/system/configs/system.cfg + sed -i "s#arcade.cpugovernor=performance#arcade.cpugovernor=interactive#g" ${INSTALL}/usr/config/system/configs/system.cfg + sed -i "s#atarijaguar.cpugovernor=performance#atarijaguar.cpugovernor=interactive#g" ${INSTALL}/usr/config/system/configs/system.cfg + sed -i "s#atomiswave.cpugovernor=performance#atomiswave.cpugovernor=interactive#g" ${INSTALL}/usr/config/system/configs/system.cfg + sed -i "s#dreamcast.cpugovernor=performance#dreamcast.cpugovernor=interactive#g" ${INSTALL}/usr/config/system/configs/system.cfg + sed -i "s#j2me.cpugovernor=performance#j2me.cpugovernor=interactive#g" ${INSTALL}/usr/config/system/configs/system.cfg + sed -i "s#mame.cpugovernor=performance#mame.cpugovernor=interactive#g" ${INSTALL}/usr/config/system/configs/system.cfg + sed -i "s#n64.cpugovernor=performance#n64.cpugovernor=interactive#g" ${INSTALL}/usr/config/system/configs/system.cfg + sed -i "s#naomi.cpugovernor=performance#naomi.cpugovernor=interactive#g" ${INSTALL}/usr/config/system/configs/system.cfg + sed -i "s#nds.cpugovernor=performance#nds.cpugovernor=interactive#g" ${INSTALL}/usr/config/system/configs/system.cfg + sed -i "s#pcfx.cpugovernor=performance#pcfx.cpugovernor=interactive#g" ${INSTALL}/usr/config/system/configs/system.cfg + sed -i "s#pc.cpugovernor=performance#pc.cpugovernor=interactive#g" ${INSTALL}/usr/config/system/configs/system.cfg + sed -i "s#psp.cpugovernor=performance#psp.cpugovernor=interactive#g" ${INSTALL}/usr/config/system/configs/system.cfg + sed -i "s#pspminis.cpugovernor=performance#pspminis.cpugovernor=interactive#g" ${INSTALL}/usr/config/system/configs/system.cfg + sed -i "s#virtualboy.cpugovernor=performance#virtualboy.cpugovernor=interactive#g" ${INSTALL}/usr/config/system/configs/system.cfg + fi + ### Defaults for non-main builds. BUILD_BRANCH="$(git branch --show-current)" if [[ ! "${BUILD_BRANCH}" =~ main ]] diff --git a/packages/jelos/profile.d/02-distribution b/packages/jelos/profile.d/02-distribution index c43ec2c1c..3c51e2aca 100644 --- a/packages/jelos/profile.d/02-distribution +++ b/packages/jelos/profile.d/02-distribution @@ -4,15 +4,13 @@ . /etc/os-release -export PATH="$PATH:/usr/local/bin:/usr/bin:/storage/bin" +export PATH="/usr/bin:/usr/local/bin:/storage/bin:${PATH}" export SDL_GAMECONTROLLERCONFIG_FILE="/storage/.config/SDL-GameControllerDB/gamecontrollerdb.txt" J_DIR="/storage/.config/system" J_CONF="${J_DIR}/configs/system.cfg" ES_CONF="/storage/.emulationstation/es_settings.cfg" -EE_DEVICE=${HW_DEVICE} - -JSLISTENCONF="/storage/.config/system/configs/jslisten.cfg" +JSLISTENCONF="${J_DIR}/configs/jslisten.cfg" get_setting() { if [ ! -z "${3}" ] @@ -62,42 +60,40 @@ set_audio() { } get_es_setting() { - echo $(sed -n "s|\s*<${1} name=\"${2}\" value=\"\(.*\)\" />|\1|p" ${ES_CONF}) + echo $(sed -n "s|\s*<${1} name=\"${2}\" value=\"\(.*\)\" />|\1|p" ${ES_CONF}) } check_bios() { + PLATFORM="${1}" + CORE="${2}" + EMULATOR="${3}" + ROMNAME="${4}" + LOG="${5}" -PLATFORM="${1}" -CORE="${2}" -EMULATOR="${3}" -ROMNAME="${4}" -LOG="${5}" + if [[ -z "$LOG" ]]; then + LOG="/var/log/exec.log" + cat /etc/motd > "$LOG" + fi -if [[ -z "$LOG" ]]; then - LOG="/var/log/exec.log" - cat /etc/motd > "$LOG" -fi + MISSINGBIOS="$(batocera-systems --strictfilter ${PLATFORM})" + if [ "$?" == "2" ]; then + # formating so it looks nice :) + PLATFORMNAME="${MISSINGBIOS##*>}" # read from -P onwards + PLATFORMNAME="${PLATFORMNAME%%MISSING*}" # until a space is found + PLATFORMNAME=$(echo $PLATFORMNAME | sed -e 's/\\n//g') -MISSINGBIOS="$(batocera-systems --strictfilter ${PLATFORM})" -if [ "$?" == "2" ]; then + if [[ -f "${LOG}" ]]; then + echo "${CORE} ${EMULATOR} ${ROMNAME}" >> $LOG + echo "${PLATFORMNAME} missing BIOS - Could not find all BIOS: " >> $LOG + echo "please make sure you copied the files into the corresponding folder " >> $LOG + echo "${MISSINGBIOS}" >> $LOG + fi + MISSINGBIOS=$(echo "$MISSINGBIOS" | sed -e 's/$/\\n/g') -# formating so it looks nice :) -PLATFORMNAME="${MISSINGBIOS##*>}" # read from -P onwards -PLATFORMNAME="${PLATFORMNAME%%MISSING*}" # until a space is found -PLATFORMNAME=$(echo $PLATFORMNAME | sed -e 's/\\n//g') - -if [[ -f "${LOG}" ]]; then -echo "${CORE} ${EMULATOR} ${ROMNAME}" >> $LOG -echo "${PLATFORMNAME} missing BIOS - Could not find all BIOS: " >> $LOG -echo "please make sure you copied the files into the corresponding folder " >> $LOG -echo "${MISSINGBIOS}" >> $LOG -fi - MISSINGBIOS=$(echo "$MISSINGBIOS" | sed -e 's/$/\\n/g') - - /usr/bin/error.sh "${PLATFORMNAME} missing BIOS" "Could not find all BIOS/files in /storage/roms, the game may not work:\n\n ${MISSINGBIOS}\n\nPlease make sure you copied the files into the corresponding folder." - error_process="$!" - pkill -P $error_process -fi + /usr/bin/error.sh "${PLATFORMNAME} missing BIOS" "Could not find all BIOS/files in /storage/roms, the game may not work:\n\n ${MISSINGBIOS}\n\nPlease make sure you copied the files into the corresponding folder." + error_process="$!" + pkill -P $error_process + fi } # read config files from /storage/.config/profile.d @@ -106,3 +102,4 @@ fi . $config fi done + diff --git a/packages/jelos/sources/asound/RG552/asound.state b/packages/jelos/sources/asound/RG552/asound.state new file mode 100644 index 000000000..c2a40ea39 --- /dev/null +++ b/packages/jelos/sources/asound/RG552/asound.state @@ -0,0 +1,443 @@ +state.rockchipes8316c { + control.1 { + iface CARD + name 'Headphones Jack' + value false + comment { + access read + type BOOLEAN + count 1 + } + } + control.2 { + iface MIXER + name 'Headphone Playback Volume' + value.0 3 + value.1 3 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 3' + dbmin -4800 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.3 { + iface MIXER + name 'Headphone Mixer Volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 11' + dbmin -1200 + dbmax 0 + dbvalue.0 -1200 + dbvalue.1 -1200 + } + } + control.4 { + iface MIXER + name 'Playback Polarity' + value 'R Invert' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Normal + item.1 'R Invert' + item.2 'L Invert' + item.3 'L + R Invert' + } + } + control.5 { + iface MIXER + name 'DAC Playback Volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 192' + dbmin -9999999 + dbmax 0 + dbvalue.0 -9999999 + dbvalue.1 -9999999 + } + } + control.6 { + iface MIXER + name 'DAC Soft Ramp Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.7 { + iface MIXER + name 'DAC Soft Ramp Rate' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 4' + } + } + control.8 { + iface MIXER + name 'DAC Notch Filter Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.9 { + iface MIXER + name 'DAC Double Fs Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.10 { + iface MIXER + name 'DAC Stereo Enhancement' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.11 { + iface MIXER + name 'DAC Mono Mix Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.12 { + iface MIXER + name 'Capture Polarity' + value Normal + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Normal + item.1 Invert + } + } + control.13 { + iface MIXER + name 'Mic Boost Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.14 { + iface MIXER + name 'ADC Capture Volume' + value 192 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 192' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + } + } + control.15 { + iface MIXER + name 'ADC PGA Gain Volume' + value 8 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 10' + dbmin -350 + dbmax 2400 + dbvalue.0 1800 + } + } + control.16 { + iface MIXER + name 'ADC Soft Ramp Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.17 { + iface MIXER + name 'ADC Double Fs Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.18 { + iface MIXER + name 'ALC Capture Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.19 { + iface MIXER + name 'ALC Capture Max Volume' + value 28 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 28' + dbmin -650 + dbmax 3550 + dbvalue.0 3550 + } + } + control.20 { + iface MIXER + name 'ALC Capture Min Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 28' + dbmin -1200 + dbmax 3000 + dbvalue.0 -1200 + } + } + control.21 { + iface MIXER + name 'ALC Capture Target Volume' + value 11 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 10' + dbmin -1650 + dbmax -150 + dbvalue.0 0 + } + } + control.22 { + iface MIXER + name 'ALC Capture Hold Time' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 10' + } + } + control.23 { + iface MIXER + name 'ALC Capture Decay Time' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 10' + } + } + control.24 { + iface MIXER + name 'ALC Capture Attack Time' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 10' + } + } + control.25 { + iface MIXER + name 'ALC Capture Noise Gate Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.26 { + iface MIXER + name 'ALC Capture Noise Gate Threshold' + value 31 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 31' + } + } + control.27 { + iface MIXER + name 'ALC Capture Noise Gate Type' + value 'Constant PGA Gain' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'Constant PGA Gain' + item.1 'Mute ADC Output' + } + } + control.28 { + iface MIXER + name 'Speaker Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.29 { + iface MIXER + name 'Differential Mux' + value lin1-rin1 + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 lin1-rin1 + item.1 lin2-rin2 + item.2 'lin1-rin1 with 20db Boost' + item.3 'lin2-rin2 with 20db Boost' + } + } + control.30 { + iface MIXER + name 'Digital Mic Mux' + value 'dmic disable' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'dmic disable' + item.1 'dmic data at high level' + item.2 'dmic data at low level' + } + } + control.31 { + iface MIXER + name 'DAC Source Mux' + value 'LDATA TO LDAC, RDATA TO RDAC' + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 'LDATA TO LDAC, RDATA TO RDAC' + item.1 'LDATA TO LDAC, LDATA TO RDAC' + item.2 'RDATA TO LDAC, RDATA TO RDAC' + item.3 'RDATA TO LDAC, LDATA TO RDAC' + } + } + control.32 { + iface MIXER + name 'Left Headphone Mux' + value lin1-rin1 + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 lin1-rin1 + item.1 lin2-rin2 + item.2 'lin-rin with Boost' + item.3 'lin-rin with Boost and PGA' + } + } + control.33 { + iface MIXER + name 'Right Headphone Mux' + value lin1-rin1 + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 lin1-rin1 + item.1 lin2-rin2 + item.2 'lin-rin with Boost' + item.3 'lin-rin with Boost and PGA' + } + } + control.34 { + iface MIXER + name 'Left Headphone Mixer LLIN Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.35 { + iface MIXER + name 'Left Headphone Mixer Left DAC Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.36 { + iface MIXER + name 'Right Headphone Mixer RLIN Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.37 { + iface MIXER + name 'Right Headphone Mixer Right DAC Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } +} diff --git a/packages/jelos/sources/asound/handheld/asound.conf b/packages/jelos/sources/asound/handheld/asound.conf new file mode 100644 index 000000000..6078b59e1 --- /dev/null +++ b/packages/jelos/sources/asound/handheld/asound.conf @@ -0,0 +1,20 @@ +pcm.!default { + type plug + slave.pcm "dmixer" +} + +pcm.dmixer { + type dmix + ipc_key 1024 + slave { + pcm "hw:0,0" + period_time 0 + period_size 1024 + buffer_size 4096 + rate 44100 + } + bindings { + 0 0 + 1 1 + } +} diff --git a/packages/jelos/sources/autostart/autostart b/packages/jelos/sources/autostart/autostart index 8f77563a6..519ae60dc 100755 --- a/packages/jelos/sources/autostart/autostart +++ b/packages/jelos/sources/autostart/autostart @@ -22,7 +22,7 @@ done ### Lock is a prerequisite for emustation rm /var/lock/start.games 2>&1 >>${BOOTLOG} touch /var/lock/start.games 2>&1 >>${BOOTLOG} -${UI_SERVICE} 2>&1 >>${BOOTLOG} & +systemctl start ${UI_SERVICE} 2>&1 >>${BOOTLOG} & ### Run common start scripts for script in /usr/lib/autostart/common/* @@ -41,7 +41,7 @@ then done fi -clear >/dev/console 2>&1 >>${BOOTLOG} +clear >/dev/console DEVICE_CPU_GOVERNOR=$(get_setting system.cpugovernor) ${DEVICE_CPU_GOVERNOR} 2>&1 >>${BOOTLOG} diff --git a/packages/jelos/sources/autostart/common/002-kernel b/packages/jelos/sources/autostart/common/002-kernel index 44129d934..eac03699e 100755 --- a/packages/jelos/sources/autostart/common/002-kernel +++ b/packages/jelos/sources/autostart/common/002-kernel @@ -3,3 +3,16 @@ # Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius) sysctl vm.swappiness=1 +sysctl kernel.nmi_watchdog=0 +sysctl vm.laptop_mode=5 +sysctl vm.dirty_writeback_centisecs=1500 + +for device in $(find /sys -name power_save | grep -v wifi) /sys/bus/usb/devices/*/power/autosuspend +do + echo 1 >${device} 2>/dev/null +done + +for device in /sys/bus/*/devices/*/power/control +do + echo auto > ${device} 2>/dev/null +done diff --git a/packages/jelos/sources/autostart/common/003-mount_games b/packages/jelos/sources/autostart/common/003-mount_games new file mode 100755 index 000000000..8adb87563 --- /dev/null +++ b/packages/jelos/sources/autostart/common/003-mount_games @@ -0,0 +1,65 @@ +#!/bin/bash +# SPDX-License-Identifier: Apache-2.0 +# Copyright (C) 2020 Fewtarius (https://github.com/fewtarius) + +. /etc/profile +. /etc/os-release + +UPDATE_ROOT="/storage/.update" +MOUNT_GAMES=$(get_setting system.automount) +GAMES_DEVICE=$(get_setting system.gamesdevice) + +if [[ "${MOUNTGAMES}" != [0-9] ]] +then + set_setting system.automount 1 +elif [[ "${MOUNT_GAMES}" == "0" ]] +then + exit 0 +fi + +mount_games() { + NULL=$(grep ${1} /proc/mounts >/dev/null 2>&1) + if [ ! "$?" = "0" ] && [ -e "${1}" ] && [ ! -e "/storage/.please_resize_me" ] + then + mount -o umask=000 ${1} /storage/roms >/dev/null 2>&1 + fi +} + +find_games() { + if /usr/bin/busybox mountpoint -q /storage ; then + if [ ! -d "/storage/roms" ] + then + /usr/bin/busybox mkdir -p /storage/roms >/dev/null 2>&1 + fi + + for DEV in $(blkid | awk 'BEGIN {FS=":"}; /ext4/ || /fat/ {print $1}' | sort -r) + do + ROOTDEV=$(echo ${DEV} | sed -e "s#^/.*/##g" -e "s#p[0-9].*\$##g") + SIZE=$(awk '/'${ROOTDEV}'/ {print $3}' /proc/partitions) + if [ "${SIZE}" -le "8388608" ] + then + # We don't want to mount partitions smaller than ~8GB. + continue + fi + if [ -L "/sys/class/block/${ROOTDEV}boot0" ] + then + # Assume this is an android boot device and ignore it. + continue + fi + NULL=$(grep ${DEV} /proc/mounts >/dev/null 2>&1) + if [ ! "$?" = "0" ] && [ -e "${DEV}" ] && [ ! -e "/storage/.please_resize_me" ] + then + GAMES_DEVICE=${DEV} + mount_games "${DEV}" + break + fi + done + fi +} + +if [ -e "${GAMES_DEVICE}" ] +then + mount_games ${GAMES_DEVICE} +else + find_games +fi diff --git a/packages/jelos/sources/autostart/common/004-upgrade b/packages/jelos/sources/autostart/common/004-upgrade index 6d3f095e8..ec39bb30b 100755 --- a/packages/jelos/sources/autostart/common/004-upgrade +++ b/packages/jelos/sources/autostart/common/004-upgrade @@ -8,13 +8,8 @@ if [ "$(cat /storage/.config/boot.hint 2>/dev/null)" = "UPDATE" ] || [ ! -e "/st then if [ -e "/usr/share/post-update" ] then - show_splash intro - echo -ne "\033[1000H\033[2K==> Preparing system.." >/dev/console /usr/share/post-update fi rm /storage/.config/boot.hint touch /storage/.configured fi - -clear >/dev/console -/usr/bin/show_splash intro 2>&1 >>${BOOTLOG} diff --git a/packages/jelos/sources/autostart/common/005-alsa b/packages/jelos/sources/autostart/common/005-alsa index 3d0a63501..08b2644ed 100755 --- a/packages/jelos/sources/autostart/common/005-alsa +++ b/packages/jelos/sources/autostart/common/005-alsa @@ -25,4 +25,4 @@ then fi VOL=$(get_setting "audio.volume" 2>/dev/null) -amixer set "${DEVICE_AUDIO_MIXER}" ${VOL}% +amixer -M set "${DEVICE_AUDIO_MIXER}" ${VOL}% diff --git a/packages/jelos/sources/autostart/common/006-brightness b/packages/jelos/sources/autostart/common/006-brightness index 951c0da15..a1b98935e 100755 --- a/packages/jelos/sources/autostart/common/006-brightness +++ b/packages/jelos/sources/autostart/common/006-brightness @@ -4,6 +4,8 @@ . /etc/profile +BRIGHTNESS_DEV="$(ls /sys/class/backlight | head -n 1)" + ### Variables may need to be device specific here. BRIGHTNESS=$(get_setting system.brightness) if [[ ! "${BRIGHTNESS}" =~ [0-9] ]] @@ -16,11 +18,7 @@ if [[ "${BRIGHTNESS}" -lt "3" ]] then BRIGHTNESS=3 fi -BRIGHTNESS=$(printf "%.0f" ${BRIGHTNESS}) -if [ "$(cat /sys/class/backlight/backlight/max_brightness)" = 255 ] -then - printf "%.0f" $(echo "${BRIGHTNESS} * 2.56" | bc) > /sys/class/backlight/backlight/brightness -else - printf "%.0f" $(echo "${BRIGHTNESS}") > /sys/class/backlight/backlight/brightness -fi + +BRIGHTNESS=$(printf "%.0f" $(echo "${BRIGHTNESS}")) +echo ${BRIGHTNESS} > /sys/class/backlight/${BRIGHTNESS_DEV}/brightness set_setting system.brightness ${BRIGHTNESS} diff --git a/packages/jelos/sources/autostart/common/010-uimode b/packages/jelos/sources/autostart/common/010-uimode new file mode 100755 index 000000000..1820f88b3 --- /dev/null +++ b/packages/jelos/sources/autostart/common/010-uimode @@ -0,0 +1,13 @@ +#!/bin/bash +# SPDX-License-Identifier: Apache-2.0 +# Copyright (C) 2022-present Fewtarius (https://github.com/fewtarius) + +. /etc/profile + +UIMODE=$(get_setting desktop.enabled) +if [ "${UIMODE}" = "1" ] +then + cp -f /usr/share/weston/weston.ini /storage/.config/weston.ini +else + cp -f /usr/share/weston/kiosk.ini /storage/.config/weston.ini +fi diff --git a/packages/jelos/sources/autostart/common/099-networkservices b/packages/jelos/sources/autostart/common/099-networkservices index 8347b9ba9..1c7de3381 100755 --- a/packages/jelos/sources/autostart/common/099-networkservices +++ b/packages/jelos/sources/autostart/common/099-networkservices @@ -4,14 +4,17 @@ . /etc/profile -for service in /usr/lib/autostart/daemons +for SERVICE in /usr/lib/autostart/daemons/* do + source ${SERVICE} + if [ ! -d "/storage/.cache/services" ] then mkdir -p "/storage/.cache/services" fi - if [ -e "/storage/.cache/services/${CONF}" ] + if [ -n "${CONF}" ] && \ + [ -e "/storage/.cache/services/${CONF}" ] then rm -f "/storage/.cache/services/${CONF}" fi diff --git a/packages/jelos/sources/autostart/daemons/002-samba b/packages/jelos/sources/autostart/daemons/002-samba index 116e0caf9..d2d80ece6 100644 --- a/packages/jelos/sources/autostart/daemons/002-samba +++ b/packages/jelos/sources/autostart/daemons/002-samba @@ -2,3 +2,6 @@ STATE=$(get_setting samba.enabled) SVC="samba" CONF="smb.conf" DAEMONS=("nmbd" "smbd") + +mkdir -p /run/${SVC} +ln -s /etc/${SVC}/${CONF} /run/${SVC}/${CONF} diff --git a/packages/jelos/sources/autostart/daemons/005-fstrim b/packages/jelos/sources/autostart/daemons/005-fstrim new file mode 100644 index 000000000..17e1d1877 --- /dev/null +++ b/packages/jelos/sources/autostart/daemons/005-fstrim @@ -0,0 +1,3 @@ +STATE=$(get_setting fstrim.enabled) +SVC="fstrim" +DAEMONS=("fstrim.timer") diff --git a/packages/jelos/sources/post-update b/packages/jelos/sources/post-update index 454313153..d4c529f61 100644 --- a/packages/jelos/sources/post-update +++ b/packages/jelos/sources/post-update @@ -17,9 +17,9 @@ then EXCLUDE="--exclude=configs" fi -rsync -a --delete ${EXCLUDE} /usr/config/system/ /storage/.config/system/ & -rsync -a --ignore-existing /usr/config/game /storage/.config/ & -rsync -a /usr/config/modules /storage/.config/ & +rsync -a --delete ${EXCLUDE} /usr/config/system/ /storage/.config/system/ +rsync -a --ignore-existing /usr/config/game /storage/.config/ +rsync -a /usr/config/modules /storage/.config/ if [ ! -L "/storage/.config/emulationstation/resources/logo.png" ] then @@ -27,9 +27,6 @@ then ln -sf /usr/config/splash/splash.png /storage/.config/emulationstation/resources/logo.png fi -### Update add-ons and themes -wait < <(jobs -p) - cp -f /usr/config/modules/gamelist.xml /storage/.config/modules cp -f /usr/config/retroarch/retroarch-core-options.cfg /storage/.config/retroarch/retroarch-core-options.cfg rm -rf /storage/roms/ports/JelosAddOns* @@ -67,7 +64,8 @@ do ln -s /usr/config/emulationstation/${es_cfg} /storage/.config/emulationstation/${es_cfg} done -### Safe to make changes below this line. +# Default modules need to be updated to use the new stop/start ui function. +rsync -av /usr/config/modules/* /storage/.config/modules/ # Swap es_input back to a writeable file so external controller configuration works properly. if [ -L "/storage/.config/emulationstation/es_input.cfg" ] @@ -76,12 +74,3 @@ then cp -f /usr/config/emulationstation/es_input.cfg /storage/.config/emulationstation/es_input.cfg fi -# Re-introduce overlayfs for retroarch. -sed -i 's#^overlay_directory.*$#overlay_directory = "/tmp/overlays"#g' /storage/.config/retroarch/retroarch.cfg -sed -i 's#^video_shader_dir.*$#video_shader_dir = "/tmp/shaders"#g' /storage/.config/retroarch/retroarch.cfg -sed -i 's#^joypad_autoconfig_dir.*$#joypad_autoconfig_dir = "/tmp/joypads"#g' /storage/.config/retroarch/retroarch.cfg -sed -i 's#^cheat_database_path.*$#cheat_database_path = "/tmp/database/cht"#g' /storage/.config/retroarch/retroarch.cfg -sed -i 's#^content_database_path.*$#content_database_path = "/tmp/database/rdb"#g' /storage/.config/retroarch/retroarch.cfg -sed -i 's#^assets_directory.*$#assets_directory = "/tmp/assets"#g' /storage/.config/retroarch/retroarch.cfg -sed -i 's#^libretro_directory.*$#libretro_directory = "/tmp/cores"#g' /storage/.config/retroarch/retroarch.cfg -sed -i 's#^libretro_info_path.*$#libretro_info_path = "/tmp/cores"#g' /storage/.config/retroarch/retroarch.cfg diff --git a/packages/jelos/sources/scripts/backuptool b/packages/jelos/sources/scripts/backuptool index 7a0457bcd..5c768c97e 100755 --- a/packages/jelos/sources/scripts/backuptool +++ b/packages/jelos/sources/scripts/backuptool @@ -4,6 +4,8 @@ # Copyright (C) 2020-present Shanti Gilbert (https://github.com/shantigilbert) # Copyright (C) 2020 Fewtarius (https://github.com/fewtarius) +. /etc/profile + # NOTE: to customize your backups, create a backuptool.conf file in # /storage/.config like this: @@ -49,9 +51,7 @@ fi case "${1}" in "restore") - systemctl stop emustation unzip -o ${BACKUPFILE} -d / - systemctl start emustation ;; "backup") if [ -f ${BACKUPFILE} ] @@ -61,9 +61,7 @@ case "${1}" in mv ${BACKUPFILE} "${BACKUPFOLDER}/${ARCHIVEFILENAME}" fi [ -f "${BACKUPFILE}" ] && rm "${BACKUPFILE}" - [ -z "$2" ] && systemctl stop emustation zip -9 -r ${BACKUPFILE} \ ${COMPRESSLOCATIONS[@]} - [ -z "${2}" ] && systemctl start emustation ;; -esac \ No newline at end of file +esac diff --git a/packages/jelos/sources/scripts/batocera-config b/packages/jelos/sources/scripts/batocera-config index 8948fb6f5..4b9c7b553 100755 --- a/packages/jelos/sources/scripts/batocera-config +++ b/packages/jelos/sources/scripts/batocera-config @@ -192,7 +192,7 @@ if [ "$command" == "audio" ];then cmdVal="1" fi echo "setting audio output mode : $mode" >> $log - amixer cset numid=3 $cmdVal || exit 1 + amixer -M cset numid=3 $cmdVal || exit 1 elif [[ "${arch}" =~ "x86" ]] then # auto: no .asoundrc file @@ -222,12 +222,12 @@ if [ "$command" == "volume" ];then # on my pc, the master is turned off at boot # i don't know what are the rules to set here. - amixer set ${DEVICE_AUDIO_MIXER} unmute || exit 1 - amixer set ${DEVICE_AUDIO_MIXER} -- ${mode}% || exit 1 + amixer -M set ${DEVICE_AUDIO_MIXER} unmute || exit 1 + amixer -M set ${DEVICE_AUDIO_MIXER} -- ${mode}% || exit 1 # maximize the sound to be sure it's not 0, allow errors - amixer set PCM -- 100% #|| exit 1 - amixer set Headphone -- 100% #|| exit 1 + amixer -M set PCM -- 100% #|| exit 1 + amixer -M set Headphone -- 100% #|| exit 1 exit 0 fi exit 12 diff --git a/packages/jelos/sources/scripts/brightness b/packages/jelos/sources/scripts/brightness index 7e141f49d..360e548ca 100755 --- a/packages/jelos/sources/scripts/brightness +++ b/packages/jelos/sources/scripts/brightness @@ -2,14 +2,15 @@ # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2020-present Fewtarius +BRIGHTNESS_DEV="$(ls /sys/class/backlight | head -n 1)" -MIN=1 -MAX=$(cat /sys/class/backlight/backlight/max_brightness) +MIN=5 +MAX=$(cat /sys/class/backlight/${BRIGHTNESS_DEV}/max_brightness) if [ "${MAX}" = 255 ] then - STEP=17 + STEP=15 else - STEP=6 + STEP=5 fi if [[ -n "$2" ]]; then @@ -22,37 +23,41 @@ then source /etc/profile fi -if [ ! -f /sys/class/backlight/backlight/brightness ] +if [ ! -f /sys/class/backlight/${BRIGHTNESS_DEV}/brightness ] then echo "ERROR: There is no BRIGHTNESS object to manage." exit 1 fi +round() { + awk -v val=$1 'BEGIN{print int((val+5/2)/5) * 5}' +} + stepUp() { getBrightness MYBRIGHTNESS=$? - NEWBRIGHTNESS=$((${MYBRIGHTNESS}+${STEP})) + NEWBRIGHTNESS=$((${MYBRIGHTNESS}+$(round ${STEP}))) if (( ${NEWBRIGHTNESS} > ${MAX} )) then NEWBRIGHTNESS=${MAX} fi - echo "${NEWBRIGHTNESS}" > /sys/class/backlight/backlight/brightness + echo "${NEWBRIGHTNESS}" > /sys/class/backlight/${BRIGHTNESS_DEV}/brightness set_setting system.brightness ${NEWBRIGHTNESS} } stepDown() { getBrightness MYBRIGHTNESS=$? - NEWBRIGHTNESS=$((${MYBRIGHTNESS}-${STEP})) + NEWBRIGHTNESS=$((${MYBRIGHTNESS}-$(round ${STEP}))) if (( ${NEWBRIGHTNESS} < ${MIN} )) then NEWBRIGHTNESS=${MIN} fi - echo "${NEWBRIGHTNESS}" > /sys/class/backlight/backlight/brightness + echo "${NEWBRIGHTNESS}" > /sys/class/backlight/${BRIGHTNESS_DEV}/brightness set_setting system.brightness ${NEWBRIGHTNESS} } getBrightness() { - local BRIGHTNESS=$(cat /sys/class/backlight/backlight/brightness) + local BRIGHTNESS=$(cat /sys/class/backlight/${BRIGHTNESS_DEV}/brightness) return ${BRIGHTNESS} } @@ -64,6 +69,9 @@ case ${1} in "down") stepDown ${BRIGHTNESS} ;; + "device") + echo ${BRIGHTNESS_DEV} + ;; *) getBrightness echo $? diff --git a/packages/jelos/sources/scripts/error.sh b/packages/jelos/sources/scripts/error.sh index e452ae30e..db010efe2 100755 --- a/packages/jelos/sources/scripts/error.sh +++ b/packages/jelos/sources/scripts/error.sh @@ -4,7 +4,7 @@ . /etc/profile -clear >/dev/console +clear if [ -n "$1" ] then text_viewer -w -e -t "BIOS ERROR" -m "$*" @@ -16,4 +16,4 @@ else fi fi -clear >/dev/console +clear diff --git a/packages/jelos/sources/scripts/factoryreset b/packages/jelos/sources/scripts/factoryreset index ea1520a84..74856e3ae 100755 --- a/packages/jelos/sources/scripts/factoryreset +++ b/packages/jelos/sources/scripts/factoryreset @@ -10,7 +10,6 @@ case "${1}" in cp -rf /usr/config/retroarch/retroarch.cfg /storage/.config/retroarch/retroarch.cfg ;; "ALL") - systemctl stop emustation cd / find /storage -mindepth 1 \( ! -regex '^/storage/.update.*' -a ! -regex '^/storage/roms.*' \) -delete mkdir /storage/.config/ diff --git a/packages/jelos/sources/scripts/getshaders b/packages/jelos/sources/scripts/getshaders index 52e979157..f2abc71de 100755 --- a/packages/jelos/sources/scripts/getshaders +++ b/packages/jelos/sources/scripts/getshaders @@ -1,14 +1,23 @@ -#!/bin/sh +#!/bin/bash + +. /etc/profile # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2020-present Shanti Gilbert (https://github.com/shantigilbert) # Copyright (C) 2022 Fewtarius (https://github.com/fewtarius) +if [[ "${UI_SERVICE}" =~ ^weston ]] +then + SHADERS='*.slang*' +else + SHADERS='*.glsl*' +fi + for dir in /tmp/shaders do if [ -d "${dir}" ] then - find ${dir} -name '*.glslp' -print0 | + find ${dir} -name ${SHADERS} -print0 | while IFS= read -r -d '' line; do echo ${line#${dir}/}, done diff --git a/packages/jelos/sources/scripts/jelos-info b/packages/jelos/sources/scripts/jelos-info index 46653e8a5..2e8de4ee0 100755 --- a/packages/jelos/sources/scripts/jelos-info +++ b/packages/jelos/sources/scripts/jelos-info @@ -47,17 +47,27 @@ declare -a CF MF CNTR=0 for CPUFREQ in /sys/devices/system/cpu/cpufreq/* do + if [[ "${CPUFREQ}" =~ boost ]] + then + continue + fi if [ "${CNTR}" -eq 0 ] then CF+=("CURRENT FREQUENCY:") MF+=("MAXIMUM FREQUENCY:") fi - CF+=("CORES $(cat ${CPUFREQ}/related_cpus | awk '{print $1"-"$NF}'): $(( $(cat ${CPUFREQ}/scaling_cur_freq | sort | tail -n 1) / 1000))MHz") - MF+=("CORES $(cat ${CPUFREQ}/related_cpus | awk '{print $1"-"$NF}'): $(( $(cat ${CPUFREQ}/scaling_max_freq | sort | tail -n 1) / 1000))MHz") + RELCPUS=$(cat ${CPUFREQ}/related_cpus) + if [ "${#RELCPUS}" -gt 1 ] + then + FIELD="$(cat ${CPUFREQ}/related_cpus 2>/dev/null | awk '{print $1"-"$NF}')" + else + FIELD="$(cat ${CPUFREQ}/related_cpus)" + fi + CF+=("CORES ${FIELD}: $(( $(cat ${CPUFREQ}/scaling_cur_freq | sort | tail -n 1) / 1000))MHz") + MF+=("CORES ${FIELD}: $(( $(cat ${CPUFREQ}/scaling_max_freq | sort | tail -n 1) / 1000))MHz") CNTR=$(( CNTR + 1 )) done - # temperature # Unit: millidegree Celsius TEMPE=$(cat /sys/devices/virtual/thermal/thermal_zone*/temp 2>/dev/null | sort -rn | head -1 | sed -e s+"[0-9][0-9][0-9]$"++) @@ -74,13 +84,14 @@ if test -n "${BATT}" then echo "BATTERY INFORMATION:" echo "BATTERY REMAINING: ${BATT}%" - if [ -e "/sys/class/power_supply/bat/health" ] + BATPATH="/sys/class/power_supply/$(ls /sys/class/power_supply/ | grep -i bat | tail -n 1)" + if [ -e "${BATPATH}/health" ] then - echo "BATTERY HEALTH: $(cat /sys/class/power_supply/bat/health)" + echo "BATTERY HEALTH: $(cat ${BATPATH}/health)" fi - if [ -e "/sys/class/power_supply/bat/status" ] + if [ -e "${BATPATH}/status" ] then - echo "BATTERY STATE: $(cat /sys/class/power_supply/bat/status)" + echo "BATTERY STATE: $(cat ${BATPATH}/status)" fi fi echo "CPU INFORMATION:" diff --git a/packages/jelos/sources/scripts/rom_system_split b/packages/jelos/sources/scripts/rom_system_split index 3a5c53f74..a52869337 100755 --- a/packages/jelos/sources/scripts/rom_system_split +++ b/packages/jelos/sources/scripts/rom_system_split @@ -68,12 +68,9 @@ update_es_folders() { fi done } -systemctl stop emustation # check the external folders first update_es_folders "external" "${EXT_ROM_FOLDERS}" "${ES_LIST}" # next check the local folders # if there are duplicate folders in EXTERNAL, LOCAL ones will take preference update_es_folders "local" "${LOCAL_ROM_FOLDERS}" "${ES_LIST}" - -systemctl start emustation diff --git a/packages/jelos/sources/scripts/rr_audio.sh b/packages/jelos/sources/scripts/rr_audio.sh index 5eb995370..13586b6d3 100755 --- a/packages/jelos/sources/scripts/rr_audio.sh +++ b/packages/jelos/sources/scripts/rr_audio.sh @@ -71,7 +71,7 @@ pulseaudio_sink_unload() { fi # Restore ALSA Master volume to 100% - amixer -q set ${MIXER},0 ${RR_AUDIO_VOLUME}% unmute >/dev/null 2>&1 + amixer -M -q set ${MIXER},0 ${RR_AUDIO_VOLUME}% unmute >/dev/null 2>&1 echo "Set-Audio: ALSA mixer restore volume to ${RR_AUDIO_VOLUME}%" fi systemctl stop pulseaudio >/dev/null 2>&1 diff --git a/packages/jelos/sources/scripts/run b/packages/jelos/sources/scripts/run new file mode 100755 index 000000000..563768894 --- /dev/null +++ b/packages/jelos/sources/scripts/run @@ -0,0 +1,16 @@ +#!/bin/bash +. /etc/profile + +if [ "${UI_SERVICE}" = "weston.service" ] +then + weston-terminal --command="${1}" +else + systemctl stop ${UI_SERVICE} + clear + "${1}" >/dev/console 2>&1 + clear +fi +if [ ! "${UI_SERVICE}" = "weston.service" ] +then + systemctl start ${UI_SERVICE} +fi diff --git a/packages/jelos/sources/scripts/runemu.sh b/packages/jelos/sources/scripts/runemu.sh index a4adf1700..622195e65 100755 --- a/packages/jelos/sources/scripts/runemu.sh +++ b/packages/jelos/sources/scripts/runemu.sh @@ -195,7 +195,7 @@ function quit() { function clear_screen() { $VERBOSE && log "Clearing screen" - clear >/dev/console + clear } function bluetooth() { @@ -281,18 +281,24 @@ then fi ;; "psx") - jslisten set "duckstationsa" + jslisten set "duckstation-nogui" if [ "$EMU" = "duckstationsa" ]; then - RUNTHIS='${TBASH} /usr/bin/duckstation.sh "${ROMNAME}"' + RUNTHIS='${TBASH} /usr/bin/start_duckstation.sh "${ROMNAME}"' fi ;; - "gamecube") - jslisten set "dolphinsa" + "ps2") + jslisten set "-9 pcsx2" + if [ "$EMU" = "pcsx2sa" ]; then + RUNTHIS='${TBASH} /usr/bin/start_pcsx2.sh "${ROMNAME}"' + fi + ;; + "gamecube"|"wii") + jslisten set "-9 dolphin-emu-nogui" if [ "$EMU" = "dolphinsa" ]; then - RUNTHIS='${TBASH} /usr/bin/dolphin.sh "${ROMNAME}"' + RUNTHIS='${TBASH} /usr/bin/start_dolphin.sh "${ROMNAME}"' fi -;; + ;; "mplayer") jslisten set "mpv" RUNTHIS='${TBASH} /usr/bin/mpv_video.sh "${ROMNAME}"' @@ -312,16 +318,17 @@ else setaudio alsa + RABIN="retroarch" if [[ "${HW_ARCH}" =~ aarch64 ]] then ### Check if we need retroarch 32 bits or 64 bits - RABIN="retroarch" if [[ "${CORE}" =~ pcsx_rearmed32 ]] || \ [[ "${CORE}" =~ parallel_n64 ]] || \ [[ "${CORE}" =~ gpsp ]] || \ [[ "${CORE}" =~ flycast32 ]] then - RABIN="retroarch32" + export LIBGL_DRIVERS_PATH="/usr/lib32/dri" + export RABIN="retroarch32" fi fi @@ -340,6 +347,20 @@ else fi done < "${1}" fi + ;; + "quake") + # EXT can only by quake + EXT=${ROMNAME##*.} + + # If its not a simple pak (extension .pak0) read the file and parse the data + if [ ${EXT} == "quake" ]; then + dos2unix "${1}" + while IFS== read -r key value; do + if [ "$key" == "PAK" ]; then + ROMNAME="$value" + fi + done < "${1}" + fi ;; esac diff --git a/packages/jelos/sources/scripts/setsettings.sh b/packages/jelos/sources/scripts/setsettings.sh index 3207f130f..db9a8b601 100755 --- a/packages/jelos/sources/scripts/setsettings.sh +++ b/packages/jelos/sources/scripts/setsettings.sh @@ -385,7 +385,7 @@ if [ "${EES}" == "false" ] || [ "${EES}" == "none" ] || [ "${EES}" == "0" ]; the else echo "video_shader = \"${EES}\"" >> ${RAAPPENDCONF} echo 'video_shader_enable = "true"' >> ${RAAPPENDCONF} - echo "--set-shader /usr/share/common-shaders/${EES}" + echo "--set-shader /tmp/shaders/${EES}" fi ## Filterset diff --git a/packages/jelos/sources/scripts/system-upgrade b/packages/jelos/sources/scripts/system-upgrade index 21e1d4136..7aca07be7 100755 --- a/packages/jelos/sources/scripts/system-upgrade +++ b/packages/jelos/sources/scripts/system-upgrade @@ -46,62 +46,59 @@ check_space() { if [ "${MYSIZE}" -lt "${REQUIRED}" ] then NEEDED=$(( (${REQUIRED} - ${MYSIZE} ) / 1024 )) - echo -e "There is not enough free space available ${VOLNAME} to install this update. Free up an additional ${NEEDED}MB, or reflash the newer version." >/dev/console - echo "Exiting in 5 seconds..." >/dev/console && sleep 5 - systemctl start emustation & + echo -e "There is not enough free space available ${VOLNAME} to install this update. Free up an additional ${NEEDED}MB, or reflash the newer version." + echo "Exiting in 5 seconds..." && sleep 5 exit 1 fi } -systemctl stop emustation -clear >/dev/console - ONLINE_STATUS=$(check_network) if [ ! "${ONLINE_STATUS}" == true ] then - echo "System not online, cannot continue..." >/dev/console - echo "Exiting in 5 seconds..." >/dev/console && sleep 5 - systemctl start emustation & + echo "System not online, cannot continue..." + echo "Exiting in 5 seconds..." && sleep 5 exit 0 fi -echo -e "=> ${OS_NAME} UPGRADE UTILITY" >/dev/console +echo -e "=> ${OS_NAME} UPGRADE UTILITY" # Check storage -check_space size flash boot 2048000 -check_space available .update GAMES 4096000 +check_space size flash boot 2048000 2>/dev/null + +if [ "$(mountpoint -q /storage/roms)" ] +then + check_space available .update GAMES 4096000 2>/dev/null +fi # Download LATEST_RELEASE_TAG=$(curl -H 'Cache-Control: no-cache' -Ls "${GIT_API}/releases" | python -c "import sys, json; print(json.load(sys.stdin)[0]['tag_name'])") if [ "${OS_VERSION}" -ge "${LATEST_RELEASE_TAG}" ] && [ ! "${FORCE}" = "1" ] then - echo "No new updates are available..." >/dev/console - echo "Exiting in 5 seconds..." >/dev/console && sleep 5 - systemctl start emustation & + echo "No new updates are available..." + echo "Exiting in 5 seconds..." && sleep 5 exit 0 fi -echo -e "\nFetching: ${OS_NAME}-${HW_DEVICE}.${HW_ARCH}-${LATEST_RELEASE_TAG}.${EXTENSION}" >/dev/console -curl -Lo "${UPDATE_PATH}/${OS_NAME}-${HW_DEVICE}.${HW_ARCH}-${LATEST_RELEASE_TAG}.${EXTENSION}" "${GIT_REPO}/releases/download/${LATEST_RELEASE_TAG}/${OS_NAME}-${HW_DEVICE}.${HW_ARCH}-${LATEST_RELEASE_TAG}.tar" 2>/dev/console -echo -e "Fetching: ${OS_NAME}-${HW_DEVICE}.${HW_ARCH}-${LATEST_RELEASE_TAG}.${EXTENSION}.sha256" >/dev/console -curl -Lo "${UPDATE_PATH}/${OS_NAME}-${HW_DEVICE}.${HW_ARCH}-${LATEST_RELEASE_TAG}.${EXTENSION}.sha256" "${GIT_REPO}/releases/download/${LATEST_RELEASE_TAG}/${OS_NAME}-${HW_DEVICE}.${HW_ARCH}-${LATEST_RELEASE_TAG}.tar.sha256" 2>/dev/console +echo -e "\nFetching: ${OS_NAME}-${HW_DEVICE}.${HW_ARCH}-${LATEST_RELEASE_TAG}.${EXTENSION}" +curl -Lo "${UPDATE_PATH}/${OS_NAME}-${HW_DEVICE}.${HW_ARCH}-${LATEST_RELEASE_TAG}.${EXTENSION}" "${GIT_REPO}/releases/download/${LATEST_RELEASE_TAG}/${OS_NAME}-${HW_DEVICE}.${HW_ARCH}-${LATEST_RELEASE_TAG}.tar" +echo -e "Fetching: ${OS_NAME}-${HW_DEVICE}.${HW_ARCH}-${LATEST_RELEASE_TAG}.${EXTENSION}.sha256" +curl -Lo "${UPDATE_PATH}/${OS_NAME}-${HW_DEVICE}.${HW_ARCH}-${LATEST_RELEASE_TAG}.${EXTENSION}.sha256" "${GIT_REPO}/releases/download/${LATEST_RELEASE_TAG}/${OS_NAME}-${HW_DEVICE}.${HW_ARCH}-${LATEST_RELEASE_TAG}.tar.sha256" -echo -e "\nVerifying download, please wait..." >/dev/console +echo -e "\nVerifying download, please wait..." # Verify MYSUM=$(sha256sum ${UPDATE_PATH}/${OS_NAME}-${HW_DEVICE}.${HW_ARCH}-${LATEST_RELEASE_TAG}.${EXTENSION} | awk '{print $1}') DLSUM=$(cat ${UPDATE_PATH}/${OS_NAME}-${HW_DEVICE}.${HW_ARCH}-${LATEST_RELEASE_TAG}.${EXTENSION}.sha256 | awk '{print $1}') if [ ! "${MYSUM}" == "${DLSUM}" ] then - echo "Verification failed, cleaning up and exiting..." >/dev/console + echo "Verification failed, cleaning up and exiting..." rm -f ${UPDATE_PATH}/* sleep 5 - clear >/dev/console - systemctl start emustation + clear exit 1 else - echo "Verification successful..." >/dev/console + echo "Verification successful..." fi if [ "${FORCE}" == "1" ] @@ -109,7 +106,7 @@ then set_setting updates.force 0 fi -echo -e "\nRebooting to complete OS upgrade..." >/dev/console +echo -e "\nRebooting to complete OS upgrade..." sync sleep 3 reboot diff --git a/packages/jelos/sources/scripts/wifictl b/packages/jelos/sources/scripts/wifictl index 2d4bcbc42..f185a662e 100755 --- a/packages/jelos/sources/scripts/wifictl +++ b/packages/jelos/sources/scripts/wifictl @@ -77,9 +77,10 @@ set_wifi() { Name=${OS_NAME} [service_${OS_NAME}_default] -Type=wifi -Name=${SSID} -Passphrase=${PSK} +Type = wifi +Name = ${SSID} +Passphrase = ${PSK} +AutoConnect = true EOF STATE=$(get_wifi_state) @@ -95,6 +96,10 @@ EOF rm -f "${WIFICFG}" 2>/dev/null set_setting wifi.enabled 0 ;; + "reconnect") + /usr/bin/wifictl disable + /usr/bin/wifictl enable + ;; "list") #connmanctl services | cut -b 5- | awk '/wifi/ {sub(/\s+wifi_.*$/,"",$0);print}' | sort | uniq list_wifi | awk '{sub(/\S+=/,"",$0);print}' diff --git a/packages/jelos/tmpfiles.d/jelos-dirs.conf b/packages/jelos/tmpfiles.d/jelos-dirs.conf index bed73deda..0f782a932 100644 --- a/packages/jelos/tmpfiles.d/jelos-dirs.conf +++ b/packages/jelos/tmpfiles.d/jelos-dirs.conf @@ -74,9 +74,11 @@ d /storage/roms/pcfx 0755 root root - - d /storage/roms/pet 0755 root root - - d /storage/roms/pico-8 0755 root root - - d /storage/roms/pokemini 0755 root root - - +d /storage/roms/ps2 0755 root root - - d /storage/roms/psp 0755 root root - - d /storage/roms/pspminis 0755 root root - - d /storage/roms/psx 0755 root root - - +d /storage/roms/quake 0755 root root - - d /storage/roms/satellaview 0755 root root - - d /storage/roms/saturn 0755 root root - - d /storage/roms/sc-3000 0755 root root - - @@ -102,6 +104,7 @@ d /storage/roms/vectrex 0755 root root - - d /storage/roms/vic20 0755 root root - - d /storage/roms/videopac 0755 root root - - d /storage/roms/virtualboy 0755 root root - - +d /storage/roms/wii 0755 root root - - d /storage/roms/wonderswan 0755 root root - - d /storage/roms/wonderswancolor 0755 root root - - d /storage/roms/x1 0755 root root - - diff --git a/packages/kernel/linux-drivers/RTL8188FU/package.mk b/packages/kernel/linux-drivers/RTL8188FU/package.mk new file mode 100644 index 000000000..b36552212 --- /dev/null +++ b/packages/kernel/linux-drivers/RTL8188FU/package.mk @@ -0,0 +1,29 @@ +PKG_NAME="RTL8188FU" +PKG_VERSION="dfe0a50" +PKG_LICENSE="GPL" +PKG_SITE="https://github.com/kelebek333/rtl8188fu" +PKG_URL="${PKG_SITE}.git" +PKG_DEPENDS_TARGET="toolchain linux kernel-firmware" +PKG_NEED_UNPACK="${LINUX_DEPENDS}" +PKG_LONGDESC="Realtek RTL81xxFU Linux firmware" +PKG_IS_KERNEL_PKG="yes" + +pre_make_target() { + unset LDFLAGS +} + +make_target() { + make V=1 \ + ARCH=${TARGET_KERNEL_ARCH} \ + KSRC=$(kernel_path) \ + CROSS_COMPILE=${TARGET_KERNEL_PREFIX} \ + CONFIG_POWER_SAVING=n \ + USER_EXTRA_CFLAGS="-Wno-error=date-time" +} + +makeinstall_target() { + mkdir -p ${INSTALL}/$(get_full_module_dir)/${PKG_NAME} + cp *.ko ${INSTALL}/$(get_full_module_dir)/${PKG_NAME} + mkdir -p ${INSTALL}/usr/lib/kernel-overlays/base/lib/firmware/rtlwifi + cp firmware/rtl8188fufw.bin ${INSTALL}/usr/lib/kernel-overlays/base/lib/firmware/rtlwifi +} diff --git a/packages/kernel/linux-firmware/RTL8188FU/package.mk b/packages/kernel/linux-firmware/RTL8188FU/package.mk deleted file mode 100644 index 80d974584..000000000 --- a/packages/kernel/linux-firmware/RTL8188FU/package.mk +++ /dev/null @@ -1,18 +0,0 @@ -PKG_NAME="RTL8188FU" -PKG_VERSION="2614aaf4ee0420f2e3efd62d7de19f7bc719ff66" -PKG_LICENSE="GPL" -PKG_SITE="https://github.com/lwfinger/rtl8188fu" -PKG_URL="https://github.com/lwfinger/rtl8188fu/archive/$PKG_VERSION.tar.gz" -PKG_DEPENDS_TARGET="toolchain linux kernel-firmware" -PKG_NEED_UNPACK="$LINUX_DEPENDS" -PKG_LONGDESC="Realtek RTL81xxFU Linux firmware" -PKG_IS_KERNEL_PKG="yes" - -make_target() { - echo -} - -makeinstall_target() { - mkdir -p ${INSTALL}/usr/lib/kernel-overlays/base/lib/firmware/rtlwifi - cp firmware/rtl8188fufw.bin ${INSTALL}/usr/lib/kernel-overlays/base/lib/firmware/rtlwifi -} diff --git a/packages/kernel/linux-firmware/kernel-firmware/firmwares/x86_64.dat b/packages/kernel/linux-firmware/kernel-firmware/firmwares/x86_64.dat index 4f1cf4f94..72e8ffc0d 100644 --- a/packages/kernel/linux-firmware/kernel-firmware/firmwares/x86_64.dat +++ b/packages/kernel/linux-firmware/kernel-firmware/firmwares/x86_64.dat @@ -1,15 +1 @@ -ath10k/* -ctefx.bin -lbtf_usb.bin -mrvl/sd8897_uapsta.bin -qca/*00000302.bin -rt2561.bin -rt2561s.bin -rt2661.bin -rt2860.bin -rt3290.bin -ar3k/*.dfu -intel/dsp_fw_{bxtn,cnl,glk,kbl,release}.bin -intel/fw_sst_*.bin* -intel/ibt-*.{ddc,sfi,bseq} -intel/IntcSST2.bin +* diff --git a/packages/kernel/linux-firmware/kernel-firmware/package.mk b/packages/kernel/linux-firmware/kernel-firmware/package.mk index 4c0c8f0b1..0549e0e06 100644 --- a/packages/kernel/linux-firmware/kernel-firmware/package.mk +++ b/packages/kernel/linux-firmware/kernel-firmware/package.mk @@ -2,8 +2,7 @@ # Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) PKG_NAME="kernel-firmware" -PKG_VERSION="20220509" -PKG_SHA256="376e0b3d7b4f8aaa2abf7f5ab74803dcf14b06b94e3d841b1467cd9a2848255e" +PKG_VERSION="20220815" PKG_LICENSE="other" PKG_SITE="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/" PKG_URL="https://cdn.kernel.org/pub/linux/kernel/firmware/linux-firmware-${PKG_VERSION}.tar.xz" diff --git a/packages/kernel/linux/package.mk b/packages/kernel/linux/package.mk index e11ca46b9..a9dbd6e35 100644 --- a/packages/kernel/linux/package.mk +++ b/packages/kernel/linux/package.mk @@ -4,11 +4,11 @@ PKG_NAME="linux" PKG_LICENSE="GPL" -PKG_VERSION="5.18.10" +PKG_VERSION="5.19.9" PKG_URL="https://www.kernel.org/pub/linux/kernel/v5.x/${PKG_NAME}-${PKG_VERSION}.tar.xz" PKG_SITE="http://www.kernel.org" PKG_DEPENDS_HOST="ccache:host rsync:host openssl:host" -PKG_DEPENDS_TARGET="toolchain linux:host kmod:host cpio:host xz:host keyutils ${KERNEL_EXTRA_DEPENDS_TARGET}" +PKG_DEPENDS_TARGET="toolchain linux:host kmod:host cpio:host xz:host keyutils ncurses openssl:host ${KERNEL_EXTRA_DEPENDS_TARGET}" PKG_NEED_UNPACK="${LINUX_DEPENDS} $(get_pkg_directory initramfs) $(get_pkg_variable initramfs PKG_NEED_UNPACK)" PKG_LONGDESC="This package contains a precompiled kernel image and the modules." PKG_IS_KERNEL_PKG="yes" diff --git a/packages/kernel/linux/patches/X86_64/001-ayaneo-air.patch b/packages/kernel/linux/patches/X86_64/001-ayaneo-air.patch new file mode 100644 index 000000000..2d4732788 --- /dev/null +++ b/packages/kernel/linux/patches/X86_64/001-ayaneo-air.patch @@ -0,0 +1,47 @@ +From 1fa1da0a951b32aada6f924b71a4417f101b2ed0 Mon Sep 17 00:00:00 2001 +From: Maya Matuszczyk +Date: Thu, 25 Aug 2022 20:58:34 +0200 +Subject: [PATCH] drm: panel-orientation-quirks: Add quirk for Aya Neo Air + +Yet another x86 gaming handheld. + +This one has many SKUs with quite a few of DMI strings, +so let's just use a catchall, just as with Aya Neo Next. + +Signed-off-by: Maya Matuszczyk +--- + drivers/gpu/drm/drm_panel_orientation_quirks.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/drivers/gpu/drm/drm_panel_orientation_quirks.c b/drivers/gpu/drm/drm_panel_orientation_quirks.c +index fc1728d46ac2..842d974a95c3 100644 +--- a/drivers/gpu/drm/drm_panel_orientation_quirks.c ++++ b/drivers/gpu/drm/drm_panel_orientation_quirks.c +@@ -103,6 +103,12 @@ static const struct drm_dmi_panel_orientation_data lcd800x1280_rightside_up = { + .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, + }; + ++static const struct drm_dmi_panel_orientation_data lcd1080x1920_leftside_up = { ++ .width = 1080, ++ .height = 1920, ++ .orientation = DRM_MODE_PANEL_ORIENTATION_LEFT_UP, ++}; ++ + static const struct drm_dmi_panel_orientation_data lcd1200x1920_rightside_up = { + .width = 1200, + .height = 1920, +@@ -152,6 +158,12 @@ static const struct dmi_system_id orientation_data[] = { + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "AYA NEO 2021"), + }, + .driver_data = (void *)&lcd800x1280_rightside_up, ++ }, { /* AYA NEO AIR */ ++ .matches = { ++ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYANEO"), ++ DMI_MATCH(DMI_BOARD_NAME, "AIR"), ++ }, ++ .driver_data = (void *)&lcd1080x1920_leftside_up, + }, { /* AYA NEO NEXT */ + .matches = { + DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AYANEO"), +-- +2.37.2 diff --git a/packages/kernel/linux/patches/handheld b/packages/kernel/linux/patches/handheld new file mode 120000 index 000000000..2988caf9b --- /dev/null +++ b/packages/kernel/linux/patches/handheld @@ -0,0 +1 @@ +X86_64 \ No newline at end of file diff --git a/packages/misc/modules/package.mk b/packages/misc/modules/package.mk index f7fdb1ebe..7904c3c82 100644 --- a/packages/misc/modules/package.mk +++ b/packages/misc/modules/package.mk @@ -22,5 +22,11 @@ makeinstall_target() { mkdir -p ${INSTALL}/usr/config/modules cp -rf ${PKG_DIR}/sources/* ${INSTALL}/usr/config/modules chmod 0755 ${INSTALL}/usr/config/modules/* + case ${ARCH} in + x86_64) + rm -f "${INSTALL}/usr/config/*32bit*" + rm -f "${INSTALL}/usr/config/*Master*" + ;; + esac } diff --git a/packages/misc/modules/sources/351Files.sh b/packages/misc/modules/sources/351Files.sh index 4b7c73868..4d5118922 100755 --- a/packages/misc/modules/sources/351Files.sh +++ b/packages/misc/modules/sources/351Files.sh @@ -6,7 +6,5 @@ . /etc/profile jslisten set "killall 351Files" -source /usr/bin/env.sh -joy2keyStart 351Files diff --git a/packages/misc/modules/sources/JelosAddOns.sh b/packages/misc/modules/sources/JelosAddOns.sh index b7cc80d14..40ed5549a 100755 --- a/packages/misc/modules/sources/JelosAddOns.sh +++ b/packages/misc/modules/sources/JelosAddOns.sh @@ -3,4 +3,10 @@ # SPDX-License-Identifier: GPL-2.0-or-later # Copyright 2022-present BrooksyTech (https://github.com/brooksytech) +. /etc/profile + +if [ "${UI_SERVICE}" = "weston.service" ] +then + sed -i -e "s#/dev/tty0#/dev/tty#" /storage/roms/ports/JelosAddOns.sh +fi /storage/roms/ports/JelosAddOns.sh diff --git a/packages/misc/modules/sources/PortMaster.sh b/packages/misc/modules/sources/PortMaster.sh index beb094735..db372d4f2 100755 --- a/packages/misc/modules/sources/PortMaster.sh +++ b/packages/misc/modules/sources/PortMaster.sh @@ -4,4 +4,10 @@ # Copyright (C) 2020-present Fewtarius # Maintenance 2022-present BrooksyTech (https://github.com/brooksytech) +. /etc/profile + +if [ "${UI_SERVICE}" = "weston.service" ] +then + sed -i -e "s#/dev/tty0#/dev/tty#" /storage/roms/ports/PortMaster.sh +fi /storage/roms/ports/PortMaster.sh diff --git a/packages/misc/modules/sources/Remove ._ Files.sh b/packages/misc/modules/sources/Remove ._ Files.sh index e1d5b98dd..d68a07829 100755 --- a/packages/misc/modules/sources/Remove ._ Files.sh +++ b/packages/misc/modules/sources/Remove ._ Files.sh @@ -5,10 +5,7 @@ # Copyright (C) 2020-present Fewtarius . /etc/profile -source /usr/bin/env.sh -clear >/dev/console -systemctl stop emustation -message_stream "Cleaning ._ files from /storage/roms" +clear +echo "Cleaning ._ files from /storage/roms" find /storage/roms -iname '._*' -exec rm -rf {} \; -clear >/dev/console -systemctl start emustation +clear diff --git a/packages/misc/modules/sources/Start 32bit Retroarch.sh b/packages/misc/modules/sources/Start 32bit Retroarch.sh index fe2c06f13..fb6bcc118 100755 --- a/packages/misc/modules/sources/Start 32bit Retroarch.sh +++ b/packages/misc/modules/sources/Start 32bit Retroarch.sh @@ -6,6 +6,5 @@ source /etc/profile jslisten set "killall retroarch32" - -set_kill_keys "retroarch32" +export LIBGL_DRIVERS_PATH="/usr/lib32/dri" /usr/bin/retroarch32 --appendconfig /usr/config/retroarch/retroarch32bit-append.cfg diff --git a/packages/misc/modules/sources/Start PPSSPP.sh b/packages/misc/modules/sources/Start PPSSPP.sh index 3fe1d1155..234539c4f 100755 --- a/packages/misc/modules/sources/Start PPSSPP.sh +++ b/packages/misc/modules/sources/Start PPSSPP.sh @@ -3,11 +3,10 @@ # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2020-present Fewtarius -source /usr/bin/env.sh source /etc/profile jslisten set "killall PPSSPPSDL" -cp -rf /storage/.config/SDL-GameControllerDB/gamecontrollerdb.txt /storage/roms/gamedata/ppsspp/assets/gamecontrollerdb.txt +cp -f /storage/.config/SDL-GameControllerDB/gamecontrollerdb.txt /storage/.config/ppsspp/assets/gamecontrollerdb.txt -/usr/bin/PPSSPPSDL +/usr/bin/PPSSPPSDL >/dev/null 2>&1 diff --git a/packages/misc/modules/sources/Start ScummVM.sh b/packages/misc/modules/sources/Start ScummVM.sh index dc241fd37..3f9ea4b18 100755 --- a/packages/misc/modules/sources/Start ScummVM.sh +++ b/packages/misc/modules/sources/Start ScummVM.sh @@ -3,7 +3,6 @@ # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2021-present 351ELEC -source /usr/bin/env.sh source /etc/profile jslisten set "killall scummvm" diff --git a/packages/misc/modules/sources/ThemeMaster.sh b/packages/misc/modules/sources/ThemeMaster.sh index 0df398d6d..f900dc697 100755 --- a/packages/misc/modules/sources/ThemeMaster.sh +++ b/packages/misc/modules/sources/ThemeMaster.sh @@ -4,4 +4,11 @@ # Copyright (C) 2020-present Fewtarius # Maintenance 2022-present BrooksyTech (https://github.com/brooksytech) +. /etc/profile + +if [ "${UI_SERVICE}" = "weston.service" ] +then + sed -i -e "s#/dev/tty1#/dev/tty#" /storage/roms/ports/ThemeMaster/ThemeMaster +fi + /storage/roms/ports/ThemeMaster.sh diff --git a/packages/misc/shared-mime-info/package.mk b/packages/misc/shared-mime-info/package.mk new file mode 100644 index 000000000..c94590d13 --- /dev/null +++ b/packages/misc/shared-mime-info/package.mk @@ -0,0 +1,32 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="shared-mime-info" +PKG_VERSION="2.1" +PKG_SHA256="37df6475da31a8b5fc63a54ba0770a3eefa0a708b778cb6366dccee96393cb60" +PKG_LICENSE="GPL2" +PKG_SITE="https://freedesktop.org/wiki/Software/shared-mime-info/" +PKG_URL="https://gitlab.freedesktop.org/xdg/${PKG_NAME}/-/archive/${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}.tar.bz2" +PKG_DEPENDS_HOST="toolchain:host glib:host libxml2:host gettext:host itstool:host" +PKG_DEPENDS_TARGET="toolchain glib libxml2 gettext shared-mime-info:host" +PKG_LONGDESC="The shared-mime-info package contains the core database of common types." +PKG_BUILD_FLAGS="-parallel" + +configure_package() { + # Sway Support + if [ ! "${WINDOWMANAGER}" = "sway" ] || \ + [ ! "${WINDOWMANAGER}" = "wl" ]; then + PKG_BUILD_FLAGS+=" -sysroot" + fi +} + +PKG_MESON_OPTS_HOST="-Dupdate-mimedb=false" +PKG_MESON_OPTS_TARGET="-Dupdate-mimedb=false" + +post_makeinstall_target() { + # Create /usr/share/mime/mime.cache + if [ "${WINDOWMANAGER}" = "sway" ] || \ + [ "${WINDOWMANAGER}" = "wl" ]; then + ${TOOLCHAIN}/bin/update-mime-database ${INSTALL}/usr/share/mime + fi +} diff --git a/packages/misc/shared-mime-info/patches/migrate-from-custom-itstool-to-builtin-msgfmt-for-creating-translated-XML.patch b/packages/misc/shared-mime-info/patches/migrate-from-custom-itstool-to-builtin-msgfmt-for-creating-translated-XML.patch new file mode 100644 index 000000000..28e647ede --- /dev/null +++ b/packages/misc/shared-mime-info/patches/migrate-from-custom-itstool-to-builtin-msgfmt-for-creating-translated-XML.patch @@ -0,0 +1,71 @@ +From 0944c4d73819fd93a7857d56a967c638beb01141 Mon Sep 17 00:00:00 2001 +From: Eli Schwartz +Date: Mon, 8 Nov 2021 18:22:47 -0500 +Subject: [PATCH] migrate from custom itstool to builtin msgfmt for creating + translated XML + +gettext upstream has supported this for a very long time, and using it +means we don't need to jump through hoops to run ninja inside ninja in +order to generate the .mo files for itstool. + +Although meson 0.60.0 added support for real targets for the built .mo +files, this changed the rules for output filenames, breaking the script. +But msgfmt does not care, and anyways comes with builtin meson functions +for convenient use. + +Fixes #170 +--- + data/freedesktop_generate.sh | 12 ------------ + data/meson.build | 16 +++++----------- + 2 files changed, 5 insertions(+), 23 deletions(-) + delete mode 100755 data/freedesktop_generate.sh + +diff --git a/data/freedesktop_generate.sh b/data/freedesktop_generate.sh +deleted file mode 100755 +index 62ccffa..0000000 +--- a/data/freedesktop_generate.sh ++++ /dev/null +@@ -1,12 +0,0 @@ +-#!/bin/sh -e +- +-src_root="$1" +-build_root="$2" +- +-ninja -C "${build_root}" shared-mime-info-gmo +- +-itstool \ +- --its "${src_root}/data/its/shared-mime-info.its" \ +- --join "${src_root}/data/freedesktop.org.xml.in" \ +- -o "${build_root}/data/freedesktop.org.xml" \ +- "${build_root}/po/"*".gmo" +diff --git a/data/meson.build b/data/meson.build +index 24361c9..09ed7a9 100644 +--- a/data/meson.build ++++ b/data/meson.build +@@ -1,18 +1,12 @@ + + install_man('update-mime-database.1') + +-freedesktop_org_xml = custom_target('freedesktop.org.xml', +- input : files( +- 'freedesktop.org.xml.in', +- 'its/shared-mime-info.its', +- 'its/shared-mime-info.loc', +- ), ++freedesktop_org_xml = i18n.merge_file( ++ input: 'freedesktop.org.xml.in', + output: 'freedesktop.org.xml', +- command: [ +- find_program('freedesktop_generate.sh'), +- meson.source_root(), +- meson.build_root() +- ], ++ data_dirs: '.', ++ po_dir: '../po', ++ type: 'xml', + install: true, + install_dir: get_option('datadir') / 'mime' / 'packages', + ) +-- +GitLab + diff --git a/packages/misc/shared-mime-info/patches/shared-mime-info-999.01-disable-spec-generation.patch b/packages/misc/shared-mime-info/patches/shared-mime-info-999.01-disable-spec-generation.patch new file mode 100644 index 000000000..3d43d7e4b --- /dev/null +++ b/packages/misc/shared-mime-info/patches/shared-mime-info-999.01-disable-spec-generation.patch @@ -0,0 +1,58 @@ +From baeb49e36bc162bcbd243e733d2a9f1eb9abfefb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ville=20Skytt=C3=A4?= +Date: Sun, 24 Jan 2021 11:45:52 +0200 +Subject: [PATCH] meson: make xmlto optional, build spec only if found + +Refs https://gitlab.freedesktop.org/xdg/shared-mime-info/-/issues/150 +--- + data/meson.build | 22 ++++++++++++---------- + meson.build | 2 +- + 2 files changed, 13 insertions(+), 11 deletions(-) + +diff --git a/data/meson.build b/data/meson.build +index 263567d..24361c9 100644 +--- a/data/meson.build ++++ b/data/meson.build +@@ -22,14 +22,16 @@ install_data( + install_dir : get_option('datadir') / 'gettext/its' + ) + +-custom_target('shared-mime-info-spec-html', +- input : 'shared-mime-info-spec.xml', +- output: 'shared-mime-info-spec-html', +- command: [ +- xmlto, +- '-o', '@OUTPUT@', +- 'html-nochunks', +- '@INPUT@', +- ], +- build_by_default: true, ++if xmlto.found() ++ custom_target('shared-mime-info-spec-html', ++ input : 'shared-mime-info-spec.xml', ++ output: 'shared-mime-info-spec-html', ++ command: [ ++ xmlto, ++ '-o', '@OUTPUT@', ++ 'html-nochunks', ++ '@INPUT@', ++ ], ++ build_by_default: true, + ) ++endif +diff --git a/meson.build b/meson.build +index 9a28573..0d08c8a 100644 +--- a/meson.build ++++ b/meson.build +@@ -22,7 +22,7 @@ config.set_quoted('VERSION', meson.project_version()) + + itstool = find_program('itstool') + xmllint = find_program('xmllint') +-xmlto = find_program('xmlto') ++xmlto = find_program('xmlto', required: false) + + ############################################################################### + # Find xdgmime +-- +GitLab + diff --git a/packages/multimedia/intel-vaapi-driver/package.mk b/packages/multimedia/intel-vaapi-driver/package.mk index 78f18a9ed..ef0ed8865 100644 --- a/packages/multimedia/intel-vaapi-driver/package.mk +++ b/packages/multimedia/intel-vaapi-driver/package.mk @@ -15,7 +15,7 @@ PKG_TOOLCHAIN="autotools" if [ "$DISPLAYSERVER" = "x11" ]; then DISPLAYSERVER_LIBVA="--enable-x11 --disable-wayland" -elif [ "$DISPLAYSERVER" = "weston" ]; then +elif [ "$DISPLAYSERVER" = "wl" ]; then DISPLAYSERVER_LIBVA="--disable-x11 --enable-wayland" else DISPLAYSERVER_LIBVA="--disable-x11 --disable-wayland" diff --git a/packages/network/connman/package.mk b/packages/network/connman/package.mk index a9a0f04b9..0cead47d3 100644 --- a/packages/network/connman/package.mk +++ b/packages/network/connman/package.mk @@ -7,7 +7,7 @@ PKG_VERSION="7a0bc35c4b2d9bd1c6fd76866a8a86807a626591" # 1.41 PKG_LICENSE="GPL" PKG_SITE="http://www.connman.net" PKG_URL="https://git.kernel.org/pub/scm/network/connman/connman.git/snapshot/connman-$PKG_VERSION.tar.gz" -PKG_DEPENDS_TARGET="toolchain glib readline dbus iptables wpa_supplicant" +PKG_DEPENDS_TARGET="toolchain glib ncurses readline dbus iptables wpa_supplicant" PKG_LONGDESC="A modular network connection manager." PKG_TOOLCHAIN="autotools" diff --git a/packages/network/libpcap/package.mk b/packages/network/libpcap/package.mk new file mode 100644 index 000000000..ed448b599 --- /dev/null +++ b/packages/network/libpcap/package.mk @@ -0,0 +1,33 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="libpcap" +PKG_VERSION="1.10.1" +PKG_SHA256="ed285f4accaf05344f90975757b3dbfe772ba41d1c401c2648b7fa45b711bdd4" +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" +PKG_LONGDESC="A portable framework for low-level network monitoring." +# use configure, not cmake. review cmake in future release. +PKG_TOOLCHAIN="configure" + +PKG_CONFIGURE_OPTS_TARGET="LIBS=-lpthread \ + ac_cv_header_libusb_1_0_libusb_h=no \ + --disable-shared \ + --with-pcap=linux \ + --disable-bluetooth \ + --disable-can \ + --without-libnl \ + --disable-dbus \ + --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 +} + +post_makeinstall_target() { + rm -rf ${INSTALL}/usr/bin +} diff --git a/packages/network/libpcap/patches/remove-manpages.patch b/packages/network/libpcap/patches/remove-manpages.patch new file mode 100644 index 000000000..aef4ad67e --- /dev/null +++ b/packages/network/libpcap/patches/remove-manpages.patch @@ -0,0 +1,73 @@ +--- libpcap-1.10.0/CMakeLists.txt 2020-12-29 21:16:30.000000000 +0000 ++++ libpcap-1.10.0/CMakeLists.txt 2021-01-02 04:34:31.834695073 +0000 +@@ -2689,70 +2689,6 @@ + install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/pcap-config DESTINATION bin) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpcap.pc DESTINATION lib/pkgconfig) + +- # +- # Man pages. +- # +- # For each section of the manual for which we have man pages +- # that require macro expansion, do the expansion. +- # +- # If this is MinGW, maybe we have a UN*X-style ln command and +- # maybe we don't. (No, we do *NOT* require MSYS!) If we don't +- # have it, don't do the man pages. +- # +- if(MINGW) +- find_program(LINK_EXECUTABLE ln) +- endif(MINGW) +- if(UNIX OR (MINGW AND LINK_EXECUTABLE)) +- set(MAN1 "") +- foreach(MANPAGE ${MAN1_NOEXPAND}) +- set(MAN1 ${MAN1} ${CMAKE_CURRENT_SOURCE_DIR}/${MANPAGE}) +- endforeach(MANPAGE) +- install(FILES ${MAN1} DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) +- +- set(MAN3PCAP "") +- foreach(MANPAGE ${MAN3PCAP_NOEXPAND}) +- set(MAN3PCAP ${MAN3PCAP} ${CMAKE_CURRENT_SOURCE_DIR}/${MANPAGE}) +- endforeach(MANPAGE) +- foreach(TEMPLATE_MANPAGE ${MAN3PCAP_EXPAND}) +- string(REPLACE ".in" "" MANPAGE ${TEMPLATE_MANPAGE}) +- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${TEMPLATE_MANPAGE} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE} @ONLY) +- set(MAN3PCAP ${MAN3PCAP} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE}) +- endforeach(TEMPLATE_MANPAGE) +- install(FILES ${MAN3PCAP} DESTINATION ${CMAKE_INSTALL_MANDIR}/man3) +- install_manpage_symlink(pcap_datalink_val_to_name.3pcap pcap_datalink_val_to_description.3pcap ${CMAKE_INSTALL_MANDIR}/man3) +- install_manpage_symlink(pcap_datalink_val_to_name.3pcap pcap_datalink_val_to_description_or_dlt.3pcap ${CMAKE_INSTALL_MANDIR}/man3) +- install_manpage_symlink(pcap_dump_open.3pcap pcap_dump_fopen.3pcap ${CMAKE_INSTALL_MANDIR}/man3) +- install_manpage_symlink(pcap_findalldevs.3pcap pcap_freealldevs.3pcap ${CMAKE_INSTALL_MANDIR}/man3) +- install_manpage_symlink(pcap_geterr.3pcap pcap_perror.3pcap ${CMAKE_INSTALL_MANDIR}/man3) +- install_manpage_symlink(pcap_inject.3pcap pcap_sendpacket.3pcap ${CMAKE_INSTALL_MANDIR}/man3) +- install_manpage_symlink(pcap_list_datalinks.3pcap pcap_free_datalinks.3pcap ${CMAKE_INSTALL_MANDIR}/man3) +- install_manpage_symlink(pcap_list_tstamp_types.3pcap pcap_free_tstamp_types.3pcap ${CMAKE_INSTALL_MANDIR}/man3) +- install_manpage_symlink(pcap_loop.3pcap pcap_dispatch.3pcap ${CMAKE_INSTALL_MANDIR}/man3) +- install_manpage_symlink(pcap_major_version.3pcap pcap_minor_version.3pcap ${CMAKE_INSTALL_MANDIR}/man3) +- install_manpage_symlink(pcap_next_ex.3pcap pcap_next.3pcap ${CMAKE_INSTALL_MANDIR}/man3) +- install_manpage_symlink(pcap_open_dead.3pcap pcap_open_dead_with_tstamp_precision.3pcap ${CMAKE_INSTALL_MANDIR}/man3) +- install_manpage_symlink(pcap_open_offline.3pcap pcap_open_offline_with_tstamp_precision.3pcap ${CMAKE_INSTALL_MANDIR}/man3) +- install_manpage_symlink(pcap_open_offline.3pcap pcap_fopen_offline.3pcap ${CMAKE_INSTALL_MANDIR}/man3) +- install_manpage_symlink(pcap_open_offline.3pcap pcap_fopen_offline_with_tstamp_precision.3pcap ${CMAKE_INSTALL_MANDIR}/man3) +- install_manpage_symlink(pcap_tstamp_type_val_to_name.3pcap pcap_tstamp_type_val_to_description.3pcap ${CMAKE_INSTALL_MANDIR}/man3) +- install_manpage_symlink(pcap_setnonblock.3pcap pcap_getnonblock.3pcap ${CMAKE_INSTALL_MANDIR}/man3) +- +- set(MANFILE "") +- foreach(TEMPLATE_MANPAGE ${MANFILE_EXPAND}) +- string(REPLACE ".manfile.in" ".${MAN_FILE_FORMATS}" MANPAGE ${TEMPLATE_MANPAGE}) +- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${TEMPLATE_MANPAGE} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE} @ONLY) +- set(MANFILE ${MANFILE} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE}) +- endforeach(TEMPLATE_MANPAGE) +- install(FILES ${MANFILE} DESTINATION ${CMAKE_INSTALL_MANDIR}/man${MAN_FILE_FORMATS}) +- +- set(MANMISC "") +- foreach(TEMPLATE_MANPAGE ${MANMISC_EXPAND}) +- string(REPLACE ".manmisc.in" ".${MAN_MISC_INFO}" MANPAGE ${TEMPLATE_MANPAGE}) +- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${TEMPLATE_MANPAGE} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE} @ONLY) +- set(MANMISC ${MANMISC} ${CMAKE_CURRENT_BINARY_DIR}/${MANPAGE}) +- endforeach(TEMPLATE_MANPAGE) +- install(FILES ${MANMISC} DESTINATION ${CMAKE_INSTALL_MANDIR}/man${MAN_MISC_INFO}) +- endif(UNIX OR (MINGW AND LINK_EXECUTABLE)) + endif(NOT MSVC) + + # uninstall target diff --git a/packages/network/samba/config/samba4-cache.txt b/packages/network/samba/config/samba4-cache.txt index 1989baa28..bd1cd5cef 100644 --- a/packages/network/samba/config/samba4-cache.txt +++ b/packages/network/samba/config/samba4-cache.txt @@ -43,4 +43,6 @@ Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK Checking value of GNUTLS_MAC_AES_CMAC_128: OK Checking whether fcntl supports flags to send direct I/O availability signals: OK Checking whether fcntl supports setting/geting hints: OK +Checking for gnutls fips mode support: NO +Checking for readlink breakage: NO diff --git a/packages/network/samba/config/smb.conf b/packages/network/samba/config/smb.conf index 786a45208..b85887629 100644 --- a/packages/network/samba/config/smb.conf +++ b/packages/network/samba/config/smb.conf @@ -26,6 +26,7 @@ # samba share options map to guest = Bad User + guest account = root security = user # samba tuning options @@ -49,7 +50,7 @@ # writeable shares of disks and paths under /storage [update] - path = /storage/roms/update + path = /storage/.update available = yes browseable = yes writeable = yes diff --git a/packages/network/samba/default.d/samba.conf b/packages/network/samba/default.d/samba.conf deleted file mode 100644 index 9ad00368c..000000000 --- a/packages/network/samba/default.d/samba.conf +++ /dev/null @@ -1,7 +0,0 @@ -SAMBA_AUTOSHARE="true" -SAMBA_USERNAME="libreelec" -SAMBA_PASSWORD="libreelec" -SAMBA_SECURE="false" -SAMBA_MINPROTOCOL="SMB2" -SAMBA_MAXPROTOCOL="SMB3" -SAMBA_WORKGROUP="WORKGROUP" diff --git a/packages/network/samba/package.mk b/packages/network/samba/package.mk index 793c1a344..30825c612 100644 --- a/packages/network/samba/package.mk +++ b/packages/network/samba/package.mk @@ -3,11 +3,12 @@ # Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv) PKG_NAME="samba" -PKG_VERSION="4.14.12" +PKG_VERSION="4.17.0" +PKG_SHA256="04868ecda82fcbeda7b8bf519a2461a64d55c6e70efc6f6053b2fbba55f1823a" PKG_LICENSE="GPLv3+" PKG_SITE="https://www.samba.org" PKG_URL="https://download.samba.org/pub/samba/stable/${PKG_NAME}-${PKG_VERSION}.tar.gz" -PKG_DEPENDS_TARGET="toolchain attr heimdal:host e2fsprogs Python3 zlib readline popt libaio connman gnutls" +PKG_DEPENDS_TARGET="toolchain attr heimdal:host e2fsprogs Python3 libunwind zlib readline popt libaio connman gnutls wsdd2" PKG_NEED_UNPACK="$(get_pkg_directory heimdal) $(get_pkg_directory e2fsprogs)" PKG_LONGDESC="A free SMB / CIFS fileserver and client." PKG_BUILD_FLAGS="-gold" @@ -39,12 +40,12 @@ configure_package() { --with-privatelibdir=/usr/lib \ --with-sockets-dir=/run/samba \ --with-configdir=/run/samba \ + --with-static-modules=vfs_widelinks \ --with-libiconv=${SYSROOT_PREFIX}/usr \ --cross-compile \ --cross-answers=${PKG_BUILD}/cache.txt \ --hostcc=gcc \ --enable-fhs \ - --with-static-modules=vfs_widelinks \ --without-dmapi \ --disable-glusterfs \ --disable-rpath \ @@ -61,7 +62,6 @@ configure_package() { --without-ad-dc \ --without-automount \ --without-cluster-support \ - --without-dnsupdate \ --without-fam \ --without-gettext \ --without-gpgme \ @@ -85,7 +85,7 @@ configure_package() { PKG_SAMBA_TARGET="smbclient,client/smbclient,smbtree,nmblookup,testparm" if [ "${SAMBA_SERVER}" = "yes" ]; then - PKG_SAMBA_TARGET+=",smbd/smbd,nmbd,smbpasswd" + PKG_SAMBA_TARGET+=",nmbd,rpcd_classic,rpcd_epmapper,rpcd_winreg,samba-dcerpcd,smbpasswd,smbd/smbd" fi } @@ -95,7 +95,7 @@ pre_configure_target() { rm -rf .${TARGET_NAME} # work around link issues - export LDFLAGS="${LDFLAGS} -lreadline -lncurses -ltinfo" + export LDFLAGS="${LDFLAGS} -lreadline -lncursesw -ltinfow" # support 64-bit offsets and seeks on 32-bit platforms if [ "${TARGET_ARCH}" = "arm" ]; then @@ -123,12 +123,12 @@ pre_make_target() { } make_target() { - ./buildtools/bin/waf build ${PKG_WAF_VERBOSE} --targets=${PKG_SAMBA_TARGET} -j${CONCURRENCY_MAKE_LEVEL} + make ${PKG_SAMBA_TARGET} -j${CONCURRENCY_MAKE_LEVEL} } makeinstall_target() { - ./buildtools/bin/waf install ${PKG_WAF_VERBOSE} --destdir=${SYSROOT_PREFIX} --targets=smbclient -j${CONCURRENCY_MAKE_LEVEL} - ./buildtools/bin/waf install ${PKG_WAF_VERBOSE} --destdir=${INSTALL} --targets=${PKG_SAMBA_TARGET} -j${CONCURRENCY_MAKE_LEVEL} + PYTHONHASHSEED=1 WAF_MAKE=1 ./buildtools/bin/waf install ${PKG_WAF_VERBOSE} --destdir=${SYSROOT_PREFIX} --targets=smbclient -j${CONCURRENCY_MAKE_LEVEL} + PYTHONHASHSEED=1 WAF_MAKE=1 ./buildtools/bin/waf install ${PKG_WAF_VERBOSE} --destdir=${INSTALL} --targets=${PKG_SAMBA_TARGET} -j${CONCURRENCY_MAKE_LEVEL} } copy_directory_of_links() { @@ -156,6 +156,12 @@ perform_manual_install() { mkdir -p ${INSTALL}/usr/sbin cp -L ${PKG_BUILD}/bin/smbd ${INSTALL}/usr/sbin cp -L ${PKG_BUILD}/bin/nmbd ${INSTALL}/usr/sbin + + mkdir -p ${INSTALL}/usr/libexec/samba + cp -PR bin/default/source3/rpc_server/samba-dcerpcd ${INSTALL}/usr/libexec/samba + cp -PR bin/default/source3/rpc_server/rpcd_classic ${INSTALL}/usr/libexec/samba + cp -PR bin/default/source3/rpc_server/rpcd_epmapper ${INSTALL}/usr/libexec/samba + cp -PR bin/default/source3/rpc_server/rpcd_winreg ${INSTALL}/usr/libexec/samba fi } @@ -167,11 +173,6 @@ post_makeinstall_target() { rm -rf ${INSTALL}/usr/share/perl* rm -rf ${INSTALL}/usr/lib64 - mkdir -p ${INSTALL}/usr/lib/samba - cp ${PKG_DIR}/scripts/samba-config ${INSTALL}/usr/lib/samba - cp ${PKG_DIR}/scripts/smbd-config ${INSTALL}/usr/lib/samba - cp ${PKG_DIR}/scripts/samba-autoshare ${INSTALL}/usr/lib/samba - if find_file_path config/smb.conf; then mkdir -p ${INSTALL}/etc/samba cp ${FOUND_PATH} ${INSTALL}/etc/samba @@ -189,19 +190,6 @@ post_makeinstall_target() { mkdir -p ${INSTALL}/usr/bin cp -PR bin/default/source3/utils/smbpasswd ${INSTALL}/usr/bin - mkdir -p ${INSTALL}/usr/lib/systemd/system - cp ${PKG_DIR}/system.d.opt/* ${INSTALL}/usr/lib/systemd/system - - mkdir -p ${INSTALL}/usr/share/services - cp -P ${PKG_DIR}/default.d/*.conf ${INSTALL}/usr/share/services fi } -post_install() { - enable_service samba-config.service - - if [ "${SAMBA_SERVER}" = "yes" ]; then - enable_service nmbd.service - enable_service smbd.service - fi -} diff --git a/packages/network/samba/patches/samba-200-4.11-fix-ASN1-bso14164.patch b/packages/network/samba/patches/samba-200-4.11-fix-ASN1-bso14164.patch index 03b2f31d6..5d3cb17e4 100644 --- a/packages/network/samba/patches/samba-200-4.11-fix-ASN1-bso14164.patch +++ b/packages/network/samba/patches/samba-200-4.11-fix-ASN1-bso14164.patch @@ -41,8 +41,10 @@ diff --git a/wscript_configure_embedded_heimdal b/wscript_configure_embedded_hei index 8c55ae2..4fdae80 100644 --- a/wscript_configure_embedded_heimdal +++ b/wscript_configure_embedded_heimdal -@@ -1 +1,12 @@ - conf.RECURSE('source4/heimdal_build') +@@ -6,3 +6,14 @@ + + conf.define('USING_EMBEDDED_HEIMDAL', 1) + conf.RECURSE('third_party/heimdal_build') + +def check_system_heimdal_binary(name): + if conf.LIB_MAY_BE_BUNDLED(name): @@ -73,14 +75,14 @@ index 235fa19..4f4a83cd 100644 check_system_heimdal_lib("com_err", "com_right_r com_err", "com_err.h") if check_system_heimdal_lib("roken", "rk_socket_set_reuseaddr", "roken.h"): -@@ -96,7 +88,4 @@ finally: +@@ -86,7 +78,4 @@ finally: #if conf.CHECK_BUNDLED_SYSTEM('tommath', checkfunctions='mp_init', headers='tommath.h'): # conf.define('USING_SYSTEM_TOMMATH', 1) -check_system_heimdal_binary("compile_et") -check_system_heimdal_binary("asn1_compile") - - conf.define('USING_SYSTEM_KRB5', 1) + conf.env.KRB5_VENDOR = 'heimdal' -- 2.20.1 diff --git a/packages/network/samba/patches/samba-951-no-man-4.13.patch b/packages/network/samba/patches/samba-951-no-man-4.16.patch similarity index 84% rename from packages/network/samba/patches/samba-951-no-man-4.13.patch rename to packages/network/samba/patches/samba-951-no-man-4.16.patch index 1db3f9f4c..0a20aef15 100644 --- a/packages/network/samba/patches/samba-951-no-man-4.13.patch +++ b/packages/network/samba/patches/samba-951-no-man-4.16.patch @@ -1,11 +1,12 @@ diff --git a/docs-xml/wscript_build b/docs-xml/wscript_build --- a/docs-xml/wscript_build 2020-12-05 09:01:19.652459634 +0000 +++ b/docs-xml/wscript_build 2020-12-05 09:10:10.639446971 +0000 -@@ -153,28 +153,3 @@ - target=parameter_all, - rule=smbdotconf_generate_parameter_list, +@@ -175,32 +175,3 @@ + target=path_entities, + rule=generate_path_entity_file, dep_vars=bld.dynconfig_varnames()) - +- -def SMBDOTCONF_MANPAGE(bld, target): - ''' assemble and build smb.conf.5 manual page''' - bld.SAMBAMANPAGES(target, parameter_all) @@ -27,6 +28,9 @@ diff --git a/docs-xml/wscript_build b/docs-xml/wscript_build - if conf.env.build_winexe == True: - bld.SAMBAMANPAGES(winexe_manpages) - +- if bld.CONFIG_SET('ENABLE_SELFTEST'): +- bld.SAMBAMANPAGES('manpages/vfstest.1') +- - for manpage in vfs_module_manpages: - if bld.SAMBA3_IS_ENABLED_MODULE(manpage): - bld.SAMBAMANPAGES('manpages/%s.8' % manpage) diff --git a/packages/network/samba/scripts/samba-autoshare b/packages/network/samba/scripts/samba-autoshare deleted file mode 100755 index 7112925dd..000000000 --- a/packages/network/samba/scripts/samba-autoshare +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2009-2017 Stephan Raue (stephan@openelec.tv) - -if [ -f /storage/.cache/services/samba.conf ]; then - . /storage/.cache/services/samba.conf - - if [ "$SAMBA_AUTOSHARE" == "true" ] ; then - /usr/lib/samba/samba-config - [ -f /run/samba/smbd.pid ] && pkill -HUP smbd - fi -fi diff --git a/packages/network/samba/scripts/samba-config b/packages/network/samba/scripts/samba-config deleted file mode 100755 index 927010695..000000000 --- a/packages/network/samba/scripts/samba-config +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh - -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2009-2017 Stephan Raue (stephan@openelec.tv) - -SMB_USERCONF="/storage/.config/samba.conf" -SMB_DEFCONF="/etc/samba/smb.conf" -SMB_CONF="/run/samba/smb.conf" - -SMB_USERCONF_IS_VALID=no -SMB_CONFIG_VERSION=4 - -# If user config is based on legacy OpenELEC, or old version (or no version) -# then don't use it, and log a warning. -if [ -f $SMB_USERCONF ]; then - SMB_IS_LEGACY="$(awk 'NR <= 2 && /This file is part of OpenELEC/{ print }' $SMB_USERCONF)" - SMB_THIS_VER="$(awk '/^# samba.conf v[0-9\.]*/{ print substr($3,2); exit }' $SMB_USERCONF)" - if [ -n "${SMB_IS_LEGACY}" ]; then - echo "WARNING: Ignoring user config $SMB_USERCONF due to incompatibility [Old style OpenELEC]" - elif [ -z "${SMB_THIS_VER}" ]; then - echo "WARNING: Ignoring user config $SMB_USERCONF due to incompatibility [version is unknown or invalid]" - elif [ ${SMB_THIS_VER} != ${SMB_CONFIG_VERSION} ]; then - echo "WARNING: Ignoring user config $SMB_USERCONF due to incompatibility [version ${SMB_THIS_VER} is not the required version $SMB_CONFIG_VERSION]" - else - SMB_USERCONF_IS_VALID=yes - fi -fi - -mkdir -p $(dirname $SMB_CONF) - if [ $SMB_USERCONF_IS_VALID = yes ]; then - cp $SMB_USERCONF $SMB_CONF - else - cp $SMB_DEFCONF $SMB_CONF - fi - -# Generate smb.conf, unless disabled -if [ ! -f /storage/.cache/services/samba.disabled ]; then - /usr/lib/samba/smbd-config -fi - -exit 0 diff --git a/packages/network/samba/scripts/smbd-config b/packages/network/samba/scripts/smbd-config deleted file mode 100755 index aed4730a3..000000000 --- a/packages/network/samba/scripts/smbd-config +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/sh - -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2009-2017 Stephan Raue (stephan@openelec.tv) -# Copyright (C) 2020-present Team LibreELEC (https://libreelec.tv) - -SMB_CONF="/run/samba/smb.conf" -SMB_TMP="$(mktemp -p /run/samba)" - -cp -f $SMB_CONF $SMB_TMP - -if [ ! -f /storage/.cache/services/samba.conf ]; then - cp /usr/share/services/samba.conf /storage/.cache/services -fi - -# Specify defaults here, in case these new properties not yet added in .cache -SAMBA_WORKGROUP=WORKGROUP -SAMBA_MINPROTOCOL=SMB2 -SAMBA_MAXPROTOCOL=SMB3 - -. /storage/.cache/services/samba.conf - -# fixup synonyms -sed -i 's/browsable/browseable/g; s/writable/writeable/g' $SMB_TMP - -# handle external drives -if [ "$SAMBA_AUTOSHARE" == "true" ] ; then - for dir in /media/* ; do - if [ -d "$dir" ] ; then - name=$(basename "$dir") - echo -e "[$name]\n path = $dir\n available = yes\n browseable = yes\n public = yes\n writeable = yes\n" >> $SMB_TMP - fi - done -fi - -# Allow access to a "failed" (safe mode) Kodi installation -if [ -d /storage/.kodi.FAILED ]; then - echo -e "[Kodi-Failed]\n path = /storage/.kodi.FAILED\n available = yes\n browseable = yes\n public = yes\n writeable = yes\n" >> $SMB_TMP -fi - -ADD_CONFIG= - -# If workgroup is not set, don't set it - who knows, user may know better. -if [ -n "$SAMBA_WORKGROUP" ]; then - # Remove any existing workgroup setting - sed -E '/^[[:space:]]*workgroup[[:space:]]*=/d' -i $SMB_TMP - ADD_CONFIG="${ADD_CONFIG} workgroup = ${SAMBA_WORKGROUP:-WORKGROUP}\n" -fi - -ADD_CONFIG="${ADD_CONFIG} server min protocol = ${SAMBA_MINPROTOCOL/SMB1/NT1}\n" -ADD_CONFIG="${ADD_CONFIG} server max protocol = ${SAMBA_MAXPROTOCOL/SMB1/NT1}\n" - -# Add extra config after [global], escaping spaces so that all are retained by sed -sed -e "/\[global\]/ a ${ADD_CONFIG// /\\ }" -i $SMB_TMP - -if [ "$SAMBA_SECURE" == "true" -a ! "$SAMBA_USERNAME" == "" -a ! "$SAMBA_PASSWORD" == "" ] ; then - # username map: first line makes sure plain root does not work all the time - # processing continues, so if user chooses root as username, second line overrides the first - # this is done always in case user uses passwords in userconf. - # many thanks to viljoviitanen for this - printf "%s\n%s" "$SAMBA_PASSWORD" "$SAMBA_PASSWORD" | smbpasswd -s -a root >/dev/null 2>&1 - printf "nobody = root\nroot = %s" "$SAMBA_USERNAME" > /run/samba/samba.map - - sed -e 's|^.[ \t]*.public.=.*| public = no |' \ - -e 's|^.[ \t]*.username map.=.*||' \ - -e 's|^.[ \t]*.security.=.*| security = user\n username map = /run/samba/samba.map|' \ - -e 's|^.[ \t]*.map.to.guest.=.*| map to guest = Never|' \ - -i $SMB_TMP -else - sed -e 's|^.[ \t]*.public.=.*| public = yes |' \ - -e 's|^.[ \t]*.username map.=.*||' \ - -e 's|^.[ \t]*.security.=.*| security = user|' \ - -e 's|^.[ \t]*.map.to.guest.=.*| map to guest = Bad User|' \ - -i $SMB_TMP -fi - -mv -f $SMB_TMP $SMB_CONF diff --git a/packages/network/samba/system.d.opt/nmbd.service b/packages/network/samba/system.d/nmbd.service similarity index 100% rename from packages/network/samba/system.d.opt/nmbd.service rename to packages/network/samba/system.d/nmbd.service diff --git a/packages/network/samba/system.d/samba-config.service b/packages/network/samba/system.d/samba-config.service deleted file mode 100644 index fe02a9697..000000000 --- a/packages/network/samba/system.d/samba-config.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Samba Configuration -DefaultDependencies=false -After=basic.target - -[Service] -Type=oneshot -RemainAfterExit=yes -ExecStart=/usr/lib/samba/samba-config -StartLimitInterval=0 diff --git a/packages/network/samba/system.d.opt/smbd.service b/packages/network/samba/system.d/smbd.service similarity index 100% rename from packages/network/samba/system.d.opt/smbd.service rename to packages/network/samba/system.d/smbd.service diff --git a/packages/network/tailscale/package.mk b/packages/network/tailscale/package.mk index 63a7dac32..72bca5736 100644 --- a/packages/network/tailscale/package.mk +++ b/packages/network/tailscale/package.mk @@ -11,9 +11,11 @@ PKG_DEPENDS_TARGET="toolchain wireguard-tools" PKG_SHORTDESC="Zero config VPN. Installs on any device in minutes, manages firewall rules for you, and works from anywhere." PKG_TOOLCHAIN="manual" -if [ ! "${TARGET_ARCH}" = "x86_64" ]; then - PKG_DEPENDS_TARGET+=" wireguard-linux-compat" -fi +case ${TARGET_ARCH} in + RG351P|RG351V|RG351MP|RG503|RG353P) + PKG_DEPENDS_TARGET+=" wireguard-linux-compat" + ;; +esac pre_unpack() { mkdir -p ${PKG_BUILD} diff --git a/packages/rust/cargo-snapshot/package.mk b/packages/rust/cargo-snapshot/package.mk new file mode 100644 index 000000000..2c84b8e43 --- /dev/null +++ b/packages/rust/cargo-snapshot/package.mk @@ -0,0 +1,11 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="cargo-snapshot" +PKG_VERSION="$(get_pkg_version rust)" +PKG_SHA256="f370d12e4c11f0c835becb738bcf00d363f29b76f8b424b4dcb005abcf15fc9a" +PKG_LICENSE="MIT" +PKG_SITE="https://www.rust-lang.org" +PKG_URL="https://static.rust-lang.org/dist/cargo-${PKG_VERSION}-${MACHINE_HARDWARE_NAME}-unknown-linux-gnu.tar.xz" +PKG_LONGDESC="cargo bootstrap package" +PKG_TOOLCHAIN="manual" diff --git a/packages/rust/cargo/package.mk b/packages/rust/cargo/package.mk new file mode 100644 index 000000000..1cabd949f --- /dev/null +++ b/packages/rust/cargo/package.mk @@ -0,0 +1,32 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="cargo" +PKG_VERSION="$(get_pkg_version rust)" +PKG_LICENSE="MIT" +PKG_SITE="https://www.rust-lang.org" +PKG_DEPENDS_HOST="openssl:host rust:host" +PKG_DEPENDS_UNPACK="cargo-snapshot rust" +PKG_LONGDESC="Cargo is the Rust package manager" +PKG_TOOLCHAIN="manual" + +pre_configure_host() { + "$(get_build_dir cargo-snapshot)/install.sh" --prefix="${PKG_BUILD}/cargo-snapshot" --disable-ldconfig +} + +configure_host() { + cd ${PKG_BUILD} +} + +make_host() { + cd ${PKG_BUILD} + + export RUSTC_BOOTSTRAP="1" + + ./cargo-snapshot/bin/cargo build -v --target ${RUST_HOST} --release --manifest-path="$(get_build_dir rust)/src/tools/cargo/Cargo.toml" +} + +makeinstall_host() { + mkdir -p ${TOOLCHAIN}/bin + cp -a ${PKG_BUILD}/.${RUST_HOST}/target/${RUST_HOST}/release/cargo ${TOOLCHAIN}/bin/ +} diff --git a/packages/rust/rust-std-snapshot/package.mk b/packages/rust/rust-std-snapshot/package.mk new file mode 100644 index 000000000..5f0ffe468 --- /dev/null +++ b/packages/rust/rust-std-snapshot/package.mk @@ -0,0 +1,11 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="rust-std-snapshot" +PKG_VERSION="$(get_pkg_version rust)" +PKG_SHA256="993c2c17bf76ac626bfb5b17bddce65fbdfc14f70d183f33773de0cd12df46d2" +PKG_LICENSE="MIT" +PKG_SITE="https://www.rust-lang.org" +PKG_URL="https://static.rust-lang.org/dist/rust-std-${PKG_VERSION}-${MACHINE_HARDWARE_NAME}-unknown-linux-gnu.tar.xz" +PKG_LONGDESC="rust std library bootstrap package" +PKG_TOOLCHAIN="manual" diff --git a/packages/rust/rust/package.mk b/packages/rust/rust/package.mk new file mode 100644 index 000000000..5c1c76ba4 --- /dev/null +++ b/packages/rust/rust/package.mk @@ -0,0 +1,126 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="rust" +PKG_VERSION="1.63.0" +PKG_SHA256="1f9580295642ef5da7e475a8da2397d65153d3f2cb92849dbd08ed0effca99d0" +PKG_LICENSE="MIT" +PKG_SITE="https://www.rust-lang.org" +PKG_URL="https://static.rust-lang.org/dist/rustc-${PKG_VERSION}-src.tar.gz" +PKG_DEPENDS_HOST="toolchain llvm:host" +PKG_DEPENDS_UNPACK="rustc-snapshot rust-std-snapshot cargo-snapshot" +PKG_LONGDESC="A systems programming language that prevents segfaults, and guarantees thread safety." +PKG_TOOLCHAIN="manual" + +pre_configure_host() { + "$(get_build_dir rustc-snapshot)/install.sh" --prefix="${PKG_BUILD}/rust-snapshot" --disable-ldconfig + "$(get_build_dir rust-std-snapshot)/install.sh" --prefix="${PKG_BUILD}/rust-snapshot" --disable-ldconfig + "$(get_build_dir cargo-snapshot)/install.sh" --prefix="${PKG_BUILD}/rust-snapshot" --disable-ldconfig +} + +configure_host() { + + mkdir -p ${PKG_BUILD}/targets + + case "${TARGET_ARCH}" in + "arm") + # the arm target is special because we specify the subarch. ie armv8a + cp -a ${PKG_DIR}/targets/arm-libreelec-linux-gnueabihf.json ${PKG_BUILD}/targets/${TARGET_NAME}.json + ;; + "aarch64"|"x86_64") + cp -a ${PKG_DIR}/targets/${TARGET_NAME}.json ${PKG_BUILD}/targets/${TARGET_NAME}.json + ;; + esac + + cat > ${PKG_BUILD}/config.toml < ${CARGO_HOME}/config << END +[target.${TARGET_NAME}] +linker = "${TARGET_PREFIX}gcc" + +[target.${RUST_HOST}] +linker = "${CC}" +rustflags = ["-C", "link-arg=-Wl,-rpath,${TOOLCHAIN}/lib"] + +[build] +target-dir = "${PKG_BUILD}/target" + +[term] +progress.when = 'always' +progress.width = 80 + +END + +} + +make_host() { + cd ${PKG_BUILD} + + unset CFLAGS + unset CXXFLAGS + unset CPPFLAGS + unset LDFLAGS + + export RUST_TARGET_PATH="${PKG_BUILD}/targets/" + + python3 src/bootstrap/bootstrap.py -j ${CONCURRENCY_MAKE_LEVEL} build --stage 2 --verbose +} + +makeinstall_host() { + mkdir -p ${TOOLCHAIN}/bin + cp -a build/${RUST_HOST}/stage2/bin/* ${TOOLCHAIN}/bin + + mkdir -p ${TOOLCHAIN}/lib/rustlib + cp -a build/${RUST_HOST}/stage2/lib/* ${TOOLCHAIN}/lib + + cp -a ${PKG_BUILD}/targets/*.json ${TOOLCHAIN}/lib/rustlib/ +} diff --git a/packages/rust/rust/targets/aarch64-libreelec-linux-gnu.json b/packages/rust/rust/targets/aarch64-libreelec-linux-gnu.json new file mode 100644 index 000000000..5dba97d83 --- /dev/null +++ b/packages/rust/rust/targets/aarch64-libreelec-linux-gnu.json @@ -0,0 +1,32 @@ +{ + "arch": "aarch64", + "crt-static-respected": true, + "data-layout": "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128", + "dynamic-linking": true, + "env": "gnu", + "executables": true, + "features": "+outline-atomics", + "has-rpath": true, + "has-thread-local": true, + "is-builtin": false, + "llvm-target": "aarch64-unknown-linux-gnu", + "max-atomic-width": 128, + "os": "linux", + "position-independent-executables": true, + "relro-level": "full", + "supported-sanitizers": [ + "address", + "cfi", + "leak", + "memory", + "memtag", + "thread", + "hwaddress" + ], + "target-family": [ + "unix" + ], + "target-mcount": "\u0001_mcount", + "target-pointer-width": "64" +} + diff --git a/packages/rust/rust/targets/arm-libreelec-linux-gnueabihf.json b/packages/rust/rust/targets/arm-libreelec-linux-gnueabihf.json new file mode 100644 index 000000000..351e10419 --- /dev/null +++ b/packages/rust/rust/targets/arm-libreelec-linux-gnueabihf.json @@ -0,0 +1,23 @@ +{ + "abi": "eabihf", + "arch": "arm", + "crt-static-respected": true, + "data-layout": "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64", + "dynamic-linking": true, + "env": "gnu", + "executables": true, + "features": "+strict-align,+v6,+vfp2,-d32", + "has-rpath": true, + "has-thread-local": true, + "is-builtin": false, + "llvm-target": "arm-unknown-linux-gnueabihf", + "max-atomic-width": 64, + "os": "linux", + "position-independent-executables": true, + "relro-level": "full", + "target-family": [ + "unix" + ], + "target-mcount": "\u0001__gnu_mcount_nc", + "target-pointer-width": "32" +} diff --git a/packages/rust/rust/targets/x86_64-libreelec-linux-gnu.json b/packages/rust/rust/targets/x86_64-libreelec-linux-gnu.json new file mode 100644 index 000000000..f30f36ddc --- /dev/null +++ b/packages/rust/rust/targets/x86_64-libreelec-linux-gnu.json @@ -0,0 +1,38 @@ +{ + "arch": "x86_64", + "cpu": "x86-64", + "crt-static-respected": true, + "data-layout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", + "dynamic-linking": true, + "env": "gnu", + "executables": true, + "has-rpath": true, + "has-thread-local": true, + "is-builtin": false, + "llvm-target": "x86_64-unknown-linux-gnu", + "max-atomic-width": 64, + "os": "linux", + "position-independent-executables": true, + "pre-link-args": { + "gcc": [ + "-m64" + ] + }, + "relro-level": "full", + "stack-probes": { + "kind": "call" + }, + "static-position-independent-executables": true, + "supported-sanitizers": [ + "address", + "cfi", + "leak", + "memory", + "thread" + ], + "target-family": [ + "unix" + ], + "target-pointer-width": "64" +} + diff --git a/packages/rust/rustc-snapshot/package.mk b/packages/rust/rustc-snapshot/package.mk new file mode 100644 index 000000000..802b10a6b --- /dev/null +++ b/packages/rust/rustc-snapshot/package.mk @@ -0,0 +1,11 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="rustc-snapshot" +PKG_VERSION="$(get_pkg_version rust)" +PKG_SHA256="bdab9d9afa5c329c40f9ba568364815237fab8426477c12bfabad35ffc484ab5" +PKG_LICENSE="MIT" +PKG_SITE="https://www.rust-lang.org" +PKG_URL="https://static.rust-lang.org/dist/rustc-${PKG_VERSION}-${MACHINE_HARDWARE_NAME}-unknown-linux-gnu.tar.xz" +PKG_LONGDESC="rustc bootstrap compiler" +PKG_TOOLCHAIN="manual" diff --git a/packages/security/gnutls/package.mk b/packages/security/gnutls/package.mk index db0005e88..ba722a2fb 100644 --- a/packages/security/gnutls/package.mk +++ b/packages/security/gnutls/package.mk @@ -8,7 +8,7 @@ PKG_SHA256="e6adbebcfbc95867de01060d93c789938cf89cc1d1f6ef9ef661890f6217451f" PKG_LICENSE="LGPL2.1" PKG_SITE="https://gnutls.org" PKG_URL="https://www.gnupg.org/ftp/gcrypt/gnutls/v${PKG_VERSION:0:3}/${PKG_NAME}-${PKG_VERSION}.tar.xz" -PKG_DEPENDS_TARGET="toolchain libidn2 nettle zlib" +PKG_DEPENDS_TARGET="toolchain libidn2 nettle zlib valgrind" PKG_LONGDESC="A library which provides a secure layer over a reliable transport layer." PKG_CONFIGURE_OPTS_TARGET="--disable-doc \ diff --git a/packages/services/docker/cli/package.mk b/packages/services/docker/cli/package.mk new file mode 100644 index 000000000..65c134b0a --- /dev/null +++ b/packages/services/docker/cli/package.mk @@ -0,0 +1,47 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2022-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="cli" +PKG_VERSION="$(get_pkg_version moby)" +PKG_SHA256="2f5949173515b70daa0b78fea7185ffd219ca31f7381a0e1218eeefc7f70199c" +PKG_LICENSE="ASL" +PKG_SITE="https://github.com/docker/cli" +PKG_URL="https://github.com/docker/cli/archive/v${PKG_VERSION}.tar.gz" +PKG_DEPENDS_TARGET="toolchain go:host" +PKG_LONGDESC="The Docker CLI" +PKG_TOOLCHAIN="manual" + +# Git commit of the matching release https://github.com/docker/cli/releases +export PKG_GIT_COMMIT="3e9117b7e241439e314eaf6fe944b4019fbaa941" + +configure_target() { + go_configure + + export LDFLAGS="-w -linkmode external -extldflags -Wl,--unresolved-symbols=ignore-in-shared-libs -extld ${CC}" + + # used for docker version + export GITCOMMIT=${PKG_GIT_COMMIT} + export VERSION=${PKG_VERSION} + export BUILDTIME="$(date --utc)" + + cat > "${PKG_BUILD}/go.mod" << EOF +module github.com/docker/cli + +go 1.18 +EOF + + GO111MODULE=auto ${GOLANG} mod tidy -modfile 'vendor.mod' -compat 1.18 + GO111MODULE=auto ${GOLANG} mod vendor -modfile vendor.mod +} + +make_target() { + mkdir -p bin + PKG_CLI_FLAGS="-X 'github.com/docker/cli/cli/version.Version=${VERSION}'" + PKG_CLI_FLAGS+=" -X 'github.com/docker/cli/cli/version.GitCommit=${GITCOMMIT}'" + PKG_CLI_FLAGS+=" -X 'github.com/docker/cli/cli/version.BuildTime=${BUILDTIME}'" + ${GOLANG} build -mod=mod -modfile=vendor.mod -v -o bin/docker -a -tags "${PKG_DOCKER_BUILDTAGS}" -ldflags "${LDFLAGS} ${PKG_CLI_FLAGS}" ./cmd/docker +} + +makeinstall_target() { + : +} diff --git a/packages/services/docker/containerd/package.mk b/packages/services/docker/containerd/package.mk new file mode 100644 index 000000000..40f4ed21c --- /dev/null +++ b/packages/services/docker/containerd/package.mk @@ -0,0 +1,41 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2009-2016 Lukas Rusak (lrusak@libreelec.tv) +# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="containerd" +PKG_VERSION="1.6.8" +PKG_SHA256="f5f938513c28377f64f85e84f2750d39f26b01262f3a062b7e8ce35b560ca407" +PKG_LICENSE="APL" +PKG_SITE="https://containerd.io" +PKG_URL="https://github.com/containerd/containerd/archive/v${PKG_VERSION}.tar.gz" +PKG_DEPENDS_TARGET="toolchain go:host" +PKG_LONGDESC="A daemon to control runC, built for performance and density." +PKG_TOOLCHAIN="manual" + +# Git commit of the matching release https://github.com/containerd/containerd/releases +PKG_GIT_COMMIT="10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1" + +pre_make_target() { + + go_configure + + export CONTAINERD_VERSION=${PKG_VERSION} + export CONTAINERD_REVISION=${PKG_GIT_COMMIT} + export CONTAINERD_PKG=github.com/containerd/containerd + export LDFLAGS="-w -extldflags -static -X ${CONTAINERD_PKG}/version.Version=${CONTAINERD_VERSION} -X ${CONTAINERD_PKG}/version.Revision=${CONTAINERD_REVISION} -X ${CONTAINERD_PKG}/version.Package=${CONTAINERD_PKG} -extld ${CC}" + export GO111MODULE=off + + mkdir -p ${GOPATH} + if [ -d ${PKG_BUILD}/vendor ]; then + mv ${PKG_BUILD}/vendor ${GOPATH}/src + fi + + ln -fs ${PKG_BUILD} ${GOPATH}/src/github.com/containerd/containerd +} + +make_target() { + mkdir -p bin + ${GOLANG} build -v -o bin/containerd -a -tags "static_build no_btrfs" -ldflags "${LDFLAGS}" ./cmd/containerd + ${GOLANG} build -v -o bin/containerd-shim -a -tags "static_build no_btrfs" -ldflags "${LDFLAGS}" ./cmd/containerd-shim + ${GOLANG} build -v -o bin/containerd-shim-runc-v2 -a -tags "static_build no_btrfs" -ldflags "${LDFLAGS}" ./cmd/containerd-shim-runc-v2 +} diff --git a/packages/services/docker/moby/package.mk b/packages/services/docker/moby/package.mk new file mode 100644 index 000000000..66d037c74 --- /dev/null +++ b/packages/services/docker/moby/package.mk @@ -0,0 +1,54 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2022-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="moby" +PKG_VERSION="22.06.0-beta.0" +PKG_SHA256="d0221f0b1c0eda2629ed8b7f08b4ec86e61cf38e0cf699f5bd01a2b662273b87" +PKG_LICENSE="ASL" +PKG_SITE="https://mobyproject.org/" +PKG_URL="https://github.com/moby/moby/archive/v${PKG_VERSION}.tar.gz" +PKG_DEPENDS_TARGET="toolchain go:host systemd" +PKG_LONGDESC="Moby is an open-source project created by Docker to enable and accelerate software containerization." +PKG_TOOLCHAIN="manual" + +# Git commit of the matching release https://github.com/moby/moby +export PKG_GIT_COMMIT="a89b84221c8560e7a3dee2a653353429e7628424" + +PKG_MOBY_BUILDTAGS="daemon \ + autogen \ + exclude_graphdriver_devicemapper \ + exclude_graphdriver_aufs \ + exclude_graphdriver_btrfs \ + journald" + +configure_target() { + go_configure + + export LDFLAGS="-w -linkmode external -extldflags -Wl,--unresolved-symbols=ignore-in-shared-libs -extld ${CC}" + + # used for docker version + export GITCOMMIT=${PKG_GIT_COMMIT} + export VERSION=${PKG_VERSION} + export BUILDTIME="$(date --utc)" + + cat > "${PKG_BUILD}/go.mod" << EOF +module github.com/docker/docker + +go 1.18 +EOF + + GO111MODULE=auto ${GOLANG} mod tidy -modfile 'vendor.mod' -compat 1.18 + GO111MODULE=auto ${GOLANG} mod vendor -modfile vendor.mod + + bash hack/make/.go-autogen +} + +make_target() { + mkdir -p bin + ${GOLANG} build -mod=mod -modfile=vendor.mod -v -o bin/docker-proxy -a -ldflags "${LDFLAGS}" ./cmd/docker-proxy + ${GOLANG} build -mod=mod -modfile=vendor.mod -v -o bin/dockerd -a -tags "${PKG_MOBY_BUILDTAGS}" -ldflags "${LDFLAGS}" ./cmd/dockerd +} + +makeinstall_target() { + : +} diff --git a/packages/services/docker/moby/patches/moby-001-user-addon-storage-location.patch b/packages/services/docker/moby/patches/moby-001-user-addon-storage-location.patch new file mode 100644 index 000000000..6354be2fb --- /dev/null +++ b/packages/services/docker/moby/patches/moby-001-user-addon-storage-location.patch @@ -0,0 +1,284 @@ +# when updating this patch just create it from scratch using this command +# +# find . -name "*.go" -print | xargs sed -i 's/\/etc\/docker/\/storage\/.kodi\/userdata\/addon_data\/service.system.docker\/config/g' +# +# +diff -Naur a/cmd/dockerd/daemon_unix.go b/cmd/dockerd/daemon_unix.go +--- a/cmd/dockerd/daemon_unix.go 2022-06-03 10:30:24.000000000 -0700 ++++ b/cmd/dockerd/daemon_unix.go 2022-06-07 14:28:05.510327911 -0700 +@@ -25,7 +25,7 @@ + + func getDefaultDaemonConfigDir() (string, error) { + if !honorXDG { +- return "/etc/docker", nil ++ return "/storage/.kodi/userdata/addon_data/service.system.docker/config", nil + } + // NOTE: CLI uses ~/.docker while the daemon uses ~/.config/docker, because + // ~/.docker was not designed to store daemon configurations. +diff -Naur a/integration/plugin/authz/authz_plugin_test.go b/integration/plugin/authz/authz_plugin_test.go +--- a/integration/plugin/authz/authz_plugin_test.go 2022-06-03 10:30:24.000000000 -0700 ++++ b/integration/plugin/authz/authz_plugin_test.go 2022-06-07 14:28:05.570328822 -0700 +@@ -56,15 +56,15 @@ + ctrl = &authorizationController{} + teardown := setupTest(t) + +- err := os.MkdirAll("/etc/docker/plugins", 0755) ++ err := os.MkdirAll("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins", 0755) + assert.NilError(t, err) + +- fileName := fmt.Sprintf("/etc/docker/plugins/%s.spec", testAuthZPlugin) ++ fileName := fmt.Sprintf("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins/%s.spec", testAuthZPlugin) + err = os.WriteFile(fileName, []byte(server.URL), 0644) + assert.NilError(t, err) + + return func() { +- err := os.RemoveAll("/etc/docker/plugins") ++ err := os.RemoveAll("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins") + assert.NilError(t, err) + + teardown() +diff -Naur a/integration/plugin/graphdriver/external_test.go b/integration/plugin/graphdriver/external_test.go +--- a/integration/plugin/graphdriver/external_test.go 2022-06-03 10:30:24.000000000 -0700 ++++ b/integration/plugin/graphdriver/external_test.go 2022-06-07 14:28:05.570328822 -0700 +@@ -80,7 +80,7 @@ + + sserver.Close() + jserver.Close() +- err := os.RemoveAll("/etc/docker/plugins") ++ err := os.RemoveAll("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins") + assert.NilError(t, err) + } + +@@ -345,10 +345,10 @@ + respond(w, &graphDriverResponse{Size: size}) + }) + +- err = os.MkdirAll("/etc/docker/plugins", 0755) ++ err = os.MkdirAll("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins", 0755) + assert.NilError(t, err) + +- specFile := "/etc/docker/plugins/" + name + "." + ext ++ specFile := "/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins/" + name + "." + ext + err = os.WriteFile(specFile, b, 0644) + assert.NilError(t, err) + } +diff -Naur a/integration-cli/docker_cli_daemon_test.go b/integration-cli/docker_cli_daemon_test.go +--- a/integration-cli/docker_cli_daemon_test.go 2022-06-03 10:30:24.000000000 -0700 ++++ b/integration-cli/docker_cli_daemon_test.go 2022-06-07 14:28:05.556328610 -0700 +@@ -558,12 +558,12 @@ + + func (s *DockerDaemonSuite) TestDaemonKeyGeneration(c *testing.T) { + // TODO: skip or update for Windows daemon +- os.Remove("/etc/docker/key.json") ++ os.Remove("/storage/.kodi/userdata/addon_data/service.system.docker/config/key.json") + c.Setenv("DOCKER_ALLOW_SCHEMA1_PUSH_DONOTUSE", "1") + s.d.Start(c) + s.d.Stop(c) + +- k, err := libtrust.LoadKeyFile("/etc/docker/key.json") ++ k, err := libtrust.LoadKeyFile("/storage/.kodi/userdata/addon_data/service.system.docker/config/key.json") + if err != nil { + c.Fatalf("Error opening key file") + } +@@ -1212,13 +1212,13 @@ + Y string `json:"y"` + } + +- os.Remove("/etc/docker/key.json") ++ os.Remove("/storage/.kodi/userdata/addon_data/service.system.docker/config/key.json") + c.Setenv("DOCKER_ALLOW_SCHEMA1_PUSH_DONOTUSE", "1") + s.d.Start(c) + s.d.Stop(c) + + config := &Config{} +- bytes, err := os.ReadFile("/etc/docker/key.json") ++ bytes, err := os.ReadFile("/storage/.kodi/userdata/addon_data/service.system.docker/config/key.json") + if err != nil { + c.Fatalf("Error reading key.json file: %s", err) + } +@@ -1238,11 +1238,11 @@ + } + + // write back +- if err := os.WriteFile("/etc/docker/key.json", newBytes, 0400); err != nil { ++ if err := os.WriteFile("/storage/.kodi/userdata/addon_data/service.system.docker/config/key.json", newBytes, 0400); err != nil { + c.Fatalf("Error os.WriteFile: %s", err) + } + +- defer os.Remove("/etc/docker/key.json") ++ defer os.Remove("/storage/.kodi/userdata/addon_data/service.system.docker/config/key.json") + + if err := s.d.StartWithError(); err == nil { + c.Fatalf("It should not be successful to start daemon with wrong key: %v", err) +diff -Naur a/integration-cli/docker_cli_external_volume_driver_test.go b/integration-cli/docker_cli_external_volume_driver_test.go +--- a/integration-cli/docker_cli_external_volume_driver_test.go 2022-06-03 10:30:24.000000000 -0700 ++++ b/integration-cli/docker_cli_external_volume_driver_test.go 2022-06-07 14:28:05.556328610 -0700 +@@ -258,10 +258,10 @@ + send(w, `{"Capabilities": { "Scope": "global" }}`) + }) + +- err := os.MkdirAll("/etc/docker/plugins", 0755) ++ err := os.MkdirAll("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins", 0755) + assert.NilError(c, err) + +- err = os.WriteFile("/etc/docker/plugins/"+name+".spec", []byte(s.Server.URL), 0644) ++ err = os.WriteFile("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins/"+name+".spec", []byte(s.Server.URL), 0644) + assert.NilError(c, err) + return s + } +@@ -269,7 +269,7 @@ + func (s *DockerExternalVolumeSuite) TearDownSuite(c *testing.T) { + s.volumePlugin.Close() + +- err := os.RemoveAll("/etc/docker/plugins") ++ err := os.RemoveAll("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins") + assert.NilError(c, err) + } + +@@ -359,7 +359,7 @@ + + // Make sure a request to use a down driver doesn't block other requests + func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverLookupNotBlocked(c *testing.T) { +- specPath := "/etc/docker/plugins/down-driver.spec" ++ specPath := "/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins/down-driver.spec" + err := os.WriteFile(specPath, []byte("tcp://127.0.0.7:9999"), 0644) + assert.NilError(c, err) + defer os.RemoveAll(specPath) +diff -Naur a/integration-cli/docker_cli_network_unix_test.go b/integration-cli/docker_cli_network_unix_test.go +--- a/integration-cli/docker_cli_network_unix_test.go 2022-06-03 10:30:24.000000000 -0700 ++++ b/integration-cli/docker_cli_network_unix_test.go 2022-06-07 14:28:05.558328640 -0700 +@@ -196,14 +196,14 @@ + } + }) + +- err := os.MkdirAll("/etc/docker/plugins", 0755) ++ err := os.MkdirAll("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins", 0755) + assert.NilError(c, err) + +- fileName := fmt.Sprintf("/etc/docker/plugins/%s.spec", netDrv) ++ fileName := fmt.Sprintf("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins/%s.spec", netDrv) + err = os.WriteFile(fileName, []byte(url), 0644) + assert.NilError(c, err) + +- ipamFileName := fmt.Sprintf("/etc/docker/plugins/%s.spec", ipamDrv) ++ ipamFileName := fmt.Sprintf("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins/%s.spec", ipamDrv) + err = os.WriteFile(ipamFileName, []byte(url), 0644) + assert.NilError(c, err) + } +@@ -215,7 +215,7 @@ + + s.server.Close() + +- err := os.RemoveAll("/etc/docker/plugins") ++ err := os.RemoveAll("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins") + assert.NilError(c, err) + } + +diff -Naur a/integration-cli/docker_cli_swarm_test.go b/integration-cli/docker_cli_swarm_test.go +--- a/integration-cli/docker_cli_swarm_test.go 2022-06-03 10:30:24.000000000 -0700 ++++ b/integration-cli/docker_cli_swarm_test.go 2022-06-07 14:28:05.561328685 -0700 +@@ -770,14 +770,14 @@ + } + }) + +- err := os.MkdirAll("/etc/docker/plugins", 0755) ++ err := os.MkdirAll("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins", 0755) + assert.NilError(c, err) + +- fileName := fmt.Sprintf("/etc/docker/plugins/%s.spec", netDrv) ++ fileName := fmt.Sprintf("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins/%s.spec", netDrv) + err = os.WriteFile(fileName, []byte(url), 0644) + assert.NilError(c, err) + +- ipamFileName := fmt.Sprintf("/etc/docker/plugins/%s.spec", ipamDrv) ++ ipamFileName := fmt.Sprintf("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins/%s.spec", ipamDrv) + err = os.WriteFile(ipamFileName, []byte(url), 0644) + assert.NilError(c, err) + } +@@ -789,7 +789,7 @@ + setupRemoteGlobalNetworkPlugin(c, mux, s.server.URL, globalNetworkPlugin, globalIPAMPlugin) + defer func() { + s.server.Close() +- err := os.RemoveAll("/etc/docker/plugins") ++ err := os.RemoveAll("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins") + assert.NilError(c, err) + }() + +diff -Naur a/libnetwork/drivers/remote/driver_test.go b/libnetwork/drivers/remote/driver_test.go +--- a/libnetwork/drivers/remote/driver_test.go 2022-06-03 10:30:24.000000000 -0700 ++++ b/libnetwork/drivers/remote/driver_test.go 2022-06-07 14:28:05.586329065 -0700 +@@ -41,7 +41,7 @@ + } + + func setupPlugin(t *testing.T, name string, mux *http.ServeMux) func() { +- specPath := "/etc/docker/plugins" ++ specPath := "/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins" + if runtime.GOOS == "windows" { + specPath = filepath.Join(os.Getenv("programdata"), "docker", "plugins") + } +diff -Naur a/libnetwork/ipams/remote/remote_test.go b/libnetwork/ipams/remote/remote_test.go +--- a/libnetwork/ipams/remote/remote_test.go 2022-06-03 10:30:24.000000000 -0700 ++++ b/libnetwork/ipams/remote/remote_test.go 2022-06-07 14:28:05.591329141 -0700 +@@ -36,7 +36,7 @@ + } + + func setupPlugin(t *testing.T, name string, mux *http.ServeMux) func() { +- specPath := "/etc/docker/plugins" ++ specPath := "/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins" + if runtime.GOOS == "windows" { + specPath = filepath.Join(os.Getenv("programdata"), "docker", "plugins") + } +diff -Naur a/libnetwork/libnetwork_unix_test.go b/libnetwork/libnetwork_unix_test.go +--- a/libnetwork/libnetwork_unix_test.go 2022-06-03 10:30:24.000000000 -0700 ++++ b/libnetwork/libnetwork_unix_test.go 2022-06-07 14:28:05.592329156 -0700 +@@ -3,4 +3,4 @@ + + package libnetwork_test + +-var specPath = "/etc/docker/plugins" ++var specPath = "/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins" +diff -Naur a/pkg/plugins/discovery_unix.go b/pkg/plugins/discovery_unix.go +--- a/pkg/plugins/discovery_unix.go 2022-06-03 10:30:24.000000000 -0700 ++++ b/pkg/plugins/discovery_unix.go 2022-06-07 14:28:05.615329505 -0700 +@@ -3,4 +3,4 @@ + + package plugins // import "github.com/docker/docker/pkg/plugins" + +-var specsPaths = []string{"/etc/docker/plugins", "/usr/lib/docker/plugins"} ++var specsPaths = []string{"/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins", "/usr/lib/docker/plugins"} +diff -Naur a/pkg/plugins/plugins.go b/pkg/plugins/plugins.go +--- a/pkg/plugins/plugins.go 2022-06-03 10:30:24.000000000 -0700 ++++ b/pkg/plugins/plugins.go 2022-06-07 14:28:05.616329521 -0700 +@@ -4,7 +4,7 @@ + // Docker discovers plugins by looking for them in the plugin directory whenever + // a user or container tries to use one by name. UNIX domain socket files must + // be located under /run/docker/plugins, whereas spec files can be located +-// either under /etc/docker/plugins or /usr/lib/docker/plugins. This is handled ++// either under /storage/.kodi/userdata/addon_data/service.system.docker/config/plugins or /usr/lib/docker/plugins. This is handled + // by the Registry interface, which lets you list all plugins or get a plugin by + // its name if it exists. + // +diff -Naur a/registry/config_unix.go b/registry/config_unix.go +--- a/registry/config_unix.go 2022-06-03 10:30:24.000000000 -0700 ++++ b/registry/config_unix.go 2022-06-07 14:28:05.626329672 -0700 +@@ -6,7 +6,7 @@ + // defaultCertsDir is the platform-specific default directory where certificates + // are stored. On Linux, it may be overridden through certsDir, for example, when + // running in rootless mode. +-const defaultCertsDir = "/etc/docker/certs.d" ++const defaultCertsDir = "/storage/.kodi/userdata/addon_data/service.system.docker/config/certs.d" + + // cleanPath is used to ensure that a directory name is valid on the target + // platform. It will be passed in something *similar* to a URL such as +diff -Naur a/registry/endpoint_v1.go b/registry/endpoint_v1.go +--- a/registry/endpoint_v1.go 2022-06-03 10:30:24.000000000 -0700 ++++ b/registry/endpoint_v1.go 2022-06-07 14:28:05.627329688 -0700 +@@ -63,7 +63,7 @@ + if endpoint.IsSecure { + // If registry is secure and HTTPS failed, show user the error and tell them about `--insecure-registry` + // in case that's what they need. DO NOT accept unknown CA certificates, and DO NOT fallback to HTTP. +- return invalidParamf("invalid registry endpoint %s: %v. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry %s` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/%s/ca.crt", endpoint, err, endpoint.URL.Host, endpoint.URL.Host) ++ return invalidParamf("invalid registry endpoint %s: %v. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry %s` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /storage/.kodi/userdata/addon_data/service.system.docker/config/certs.d/%s/ca.crt", endpoint, err, endpoint.URL.Host, endpoint.URL.Host) + } + + // If registry is insecure and HTTPS failed, fallback to HTTP. diff --git a/packages/services/docker/moby/patches/moby-002-use-unconfined-seccomp-profile-as-default.patch b/packages/services/docker/moby/patches/moby-002-use-unconfined-seccomp-profile-as-default.patch new file mode 100644 index 000000000..13bc31357 --- /dev/null +++ b/packages/services/docker/moby/patches/moby-002-use-unconfined-seccomp-profile-as-default.patch @@ -0,0 +1,22 @@ +--- a/daemon/config/config.go 2022-06-03 10:30:24.000000000 -0700 ++++ b/daemon/config/config.go 2022-06-07 14:29:36.755713207 -0700 +@@ -59,7 +59,7 @@ + LinuxV2RuntimeName = "io.containerd.runc.v2" + + // SeccompProfileDefault is the built-in default seccomp profile. +- SeccompProfileDefault = "builtin" ++ SeccompProfileDefault = "unconfined" + // SeccompProfileUnconfined is a special profile name for seccomp to use an + // "unconfined" seccomp profile. + SeccompProfileUnconfined = "unconfined" +--- a/daemon/daemon_unix.go 2022-06-03 10:30:24.000000000 -0700 ++++ b/daemon/daemon_unix.go 2022-06-07 14:34:55.315558083 -0700 +@@ -1711,8 +1711,6 @@ + + func (daemon *Daemon) setupSeccompProfile() error { + switch profile := daemon.configStore.SeccompProfile; profile { +- case "", config.SeccompProfileDefault: +- daemon.seccompProfilePath = config.SeccompProfileDefault + case config.SeccompProfileUnconfined: + daemon.seccompProfilePath = config.SeccompProfileUnconfined + default: diff --git a/packages/services/docker/runc/package.mk b/packages/services/docker/runc/package.mk new file mode 100644 index 000000000..56e75e505 --- /dev/null +++ b/packages/services/docker/runc/package.mk @@ -0,0 +1,34 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2009-2016 Lukas Rusak (lrusak@libreelec.tv) +# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="runc" +PKG_VERSION="1.1.4" +PKG_SHA256="4f02077432642eebd768fc857318ae7929290b3a3511eb1be338005e360cfa34" +PKG_LICENSE="APL" +PKG_SITE="https://github.com/opencontainers/runc" +PKG_URL="https://github.com/opencontainers/runc/archive/v${PKG_VERSION}.tar.gz" +PKG_DEPENDS_TARGET="toolchain go:host" +PKG_LONGDESC="A CLI tool for spawning and running containers according to the OCI specification." +PKG_TOOLCHAIN="manual" + +# Git commit of the matching release https://github.com/opencontainers/runc/releases +PKG_GIT_COMMIT="6724737f999df9ee0d8ca5c6d7b81f97adc34374" + +pre_make_target() { + go_configure + + export LDFLAGS="-w -extldflags -static -X main.gitCommit=${PKG_GIT_COMMIT} -X main.version=$(cat ./VERSION) -extld ${CC}" + + mkdir -p ${GOPATH} + if [ -d ${PKG_BUILD}/vendor ]; then + mv ${PKG_BUILD}/vendor ${GOPATH}/src + fi + + ln -fs ${PKG_BUILD} ${GOPATH}/src/github.com/opencontainers/runc +} + +make_target() { + mkdir -p bin + ${GOLANG} build -v -o bin/runc -a -tags "cgo static_build" -ldflags "${LDFLAGS}" ./ +} diff --git a/packages/services/docker/tini/package.mk b/packages/services/docker/tini/package.mk new file mode 100644 index 000000000..ec5520e4d --- /dev/null +++ b/packages/services/docker/tini/package.mk @@ -0,0 +1,22 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2009-2016 Lukas Rusak (lrusak@libreelec.tv) +# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="tini" +PKG_VERSION="0.19.0" +PKG_SHA256="0fd35a7030052acd9f58948d1d900fe1e432ee37103c5561554408bdac6bbf0d" +PKG_LICENSE="MIT" +PKG_SITE="https://github.com/krallin/tini" +PKG_URL="https://github.com/krallin/tini/archive/v${PKG_VERSION}.tar.gz" +PKG_DEPENDS_TARGET="toolchain" +PKG_LONGDESC="Tini is a simplest init system." + +PKG_MAKE_OPTS_TARGET="tini-static" + +pre_configure_target(){ + sed -i "s|@tini_VERSION_GIT@| - git.${PKG_VERSION}|" ${PKG_BUILD}/src/tiniConfig.h.in +} + +makeinstall_target() { + : +} diff --git a/packages/sysutils/busybox/config/busybox-host.conf b/packages/sysutils/busybox/config/busybox-host.conf index 6850c24ae..273d957ca 100644 --- a/packages/sysutils/busybox/config/busybox-host.conf +++ b/packages/sysutils/busybox/config/busybox-host.conf @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Busybox version: 1.31.0 -# Wed Jun 12 00:50:03 2019 +# Busybox version: 1.35.0 +# Tue Sep 13 18:30:16 2022 # CONFIG_HAVE_DOT_CONFIG=y @@ -36,7 +36,6 @@ CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" # CONFIG_FEATURE_CLEAN_UP is not set # CONFIG_FEATURE_SYSLOG_INFO is not set # CONFIG_FEATURE_SYSLOG is not set -CONFIG_PLATFORM_LINUX=y # # Build Options @@ -55,6 +54,7 @@ CONFIG_EXTRA_LDFLAGS="" CONFIG_EXTRA_LDLIBS="" # CONFIG_USE_PORTABLE_CODE is not set # CONFIG_STACK_OPTIMIZATION_386 is not set +CONFIG_STATIC_LIBGCC=y # # Installation Options ("make install" behavior) @@ -94,9 +94,12 @@ CONFIG_FEATURE_BUFFERS_GO_ON_STACK=y CONFIG_PASSWORD_MINLEN=6 CONFIG_MD5_SMALL=1 CONFIG_SHA3_SMALL=0 -CONFIG_FEATURE_FAST_TOP=y -# CONFIG_FEATURE_ETC_NETWORKS is not set -# CONFIG_FEATURE_ETC_SERVICES is not set +# CONFIG_FEATURE_NON_POSIX_CP is not set +CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y +CONFIG_FEATURE_USE_SENDFILE=y +CONFIG_FEATURE_COPYBUF_KB=4 +# CONFIG_MONOTONIC_SYSCALL is not set +# CONFIG_IOCTL_HEX2STR_ERROR is not set CONFIG_FEATURE_EDITING=y CONFIG_FEATURE_EDITING_MAX_LEN=1024 # CONFIG_FEATURE_EDITING_VI is not set @@ -120,14 +123,6 @@ CONFIG_LAST_SUPPORTED_WCHAR=767 # CONFIG_UNICODE_BIDI_SUPPORT is not set # CONFIG_UNICODE_NEUTRAL_TABLE is not set # CONFIG_UNICODE_PRESERVE_BROKEN is not set -# CONFIG_FEATURE_NON_POSIX_CP is not set -CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y -CONFIG_FEATURE_USE_SENDFILE=y -CONFIG_FEATURE_COPYBUF_KB=4 -# CONFIG_FEATURE_SKIP_ROOTFS is not set -# CONFIG_MONOTONIC_SYSCALL is not set -# CONFIG_IOCTL_HEX2STR_ERROR is not set -# CONFIG_FEATURE_HWIB is not set # # Applets @@ -162,6 +157,8 @@ CONFIG_BZIP2_SMALL=0 # CONFIG_CPIO is not set # CONFIG_FEATURE_CPIO_O is not set # CONFIG_FEATURE_CPIO_P is not set +# CONFIG_FEATURE_CPIO_IGNORE_DEVNO is not set +# CONFIG_FEATURE_CPIO_RENUMBER_INODES is not set # CONFIG_DPKG is not set # CONFIG_DPKG_DEB is not set # CONFIG_GZIP is not set @@ -197,6 +194,14 @@ CONFIG_GZIP_FAST=0 # # Coreutils # +# CONFIG_FEATURE_VERBOSE is not set + +# +# Common options for date and touch +# +# CONFIG_FEATURE_TIMEZONE is not set +# CONFIG_FEATURE_PRESERVE_HARDLINKS is not set +# CONFIG_FEATURE_HUMAN_READABLE is not set # CONFIG_BASENAME is not set # CONFIG_CAT is not set # CONFIG_FEATURE_CATN is not set @@ -207,11 +212,13 @@ CONFIG_GZIP_FAST=0 # CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set # CONFIG_CHROOT is not set # CONFIG_CKSUM is not set +CONFIG_CRC32=y # CONFIG_COMM is not set # CONFIG_CP is not set # CONFIG_FEATURE_CP_LONG_OPTIONS is not set # CONFIG_FEATURE_CP_REFLINK is not set # CONFIG_CUT is not set +# CONFIG_FEATURE_CUT_REGEX is not set # CONFIG_DATE is not set # CONFIG_FEATURE_DATE_ISOFMT is not set # CONFIG_FEATURE_DATE_NANO is not set @@ -223,6 +230,7 @@ CONFIG_GZIP_FAST=0 # CONFIG_FEATURE_DD_STATUS is not set # CONFIG_DF is not set # CONFIG_FEATURE_DF_FANCY is not set +# CONFIG_FEATURE_SKIP_ROOTFS is not set # CONFIG_DIRNAME is not set # CONFIG_DOS2UNIX is not set # CONFIG_UNIX2DOS is not set @@ -312,7 +320,6 @@ CONFIG_GZIP_FAST=0 # CONFIG_FEATURE_TEST_64 is not set # CONFIG_TIMEOUT is not set # CONFIG_TOUCH is not set -# CONFIG_FEATURE_TOUCH_NODEREF is not set # CONFIG_FEATURE_TOUCH_SUSV3 is not set # CONFIG_TR is not set # CONFIG_FEATURE_TR_CLASSES is not set @@ -327,6 +334,7 @@ CONFIG_BB_ARCH=y # CONFIG_UNLINK is not set # CONFIG_USLEEP is not set # CONFIG_UUDECODE is not set +CONFIG_BASE32=y # CONFIG_BASE64 is not set # CONFIG_UUENCODE is not set # CONFIG_WC is not set @@ -337,13 +345,6 @@ CONFIG_BB_ARCH=y # CONFIG_WHOAMI is not set # CONFIG_YES is not set -# -# Common options -# -# CONFIG_FEATURE_VERBOSE is not set -# CONFIG_FEATURE_PRESERVE_HARDLINKS is not set -# CONFIG_FEATURE_HUMAN_READABLE is not set - # # Console Utilities # @@ -407,6 +408,7 @@ CONFIG_DEFAULT_SETFONT_DIR="" CONFIG_FEATURE_VI_MAX_LEN=0 # CONFIG_FEATURE_VI_8BIT is not set # CONFIG_FEATURE_VI_COLON is not set +# CONFIG_FEATURE_VI_COLON_EXPAND is not set # CONFIG_FEATURE_VI_YANKMARK is not set # CONFIG_FEATURE_VI_SEARCH is not set # CONFIG_FEATURE_VI_REGEX_SEARCH is not set @@ -420,6 +422,7 @@ CONFIG_FEATURE_VI_MAX_LEN=0 # CONFIG_FEATURE_VI_UNDO is not set # CONFIG_FEATURE_VI_UNDO_QUEUE is not set CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=0 +# CONFIG_FEATURE_VI_VERBOSE_STATUS is not set # CONFIG_FEATURE_ALLOW_EXEC is not set # @@ -428,7 +431,11 @@ CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=0 # CONFIG_FIND is not set # CONFIG_FEATURE_FIND_PRINT0 is not set # CONFIG_FEATURE_FIND_MTIME is not set +# CONFIG_FEATURE_FIND_ATIME is not set +# CONFIG_FEATURE_FIND_CTIME is not set # CONFIG_FEATURE_FIND_MMIN is not set +# CONFIG_FEATURE_FIND_AMIN is not set +# CONFIG_FEATURE_FIND_CMIN is not set # CONFIG_FEATURE_FIND_PERM is not set # CONFIG_FEATURE_FIND_TYPE is not set # CONFIG_FEATURE_FIND_EXECUTABLE is not set @@ -436,6 +443,7 @@ CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=0 # CONFIG_FEATURE_FIND_MAXDEPTH is not set # CONFIG_FEATURE_FIND_NEWER is not set # CONFIG_FEATURE_FIND_INUM is not set +# CONFIG_FEATURE_FIND_SAMEFILE is not set # CONFIG_FEATURE_FIND_EXEC is not set # CONFIG_FEATURE_FIND_EXEC_PLUS is not set # CONFIG_FEATURE_FIND_USER is not set @@ -607,7 +615,6 @@ CONFIG_DEFAULT_DEPMOD_FILE="" # CONFIG_GETOPT is not set # CONFIG_FEATURE_GETOPT_LONG is not set # CONFIG_HEXDUMP is not set -# CONFIG_FEATURE_HEXDUMP_REVERSE is not set # CONFIG_HD is not set # CONFIG_XXD is not set # CONFIG_HWCLOCK is not set @@ -678,6 +685,7 @@ CONFIG_DEFAULT_DEPMOD_FILE="" # CONFIG_SWITCH_ROOT is not set # CONFIG_TASKSET is not set # CONFIG_FEATURE_TASKSET_FANCY is not set +# CONFIG_FEATURE_TASKSET_CPULIST is not set # CONFIG_UEVENT is not set # CONFIG_UMOUNT is not set # CONFIG_FEATURE_UMOUNT_ALL is not set @@ -690,6 +698,7 @@ CONFIG_DEFAULT_DEPMOD_FILE="" # CONFIG_FEATURE_VOLUMEID_BCACHE is not set # CONFIG_FEATURE_VOLUMEID_BTRFS is not set # CONFIG_FEATURE_VOLUMEID_CRAMFS is not set +# CONFIG_FEATURE_VOLUMEID_EROFS is not set # CONFIG_FEATURE_VOLUMEID_EXFAT is not set # CONFIG_FEATURE_VOLUMEID_EXT is not set # CONFIG_FEATURE_VOLUMEID_F2FS is not set @@ -717,6 +726,7 @@ CONFIG_DEFAULT_DEPMOD_FILE="" # Miscellaneous Utilities # # CONFIG_ADJTIMEX is not set +CONFIG_ASCII=y # CONFIG_BBCONFIG is not set # CONFIG_FEATURE_COMPRESS_BBCONFIG is not set # CONFIG_BC is not set @@ -787,6 +797,7 @@ CONFIG_FEATURE_LESS_MAXLINES=0 # CONFIG_FEATURE_MAKEDEVS_TABLE is not set # CONFIG_MAN is not set # CONFIG_MICROCOM is not set +# CONFIG_MIM is not set # CONFIG_MT is not set # CONFIG_NANDWRITE is not set # CONFIG_NANDDUMP is not set @@ -811,6 +822,7 @@ CONFIG_FEATURE_LESS_MAXLINES=0 # CONFIG_UBIRENAME is not set # CONFIG_VOLNAME is not set # CONFIG_WATCHDOG is not set +# CONFIG_FEATURE_WATCHDOG_OPEN_TWICE is not set # # Networking Utilities @@ -819,6 +831,9 @@ CONFIG_FEATURE_LESS_MAXLINES=0 # CONFIG_FEATURE_UNIX_LOCAL is not set # CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set # CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +# CONFIG_FEATURE_ETC_NETWORKS is not set +# CONFIG_FEATURE_ETC_SERVICES is not set +# CONFIG_FEATURE_HWIB is not set # CONFIG_FEATURE_TLS_SHA1 is not set # CONFIG_ARP is not set # CONFIG_ARPING is not set @@ -837,6 +852,7 @@ CONFIG_FEATURE_LESS_MAXLINES=0 # CONFIG_HOSTNAME is not set # CONFIG_DNSDOMAINNAME is not set # CONFIG_HTTPD is not set +CONFIG_FEATURE_HTTPD_PORT_DEFAULT=0 # CONFIG_FEATURE_HTTPD_RANGES is not set # CONFIG_FEATURE_HTTPD_SETUID is not set # CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set @@ -848,6 +864,10 @@ CONFIG_FEATURE_LESS_MAXLINES=0 # CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set # CONFIG_FEATURE_HTTPD_PROXY is not set # CONFIG_FEATURE_HTTPD_GZIP is not set +# CONFIG_FEATURE_HTTPD_ETAG is not set +# CONFIG_FEATURE_HTTPD_LAST_MODIFIED is not set +# CONFIG_FEATURE_HTTPD_DATE is not set +# CONFIG_FEATURE_HTTPD_ACL_IP is not set # CONFIG_IFCONFIG is not set # CONFIG_FEATURE_IFCONFIG_STATUS is not set # CONFIG_FEATURE_IFCONFIG_SLIP is not set @@ -925,6 +945,7 @@ CONFIG_FEATURE_IP_ROUTE_DIR="" # CONFIG_FEATURE_TELNET_WIDTH is not set # CONFIG_TELNETD is not set # CONFIG_FEATURE_TELNETD_STANDALONE is not set +CONFIG_FEATURE_TELNETD_PORT_DEFAULT=0 # CONFIG_FEATURE_TELNETD_INETD_WAIT is not set # CONFIG_TFTP is not set # CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set @@ -945,6 +966,7 @@ CONFIG_FEATURE_IP_ROUTE_DIR="" # CONFIG_WGET is not set # CONFIG_FEATURE_WGET_LONG_OPTIONS is not set # CONFIG_FEATURE_WGET_STATUSBAR is not set +# CONFIG_FEATURE_WGET_FTP is not set # CONFIG_FEATURE_WGET_AUTHENTICATION is not set # CONFIG_FEATURE_WGET_TIMEOUT is not set # CONFIG_FEATURE_WGET_HTTPS is not set @@ -966,6 +988,7 @@ CONFIG_UDHCPC_DEFAULT_SCRIPT="" # CONFIG_FEATURE_UDHCPC6_RFC4704 is not set # CONFIG_FEATURE_UDHCPC6_RFC4833 is not set # CONFIG_FEATURE_UDHCPC6_RFC5970 is not set +CONFIG_UDHCPC_DEFAULT_INTERFACE="" # CONFIG_FEATURE_UDHCP_PORT is not set CONFIG_UDHCP_DEBUG=0 CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0 @@ -983,17 +1006,19 @@ CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="" # # Mail Utilities # +CONFIG_FEATURE_MIME_CHARSET="" # CONFIG_MAKEMIME is not set # CONFIG_POPMAILDIR is not set # CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set # CONFIG_REFORMIME is not set # CONFIG_FEATURE_REFORMIME_COMPAT is not set # CONFIG_SENDMAIL is not set -CONFIG_FEATURE_MIME_CHARSET="" # # Process Utilities # +CONFIG_FEATURE_FAST_TOP=y +# CONFIG_FEATURE_SHOW_THREADS is not set # CONFIG_FREE is not set # CONFIG_FUSER is not set # CONFIG_IOSTAT is not set @@ -1032,7 +1057,6 @@ CONFIG_FEATURE_MIME_CHARSET="" # CONFIG_UPTIME is not set # CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set # CONFIG_WATCH is not set -# CONFIG_FEATURE_SHOW_THREADS is not set # # Runit Utilities @@ -1073,6 +1097,7 @@ CONFIG_SH_IS_NONE=y # CONFIG_BASH_IS_ASH is not set # CONFIG_BASH_IS_HUSH is not set CONFIG_BASH_IS_NONE=y +# CONFIG_SHELL_ASH is not set # CONFIG_ASH is not set # CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set # CONFIG_ASH_INTERNAL_GLOB is not set @@ -1096,8 +1121,8 @@ CONFIG_BASH_IS_NONE=y # CONFIG_SHELL_HUSH is not set # CONFIG_HUSH_BASH_COMPAT is not set # CONFIG_HUSH_BRACE_EXPANSION is not set -# CONFIG_HUSH_LINENO_VAR is not set # CONFIG_HUSH_BASH_SOURCE_CURDIR is not set +# CONFIG_HUSH_LINENO_VAR is not set # CONFIG_HUSH_INTERACTIVE is not set # CONFIG_HUSH_SAVEHISTORY is not set # CONFIG_HUSH_JOB is not set @@ -1156,6 +1181,7 @@ CONFIG_BASH_IS_NONE=y # CONFIG_FEATURE_REMOTE_LOG is not set # CONFIG_FEATURE_SYSLOGD_DUP is not set # CONFIG_FEATURE_SYSLOGD_CFG is not set +# CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS is not set CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0 # CONFIG_FEATURE_IPC_SYSLOG is not set CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0 diff --git a/packages/sysutils/busybox/config/busybox-init.conf b/packages/sysutils/busybox/config/busybox-init.conf index cbf35e2d6..43f252dd2 100644 --- a/packages/sysutils/busybox/config/busybox-init.conf +++ b/packages/sysutils/busybox/config/busybox-init.conf @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Busybox version: 1.31.0 -# Tue Aug 13 17:29:50 2019 +# Busybox version: 1.35.0 +# Tue Sep 13 17:55:56 2022 # CONFIG_HAVE_DOT_CONFIG=y @@ -9,6 +9,7 @@ CONFIG_HAVE_DOT_CONFIG=y # Settings # # CONFIG_DESKTOP is not set +CONFIG_PLATFORM_LINUX=y # CONFIG_EXTRA_COMPAT is not set # CONFIG_FEDORA_COMPAT is not set # CONFIG_INCLUDE_SUSv2 is not set @@ -36,7 +37,6 @@ CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" # CONFIG_FEATURE_CLEAN_UP is not set # CONFIG_FEATURE_SYSLOG_INFO is not set # CONFIG_FEATURE_SYSLOG is not set -CONFIG_PLATFORM_LINUX=y # # Build Options @@ -55,6 +55,7 @@ CONFIG_EXTRA_LDFLAGS="" CONFIG_EXTRA_LDLIBS="-ltirpc -lpthread" # CONFIG_USE_PORTABLE_CODE is not set # CONFIG_STACK_OPTIMIZATION_386 is not set +CONFIG_STATIC_LIBGCC=y # # Installation Options ("make install" behavior) @@ -94,9 +95,12 @@ CONFIG_FEATURE_BUFFERS_GO_ON_STACK=y CONFIG_PASSWORD_MINLEN=6 CONFIG_MD5_SMALL=0 CONFIG_SHA3_SMALL=0 -CONFIG_FEATURE_FAST_TOP=y -# CONFIG_FEATURE_ETC_NETWORKS is not set -# CONFIG_FEATURE_ETC_SERVICES is not set +# CONFIG_FEATURE_NON_POSIX_CP is not set +CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y +CONFIG_FEATURE_USE_SENDFILE=y +CONFIG_FEATURE_COPYBUF_KB=4 +# CONFIG_MONOTONIC_SYSCALL is not set +# CONFIG_IOCTL_HEX2STR_ERROR is not set CONFIG_FEATURE_EDITING=y CONFIG_FEATURE_EDITING_MAX_LEN=1024 # CONFIG_FEATURE_EDITING_VI is not set @@ -120,14 +124,6 @@ CONFIG_LAST_SUPPORTED_WCHAR=767 # CONFIG_UNICODE_BIDI_SUPPORT is not set # CONFIG_UNICODE_NEUTRAL_TABLE is not set # CONFIG_UNICODE_PRESERVE_BROKEN is not set -# CONFIG_FEATURE_NON_POSIX_CP is not set -CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y -CONFIG_FEATURE_USE_SENDFILE=y -CONFIG_FEATURE_COPYBUF_KB=4 -CONFIG_FEATURE_SKIP_ROOTFS=y -# CONFIG_MONOTONIC_SYSCALL is not set -# CONFIG_IOCTL_HEX2STR_ERROR is not set -# CONFIG_FEATURE_HWIB is not set # # Applets @@ -162,6 +158,8 @@ CONFIG_BZIP2_SMALL=0 # CONFIG_CPIO is not set # CONFIG_FEATURE_CPIO_O is not set # CONFIG_FEATURE_CPIO_P is not set +# CONFIG_FEATURE_CPIO_IGNORE_DEVNO is not set +# CONFIG_FEATURE_CPIO_RENUMBER_INODES is not set # CONFIG_DPKG is not set # CONFIG_DPKG_DEB is not set CONFIG_GZIP=y @@ -197,6 +195,22 @@ CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y # # Coreutils # +# CONFIG_FEATURE_VERBOSE is not set + +# +# Common options for date and touch +# +# CONFIG_FEATURE_TIMEZONE is not set + +# +# Common options for cp and mv +# +# CONFIG_FEATURE_PRESERVE_HARDLINKS is not set + +# +# Common options for df, du, ls +# +# CONFIG_FEATURE_HUMAN_READABLE is not set CONFIG_BASENAME=y CONFIG_CAT=y CONFIG_FEATURE_CATN=y @@ -207,11 +221,13 @@ CONFIG_FEATURE_CATN=y # CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set CONFIG_CHROOT=y # CONFIG_CKSUM is not set +CONFIG_CRC32=y # CONFIG_COMM is not set CONFIG_CP=y # CONFIG_FEATURE_CP_LONG_OPTIONS is not set # CONFIG_FEATURE_CP_REFLINK is not set # CONFIG_CUT is not set +# CONFIG_FEATURE_CUT_REGEX is not set # CONFIG_DATE is not set # CONFIG_FEATURE_DATE_ISOFMT is not set # CONFIG_FEATURE_DATE_NANO is not set @@ -223,6 +239,7 @@ CONFIG_FEATURE_DD_IBS_OBS=y CONFIG_FEATURE_DD_STATUS=y CONFIG_DF=y # CONFIG_FEATURE_DF_FANCY is not set +# CONFIG_FEATURE_SKIP_ROOTFS is not set # CONFIG_DIRNAME is not set # CONFIG_DOS2UNIX is not set # CONFIG_UNIX2DOS is not set @@ -316,14 +333,13 @@ CONFIG_FEATURE_TEE_USE_BLOCK_IO=y CONFIG_FEATURE_TEST_64=y # CONFIG_TIMEOUT is not set # CONFIG_TOUCH is not set -# CONFIG_FEATURE_TOUCH_NODEREF is not set # CONFIG_FEATURE_TOUCH_SUSV3 is not set CONFIG_TR=y CONFIG_FEATURE_TR_CLASSES=y CONFIG_FEATURE_TR_EQUIV=y # CONFIG_TRUE is not set # CONFIG_TRUNCATE is not set -# CONFIG_TTY is not set +CONFIG_TTY=y CONFIG_UNAME=y CONFIG_UNAME_OSNAME="GNU/Linux" # CONFIG_BB_ARCH is not set @@ -331,6 +347,7 @@ CONFIG_UNAME_OSNAME="GNU/Linux" # CONFIG_UNLINK is not set CONFIG_USLEEP=y # CONFIG_UUDECODE is not set +CONFIG_BASE32=y # CONFIG_BASE64 is not set # CONFIG_UUENCODE is not set CONFIG_WC=y @@ -341,21 +358,6 @@ CONFIG_FEATURE_WC_LARGE=y # CONFIG_WHOAMI is not set # CONFIG_YES is not set -# -# Common options -# -# CONFIG_FEATURE_VERBOSE is not set - -# -# Common options for cp and mv -# -# CONFIG_FEATURE_PRESERVE_HARDLINKS is not set - -# -# Common options for df, du, ls -# -# CONFIG_FEATURE_HUMAN_READABLE is not set - # # Console Utilities # @@ -423,6 +425,7 @@ CONFIG_VI=y CONFIG_FEATURE_VI_MAX_LEN=4096 # CONFIG_FEATURE_VI_8BIT is not set CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_COLON_EXPAND=y CONFIG_FEATURE_VI_YANKMARK=y CONFIG_FEATURE_VI_SEARCH=y # CONFIG_FEATURE_VI_REGEX_SEARCH is not set @@ -436,6 +439,7 @@ CONFIG_FEATURE_VI_ASK_TERMINAL=y CONFIG_FEATURE_VI_UNDO=y CONFIG_FEATURE_VI_UNDO_QUEUE=y CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256 +CONFIG_FEATURE_VI_VERBOSE_STATUS=y CONFIG_FEATURE_ALLOW_EXEC=y # @@ -444,7 +448,11 @@ CONFIG_FEATURE_ALLOW_EXEC=y # CONFIG_FIND is not set # CONFIG_FEATURE_FIND_PRINT0 is not set # CONFIG_FEATURE_FIND_MTIME is not set +# CONFIG_FEATURE_FIND_ATIME is not set +# CONFIG_FEATURE_FIND_CTIME is not set # CONFIG_FEATURE_FIND_MMIN is not set +# CONFIG_FEATURE_FIND_AMIN is not set +# CONFIG_FEATURE_FIND_CMIN is not set # CONFIG_FEATURE_FIND_PERM is not set # CONFIG_FEATURE_FIND_TYPE is not set # CONFIG_FEATURE_FIND_EXECUTABLE is not set @@ -452,6 +460,7 @@ CONFIG_FEATURE_ALLOW_EXEC=y # CONFIG_FEATURE_FIND_MAXDEPTH is not set # CONFIG_FEATURE_FIND_NEWER is not set # CONFIG_FEATURE_FIND_INUM is not set +# CONFIG_FEATURE_FIND_SAMEFILE is not set # CONFIG_FEATURE_FIND_EXEC is not set # CONFIG_FEATURE_FIND_EXEC_PLUS is not set # CONFIG_FEATURE_FIND_USER is not set @@ -623,7 +632,6 @@ CONFIG_FEATURE_GPT_LABEL=y # CONFIG_GETOPT is not set # CONFIG_FEATURE_GETOPT_LONG is not set # CONFIG_HEXDUMP is not set -# CONFIG_FEATURE_HEXDUMP_REVERSE is not set # CONFIG_HD is not set # CONFIG_XXD is not set # CONFIG_HWCLOCK is not set @@ -694,6 +702,7 @@ CONFIG_SETSID=y CONFIG_SWITCH_ROOT=y # CONFIG_TASKSET is not set # CONFIG_FEATURE_TASKSET_FANCY is not set +# CONFIG_FEATURE_TASKSET_CPULIST is not set CONFIG_UEVENT=y CONFIG_UMOUNT=y CONFIG_FEATURE_UMOUNT_ALL=y @@ -714,6 +723,7 @@ CONFIG_VOLUMEID=y # CONFIG_FEATURE_VOLUMEID_BCACHE is not set CONFIG_FEATURE_VOLUMEID_BTRFS=y CONFIG_FEATURE_VOLUMEID_CRAMFS=y +CONFIG_FEATURE_VOLUMEID_EROFS=y CONFIG_FEATURE_VOLUMEID_EXFAT=y CONFIG_FEATURE_VOLUMEID_EXT=y CONFIG_FEATURE_VOLUMEID_F2FS=y @@ -741,11 +751,12 @@ CONFIG_FEATURE_VOLUMEID_XFS=y # Miscellaneous Utilities # # CONFIG_ADJTIMEX is not set +CONFIG_ASCII=y # CONFIG_BBCONFIG is not set # CONFIG_FEATURE_COMPRESS_BBCONFIG is not set CONFIG_BC=y # CONFIG_DC is not set -# CONFIG_FEATURE_DC_BIG is not set +CONFIG_FEATURE_DC_BIG=y # CONFIG_FEATURE_DC_LIBM is not set # CONFIG_FEATURE_BC_INTERACTIVE is not set # CONFIG_FEATURE_BC_LONG_OPTIONS is not set @@ -811,6 +822,7 @@ CONFIG_FEATURE_LESS_MAXLINES=9999999 # CONFIG_FEATURE_MAKEDEVS_TABLE is not set # CONFIG_MAN is not set # CONFIG_MICROCOM is not set +# CONFIG_MIM is not set # CONFIG_MT is not set CONFIG_NANDWRITE=y # CONFIG_NANDDUMP is not set @@ -835,6 +847,7 @@ CONFIG_NANDWRITE=y # CONFIG_UBIRENAME is not set # CONFIG_VOLNAME is not set # CONFIG_WATCHDOG is not set +# CONFIG_FEATURE_WATCHDOG_OPEN_TWICE is not set # # Networking Utilities @@ -843,6 +856,9 @@ CONFIG_NANDWRITE=y # CONFIG_FEATURE_UNIX_LOCAL is not set # CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set # CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +# CONFIG_FEATURE_ETC_NETWORKS is not set +# CONFIG_FEATURE_ETC_SERVICES is not set +# CONFIG_FEATURE_HWIB is not set # CONFIG_FEATURE_TLS_SHA1 is not set # CONFIG_ARP is not set # CONFIG_ARPING is not set @@ -861,6 +877,7 @@ CONFIG_ETHER_WAKE=y # CONFIG_HOSTNAME is not set # CONFIG_DNSDOMAINNAME is not set # CONFIG_HTTPD is not set +CONFIG_FEATURE_HTTPD_PORT_DEFAULT=0 # CONFIG_FEATURE_HTTPD_RANGES is not set # CONFIG_FEATURE_HTTPD_SETUID is not set # CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set @@ -872,6 +889,10 @@ CONFIG_ETHER_WAKE=y # CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set # CONFIG_FEATURE_HTTPD_PROXY is not set # CONFIG_FEATURE_HTTPD_GZIP is not set +# CONFIG_FEATURE_HTTPD_ETAG is not set +# CONFIG_FEATURE_HTTPD_LAST_MODIFIED is not set +# CONFIG_FEATURE_HTTPD_DATE is not set +# CONFIG_FEATURE_HTTPD_ACL_IP is not set # CONFIG_IFCONFIG is not set # CONFIG_FEATURE_IFCONFIG_STATUS is not set # CONFIG_FEATURE_IFCONFIG_SLIP is not set @@ -949,6 +970,7 @@ CONFIG_FEATURE_FANCY_PING=y # CONFIG_FEATURE_TELNET_WIDTH is not set # CONFIG_TELNETD is not set # CONFIG_FEATURE_TELNETD_STANDALONE is not set +CONFIG_FEATURE_TELNETD_PORT_DEFAULT=0 # CONFIG_FEATURE_TELNETD_INETD_WAIT is not set # CONFIG_TFTP is not set # CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set @@ -969,6 +991,7 @@ CONFIG_FEATURE_FANCY_PING=y # CONFIG_WGET is not set # CONFIG_FEATURE_WGET_LONG_OPTIONS is not set # CONFIG_FEATURE_WGET_STATUSBAR is not set +# CONFIG_FEATURE_WGET_FTP is not set # CONFIG_FEATURE_WGET_AUTHENTICATION is not set # CONFIG_FEATURE_WGET_TIMEOUT is not set # CONFIG_FEATURE_WGET_HTTPS is not set @@ -990,6 +1013,7 @@ CONFIG_UDHCPC_DEFAULT_SCRIPT="" # CONFIG_FEATURE_UDHCPC6_RFC4704 is not set # CONFIG_FEATURE_UDHCPC6_RFC4833 is not set # CONFIG_FEATURE_UDHCPC6_RFC5970 is not set +CONFIG_UDHCPC_DEFAULT_INTERFACE="" # CONFIG_FEATURE_UDHCP_PORT is not set CONFIG_UDHCP_DEBUG=0 CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0 @@ -1007,17 +1031,19 @@ CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="" # # Mail Utilities # +CONFIG_FEATURE_MIME_CHARSET="" # CONFIG_MAKEMIME is not set # CONFIG_POPMAILDIR is not set # CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set # CONFIG_REFORMIME is not set # CONFIG_FEATURE_REFORMIME_COMPAT is not set # CONFIG_SENDMAIL is not set -CONFIG_FEATURE_MIME_CHARSET="" # # Process Utilities # +CONFIG_FEATURE_FAST_TOP=y +# CONFIG_FEATURE_SHOW_THREADS is not set # CONFIG_FREE is not set # CONFIG_FUSER is not set # CONFIG_IOSTAT is not set @@ -1056,7 +1082,6 @@ CONFIG_FEATURE_MIME_CHARSET="" # CONFIG_UPTIME is not set # CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set # CONFIG_WATCH is not set -# CONFIG_FEATURE_SHOW_THREADS is not set # # Runit Utilities @@ -1097,6 +1122,7 @@ CONFIG_SH_IS_ASH=y # CONFIG_BASH_IS_ASH is not set # CONFIG_BASH_IS_HUSH is not set CONFIG_BASH_IS_NONE=y +CONFIG_SHELL_ASH=y CONFIG_ASH=y # CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set CONFIG_ASH_INTERNAL_GLOB=y @@ -1120,8 +1146,8 @@ CONFIG_CTTYHACK=y # CONFIG_SHELL_HUSH is not set # CONFIG_HUSH_BASH_COMPAT is not set # CONFIG_HUSH_BRACE_EXPANSION is not set -# CONFIG_HUSH_LINENO_VAR is not set # CONFIG_HUSH_BASH_SOURCE_CURDIR is not set +# CONFIG_HUSH_LINENO_VAR is not set # CONFIG_HUSH_INTERACTIVE is not set # CONFIG_HUSH_SAVEHISTORY is not set # CONFIG_HUSH_JOB is not set @@ -1180,6 +1206,7 @@ CONFIG_FEATURE_SH_READ_FRAC=y # CONFIG_FEATURE_REMOTE_LOG is not set # CONFIG_FEATURE_SYSLOGD_DUP is not set # CONFIG_FEATURE_SYSLOGD_CFG is not set +# CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS is not set CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0 # CONFIG_FEATURE_IPC_SYSLOG is not set CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0 diff --git a/packages/sysutils/busybox/config/busybox-target.conf b/packages/sysutils/busybox/config/busybox-target.conf index a613829d9..600aaa9d9 100644 --- a/packages/sysutils/busybox/config/busybox-target.conf +++ b/packages/sysutils/busybox/config/busybox-target.conf @@ -1,13 +1,14 @@ # # Automatically generated make config: don't edit -# Busybox version: 1.31.0 -# Mon Sep 23 04:46:37 2019 +# Busybox version: 1.35.0 +# Tue Sep 13 18:32:09 2022 # CONFIG_HAVE_DOT_CONFIG=y # # Settings # +CONFIG_PLATFORM_LINUX=y CONFIG_DESKTOP=y # CONFIG_EXTRA_COMPAT is not set # CONFIG_FEDORA_COMPAT is not set @@ -36,7 +37,6 @@ CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" # CONFIG_FEATURE_CLEAN_UP is not set CONFIG_FEATURE_SYSLOG_INFO=y CONFIG_FEATURE_SYSLOG=y -CONFIG_PLATFORM_LINUX=y # # Build Options @@ -55,6 +55,7 @@ CONFIG_EXTRA_LDFLAGS="" CONFIG_EXTRA_LDLIBS="-ltirpc -lpthread" # CONFIG_USE_PORTABLE_CODE is not set # CONFIG_STACK_OPTIMIZATION_386 is not set +CONFIG_STATIC_LIBGCC=y # # Installation Options ("make install" behavior) @@ -94,9 +95,12 @@ CONFIG_FEATURE_BUFFERS_GO_ON_STACK=y CONFIG_PASSWORD_MINLEN=6 CONFIG_MD5_SMALL=0 CONFIG_SHA3_SMALL=0 -CONFIG_FEATURE_FAST_TOP=y -# CONFIG_FEATURE_ETC_NETWORKS is not set -# CONFIG_FEATURE_ETC_SERVICES is not set +CONFIG_FEATURE_NON_POSIX_CP=y +CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y +CONFIG_FEATURE_USE_SENDFILE=y +CONFIG_FEATURE_COPYBUF_KB=4 +CONFIG_MONOTONIC_SYSCALL=y +# CONFIG_IOCTL_HEX2STR_ERROR is not set CONFIG_FEATURE_EDITING=y CONFIG_FEATURE_EDITING_MAX_LEN=1024 # CONFIG_FEATURE_EDITING_VI is not set @@ -120,14 +124,6 @@ CONFIG_UNICODE_WIDE_WCHARS=y # CONFIG_UNICODE_BIDI_SUPPORT is not set # CONFIG_UNICODE_NEUTRAL_TABLE is not set # CONFIG_UNICODE_PRESERVE_BROKEN is not set -CONFIG_FEATURE_NON_POSIX_CP=y -CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y -CONFIG_FEATURE_USE_SENDFILE=y -CONFIG_FEATURE_COPYBUF_KB=4 -CONFIG_FEATURE_SKIP_ROOTFS=y -CONFIG_MONOTONIC_SYSCALL=y -# CONFIG_IOCTL_HEX2STR_ERROR is not set -# CONFIG_FEATURE_HWIB is not set # # Applets @@ -162,11 +158,13 @@ CONFIG_FEATURE_BZIP2_DECOMPRESS=y CONFIG_CPIO=y CONFIG_FEATURE_CPIO_O=y CONFIG_FEATURE_CPIO_P=y +CONFIG_FEATURE_CPIO_IGNORE_DEVNO=y +CONFIG_FEATURE_CPIO_RENUMBER_INODES=y # CONFIG_DPKG is not set # CONFIG_DPKG_DEB is not set # CONFIG_GZIP is not set # CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set -# CONFIG_GZIP_FAST is not set +CONFIG_GZIP_FAST=0 # CONFIG_FEATURE_GZIP_LEVELS is not set # CONFIG_FEATURE_GZIP_DECOMPRESS is not set # CONFIG_LZOP is not set @@ -197,6 +195,22 @@ CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y # # Coreutils # +CONFIG_FEATURE_VERBOSE=y + +# +# Common options for date and touch +# +CONFIG_FEATURE_TIMEZONE=y + +# +# Common options for cp and mv +# +# CONFIG_FEATURE_PRESERVE_HARDLINKS is not set + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y CONFIG_BASENAME=y CONFIG_CAT=y CONFIG_FEATURE_CATN=y @@ -207,11 +221,13 @@ CONFIG_CHOWN=y CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y CONFIG_CHROOT=y # CONFIG_CKSUM is not set +CONFIG_CRC32=y # CONFIG_COMM is not set CONFIG_CP=y CONFIG_FEATURE_CP_LONG_OPTIONS=y CONFIG_FEATURE_CP_REFLINK=y CONFIG_CUT=y +CONFIG_FEATURE_CUT_REGEX=y CONFIG_DATE=y CONFIG_FEATURE_DATE_ISOFMT=y CONFIG_FEATURE_DATE_NANO=y @@ -223,6 +239,7 @@ CONFIG_FEATURE_DD_IBS_OBS=y CONFIG_FEATURE_DD_STATUS=y CONFIG_DF=y # CONFIG_FEATURE_DF_FANCY is not set +CONFIG_FEATURE_SKIP_ROOTFS=y CONFIG_DIRNAME=y CONFIG_DOS2UNIX=y CONFIG_UNIX2DOS=y @@ -316,14 +333,13 @@ CONFIG_FEATURE_TEE_USE_BLOCK_IO=y CONFIG_FEATURE_TEST_64=y # CONFIG_TIMEOUT is not set CONFIG_TOUCH=y -CONFIG_FEATURE_TOUCH_NODEREF=y CONFIG_FEATURE_TOUCH_SUSV3=y CONFIG_TR=y CONFIG_FEATURE_TR_CLASSES=y CONFIG_FEATURE_TR_EQUIV=y CONFIG_TRUE=y # CONFIG_TRUNCATE is not set -# CONFIG_TTY is not set +CONFIG_TTY=y CONFIG_UNAME=y CONFIG_UNAME_OSNAME="GNU/Linux" CONFIG_BB_ARCH=y @@ -331,6 +347,7 @@ CONFIG_UNIQ=y # CONFIG_UNLINK is not set CONFIG_USLEEP=y # CONFIG_UUDECODE is not set +CONFIG_BASE32=y # CONFIG_BASE64 is not set # CONFIG_UUENCODE is not set CONFIG_WC=y @@ -341,21 +358,6 @@ CONFIG_FEATURE_WC_LARGE=y CONFIG_WHOAMI=y # CONFIG_YES is not set -# -# Common options -# -CONFIG_FEATURE_VERBOSE=y - -# -# Common options for cp and mv -# -# CONFIG_FEATURE_PRESERVE_HARDLINKS is not set - -# -# Common options for df, du, ls -# -CONFIG_FEATURE_HUMAN_READABLE=y - # # Console Utilities # @@ -369,6 +371,10 @@ CONFIG_LOADFONT=y CONFIG_SETFONT=y # CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set CONFIG_DEFAULT_SETFONT_DIR="" + +# +# Common options for loadfont and setfont +# CONFIG_FEATURE_LOADFONT_PSF2=y CONFIG_FEATURE_LOADFONT_RAW=y CONFIG_LOADKMAP=y @@ -419,6 +425,7 @@ CONFIG_VI=y CONFIG_FEATURE_VI_MAX_LEN=4096 CONFIG_FEATURE_VI_8BIT=y CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_COLON_EXPAND=y CONFIG_FEATURE_VI_YANKMARK=y CONFIG_FEATURE_VI_SEARCH=y # CONFIG_FEATURE_VI_REGEX_SEARCH is not set @@ -432,6 +439,7 @@ CONFIG_FEATURE_VI_ASK_TERMINAL=y CONFIG_FEATURE_VI_UNDO=y CONFIG_FEATURE_VI_UNDO_QUEUE=y CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256 +CONFIG_FEATURE_VI_VERBOSE_STATUS=y CONFIG_FEATURE_ALLOW_EXEC=y # @@ -440,7 +448,11 @@ CONFIG_FEATURE_ALLOW_EXEC=y CONFIG_FIND=y CONFIG_FEATURE_FIND_PRINT0=y CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_ATIME=y +CONFIG_FEATURE_FIND_CTIME=y CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_AMIN=y +CONFIG_FEATURE_FIND_CMIN=y CONFIG_FEATURE_FIND_PERM=y CONFIG_FEATURE_FIND_TYPE=y CONFIG_FEATURE_FIND_EXECUTABLE=y @@ -448,6 +460,7 @@ CONFIG_FEATURE_FIND_XDEV=y CONFIG_FEATURE_FIND_MAXDEPTH=y CONFIG_FEATURE_FIND_NEWER=y CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_SAMEFILE=y CONFIG_FEATURE_FIND_EXEC=y CONFIG_FEATURE_FIND_EXEC_PLUS=y CONFIG_FEATURE_FIND_USER=y @@ -467,7 +480,7 @@ CONFIG_FEATURE_FIND_LINKS=y # CONFIG_GREP is not set # CONFIG_EGREP is not set # CONFIG_FGREP is not set -CONFIG_FEATURE_GREP_CONTEXT=y +# CONFIG_FEATURE_GREP_CONTEXT is not set CONFIG_XARGS=y CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y @@ -619,7 +632,6 @@ CONFIG_FLOCK=y CONFIG_GETOPT=y CONFIG_FEATURE_GETOPT_LONG=y CONFIG_HEXDUMP=y -# CONFIG_FEATURE_HEXDUMP_REVERSE is not set # CONFIG_HD is not set # CONFIG_XXD is not set CONFIG_HWCLOCK=y @@ -657,7 +669,7 @@ CONFIG_FEATURE_MOUNT_VERBOSE=y CONFIG_FEATURE_MOUNT_HELPERS=y CONFIG_FEATURE_MOUNT_LABEL=y # CONFIG_FEATURE_MOUNT_NFS is not set -CONFIG_FEATURE_MOUNT_CIFS=y +# CONFIG_FEATURE_MOUNT_CIFS is not set CONFIG_FEATURE_MOUNT_FLAGS=y # CONFIG_FEATURE_MOUNT_FSTAB is not set # CONFIG_FEATURE_MOUNT_OTHERTAB is not set @@ -681,7 +693,7 @@ CONFIG_RENICE=y # CONFIG_FEATURE_SETPRIV_DUMP is not set # CONFIG_FEATURE_SETPRIV_CAPABILITIES is not set # CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES is not set -# CONFIG_SETSID is not set +CONFIG_SETSID=y # CONFIG_SWAPON is not set # CONFIG_FEATURE_SWAPON_DISCARD is not set # CONFIG_FEATURE_SWAPON_PRI is not set @@ -690,6 +702,7 @@ CONFIG_RENICE=y CONFIG_SWITCH_ROOT=y # CONFIG_TASKSET is not set # CONFIG_FEATURE_TASKSET_FANCY is not set +# CONFIG_FEATURE_TASKSET_CPULIST is not set CONFIG_UEVENT=y CONFIG_UMOUNT=y CONFIG_FEATURE_UMOUNT_ALL=y @@ -710,6 +723,7 @@ CONFIG_VOLUMEID=y # CONFIG_FEATURE_VOLUMEID_BCACHE is not set CONFIG_FEATURE_VOLUMEID_BTRFS=y CONFIG_FEATURE_VOLUMEID_CRAMFS=y +CONFIG_FEATURE_VOLUMEID_EROFS=y CONFIG_FEATURE_VOLUMEID_EXFAT=y CONFIG_FEATURE_VOLUMEID_EXT=y CONFIG_FEATURE_VOLUMEID_F2FS=y @@ -737,11 +751,12 @@ CONFIG_FEATURE_VOLUMEID_XFS=y # Miscellaneous Utilities # # CONFIG_ADJTIMEX is not set +CONFIG_ASCII=y # CONFIG_BBCONFIG is not set # CONFIG_FEATURE_COMPRESS_BBCONFIG is not set CONFIG_BC=y # CONFIG_DC is not set -# CONFIG_FEATURE_DC_BIG is not set +CONFIG_FEATURE_DC_BIG=y # CONFIG_FEATURE_DC_LIBM is not set # CONFIG_FEATURE_BC_INTERACTIVE is not set # CONFIG_FEATURE_BC_LONG_OPTIONS is not set @@ -757,12 +772,12 @@ CONFIG_FEATURE_BEEP_LENGTH_MS=0 # CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set # CONFIG_FEATURE_CHAT_CLR_ABORT is not set # CONFIG_CONSPY is not set -CONFIG_CROND=y -CONFIG_FEATURE_CROND_D=y +# CONFIG_CROND is not set +# CONFIG_FEATURE_CROND_D is not set # CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set # CONFIG_FEATURE_CROND_SPECIAL_TIMES is not set -CONFIG_FEATURE_CROND_DIR="/storage/.cache/cron" -CONFIG_CRONTAB=y +CONFIG_FEATURE_CROND_DIR="" +# CONFIG_CRONTAB is not set # CONFIG_DEVFSD is not set # CONFIG_DEVFSD_MODLOAD is not set # CONFIG_DEVFSD_FG_NP is not set @@ -807,6 +822,7 @@ CONFIG_FEATURE_LESS_ENV=y # CONFIG_FEATURE_MAKEDEVS_TABLE is not set # CONFIG_MAN is not set # CONFIG_MICROCOM is not set +# CONFIG_MIM is not set # CONFIG_MT is not set CONFIG_NANDWRITE=y # CONFIG_NANDDUMP is not set @@ -831,6 +847,7 @@ CONFIG_TTYSIZE=y # CONFIG_UBIRENAME is not set # CONFIG_VOLNAME is not set # CONFIG_WATCHDOG is not set +# CONFIG_FEATURE_WATCHDOG_OPEN_TWICE is not set # # Networking Utilities @@ -839,6 +856,9 @@ CONFIG_FEATURE_IPV6=y # CONFIG_FEATURE_UNIX_LOCAL is not set CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y # CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +# CONFIG_FEATURE_ETC_NETWORKS is not set +# CONFIG_FEATURE_ETC_SERVICES is not set +# CONFIG_FEATURE_HWIB is not set # CONFIG_FEATURE_TLS_SHA1 is not set CONFIG_ARP=y CONFIG_ARPING=y @@ -857,6 +877,7 @@ CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y CONFIG_HOSTNAME=y CONFIG_DNSDOMAINNAME=y CONFIG_HTTPD=y +CONFIG_FEATURE_HTTPD_PORT_DEFAULT=80 CONFIG_FEATURE_HTTPD_RANGES=y CONFIG_FEATURE_HTTPD_SETUID=y CONFIG_FEATURE_HTTPD_BASIC_AUTH=y @@ -868,6 +889,10 @@ CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y CONFIG_FEATURE_HTTPD_ERROR_PAGES=y CONFIG_FEATURE_HTTPD_PROXY=y CONFIG_FEATURE_HTTPD_GZIP=y +CONFIG_FEATURE_HTTPD_ETAG=y +CONFIG_FEATURE_HTTPD_LAST_MODIFIED=y +CONFIG_FEATURE_HTTPD_DATE=y +CONFIG_FEATURE_HTTPD_ACL_IP=y CONFIG_IFCONFIG=y CONFIG_FEATURE_IFCONFIG_STATUS=y # CONFIG_FEATURE_IFCONFIG_SLIP is not set @@ -945,6 +970,7 @@ CONFIG_FEATURE_TELNET_AUTOLOGIN=y # CONFIG_FEATURE_TELNET_WIDTH is not set # CONFIG_TELNETD is not set # CONFIG_FEATURE_TELNETD_STANDALONE is not set +CONFIG_FEATURE_TELNETD_PORT_DEFAULT=0 # CONFIG_FEATURE_TELNETD_INETD_WAIT is not set # CONFIG_TFTP is not set # CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set @@ -962,13 +988,14 @@ CONFIG_FEATURE_TRACEROUTE_VERBOSE=y # CONFIG_TUNCTL is not set # CONFIG_FEATURE_TUNCTL_UG is not set CONFIG_VCONFIG=y -CONFIG_WGET=n -CONFIG_FEATURE_WGET_LONG_OPTIONS=y -CONFIG_FEATURE_WGET_STATUSBAR=y -CONFIG_FEATURE_WGET_AUTHENTICATION=y -CONFIG_FEATURE_WGET_TIMEOUT=y +# CONFIG_WGET is not set +# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set +# CONFIG_FEATURE_WGET_STATUSBAR is not set +# CONFIG_FEATURE_WGET_FTP is not set +# CONFIG_FEATURE_WGET_AUTHENTICATION is not set +# CONFIG_FEATURE_WGET_TIMEOUT is not set # CONFIG_FEATURE_WGET_HTTPS is not set -CONFIG_FEATURE_WGET_OPENSSL=y +# CONFIG_FEATURE_WGET_OPENSSL is not set CONFIG_WHOIS=y # CONFIG_ZCIP is not set # CONFIG_UDHCPD is not set @@ -986,6 +1013,7 @@ CONFIG_UDHCPC_DEFAULT_SCRIPT="" # CONFIG_FEATURE_UDHCPC6_RFC4704 is not set # CONFIG_FEATURE_UDHCPC6_RFC4833 is not set # CONFIG_FEATURE_UDHCPC6_RFC5970 is not set +CONFIG_UDHCPC_DEFAULT_INTERFACE="" # CONFIG_FEATURE_UDHCP_PORT is not set CONFIG_UDHCP_DEBUG=0 CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0 @@ -1003,17 +1031,19 @@ CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="" # # Mail Utilities # +CONFIG_FEATURE_MIME_CHARSET="" # CONFIG_MAKEMIME is not set # CONFIG_POPMAILDIR is not set # CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set # CONFIG_REFORMIME is not set # CONFIG_FEATURE_REFORMIME_COMPAT is not set # CONFIG_SENDMAIL is not set -CONFIG_FEATURE_MIME_CHARSET="" # # Process Utilities # +CONFIG_FEATURE_FAST_TOP=y +CONFIG_FEATURE_SHOW_THREADS=y # CONFIG_FREE is not set CONFIG_FUSER=y CONFIG_IOSTAT=y @@ -1052,7 +1082,6 @@ CONFIG_BB_SYSCTL=y CONFIG_UPTIME=y # CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set CONFIG_WATCH=y -CONFIG_FEATURE_SHOW_THREADS=y # # Runit Utilities @@ -1087,12 +1116,13 @@ CONFIG_SV_DEFAULT_SERVICE_DIR="" # # Shells # -# CONFIG_SH_IS_ASH is not set +CONFIG_SH_IS_ASH=y # CONFIG_SH_IS_HUSH is not set # CONFIG_SH_IS_NONE is not set # CONFIG_BASH_IS_ASH is not set # CONFIG_BASH_IS_HUSH is not set -# CONFIG_BASH_IS_NONE is not set +CONFIG_BASH_IS_NONE=y +CONFIG_SHELL_ASH=y CONFIG_ASH=y # CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set # CONFIG_ASH_INTERNAL_GLOB is not set @@ -1116,8 +1146,8 @@ CONFIG_ASH_CMDCMD=y # CONFIG_SHELL_HUSH is not set # CONFIG_HUSH_BASH_COMPAT is not set # CONFIG_HUSH_BRACE_EXPANSION is not set -# CONFIG_HUSH_LINENO_VAR is not set # CONFIG_HUSH_BASH_SOURCE_CURDIR is not set +# CONFIG_HUSH_LINENO_VAR is not set # CONFIG_HUSH_INTERACTIVE is not set # CONFIG_HUSH_SAVEHISTORY is not set # CONFIG_HUSH_JOB is not set @@ -1176,6 +1206,7 @@ CONFIG_LOGGER=y # CONFIG_FEATURE_REMOTE_LOG is not set # CONFIG_FEATURE_SYSLOGD_DUP is not set # CONFIG_FEATURE_SYSLOGD_CFG is not set +# CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS is not set CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0 # CONFIG_FEATURE_IPC_SYSLOG is not set CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0 diff --git a/packages/sysutils/busybox/package.mk b/packages/sysutils/busybox/package.mk index ada5819cf..c71344536 100644 --- a/packages/sysutils/busybox/package.mk +++ b/packages/sysutils/busybox/package.mk @@ -4,8 +4,7 @@ # Copyright (C) 2018-present Team CoreELEC (https://coreelec.org) PKG_NAME="busybox" -PKG_VERSION="1.32.1" -PKG_SHA256="9d57c4bd33974140fd4111260468af22856f12f5b5ef7c70c8d9b75c712a0dee" +PKG_VERSION="1.35.0" PKG_LICENSE="GPL" PKG_SITE="http://www.busybox.net" PKG_URL="http://busybox.net/downloads/${PKG_NAME}-${PKG_VERSION}.tar.bz2" diff --git a/packages/sysutils/busybox/patches/busybox-20-add-not-tables-support.patch b/packages/sysutils/busybox/patches/busybox-20-add-not-tables-support.patch deleted file mode 100644 index 31d22ed2b..000000000 --- a/packages/sysutils/busybox/patches/busybox-20-add-not-tables-support.patch +++ /dev/null @@ -1,78 +0,0 @@ -kkoshelev@gmail.com -Those to support ip commands needed by wg-quick script. -1. "ip rule" now supports "not" keyword. -2. "ip" command now supports arbitrary numeric routing tables above 1024. - ---- a/networking/libiproute/iprule.c 2021-01-01 05:30:02.000000000 -0800 -+++ b/iprule.c 2022-05-10 16:32:10.781087924 -0700 -@@ -19,6 +19,7 @@ - /* from : */ - #define FRA_SUPPRESS_IFGROUP 13 - #define FRA_SUPPRESS_PREFIXLEN 14 -+#define FIB_RULE_INVERT 0x00000002 - - #include "ip_common.h" /* #include "libbb.h" is inside */ - #include "rt_names.h" -@@ -31,18 +32,18 @@ - - /* If you add stuff here, update iprule_full_usage */ - static const char keywords[] ALIGN1 = -- "from\0""to\0""preference\0""order\0""priority\0" -+ "not\0""from\0""to\0""preference\0""order\0""priority\0" - "tos\0""fwmark\0""realms\0""table\0""lookup\0" - "suppress_prefixlength\0""suppress_ifgroup\0" - "dev\0""iif\0""nat\0""map-to\0""type\0""help\0" - ; --#define keyword_preference (keywords + sizeof("from") + sizeof("to")) -+#define keyword_preference (keywords + sizeof("not") + sizeof("from") + sizeof("to")) - #define keyword_fwmark (keyword_preference + sizeof("preference") + sizeof("order") + sizeof("priority") + sizeof("tos")) - #define keyword_realms (keyword_fwmark + sizeof("fwmark")) - #define keyword_suppress_prefixlength (keyword_realms + sizeof("realms") + sizeof("table") + sizeof("lookup")) - #define keyword_suppress_ifgroup (keyword_suppress_prefixlength + sizeof("suppress_prefixlength")) - enum { -- ARG_from = 1, ARG_to, ARG_preference, ARG_order, ARG_priority, -+ ARG_not = 1, ARG_from, ARG_to, ARG_preference, ARG_order, ARG_priority, - ARG_tos, ARG_fwmark, ARG_realms, ARG_table, ARG_lookup, - ARG_suppress_prefixlength, ARG_suppress_ifgroup, - ARG_dev, ARG_iif, ARG_nat, ARG_map_to, ARG_type, ARG_help, -@@ -78,6 +79,10 @@ - printf("%u:\t", tb[RTA_PRIORITY] ? - *(unsigned*)RTA_DATA(tb[RTA_PRIORITY]) - : 0); -+ -+ if (r->rtm_flags & FIB_RULE_INVERT) -+ printf("not "); -+ - printf("from "); - if (tb[RTA_SRC]) { - if (r->rtm_src_len != host_len) { -@@ -230,7 +235,9 @@ - key = index_in_substrings(keywords, *argv) + 1; - if (key == 0) /* no match found in keywords array, bail out. */ - invarg_1_to_2(*argv, applet_name); -- if (key == ARG_from) { -+ if (key == ARG_not) { -+ req.r.rtm_flags |= FIB_RULE_INVERT; -+ } else if (key == ARG_from) { - inet_prefix dst; - NEXT_ARG(); - get_prefix(&dst, *argv, req.r.rtm_family); ---- a/networking/libiproute/rt_names.c 2021-01-01 05:30:02.000000000 -0800 -+++ b/rt_names.c 2022-05-10 16:50:30.298597124 -0700 -@@ -251,7 +251,14 @@ - int FAST_FUNC rtnl_rttable_a2n(uint32_t *id, char *arg) - { - rtnl_rttable_initialize(); -- return rtnl_a2n(rtnl_rttable_tab, id, arg, 0); -+ if (!rtnl_a2n(rtnl_rttable_tab, id, arg, 0)) return 0; -+ -+ unsigned i = bb_strtou(arg, NULL, 0); -+ if (i > RT_TABLE_MAX) { -+ *id = i; -+ return 0; -+ } -+ return -1; - } - - #endif - diff --git a/packages/sysutils/busybox/scripts/fs-resize b/packages/sysutils/busybox/scripts/fs-resize index a52e5584b..435f5f5ea 100755 --- a/packages/sysutils/busybox/scripts/fs-resize +++ b/packages/sysutils/busybox/scripts/fs-resize @@ -3,6 +3,7 @@ # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) # Copyright (C) 2018-present Team CoreELEC (https://coreelec.org) +# Copyright (C) 2020-present Fewtarius if [ -e /storage/.please_resize_me ] ; then . /usr/lib/coreelec/functions @@ -20,10 +21,15 @@ if [ -e /storage/.please_resize_me ] ; then fi # get the disk. /storage on 2nd partition - PART=$(blkid | awk 'BEGIN {FS=":"} /STORAGE/ {print $1}') - DISK=$(echo ${PART} | sed s/p[0-9]//g) - PARTNUM=$(echo ${PART} | sed "s#^.*[0-9]p##g") - + PART=$(blkid | awk 'BEGIN {FS=":"} /'$(cat /proc/cmdline | sed -e 's#^.*disk=UUID=##g' -e 's#\ .*$##g')'/ {print $1}') + if [ "$(echo ${PART} | awk '/mmcblk/ {print $1}')" ] + then + DISK=$(echo ${PART} | sed s/p[0-9]//g) + PARTNUM=$(echo ${PART} | sed "s#^.*[0-9]p##g") + else + DISK=$(echo ${PART} | sed s/[0-9]//g) + PARTNUM=$(echo ${PART} | sed "s#^.*sd[a-z]##g") + fi rm -f /storage/.please_resize_me sync diff --git a/packages/sysutils/busybox/scripts/init b/packages/sysutils/busybox/scripts/init index 19afb8969..dddfc8f65 100755 --- a/packages/sysutils/busybox/scripts/init +++ b/packages/sysutils/busybox/scripts/init @@ -54,6 +54,9 @@ BIGFONT="1080" TEE_PID="" +exec 1>/dev/console +exec 2>/dev/null + # common functions . /functions 2>/dev/null . /device.init 2>/dev/null @@ -76,7 +79,6 @@ debug_msg() { } debug_shell() { - redirect_output_to_screen # restore output to a screen echo "### Starting debugging shell for boot step: $BOOT_STEP... type exit to quit ###" showcursor setsid cttyhack sh @@ -429,15 +431,15 @@ set_consolefont() { hres="$(fbset 2>/dev/null | awk '/geometry/ { print $2 }')" if [ "${hres}" -gt "0" ] && [ "${hres}" -lt "640" ] then - setfont -C /dev/tty0 ter-v12n.psf + setfont -C /dev/console ter-v12n.psf elif [ "${hres}" -ge "640" ] && [ "${hres}" -lt "720" ] then - setfont -C /dev/tty0 ter-v14n.psf + setfont -C /dev/console ter-v14n.psf elif [ "${hres}" -ge "720" ] && [ "${hres}" -lt "1080" ] then - setfont -C /dev/tty0 ter-v18n.psf + setfont -C /dev/console ter-v18n.psf else - setfont -C /dev/tty0 ter-v24n.psf + setfont -C /dev/console ter-v24n.psf fi fi } @@ -515,8 +517,6 @@ do_reboot() { if [ -s /dev/init.log ]; then mv /dev/init.log /storage/init-previous.log fi - redirect_output_to_screen - delete_descriptors # syncing filesystem sync @@ -697,49 +697,6 @@ mount_storage() { fi } -mount_games() { - if /usr/bin/busybox mountpoint -q /storage ; then - progress "Mounting games" - if [ ! -d "/storage/roms" ] - then - /usr/bin/busybox mkdir -p /storage/roms >/dev/null 2>&1 - fi - - for DEV in $(blkid | awk 'BEGIN {FS=":"}; /ext4/ || /fat/ {print $1}' | sort -r) - do - ROOTDEV=$(echo ${DEV} | sed -e "s#^/.*/##g" -e "s#p[0-9].*\$##g") - if [ -L "/sys/class/block/${ROOTDEV}boot0" ] - then - # Assume this is an android boot device and ignore it. - continue - fi - NULL=$(grep ${DEV} /proc/mounts >/dev/null 2>&1) - if [ ! "$?" = "0" ] && [ -e "${DEV}" ] && [ ! -e "/storage/.please_resize_me" ] - then - mount ${DEV} /storage/roms >/dev/null 2>&1 - break - fi - done - - if [ -d "/storage/.update" ] && [ ! -e "/storage/.please_resize_me" ] - then - /usr/bin/busybox rm -rf /storage/.update >/dev/null 2>&1 - /usr/bin/busybox mkdir -p /storage/.update >/dev/null 2>&1 - fi - - if [ ! -d "/storage/roms/update" ] - then - /usr/bin/busybox mkdir -p /storage/roms/update >/dev/null 2>&1 - fi - - if [ ! -e "/storage/.please_resize_me" ] - then - /usr/bin/busybox mkdir -p "$UPDATE_ROOT" >/dev/null 2>&1 - mount --bind /storage/roms/update "$UPDATE_ROOT" >/dev/null 2>&1 - fi - fi -} - # Make last bootloader label (installer, live, run etc.) as the new default update_bootmenu() { local crnt_default @@ -795,18 +752,6 @@ check_out_of_space() { do_cleanup() { StartProgress spinner "Cleaning up... " - if mountpoint -q /storage/roms; then - umount /storage/roms &>/dev/null - fi - - if mountpoint -q /storage; then - umount /storage &>/dev/null - fi - - if mountpoint -q /update; then - umount /update &>/dev/null - fi - if [ -d $UPDATE_ROOT/.tmp/mnt ]; then if mountpoint -q $UPDATE_ROOT/.tmp/mnt ; then # busybox umount deletes loop device automatically @@ -820,10 +765,16 @@ do_cleanup() { [ -f "$UPDATE_IMG_GZ" ] && rm -f "$UPDATE_IMG_GZ" &>/dev/null [ -f "$UPDATE_IMG" ] && rm -f "$UPDATE_IMG" &>/dev/null - rm -rf $UPDATE_ROOT/[0-9a-zA-Z]* &>/dev/null - rm -f $UPDATE_ROOT/* &>/dev/null - rm -f $UPDATE_ROOT/.nocheck $UPDATE_ROOT/.nocompat &>/dev/null - rm -rf $UPDATE_ROOT/.tmp &>/dev/null + rm -rf $UPDATE_ROOT/.[0-9a-zA-Z]* &>/dev/null + rm -rf $UPDATE_ROOT/* &>/dev/null + + if mountpoint -q /storage; then + umount /storage &>/dev/null + fi + + if mountpoint -q /update; then + umount /update &>/dev/null + fi sync @@ -1112,8 +1063,6 @@ prepare_sysroot() { if [ ! -f "/sysroot/storage/.configured" ] then echo -ne "\033[1000H\033[2K==> Initializing system, please wait.." >/dev/console - else - echo -ne "\033[1000H\033[2K==> Loading, please wait.." >/dev/console fi } @@ -1145,36 +1094,6 @@ check_amlogic_dtb() { fi } -# create pipe and save original descriptors -create_output_pipe() { - # save original stdout and stderr descriptors - exec 4>&1 - exec 5>&2 - - # create pipe and use it with tee - mknod /tmp/output_pipe p - tee /tmp/output_pipe - exec 2>/tmp/output_pipe -} - -# restore original descriptors -redirect_output_to_screen() { - exec 1>&4 - exec 2>&5 -} - -# delete descriptor -delete_descriptors() { - exec 4>&- - exec 5>&- -} - # Do init tasks to bring up system # run platform_init script if exists @@ -1183,12 +1102,9 @@ if [ -f "./platform_init" ]; then fi # clear screen and hide cursor -clear +clear >/dev/console hidecursor -create_output_pipe -redirect_output_to_pipe - # parse command line arguments for arg in $(cat /proc/cmdline); do case $arg in @@ -1327,7 +1243,6 @@ for BOOT_STEP in \ load_splash \ mount_sysroot \ mount_storage \ - mount_games \ check_update \ prepare_sysroot \ check_amlogic_dtb; do @@ -1396,10 +1311,6 @@ else rm -f /sysroot/storage/init.log fi -# restore original descriptors and delete descriptors -redirect_output_to_screen -delete_descriptors - # switch to new sysroot and start real init exec /usr/bin/busybox switch_root /sysroot /usr/lib/systemd/systemd $INIT_ARGS $INIT_UNIT diff --git a/packages/sysutils/fuse/package.mk b/packages/sysutils/fuse/package.mk index ba9d699d1..72f94e3f3 100644 --- a/packages/sysutils/fuse/package.mk +++ b/packages/sysutils/fuse/package.mk @@ -15,6 +15,7 @@ PKG_BUILD_FLAGS="-gold" PKG_TOOLCHAIN="autotools" PKG_CONFIGURE_OPTS_TARGET="MOUNT_FUSE_PATH=/usr/sbin \ + UDEV_RULES_PATH=/usr/lib/udev \ --enable-lib \ --enable-util \ --disable-example \ @@ -22,10 +23,3 @@ PKG_CONFIGURE_OPTS_TARGET="MOUNT_FUSE_PATH=/usr/sbin \ --disable-rpath \ --with-gnu-ld" -makeinstall_target() { - mkdir -p ${INSTALL}/usr/{lib,bin} - cp lib/* ${INSTALL}/usr/lib 2>/dev/null ||: - cp util/* ${INSTALL}/usr/bin 2>/dev/null ||: -# ln -s fusermount3 ${INSTALL}/usr/bin/fusermount -# ln -s mount.fuse3 ${INSTALL}/usr/bin/mount.fuse -} diff --git a/packages/sysutils/htop/package.mk b/packages/sysutils/htop/package.mk index 19bdac689..eddfcfe07 100644 --- a/packages/sysutils/htop/package.mk +++ b/packages/sysutils/htop/package.mk @@ -15,6 +15,6 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-unicode \ HTOP_NCURSES_CONFIG_SCRIPT=ncurses6-config" pre_configure_target() { - export LDFLAGS="${LDFLAGS} -lreadline -lncurses -ltinfo" + export LDFLAGS="${LDFLAGS} -lreadline -lncursesw -ltinfow" export CFLAGS="${CFLAGS} -fcommon" } diff --git a/packages/sysutils/lm_sensors/package.mk b/packages/sysutils/lm_sensors/package.mk index 9f7a42a05..165bbae2c 100644 --- a/packages/sysutils/lm_sensors/package.mk +++ b/packages/sysutils/lm_sensors/package.mk @@ -2,12 +2,11 @@ # Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) PKG_NAME="lm_sensors" -PKG_VERSION="e8afbda10fba571c816abddcb5c8180afc435bba" -PKG_SHA256="255b9a9b30c7969b3df0460392a807239c18b15baac1ff33ff5fef3b1cc1169d" +PKG_VERSION="42f240d" PKG_ARCH="arm x86_64" PKG_LICENSE="GPL" PKG_SITE="http://secure.netroedge.com/~lm78/" -PKG_URL="https://github.com/groeck/lm-sensors/archive/${PKG_VERSION}.tar.gz" +PKG_URL="https://github.com/lm-sensors/lm-sensors.git" PKG_DEPENDS_TARGET="toolchain" PKG_LONGDESC="Provides user-space support for the hardware monitoring drivers." @@ -20,6 +19,3 @@ pre_make_target() { export CPPFLAGS="$TARGET_CPPFLAGS" } -makeinstall_target() { - : -} diff --git a/packages/sysutils/pciutils/package.mk b/packages/sysutils/pciutils/package.mk index 019fd8cd3..82c92fdaa 100644 --- a/packages/sysutils/pciutils/package.mk +++ b/packages/sysutils/pciutils/package.mk @@ -3,36 +3,40 @@ # Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv) PKG_NAME="pciutils" -PKG_VERSION="3.6.2" -PKG_SHA256="db452ec986edefd88af0d222d22f6102f8030a8633fdfe846c3ae4bde9bb93f3" +PKG_VERSION="3.8.0" PKG_ARCH="x86_64" PKG_LICENSE="GPL" PKG_SITE="http://mj.ucw.cz/pciutils.shtml" -PKG_URL="http://www.kernel.org/pub/software/utils/pciutils/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_URL="http://www.kernel.org/pub/software/utils/pciutils/${PKG_NAME}-${PKG_VERSION}.tar.xz" PKG_DEPENDS_TARGET="toolchain kmod systemd" PKG_LONGDESC="Utilities for inspecting devices connected to the PCI bus and the PCI vendor/product ID database." +PKG_BUILD_FLAGS="+pic" PKG_MAKE_OPTS="PREFIX=/usr SHARED=no STRIP= IDSDIR=/usr/share" +pre_configure_target() { + export LDFLAGS="${LDFLAGS} -ludev" +} + make_target() { - make OPT="$CFLAGS" \ + make OPT="${CFLAGS}" \ CROSS_COMPILE=${TARGET_PREFIX} \ - HOST=$TARGET_ARCH-linux \ - $PKG_MAKE_OPTS \ + HOST=${TARGET_ARCH}-linux \ + ${PKG_MAKE_OPTS} \ ZLIB=no DNS=no LIBKMOD=yes HWDB=yes } makeinstall_target() { - make $PKG_MAKE_OPTS DESTDIR=$SYSROOT_PREFIX install - make $PKG_MAKE_OPTS DESTDIR=$SYSROOT_PREFIX install-lib - make $PKG_MAKE_OPTS DESTDIR=$INSTALL install-lib - if [ "$TARGET_ARCH" = x86_64 ]; then - make $PKG_MAKE_OPTS DESTDIR=$INSTALL install + make ${PKG_MAKE_OPTS} DESTDIR=${SYSROOT_PREFIX} install + make ${PKG_MAKE_OPTS} DESTDIR=${SYSROOT_PREFIX} install-lib + make ${PKG_MAKE_OPTS} DESTDIR=${INSTALL} install-lib + if [ "${TARGET_ARCH}" = x86_64 ]; then + make ${PKG_MAKE_OPTS} DESTDIR=${INSTALL} install fi } post_makeinstall_target() { - rm -rf $INSTALL/usr/sbin/setpci - rm -rf $INSTALL/usr/sbin/update-pciids - rm -rf $INSTALL/usr/share + rm -rf ${INSTALL}/usr/sbin/setpci + rm -rf ${INSTALL}/usr/sbin/update-pciids + rm -rf ${INSTALL}/usr/share } diff --git a/packages/sysutils/rclone/sources/cloud_backup b/packages/sysutils/rclone/sources/cloud_backup index 50985ba0a..36270d291 100755 --- a/packages/sysutils/rclone/sources/cloud_backup +++ b/packages/sysutils/rclone/sources/cloud_backup @@ -15,15 +15,15 @@ SYNCPATH="${SYNCPATH:=GAMES}" BACKUPPATH="${BACKUPPATH:=/storage/roms}" RSYNCOPTSBACKUP="${RSYNCOPTSBACKUP:=-raiv --prune-empty-dirs}" -echo -e "=> ${OS_NAME} CLOUD BACKUP UTILITY\n" >/dev/console +echo -e "=> ${OS_NAME} CLOUD BACKUP UTILITY\n" -echo "Mounting ${MOUNTPATH}" >/dev/console 2>&1 -rclonectl mount ${MOUNTPATH} >/dev/console 2>&1 +echo "Mounting ${MOUNTPATH}" 2>&1 +rclonectl mount ${MOUNTPATH} 2>&1 -echo "Backing up data from ${BACKUPPATH} to ${MOUNTPATH}/${SYNCPATH}" >/dev/console 2>&1 -rsync ${RSYNCOPTSBACKUP} --include-from="${CONFIGPATH}/rsync-rules.conf" ${BACKUPPATH}/ ${MOUNTPATH}/${SYNCPATH}/ >/dev/console 2>&1 +echo "Backing up data from ${BACKUPPATH} to ${MOUNTPATH}/${SYNCPATH}" 2>&1 +rsync ${RSYNCOPTSBACKUP} --include-from="${CONFIGPATH}/rsync-rules.conf" ${BACKUPPATH}/ ${MOUNTPATH}/${SYNCPATH}/ 2>&1 -echo "Unmounting ${MOUNTPATH}" >/dev/console 2>&1 -rclonectl unmount ${MOUNTPATH} >/dev/console 2>&1 +echo "Unmounting ${MOUNTPATH}" 2>&1 +rclonectl unmount ${MOUNTPATH} 2>&1 sleep 3 -clear >/dev/console +clear diff --git a/packages/sysutils/rclone/sources/cloud_restore b/packages/sysutils/rclone/sources/cloud_restore index 4a5cee4c1..085cb6fd3 100755 --- a/packages/sysutils/rclone/sources/cloud_restore +++ b/packages/sysutils/rclone/sources/cloud_restore @@ -15,15 +15,15 @@ SYNCPATH="${SYNCPATH:=GAMES}" BACKUPPATH="${BACKUPPATH:=/storage/roms}" RSYNCOPTSRESTORE="${RSYNCOPTSRESTORE:=-raiv}" -echo -e "=> ${OS_NAME} CLOUD RESTORE UTILITY\n" >/dev/console +echo -e "=> ${OS_NAME} CLOUD RESTORE UTILITY\n" -echo "Mounting ${MOUNTPATH}" >/dev/console 2>&1 -rclonectl mount ${MOUNTPATH} >/dev/console 2>&1 +echo "Mounting ${MOUNTPATH}" 2>&1 +rclonectl mount ${MOUNTPATH} 2>&1 -echo "Restoring data from ${MOUNTPATH}/${SYNCPATH} to ${BACKUPPATH}" >/dev/console 2>&1 -rsync ${RSYNCOPTSRESTORE} --include-from="${CONFIGPATH}/rsync-rules.conf" ${MOUNTPATH}/${SYNCPATH}/ ${BACKUPPATH}/ >/dev/console 2>&1 +echo "Restoring data from ${MOUNTPATH}/${SYNCPATH} to ${BACKUPPATH}" 2>&1 +rsync ${RSYNCOPTSRESTORE} --include-from="${CONFIGPATH}/rsync-rules.conf" ${MOUNTPATH}/${SYNCPATH}/ ${BACKUPPATH}/ 2>&1 -echo "Unmounting ${MOUNTPATH}" >/dev/console 2>&1 -rclonectl unmount ${MOUNTPATH} >/dev/console 2>&1 +echo "Unmounting ${MOUNTPATH}" 2>&1 +rclonectl unmount ${MOUNTPATH} 2>&1 sleep 3 -clear >/dev/console +clear diff --git a/packages/sysutils/ryzenadj/package.mk b/packages/sysutils/ryzenadj/package.mk new file mode 100644 index 000000000..c854897ab --- /dev/null +++ b/packages/sysutils/ryzenadj/package.mk @@ -0,0 +1,22 @@ +# SPDX-License-Identifier: Apache-2.0 +# Copyright (C) 2020-present Fewtarius + +PKG_NAME="ryzenadj" +PKG_VERSION="feecd88d29e555fa743044dad623fb96dded2b93" +PKG_LICENSE="GPL" +PKG_SITE="https://github.com/FlyGoat/RyzenAdj" +PKG_URL="${PKG_SITE}.git" +PKG_DEPENDS_TARGET="toolchain pciutils systemd" +PKG_LONGDESC="Adjust power management settings for Ryzen Mobile Processors." +PKG_BUILD_FLAGS="+pic" + +pre_configure_target() { + export LDFLAGS="${LDFLAGS} -ludev" +} + +makeinstall_target() { + mkdir -p ${INSTALL}/usr/lib + cp libryzenadj.so ${INSTALL}/usr/lib + mkdir -p ${INSTALL}/usr/bin + cp ryzenadj ${INSTALL}/usr/bin +} diff --git a/projects/Rockchip/packages/sleep/package.mk b/packages/sysutils/sleep/package.mk similarity index 100% rename from projects/Rockchip/packages/sleep/package.mk rename to packages/sysutils/sleep/package.mk diff --git a/projects/Rockchip/packages/sleep/sources/sleep.conf b/packages/sysutils/sleep/sources/sleep.conf similarity index 100% rename from projects/Rockchip/packages/sleep/sources/sleep.conf rename to packages/sysutils/sleep/sources/sleep.conf diff --git a/projects/Rockchip/packages/sleep/sources/sleep.sh b/packages/sysutils/sleep/sources/sleep.sh similarity index 76% rename from projects/Rockchip/packages/sleep/sources/sleep.sh rename to packages/sysutils/sleep/sources/sleep.sh index ea0b61268..a488119fa 100755 --- a/projects/Rockchip/packages/sleep/sources/sleep.sh +++ b/packages/sysutils/sleep/sources/sleep.sh @@ -9,12 +9,12 @@ case $1 in if [ "${DEVICE_FAKE_JACKSENSE}" == "true" ] then - nohup systemctl stop headphones & + systemctl stop headphones fi if [ "${DEVICE_VOLUMECTL}" == "true" ] then - nohup systemctl stop volume & + systemctl stop volume fi # RG351x devices are notorious for losing USB when they sleep. @@ -38,16 +38,21 @@ case $1 in if [ "${DEVICE_FAKE_JACKSENSE}" == "true" ] then - nohup systemctl start headphones & + systemctl start headphones fi if [ "${DEVICE_VOLUMECTL}" == "true" ] then - nohup systemctl start volume & + systemctl start volume + fi + + if [ "$(get_setting wifi.enabled)" == "1" ] + then + wifictl reconnect fi DEVICE_VOLUME=$(get_setting "audio.volume" 2>/dev/null) - amixer set "${DEVICE_AUDIO_MIXER}" ${DEVICE_VOLUME}% 2>&1 >/dev/null + amixer -M set "${DEVICE_AUDIO_MIXER}" ${DEVICE_VOLUME}% 2>&1 >/dev/null ### Call the brightness script to set to the last saved value. /usr/lib/autostart/common/006-brightness diff --git a/projects/Rockchip/packages/system-utils/package.mk b/packages/sysutils/system-utils/package.mk similarity index 100% rename from projects/Rockchip/packages/system-utils/package.mk rename to packages/sysutils/system-utils/package.mk diff --git a/projects/Rockchip/packages/system-utils/sources/autostart/RG351MP b/packages/sysutils/system-utils/sources/autostart/RG351MP similarity index 100% rename from projects/Rockchip/packages/system-utils/sources/autostart/RG351MP rename to packages/sysutils/system-utils/sources/autostart/RG351MP diff --git a/projects/Rockchip/packages/system-utils/sources/autostart/RG351P/002-overclock b/packages/sysutils/system-utils/sources/autostart/RG351P/002-overclock similarity index 100% rename from projects/Rockchip/packages/system-utils/sources/autostart/RG351P/002-overclock rename to packages/sysutils/system-utils/sources/autostart/RG351P/002-overclock diff --git a/projects/Rockchip/packages/system-utils/sources/autostart/RG351V b/packages/sysutils/system-utils/sources/autostart/RG351V similarity index 100% rename from projects/Rockchip/packages/system-utils/sources/autostart/RG351V rename to packages/sysutils/system-utils/sources/autostart/RG351V diff --git a/projects/Rockchip/packages/system-utils/sources/autostart/RG552/002-overclock b/packages/sysutils/system-utils/sources/autostart/RG552/002-overclock similarity index 100% rename from projects/Rockchip/packages/system-utils/sources/autostart/RG552/002-overclock rename to packages/sysutils/system-utils/sources/autostart/RG552/002-overclock diff --git a/projects/Rockchip/packages/system-utils/sources/autostart/common/008-deviceutils b/packages/sysutils/system-utils/sources/autostart/common/008-deviceutils similarity index 100% rename from projects/Rockchip/packages/system-utils/sources/autostart/common/008-deviceutils rename to packages/sysutils/system-utils/sources/autostart/common/008-deviceutils diff --git a/packages/sysutils/system-utils/sources/autostart/handheld/002-overclock b/packages/sysutils/system-utils/sources/autostart/handheld/002-overclock new file mode 100644 index 000000000..7118d8737 --- /dev/null +++ b/packages/sysutils/system-utils/sources/autostart/handheld/002-overclock @@ -0,0 +1,14 @@ +#!/bin/sh +# SPDX-License-Identifier: Apache-2.0 +# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius) + +. /etc/profile + +# If there is no defined overclock, make sure it's "off". +OVERCLOCK=$(get_setting system.overclock) +if [ -z ${OVERCLOCK} ] +then + set_setting system.overclock off +fi + +/usr/bin/overclock boot diff --git a/projects/Rockchip/packages/system-utils/sources/config/fancontrol.conf b/packages/sysutils/system-utils/sources/config/fancontrol.conf similarity index 100% rename from projects/Rockchip/packages/system-utils/sources/config/fancontrol.conf rename to packages/sysutils/system-utils/sources/config/fancontrol.conf diff --git a/projects/Rockchip/packages/system-utils/sources/devices/RG552/overclock b/packages/sysutils/system-utils/sources/devices/RG552/overclock similarity index 100% rename from projects/Rockchip/packages/system-utils/sources/devices/RG552/overclock rename to packages/sysutils/system-utils/sources/devices/RG552/overclock diff --git a/packages/sysutils/system-utils/sources/devices/handheld/overclock b/packages/sysutils/system-utils/sources/devices/handheld/overclock new file mode 100755 index 000000000..8347358f5 --- /dev/null +++ b/packages/sysutils/system-utils/sources/devices/handheld/overclock @@ -0,0 +1,47 @@ +#!/bin/bash +# SPDX-License-Identifier: Apache-2.0 +# Copyright (C) 2021-present Fewtarius (https://github.com/fewtarius) + +. /etc/profile + +if [ $# -eq 0 ] || [ "$1" == "boot" ] +then + PROFILE=$(get_setting system.overclock) +else + PROFILE=$1 +fi + +### Default clocks when not using OC. +WATTS="12000" + +case ${PROFILE} in + 2w) + WATTS="2000" + ;; + 4w) + WATTS="4000" + ;; + 6w) + WATTS="6000" + ;; + 8w) + WATTS="8000" + ;; + 10w) + WATTS="10000" + ;; + 12w) + WATTS="12000" + ;; + 14w) + WATTS="14000" + ;; + 16w) + WATTS="16000" + ;; + 18w) + WATTS="18000" + ;; +esac + +ryzenadj --tctl-temp=97 --stapm-limit=${WATTS} --fast-limit=${WATTS} --stapm-time=500 --slow-limit=${WATTS} --slow-time=30 --vrmmax-current=70000 diff --git a/projects/Rockchip/packages/system-utils/sources/scripts/battery b/packages/sysutils/system-utils/sources/scripts/battery similarity index 100% rename from projects/Rockchip/packages/system-utils/sources/scripts/battery rename to packages/sysutils/system-utils/sources/scripts/battery diff --git a/projects/Rockchip/packages/system-utils/sources/scripts/fancontrol b/packages/sysutils/system-utils/sources/scripts/fancontrol similarity index 100% rename from projects/Rockchip/packages/system-utils/sources/scripts/fancontrol rename to packages/sysutils/system-utils/sources/scripts/fancontrol diff --git a/projects/Rockchip/packages/system-utils/sources/scripts/headphone_sense b/packages/sysutils/system-utils/sources/scripts/headphone_sense similarity index 91% rename from projects/Rockchip/packages/system-utils/sources/scripts/headphone_sense rename to packages/sysutils/system-utils/sources/scripts/headphone_sense index b9ed3cc0e..38fd1376d 100755 --- a/projects/Rockchip/packages/system-utils/sources/scripts/headphone_sense +++ b/packages/sysutils/system-utils/sources/scripts/headphone_sense @@ -24,11 +24,11 @@ HP_OFF='*(SW_HEADPHONE_INSERT), value 1*' evtest "${DEVICE}" | while read line; do case $line in (${HP_ON}) - amixer cset name='Playback Path' HP + amixer -M cset name='Playback Path' HP set_setting "audio.device" "headphone" ;; (${HP_OFF}) - amixer cset name='Playback Path' SPK + amixer -M cset name='Playback Path' SPK set_setting "audio.device" "speakers" ;; esac diff --git a/projects/Rockchip/packages/system-utils/sources/scripts/internalwifi b/packages/sysutils/system-utils/sources/scripts/internalwifi similarity index 100% rename from projects/Rockchip/packages/system-utils/sources/scripts/internalwifi rename to packages/sysutils/system-utils/sources/scripts/internalwifi diff --git a/projects/Rockchip/packages/system-utils/sources/scripts/system_utils b/packages/sysutils/system-utils/sources/scripts/system_utils similarity index 68% rename from projects/Rockchip/packages/system-utils/sources/scripts/system_utils rename to packages/sysutils/system-utils/sources/scripts/system_utils index e4e73a5e0..e2fc34ce3 100755 --- a/projects/Rockchip/packages/system-utils/sources/scripts/system_utils +++ b/packages/sysutils/system-utils/sources/scripts/system_utils @@ -2,24 +2,27 @@ # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2020-present Shanti Gilbert (https://github.com/shantigilbert) - -# THESE NEEDS TO BE CLEANED UP, MAYBE WITH CASE OR FUNCTIONS +# Copyright (C) 2020-present Fewtarius # Source predefined functions and variables . /etc/profile +round() { + awk -v val=$1 'BEGIN{print int((val+5/2)/5) * 5}' +} + if [ "${1}" == "toggleaudio" ];then # Toggle audio output CURRENTAUDIO=$(get_setting "audio.device") case "${CURRENTAUDIO}" in "headphone") echo "setting speakers" - amixer cset name='Playback Path' SPK + amixer -M cset name='Playback Path' SPK set_setting "audio.device" "speakers" ;; "auto"|"speakers"|*) echo "setting headphones" - amixer cset name='Playback Path' HP + amixer -M cset name='Playback Path' HP set_setting "audio.device" "headphone" ;; esac @@ -30,12 +33,12 @@ if [ "${1}" == "setaudio" ];then case "${2}" in "headphone") echo "setting headphones" - amixer cset name='Playback Path' HP + amixer -M cset name='Playback Path' HP set_setting "audio.device" "headphone" ;; "auto"|"speakers"|*) echo "setting speakers" - amixer cset name='Playback Path' SPK + amixer -M cset name='Playback Path' SPK set_setting "audio.device" "speakers" ;; esac @@ -59,28 +62,29 @@ MINVOL=0 fi [ "$STEPVOL" -ge "$MAXVOL" ] && STEPVOL="$MAXVOL" [ "$STEPVOL" -le "$MINVOL" ] && STEPVOL="$MINVOL" - amixer set "${DEVICE_AUDIO_MIXER}" ${STEPVOL}% + amixer -M set "${DEVICE_AUDIO_MIXER}" ${STEPVOL}% alsactl store -f /storage/.config/asound.state set_setting "audio.volume" ${STEPVOL} fi if [ "${1}" == "bright" ]; then STEPS="5" -CURRENTBRIGHT=$(cat /sys/class/backlight/backlight/brightness) -MAXBRIGHT="100" #$(cat /sys/class/backlight/backlight/max_brightness) +BRIGHTNESS_DEV="$(ls /sys/class/backlight)" +CURRENTBRIGHT=$(cat /sys/class/backlight/${BRIGHTNESS_DEV}/brightness) +MAXBRIGHT="100" #$(cat /sys/class/backlight/${BRIGHTNESS_DEV}/max_brightness) MINBRIGHT="2" if [ "${2}" == "+" ]; then - STEPBRIGHT=$(($CURRENTBRIGHT+$STEPS)) + STEPBRIGHT=$(($CURRENTBRIGHT+$(round $STEPS))) elif [ "${2}" == "-" ]; then - STEPBRIGHT=$(($CURRENTBRIGHT-$STEPS)) + STEPBRIGHT=$(($CURRENTBRIGHT-$(round $STEPS))) else STEPBRIGHT=${2} fi [ "$STEPBRIGHT" -ge "$MAXBRIGHT" ] && STEPBRIGHT="$MAXBRIGHT" [ "$STEPBRIGHT" -le "$MINBRIGHT" ] && STEPBRIGHT="$MINBRIGHT" #echo "Setting bright to $STEPBRIGHT" - echo "${STEPBRIGHT}" > /sys/class/backlight/backlight/brightness - set_setting "system.brightness" $(cat /sys/class/backlight/backlight/brightness) + echo "${STEPBRIGHT}" > /sys/class/backlight/${BRIGHTNESS_DEV}/brightness + set_setting "system.brightness" $(cat /sys/class/backlight/${BRIGHTNESS_DEV}/brightness) fi diff --git a/projects/Rockchip/packages/system-utils/sources/scripts/volume_sense b/packages/sysutils/system-utils/sources/scripts/volume_sense similarity index 61% rename from projects/Rockchip/packages/system-utils/sources/scripts/volume_sense rename to packages/sysutils/system-utils/sources/scripts/volume_sense index 05231cf2b..2092927e0 100755 --- a/projects/Rockchip/packages/system-utils/sources/scripts/volume_sense +++ b/packages/sysutils/system-utils/sources/scripts/volume_sense @@ -8,20 +8,17 @@ set -e set -o pipefail +LOG="/var/log/$(basename "$0").log" + ### Summary # This script listens to volume keys on the RG351MP and adjusts volume # Fn + Volume up/down will adjust brightness ### - # Event examples for reference # type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 1 # type 1 (EV_KEY), code 115 (KEY_VOLUMEUP), value 1 -DEVICE="${DEVICE_VOLUME_DEV}" # Device for volume key events - -CONTROLLER_DEVICE="${DEVICE_CONTROLLER_DEV}" # Joystick events (for Fn key) - VOL_EVENT='*(KEY_VOLUME*, value *' # This matches all volume events VOL_UP='*UP), value *' # Differentiate 'up' volume event @@ -30,9 +27,8 @@ VOL_DOWN='*DOWN), value *' #Differentiate 'down' volume event V_FUNC_KEY_EVENT='*('${DEVICE_VOL_MODIFIER}'), value *' # Matches if a button was pressed (1), released (0) or held down (2) -PRESS='*value 1' -RELEASE='*value 0' -REPEAT_PRESS="* value 2" +PRESS='value [1-9]' +RELEASE='value 0' # Volume repeat VOLUME_REPEAT_MOD=4 @@ -44,6 +40,54 @@ BRIGHTNESS_REPEAT_MOD=4 FUNC_PRESSED=no CONTROLLER_DISCONNECTED="*error reading: No such device" +DEVICE_DISCONNECTED="*error reading: No such device" + +get_devices() { + KJDEVS=false + FOUNDKEYS=false + FOUNDJOY=false + RETRY=5 + while [ ${KJDEVS} = false ] + do + # Detect input devices automatically + for DEV in /dev/input/ev* + do + unset SUPPORTS + SUPPORTS=$(udevadm info ${DEV} | awk '/ID_INPUT_KEY=|ID_INPUT_JOYSTICK=/ {print $2}') + if [ -n "${SUPPORTS}" ] + then + DEVICE=$(udevadm info ${DEV} | awk 'BEGIN {FS="="} /DEVNAME=/ {print $2}') + INPUT_DEVICES+=("${DEVICE}") + if [[ "${SUPPORTS}" =~ ID_INPUT_KEY ]] + then + echo "Found Keyboard: ${DEVICE}" 2>&1 >${LOG} + FOUNDKEYS=true + elif [[ "${SUPPORTS}" =~ ID_INPUT_JOYSTICK ]] + then + echo "Found Joystick: ${DEVICE}" 2>&1 >${LOG} + FOUNDJOY=true + fi + fi + done + if [ "${FOUNDKEYS}" = "true" ] && + [ "${FOUNDJOY}" = "true" ] + then + echo "Found all of the needed devices." 2>&1 >${LOG} + KJDEVS=true + break + fi + if [ "${RETRY}" -ge 5 ] + then + echo "Did not find all of the needed devices, but that may be OK. Breaking." 2>&1 >${LOG} + break + else + RETRY=$(( ${RETRY} + 1 )) + fi + sleep 1 + done +} + +get_devices # Logic: # - Listen to both: @@ -54,30 +98,25 @@ CONTROLLER_DISCONNECTED="*error reading: No such device" # for all button pushes # - Using 'read' means the loop is idle when no button is pressed -# Wait for controller in case of restart, etc -while true; do -sleep 1 -if [[ ! -e "${CONTROLLER_DEVICE}" ]]; then - continue -else - break -fi - -done -( - evtest "${DEVICE}" & - evtest "${CONTROLLER_DEVICE}" 2>&1 & - wait +( + for INPUT_DEVICE in ${INPUT_DEVICES[@]} + do + evtest "${INPUT_DEVICE}" 2>&1 & + done + wait ) | while read line; do case $line in (${CONTROLLER_DISCONNECTED}) - echo "Reloading due to controller reattach..." - exit 0 + echo "Reloading due to ${CONTROLLER_DEVICE} reattach..." >${LOG} 2>&1 + get_devices + ;; + (${DEVICE_DISCONNECTED}) + echo "Reloading due to ${DEVICE} reattach..." >${LOG} 2>&1 + get_devices ;; (${VOL_EVENT}) - # We don't care when you 'let go' ('release') the volume button - if [[ "$line" == ${RELEASE} ]]; then + if [[ "$line" =~ ${RELEASE} ]]; then REPEAT_NUM=0 continue fi @@ -95,7 +134,7 @@ done DOWN="-" REPEAT_MOD=${VOLUME_REPEAT_MOD} fi - + REPEAT_NUM=$(( ${REPEAT_NUM} + 1 )) # This isn't time to evaluate repeat so just skip @@ -103,12 +142,11 @@ done continue fi - INCREMENT_AMOUNT=1 - if [[ "${REPEAT_NUM}" -gt "75" ]]; then + INCREMENT_AMOUNT=5 + if [[ "${REPEAT_NUM}" -gt "20" ]]; then INCREMENT_AMOUNT=10 - elif [[ "${REPEAT_NUM}" -gt "25" ]]; then - INCREMENT_AMOUNT=5 - fi + fi + # Run the commands to adjust volume/brightness if [[ "${line}" == ${VOL_UP} ]]; then ${COMMAND} ${UP} ${INCREMENT_AMOUNT} > /dev/null @@ -117,20 +155,15 @@ done fi ;; - (${V_FUNC_KEY_EVENT}) - - # We don't care about 'Fn' key repeats - continue - if [[ "$line" == ${REPEAT_PRESS} ]]; then - continue - fi + (${V_FUNC_KEY_EVENT}) #Reset the number of repeats when Fn is pressed/release # as repeat speed is different between volume/brightness REPEAT_NUM=0 - if [[ "${line}" == ${PRESS} ]]; then + if [[ "${line}" =~ ${PRESS} ]]; then FUNC_PRESSED=yes - elif [[ "${line}" == ${RELEASE} ]]; then + elif [[ "${line}" =~ ${RELEASE} ]]; then FUNC_PRESSED=no fi ;; diff --git a/projects/Rockchip/packages/system-utils/system.d/battery.service b/packages/sysutils/system-utils/system.d/battery.service similarity index 100% rename from projects/Rockchip/packages/system-utils/system.d/battery.service rename to packages/sysutils/system-utils/system.d/battery.service diff --git a/projects/Rockchip/packages/system-utils/system.d/fancontrol.service b/packages/sysutils/system-utils/system.d/fancontrol.service similarity index 81% rename from projects/Rockchip/packages/system-utils/system.d/fancontrol.service rename to packages/sysutils/system-utils/system.d/fancontrol.service index e18831c8c..97802a2c2 100644 --- a/projects/Rockchip/packages/system-utils/system.d/fancontrol.service +++ b/packages/sysutils/system-utils/system.d/fancontrol.service @@ -1,6 +1,6 @@ [Unit] Description=Simple Fan Control Service -ConditionPathExists=/sys/class/hwmon/hwmon0/pwm1 +ConditionPathExists=/sys/class/hwmon/hwmon1/pwm1 Before=jelos.target [Service] diff --git a/projects/Rockchip/packages/system-utils/system.d/headphones.service b/packages/sysutils/system-utils/system.d/headphones.service similarity index 100% rename from projects/Rockchip/packages/system-utils/system.d/headphones.service rename to packages/sysutils/system-utils/system.d/headphones.service diff --git a/projects/Rockchip/packages/system-utils/system.d/volume.service b/packages/sysutils/system-utils/system.d/volume.service similarity index 100% rename from projects/Rockchip/packages/system-utils/system.d/volume.service rename to packages/sysutils/system-utils/system.d/volume.service diff --git a/packages/sysutils/system-utils/udev.d/99-volume.rules b/packages/sysutils/system-utils/udev.d/99-volume.rules new file mode 100644 index 000000000..76e7de928 --- /dev/null +++ b/packages/sysutils/system-utils/udev.d/99-volume.rules @@ -0,0 +1,6 @@ +### Restart the volume service whenever a USB device is attached +### or detached so brightness and volume work across connected +### devices. + +ACTION=="add|change", SUBSYSTEM=="input", KERNEL=="event*", RUN+="/usr/bin/killall volume_sense" +ACTION=="remove", SUBSYSTEM=="input", KERNEL=="event*", RUN+="/usr/bin/killall volume_sense" diff --git a/packages/sysutils/systemd/scripts/userconfig-setup b/packages/sysutils/systemd/scripts/userconfig-setup index f0d6b3df3..c0f94554e 100755 --- a/packages/sysutils/systemd/scripts/userconfig-setup +++ b/packages/sysutils/systemd/scripts/userconfig-setup @@ -37,6 +37,8 @@ then ### Link the ES splash to the distribution splash rm -f /storage/.config/emulationstation/resources/logo.png ln -sf /usr/config/splash/splash.png /storage/.config/emulationstation/resources/logo.png + + mkdir -p /storage/.config/modprobe.d fi if [ ! -e "/storage/.cache/ld.so.cache" ] diff --git a/packages/sysutils/udevil/system.d/udevil-mount@.service b/packages/sysutils/udevil/system.d/udevil-mount@.service index 83d142c1a..b11ca9a1a 100644 --- a/packages/sysutils/udevil/system.d/udevil-mount@.service +++ b/packages/sysutils/udevil/system.d/udevil-mount@.service @@ -1,10 +1,9 @@ [Unit] Description=Udevil mount service +After=jelos-autostart.service [Service] Type=oneshot ExecStart=-/usr/bin/udevil --mount %I ExecStop=-/usr/bin/udevil --umount %I -ExecStartPost=-/usr/lib/samba/samba-autoshare -ExecStopPost=-/usr/lib/samba/samba-autoshare RemainAfterExit=yes diff --git a/packages/sysutils/util-linux/package.mk b/packages/sysutils/util-linux/package.mk index f84c2b3ed..dc27e99db 100644 --- a/packages/sysutils/util-linux/package.mk +++ b/packages/sysutils/util-linux/package.mk @@ -3,8 +3,7 @@ # Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="util-linux" -PKG_VERSION="2.37" -PKG_SHA256="bd07b7e98839e0359842110525a3032fdb8eaf3a90bedde3dd1652d32d15cce5" +PKG_VERSION="2.38" PKG_LICENSE="GPL" PKG_URL="https://www.kernel.org/pub/linux/utils/util-linux/v$(get_pkg_version_maj_min)/${PKG_NAME}-${PKG_VERSION}.tar.xz" PKG_DEPENDS_HOST="ccache:host autoconf:host automake:host intltool:host libtool:host pkg-config:host" diff --git a/packages/sysutils/util-linux/patches/util-linux-10-losetup-use-LOOP_CONFIGURE-in-a-more-robust-way.patch b/packages/sysutils/util-linux/patches/util-linux-10-losetup-use-LOOP_CONFIGURE-in-a-more-robust-way.patch deleted file mode 100644 index e8394a93b..000000000 --- a/packages/sysutils/util-linux/patches/util-linux-10-losetup-use-LOOP_CONFIGURE-in-a-more-robust-way.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 583990d25b5d65a9a9771a39d112de0ee16a1f3a Mon Sep 17 00:00:00 2001 -From: Karel Zak -Date: Wed, 28 Jul 2021 11:05:36 +0200 -Subject: [PATCH] losetup: use LOOP_CONFIGURE in a more robust way -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -32-bit userspace returns ENOTTY: - ioctl(4, LOOP_CONFIGURE, {fd=3, block_size=0, info={lo_offset=0, lo_number=0, lo_flags=LO_FLAGS_AUTOCLEAR, lo_file_name="/usr/install/iso/systemrescue-8.04-amd64.iso", ...}}) = -1 ENOTTY (Inappropriate ioctl for device) - -64-bit userspace returns EINVAL: - ioctl(4, LOOP_CONFIGURE, {fd=3, block_size=0, info={lo_offset=0, lo_number=0, lo_flags=LO_FLAGS_AUTOCLEAR, lo_file_name="/usr/src/PACKAGES/systemrescue-8.04-amd64.iso", ...}}) = -1 EINVAL (Invalid argument) - -The correct return value for an unknown ioctl is ENOTTY, but we need -to support already released kernels, so let's support both errnos. - -Reported-by: Krzysztof Olędzki -Signed-off-by: Karel Zak ---- - lib/loopdev.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/loopdev.c b/lib/loopdev.c -index 1eef15d89..d9ea1d4a2 100644 ---- a/lib/loopdev.c -+++ b/lib/loopdev.c -@@ -1360,7 +1360,7 @@ int loopcxt_setup_device(struct loopdev_cxt *lc) - if (ioctl(dev_fd, LOOP_CONFIGURE, &lc->config) < 0) { - rc = -errno; - errsv = errno; -- if (errno != EINVAL) { -+ if (errno != EINVAL && errno != ENOTTY) { - DBG(SETUP, ul_debugobj(lc, "LOOP_CONFIGURE failed: %m")); - goto err; - } diff --git a/packages/sysutils/util-linux/system.d/fstrim.service b/packages/sysutils/util-linux/system.d/fstrim.service new file mode 100644 index 000000000..75bb63f8c --- /dev/null +++ b/packages/sysutils/util-linux/system.d/fstrim.service @@ -0,0 +1,7 @@ +[Unit] +Description=Discard unused blocks on all filesystems + +[Service] +Type=oneshot +ExecStart=-/usr/sbin/fstrim --all --verbose --quiet-unsupported +ExecStart=-/usr/bin/touch /storage/.cache/fstrim.run diff --git a/packages/sysutils/util-linux/system.d/fstrim.timer b/packages/sysutils/util-linux/system.d/fstrim.timer new file mode 100644 index 000000000..9f166254a --- /dev/null +++ b/packages/sysutils/util-linux/system.d/fstrim.timer @@ -0,0 +1,10 @@ +[Unit] +Description=Discard unused blocks once a week + +[Timer] +OnCalendar=weekly +AccuracySec=1h +Persistent=true + +[Install] +WantedBy=timers.target diff --git a/packages/textproc/harfbuzz/package.mk b/packages/textproc/harfbuzz/package.mk index 63b496aaa..00e62ef69 100644 --- a/packages/textproc/harfbuzz/package.mk +++ b/packages/textproc/harfbuzz/package.mk @@ -3,20 +3,21 @@ # Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) PKG_NAME="harfbuzz" -PKG_VERSION="1.8.1" -PKG_SHA256="fbed6392ddb085e45e6090a9f389f72926d0e355f4b0a2ef51d35cf21686df45" +PKG_VERSION="5.1.0" +PKG_SHA256="2edb95db668781aaa8d60959d21be2ff80085f31b12053cdd660d9a50ce84f05" PKG_LICENSE="GPL" PKG_SITE="http://www.freedesktop.org/wiki/Software/HarfBuzz" -PKG_URL="https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-$PKG_VERSION.tar.bz2" -PKG_DEPENDS_TARGET="toolchain cairo freetype glib icu" +PKG_URL="https://github.com/harfbuzz/harfbuzz/releases/download/${PKG_VERSION}/harfbuzz-${PKG_VERSION}.tar.xz" +PKG_DEPENDS_TARGET="toolchain cairo freetype glib" PKG_LONGDESC="HarfBuzz is an OpenType text shaping engine." -PKG_TOOLCHAIN="configure" +PKG_TOOLCHAIN="meson" -PKG_CONFIGURE_OPTS_TARGET="--with-icu \ - --disable-gtk-doc \ - --disable-gtk-doc-html \ - --disable-gtk-doc-pdf" - -pre_configure_target() { - export LDFLAGS="$LDFLAGS -ldl" -} +PKG_MESON_OPTS_TARGET="-Dbenchmark=disabled \ + -Dcairo=enabled \ + -Ddocs=disabled \ + -Dfreetype=enabled \ + -Dglib=enabled \ + -Dgobject=disabled \ + -Dgraphite=disabled \ + -Dicu=disabled \ + -Dtests=disabled" diff --git a/packages/textproc/libxml2/package.mk b/packages/textproc/libxml2/package.mk index 2909c5d2d..2c8235b54 100644 --- a/packages/textproc/libxml2/package.mk +++ b/packages/textproc/libxml2/package.mk @@ -3,31 +3,35 @@ # Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="libxml2" -PKG_VERSION="2.9.10" -#PKG_SHA256="" +PKG_VERSION="2.10.2" +PKG_SHA256="d50e8a55b2797501929d3411b81d5d37ec44e9a4aa58eae9052572977c632d7a" PKG_LICENSE="MIT" PKG_SITE="http://xmlsoft.org" -PKG_URL="ftp://xmlsoft.org/libxml2/$PKG_NAME-$PKG_VERSION.tar.gz" -PKG_DEPENDS_HOST="zlib:host" +PKG_URL="https://gitlab.gnome.org/GNOME/${PKG_NAME}/-/archive/v${PKG_VERSION}/${PKG_NAME}-v${PKG_VERSION}.tar.bz2" +PKG_DEPENDS_HOST="zlib:host Python3:host" PKG_DEPENDS_TARGET="toolchain zlib" PKG_LONGDESC="The libxml package contains an XML library, which allows you to manipulate XML files." +PKG_TOOLCHAIN="autotools" PKG_CONFIGURE_OPTS_ALL="ac_cv_header_ansidecl_h=no \ - --enable-static \ - --enable-shared \ - --disable-silent-rules \ - --enable-ipv6 \ - --without-python \ - --with-zlib=$TOOLCHAIN \ - --without-lzma" + --enable-static \ + --enable-shared \ + --disable-silent-rules \ + --enable-ipv6 \ + --without-lzma" -PKG_CONFIGURE_OPTS_HOST="$PKG_CONFIGURE_OPTS_ALL --with-zlib=$TOOLCHAIN" +PKG_CONFIGURE_OPTS_HOST="${PKG_CONFIGURE_OPTS_ALL} \ + --with-zlib=${TOOLCHAIN} \ + --with-python" -PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_ALL --with-zlib=$SYSROOT_PREFIX/usr --with-sysroot=$SYSROOT_PREFIX" +PKG_CONFIGURE_OPTS_TARGET="${PKG_CONFIGURE_OPTS_ALL} \ + --with-zlib=${SYSROOT_PREFIX}/usr \ + --without-python \ + --with-sysroot=${SYSROOT_PREFIX}" post_makeinstall_target() { - sed -e "s:\(['= ]\)/usr:\\1$SYSROOT_PREFIX/usr:g" -i $SYSROOT_PREFIX/usr/bin/xml2-config + sed -e "s:\(['= ]\)/usr:\\1${SYSROOT_PREFIX}/usr:g" -i ${SYSROOT_PREFIX}/usr/bin/xml2-config - rm -rf $INSTALL/usr/bin/xml2-config - rm -rf $INSTALL/usr/lib/xml2Conf.sh + rm -rf ${INSTALL}/usr/bin + rm -rf ${INSTALL}/usr/lib/xml2Conf.sh } diff --git a/packages/textproc/libxslt/package.mk b/packages/textproc/libxslt/package.mk index 879460915..f6bc726fa 100644 --- a/packages/textproc/libxslt/package.mk +++ b/packages/textproc/libxslt/package.mk @@ -3,22 +3,23 @@ # Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="libxslt" -PKG_VERSION="1.1.33" -PKG_SHA256="8e36605144409df979cab43d835002f63988f3dc94d5d3537c12796db90e38c8" +PKG_VERSION="1.1.37" +PKG_SHA256="6dbeb21aa8c938e6a39010901c0e84122bb87225b4af31f76feb4e3a5b138a5c" PKG_LICENSE="MIT" PKG_SITE="http://xmlsoft.org/xslt/" -PKG_URL="ftp://xmlsoft.org/libxml2/$PKG_NAME-$PKG_VERSION.tar.gz" +PKG_URL="https://gitlab.gnome.org/GNOME/${PKG_NAME}/-/archive/v${PKG_VERSION}/${PKG_NAME}-v${PKG_VERSION}.tar.bz2" PKG_DEPENDS_HOST="libxml2:host" PKG_DEPENDS_TARGET="toolchain libxml2" PKG_LONGDESC="A XSLT C library." PKG_BUILD_FLAGS="+pic" +PKG_TOOLCHAIN="autotools" PKG_CONFIGURE_OPTS_HOST=" ac_cv_header_ansidecl_h=no \ ac_cv_header_xlocale_h=no \ --enable-static \ --disable-shared \ --without-python \ - --with-libxml-prefix=$TOOLCHAIN \ + --with-libxml-prefix=${TOOLCHAIN} \ --without-crypto" PKG_CONFIGURE_OPTS_TARGET="ac_cv_header_ansidecl_h=no \ @@ -26,12 +27,12 @@ PKG_CONFIGURE_OPTS_TARGET="ac_cv_header_ansidecl_h=no \ --enable-static \ --disable-shared \ --without-python \ - --with-libxml-prefix=$SYSROOT_PREFIX/usr \ + --with-libxml-prefix=${SYSROOT_PREFIX}/usr \ --without-crypto" post_makeinstall_target() { - sed -e "s:\(['= ]\)/usr:\\1$SYSROOT_PREFIX/usr:g" -i $SYSROOT_PREFIX/usr/bin/xslt-config + sed -e "s:\(['= ]\)/usr:\\1${SYSROOT_PREFIX}/usr:g" -i ${SYSROOT_PREFIX}/usr/bin/xslt-config - rm -rf $INSTALL/usr/bin/xsltproc - rm -rf $INSTALL/usr/lib/xsltConf.sh + rm -rf ${INSTALL}/usr/bin/xsltproc + rm -rf ${INSTALL}/usr/lib/xsltConf.sh } diff --git a/packages/textproc/pango/package.mk b/packages/textproc/pango/package.mk index debf52eeb..674fad332 100644 --- a/packages/textproc/pango/package.mk +++ b/packages/textproc/pango/package.mk @@ -3,8 +3,8 @@ # Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) PKG_NAME="pango" -PKG_VERSION="1.50.3" -PKG_SHA256="4add05edf51c1fb375a1ccde7498914120e23cb280dd7395b1aeb441f1838a4c" +PKG_VERSION="1.50.8" +PKG_SHA256="cf626f59dd146c023174c4034920e9667f1d25ac2c1569516d63136c311255fa" PKG_LICENSE="GPL" PKG_SITE="http://www.pango.org/" PKG_URL="https://download.gnome.org/sources/pango/${PKG_VERSION:0:4}/pango-${PKG_VERSION}.tar.xz" diff --git a/packages/textproc/textviewer/package.mk b/packages/textproc/textviewer/package.mk index c665e1048..06954f34b 100644 --- a/packages/textproc/textviewer/package.mk +++ b/packages/textproc/textviewer/package.mk @@ -12,7 +12,7 @@ PKG_TOOLCHAIN="make" GET_HANDLER_SUPPORT="git" if [ ! "${OPENGL}" = "no" ]; then - PKG_DEPENDS_TARGET+=" ${OPENGL} glu libglvnd" + PKG_DEPENDS_TARGET+=" ${OPENGL} glu" fi if [ "${OPENGLES_SUPPORT}" = yes ]; then diff --git a/packages/textproc/yamlcpp/package.mk b/packages/textproc/yamlcpp/package.mk new file mode 100644 index 000000000..69674d397 --- /dev/null +++ b/packages/textproc/yamlcpp/package.mk @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: Apache-2.0 +# Copyright (C) 2020-present Fewtarius + +PKG_NAME="yamlcpp" +PKG_VERSION="c73ee34" +PKG_LICENSE="MIT" +PKG_SITE="https://github.com/jbeder/yaml-cpp" +PKG_URL="${PKG_SITE}.git" +PKG_DEPENDS_TARGET="toolchain" +PKG_LONGDESC="A C++ library for YAML." +PKG_TOOLCHAIN="cmake" +PKG_BUILD_FLAGS="+pic" + diff --git a/packages/themes/es-theme-art-book-next/package.mk b/packages/themes/es-theme-art-book-next/package.mk index fad827232..6064b0818 100644 --- a/packages/themes/es-theme-art-book-next/package.mk +++ b/packages/themes/es-theme-art-book-next/package.mk @@ -4,14 +4,15 @@ # Copyright (C) 2021 Fewtarius PKG_NAME="es-theme-art-book-next" -PKG_VERSION="e35fdfda8315a88d90a8eba1fc342c0b2bedee7c" +PKG_VERSION="236310621bd5a14fcac26cd480cf8a231844716c" PKG_ARCH="any" PKG_LICENSE="CUSTOM" -PKG_SITE="https://github.com/anthonycaccese/es-theme-art-book-next" +PKG_SITE="https://github.com/anthonycaccese/art-book-next-batocera" PKG_URL="${PKG_SITE}.git" +PKG_GIT_CLONE_BRANCH="2.0" GET_HANDLER_SUPPORT="git" -PKG_SHORTDESC="ArtBook" -PKG_LONGDESC="Art Book theme" +PKG_SHORTDESC="Art Book Next" +PKG_LONGDESC="Art Book Next" PKG_TOOLCHAIN="manual" makeinstall_target() { diff --git a/packages/themes/thememaster/package.mk b/packages/themes/thememaster/package.mk index 18db1b0b8..700bbf5a8 100644 --- a/packages/themes/thememaster/package.mk +++ b/packages/themes/thememaster/package.mk @@ -4,7 +4,7 @@ PKG_NAME="thememaster" PKG_VERSION="09bee95fea09760355777af824a7ad41dc1ae577" -PKG_ARCH="any" +PKG_ARCH="aarch64" PKG_SITE="https://github.com/JohnIrvine1433/ThemeMaster" PKG_URL="${PKG_SITE}.git" PKG_PRIORITY="optional" diff --git a/packages/tools/SDL2_image/package.mk b/packages/tools/SDL2_image/package.mk index 31cba0dce..08313928c 100644 --- a/packages/tools/SDL2_image/package.mk +++ b/packages/tools/SDL2_image/package.mk @@ -7,7 +7,7 @@ PKG_VERSION="2.0.5" #PKG_SHA256="" PKG_LICENSE="GPL" PKG_SITE="http://www.libsdl.org/" -PKG_URL="https://www.libsdl.org/projects/SDL_image/release/SDL2_image-$PKG_VERSION.tar.gz" -PKG_DEPENDS_TARGET="toolchain SDL2" +PKG_URL="https://www.libsdl.org/projects/SDL_image/release/SDL2_image-${PKG_VERSION}.tar.gz" +PKG_DEPENDS_TARGET="toolchain SDL2 libjpeg-turbo libpng" PKG_LONGDESC="SDL_image is an image file loading library. " diff --git a/packages/tools/at-spi2-atk/package.mk b/packages/tools/at-spi2-atk/package.mk new file mode 100644 index 000000000..f82675e46 --- /dev/null +++ b/packages/tools/at-spi2-atk/package.mk @@ -0,0 +1,12 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2017 Escalade +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="at-spi2-atk" +PKG_VERSION="2.38.0" +PKG_SHA256="cfa008a5af822b36ae6287f18182c40c91dd699c55faa38605881ed175ca464f" +PKG_LICENSE="OSS" +PKG_SITE="http://www.gnome.org/" +PKG_URL="https://ftp.gnome.org/pub/gnome/sources/at-spi2-atk/${PKG_VERSION:0:4}/at-spi2-atk-${PKG_VERSION}.tar.xz" +PKG_DEPENDS_TARGET="toolchain at-spi2-core atk libX11 libxml2" +PKG_LONGDESC="A GTK+ module that bridges ATK to D-Bus at-spi." diff --git a/packages/tools/at-spi2-core/package.mk b/packages/tools/at-spi2-core/package.mk new file mode 100644 index 000000000..a8993ae53 --- /dev/null +++ b/packages/tools/at-spi2-core/package.mk @@ -0,0 +1,20 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2017 Escalade +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="at-spi2-core" +PKG_VERSION="2.45.1" +PKG_SHA256="ba95f346e93108fbb3462c62437081d582154db279b4052dedc52a706828b192" +PKG_LICENSE="OSS" +PKG_SITE="http://www.gnome.org/" +PKG_URL="https://download.gnome.org/sources/at-spi2-core/${PKG_VERSION:0:4}/at-spi2-core-${PKG_VERSION}.tar.xz" +PKG_DEPENDS_TARGET="toolchain atk dbus glib libXtst libXext libXi" +PKG_LONGDESC="Protocol definitions and daemon for D-Bus at-spi." + +PKG_MESON_OPTS_TARGET="-Ddocs=false \ + -Dintrospection=no \ + -Ddbus_daemon=/usr/bin/dbus-daemon" + +pre_configure_target() { + LDFLAGS="${LDFLAGS} -lXi -lXext" +} diff --git a/packages/tools/atk/package.mk b/packages/tools/atk/package.mk new file mode 100644 index 000000000..c47f79d88 --- /dev/null +++ b/packages/tools/atk/package.mk @@ -0,0 +1,16 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="atk" +PKG_VERSION="2.38.0" +PKG_SHA256="ac4de2a4ef4bd5665052952fe169657e65e895c5057dffb3c2a810f6191a0c36" +PKG_LICENSE="GPL" +PKG_SITE="http://library.gnome.org/devel/atk/" +PKG_URL="https://ftp.gnome.org/pub/gnome/sources/atk/${PKG_VERSION:0:4}/atk-${PKG_VERSION}.tar.xz" +PKG_DEPENDS_TARGET="toolchain glib glib:host" +PKG_LONGDESC="Provides the set of accessibility interfaces that are implemented by other applications." +PKG_BUILD_FLAGS="+pic" + +PKG_MESON_OPTS_TARGET="-Ddocs=false \ + -Dintrospection=false" diff --git a/packages/tools/installer/package.mk b/packages/tools/installer/package.mk index dc0516be0..c33630564 100644 --- a/packages/tools/installer/package.mk +++ b/packages/tools/installer/package.mk @@ -14,6 +14,7 @@ post_install() { mkdir -p ${INSTALL}/usr/bin cp ${PKG_DIR}/scripts/installer ${INSTALL}/usr/bin sed -e "s/@DISTRONAME@/${DISTRONAME}/g" \ + -e "s/@EXTRA_CMDLINE@/${EXTRA_CMDLINE}/g" \ -i ${INSTALL}/usr/bin/installer mkdir -p ${INSTALL}/etc diff --git a/packages/tools/installer/scripts/installer b/packages/tools/installer/scripts/installer index 2491a8470..b1aff27d0 100755 --- a/packages/tools/installer/scripts/installer +++ b/packages/tools/installer/scripts/installer @@ -276,16 +276,16 @@ PROMPT 0 LABEL linux KERNEL /KERNEL - APPEND boot=UUID=$UUID_SYSTEM disk=UUID=$UUID_STORAGE $SYSLINUX_PARAMETERS quiet + APPEND boot=UUID=$UUID_SYSTEM disk=UUID=$UUID_STORAGE $SYSLINUX_PARAMETERS @EXTRA_CMDLINE@ EOF cat << EOF > $TMPDIR/part1/EFI/BOOT/grub.cfg set timeout="0" -set default="LibreELEC" +set default="${DISTRO}" -menuentry "LibreELEC" { +menuentry "${DISTRO}" { search --set -f /KERNEL - linux /KERNEL boot=UUID=$UUID_SYSTEM disk=UUID=$UUID_STORAGE quiet + linux /KERNEL boot=UUID=$UUID_SYSTEM disk=UUID=$UUID_STORAGE @EXTRA_CMDLINE@ } EOF diff --git a/packages/tools/itstool/package.mk b/packages/tools/itstool/package.mk new file mode 100644 index 000000000..1714cd34d --- /dev/null +++ b/packages/tools/itstool/package.mk @@ -0,0 +1,12 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2020-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="itstool" +PKG_VERSION="2.0.7" +PKG_SHA256="6b9a7cd29a12bb95598f5750e8763cee78836a1a207f85b74d8b3275b27e87ca" +PKG_LICENSE="GPLv3" +PKG_SITE="http://itstool.org" +PKG_URL="http://files.itstool.org/itstool/itstool-${PKG_VERSION}.tar.bz2" +PKG_DEPENDS_HOST="toolchain libxml2:host libxml2" +PKG_LONGDESC="ITS Tool allows you to translate your XML documents with PO files." +PKG_TOOLCHAIN="autotools" diff --git a/packages/tools/nano/package.mk b/packages/tools/nano/package.mk index 478893b09..88accdc5a 100644 --- a/packages/tools/nano/package.mk +++ b/packages/tools/nano/package.mk @@ -3,11 +3,11 @@ # Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv) PKG_NAME="nano" -PKG_VERSION="4.3" -PKG_SHA256="00d3ad1a287a85b4bf83e5f06cedd0a9f880413682bebd52b4b1e2af8cfc0d81" +PKG_VERSION="6.4" +PKG_SHA256="4199ae8ca78a7796de56de1a41b821dc47912c0307e9816b56cc317df34661c0" PKG_LICENSE="GPL" -PKG_SITE="http://www.nano-editor.org/" -PKG_URL="http://ftpmirror.gnu.org/nano/${PKG_NAME}-${PKG_VERSION}.tar.xz" +PKG_SITE="https://www.nano-editor.org/" +PKG_URL="https://www.nano-editor.org/dist/v6/${PKG_NAME}-${PKG_VERSION}.tar.xz" PKG_DEPENDS_TARGET="toolchain ncurses" PKG_LONGDESC="Nano is an enhanced clone of the Pico text editor." @@ -22,7 +22,7 @@ post_makeinstall_target() { mkdir -p ${INSTALL}/etc cp -a ${PKG_DIR}/config/* ${INSTALL}/etc/ - mkdir -p ${INSTALL}/usr/share/nano + mkdir -p ${INSTALL}/usr/share/nano for FILE_TYPES in \ css \ html \ diff --git a/packages/tools/procps-ng/package.mk b/packages/tools/procps-ng/package.mk index 3b91e9ff6..cd6f48a20 100644 --- a/packages/tools/procps-ng/package.mk +++ b/packages/tools/procps-ng/package.mk @@ -2,8 +2,8 @@ # Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) PKG_NAME="procps-ng" -PKG_VERSION="3.3.15" -PKG_SHA256="191391fde24a1d3b9b0030d26f8dfdcbf641d36297aab7ecf2f941c5ca927e21" +PKG_VERSION="3.3.17" +PKG_SHA256="8374d281f91e5fc9bb9ea8dc991b25331e3a2b0299b46f22c633f7fb6bcb0764" PKG_LICENSE="GPL" PKG_SITE="https://gitlab.com/procps-ng/procps" PKG_URL="https://gitlab.com/procps-ng/procps/-/archive/v${PKG_VERSION}/procps-v${PKG_VERSION}.tar.bz2" @@ -20,12 +20,12 @@ PKG_CONFIGURE_OPTS_TARGET="ac_cv_func_malloc_0_nonnull=yes \ PKG_MAKE_OPTS_TARGET="free top/top proc/libprocps.la proc/libprocps.pc" -PKG_MAKEINSTALL_OPTS_TARGET="install-libLTLIBRARIES install-pkgconfigDATA" +PKG_MAKEINSTALL_OPTS_TARGET="install-libLTLIBRARIES install-pkgconfigDATA install-proc_libprocps_la_includeHEADERS" makeinstall_target() { - mkdir -p $INSTALL/usr/bin - cp -P $PKG_BUILD/.$TARGET_NAME/free $INSTALL/usr/bin - cp -P $PKG_BUILD/.$TARGET_NAME/top/top $INSTALL/usr/bin + mkdir -p ${INSTALL}/usr/bin + cp -P ${PKG_BUILD}/.${TARGET_NAME}/free ${INSTALL}/usr/bin + cp -P ${PKG_BUILD}/.${TARGET_NAME}/top/top ${INSTALL}/usr/bin - make DESTDIR=$SYSROOT_PREFIX -j1 $PKG_MAKEINSTALL_OPTS_TARGET + make DESTDIR=${SYSROOT_PREFIX} -j1 ${PKG_MAKEINSTALL_OPTS_TARGET} } diff --git a/packages/ui/emulationstation/config/common/es_features.cfg b/packages/ui/emulationstation/config/common/es_features.cfg index 252936cf3..14e73242c 100644 --- a/packages/ui/emulationstation/config/common/es_features.cfg +++ b/packages/ui/emulationstation/config/common/es_features.cfg @@ -28,6 +28,7 @@ + diff --git a/packages/ui/emulationstation/config/common/es_settings.cfg b/packages/ui/emulationstation/config/common/es_settings.cfg index b771a5f5b..c29f4c746 100644 --- a/packages/ui/emulationstation/config/common/es_settings.cfg +++ b/packages/ui/emulationstation/config/common/es_settings.cfg @@ -64,8 +64,7 @@ - - - - + + + diff --git a/packages/ui/emulationstation/config/common/es_systems.cfg b/packages/ui/emulationstation/config/common/es_systems.cfg index d50ae71be..f1c80ee77 100644 --- a/packages/ui/emulationstation/config/common/es_systems.cfg +++ b/packages/ui/emulationstation/config/common/es_systems.cfg @@ -789,6 +789,11 @@ dolphinsa + + + dolphin + + @@ -2193,7 +2198,7 @@ 1992 game engine /storage/roms/ecwolf - .ecwolf + .sh .SH .ecwolf /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" pc ecwolf @@ -2253,6 +2258,25 @@ + + quake + Quake + id Software + 1996 + game engine + /storage/roms/quake + .sh .SH .quake + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + pc + quake + + + + tyrquake + + + + mplayer MPlayer @@ -2289,7 +2313,7 @@ system /storage/.config/modules .sh - /usr/bin/runemu.sh %ROM% -Pshell + /usr/bin/run %ROM% tools tools diff --git a/packages/ui/emulationstation/config/device/X86_64/es_input.cfg b/packages/ui/emulationstation/config/device/X86_64/es_input.cfg index 63541c678..c22d4956a 100644 --- a/packages/ui/emulationstation/config/device/X86_64/es_input.cfg +++ b/packages/ui/emulationstation/config/device/X86_64/es_input.cfg @@ -30,4 +30,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/ui/emulationstation/config/device/X86_64/es_systems.cfg b/packages/ui/emulationstation/config/device/X86_64/es_systems.cfg new file mode 100644 index 000000000..6291d72cf --- /dev/null +++ b/packages/ui/emulationstation/config/device/X86_64/es_systems.cfg @@ -0,0 +1,2371 @@ + + + + 3do + 3DO + Panasonic + 1993 + console + /storage/roms/3do + .iso .ISO .bin .BIN .chd .CHD .cue .CUE + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + 3do + 3do + + + + opera + + + + + + amiga + Amiga + Commodore + 1985 + computer + /storage/roms/amiga + .zip .ZIP .adf .ADF .uae .UAE .ipf .IPF .dms .DMS .adz .ADZ .lha .LHA .m3u .M3U .hdf .HDF .hdz .HDZ + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + amiga + amiga + + + + puae + + + + + amiberry + + + + + + amigacd32 + Amiga CD32 + Commodore + 1994 + console + /storage/roms/amigacd32 + .iso .ISO .cue .CUE .lha .LHA .chd .CHD + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + amigacd32 + amigacd32 + + + + puae + uae4arm + + + + + + amstradcpc + Amstrad CPC + Amstrad + 1984 + computer + /storage/roms/amstradcpc + .dsk .DSK .sna .SNA .tap .TAP .cdt .CDT .kcr .KCR .voc .VOC .m3u .M3U .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + amstradcpc + amstradcpc + + + + crocods + cap32 + + + + + + arcade + Arcade + Arcade + arcade + /storage/roms/arcade + .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + arcade + arcade + + + + mame2003_plus + mame2000 + mame2010 + mame2015 + mame + fbneo + fbalpha2012 + fbalpha2019 + + + + + + atari2600 + Atari 2600 + Atari + 1977 + console + /storage/roms/atari2600 + .a26 .A26 .bin .BIN .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + atari2600 + atari2600 + + + + stella + stella2014 + + + + + + atari5200 + Atari 5200 + Atari + 1982 + console + /storage/roms/atari5200 + .rom .ROM .xfd .XFD .atr .ATR .atx .ATX .cdm .CDM .cas .CAS .car .CAR .bin .BIN .a52 .A52 .xex .XEX .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + atari5200 + atari5200 + + + + a5200 + atari800 + + + + + + atari7800 + Atari 7800 + Atari + 1986 + console + /storage/roms/atari7800 + .a78 .A78 .bin .BIN .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + atari7800 + atari7800 + + + + prosystem + + + + + + atari800 + Atari 800 + Atari + 1979 + console + /storage/roms/atari800 + .rom .ROM .xfd .XFD .atr .ATR .atx .ATX .cdm .CDM .cas .CAS .car .CAR .bin .BIN .a52 .A52 .xex .XEX .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + atari800 + atari800 + + + + atari800 + + + + + + atarist + Atari ST + Atari + 1985 + computer + /storage/roms/atarist + .st .ST .msa .MSA .stx .STX .dim .DIM .ipf .IPF .m3u .M3U .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + atarist + atarist + + + + hatari + + + + + hatarisa + + + + + + atomiswave + Atomiswave + Sammy + 2003 + arcade + /storage/roms/atomiswave + .lst .LST .bin .BIN .dat .DAT .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + atomiswave arcade + atomiswave + + + + flycast_libretro + flycast32 + flycast + + + + + flycastsa + + + + + + channelf + Channel F + Fairchild + 1976 + console + /storage/roms/channelf + .bin .BIN .chf .CHF .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + channelf + channelf + + + + freechaf + + + + + + colecovision + ColecoVision + Coleco + 1982 + console + /storage/roms/coleco + .bin .BIN .col .COL .rom .ROM .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + colecovision + colecovision + + + + bluemsx + gearcoleco + smsplus + + + + + + c128 + Commodore 128 + Commodore + 1985 + computer + /storage/roms/c128 + .d64 .D64 .d71 .D71 .d80 .D80 .d81 .D81 .d82 .D82 .g64 .G64 .g41 .G41 .x64 .X64 .t64 .T64 .tap .TAP .prg .PRG .p00 .P00 .crt .CRT .bin .BIN .d6z .D6Z .d7z .D7Z .d8z .D8Z .g6z .G6Z .g4z .G4Z .x6z .X6Z .cmd .CMD .m3u .M3U .vsf .VSF .nib .NIB .nbz .NBZ .zip .ZIP + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + c128 + c128 + + + + x128 + + + + + vice_x128 + + + + + + c16 + Commodore 16 + Commodore + 1984 + computer + /storage/roms/c16 + .d64 .D64 .d71 .D71 .d80 .D80 .d81 .D81 .d82 .D82 .g64 .G64 .g41 .G41 .x64 .X64 .t64 .T64 .tap .TAP .prg .PRG .p00 .P00 .crt .CRT .bin .BIN .d6z .D6Z .d7z .D7Z .d8z .D8Z .g6z .G6Z .g4z .G4Z .x6z .X6Z .cmd .CMD .m3u .M3U .vsf .VSF .nib .NIB .nbz .NBZ .zip .ZIP + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + c16 + c16 + + + + xplus4 + + + + + vice_xplus4 + + + + + + c64 + Commodore 64 + Commodore + 1982 + computer + /storage/roms/c64 + .d64 .D64 .d71 .D71 .d80 .D80 .d81 .D81 .d82 .D82 .g64 .G64 .g41 .G41 .x64 .X64 .t64 .T64 .tap .TAP .prg .PRG .p00 .P00 .crt .CRT .bin .BIN .d6z .D6Z .d7z .D7Z .d8z .D8Z .g6z .G6Z .g4z .G4Z .x6z .X6Z .cmd .CMD .m3u .M3U .vsf .VSF .nib .NIB .nbz .NBZ .zip .ZIP + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + c64 + c64 + + + + x64sc + + + + + vice_x64 + + + + + + pet + PET + Commodore + 1977 + computer + /storage/roms/pet + .20 .40 .60 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + pet + pet + + + + vice_xpet + + + + + + vic20 + Commodore VIC-20 + Commodore + 1980 + computer + /storage/roms/vic20 + .20 .40 .60 .a0 .A0 .b0 .B0 .d64 .D64 .d71 .D71 .d80 .D80 .d81 .D81 .d82 .D82 .g64 .G64 .g41 .G41 .x64 .X64 .t64 .T64 .tap .TAP .prg .PRG .p00 .P00 .crt .CRT .bin .BIN .gz .GZ .d6z .D6Z .d7z .D7Z .d8z .D8Z .g6z .G6Z .g4z .G4Z .x6z .X6Z .cmd .CMD .m3u .M3U .vsf .VSF .nib .NIB .nbz .NBZ .zip .ZIP + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + vic20 + vic20 + + + + xvic + + + + + vice_xvic + + + + + + cps1 + Capcom PlaySystem 1 + Capcom + 1988 + arcade + /storage/roms/cps1 + .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + arcade + cps1 + + + + fbneo + mame2003_plus + mame2010 + fbalpha2012 + mba_mini + + + + + AdvanceMame + + + + + + cps2 + Capcom PlaySystem 2 + Capcom + 1993 + arcade + /storage/roms/cps2 + .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + arcade + cps2 + + + + fbneo + mame2003_plus + mame2010 + fbalpha2012 + mba_mini + + + + + AdvanceMame + + + + + + cps3 + Capcom PlaySystem 3 + Capcom + 1996 + arcade + /storage/roms/cps3 + .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + arcade + cps3 + + + + fbneo + mame2003_plus + mame2010 + fbalpha2012 + mba_mini + + + + + AdvanceMame + + + + + + daphne + Daphne + Arcade + arcade + /storage/roms/daphne + .daphne .DAPHNE .zip .ZIP + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + daphne arcade + daphne + + + + daphne + + + + + hypseus + + + + + + dreamcast + Dreamcast + Sega + 1998 + console + /storage/roms/dreamcast + .cdi .CDI .gdi .GDI .chd .CHD .m3u .M3U + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + dreamcast + dreamcast + + + + flycast_libretro + flycast + + + + + flycastsa + + + + + + easyrpg + EasyRPG + Various + 2003 + game engine + /storage/roms/easyrpg + .zip .ZIP .easyrpg .EASYRPG .ldb .LDB + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + easyrpg + easyrpg + + + + easyrpg + + + + + + famicom + Famicom + Nintendo + 1983 + console + /storage/roms/famicom + .nes .NES .unif .UNIF .unf .UNF .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + nes + famicom + + + + fceumm + nestopia + quicknes + mesen + + + + + + fds + Famicom Disk System + Nintendo + 1986 + console + /storage/roms/fds + .fds .FDS .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + fds + fds + + + + fceumm + nestopia + quicknes + + + + + + fbn + Final Burn Neo + Arcade + arcade + /storage/roms/fbneo + .7z .zip .7Z .ZIP + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + arcade + fbn + + + + fbneo + mame2003_plus + mame2010 + mame2015 + mame + fbalpha2012 + fbalpha2019 + + + + + + gameandwatch + Game and Watch + Nintendo + 1980 + portable + /storage/roms/gameandwatch + .mgw .MGW .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + gameandwatch + gameandwatch + + + + gw + + + + + + gb + Game Boy + Nintendo + 1989 + portable + /storage/roms/gb + .gb .GB .gbc .GBC .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + gb + gb + + + + gambatte + sameboy + gearboy + tgbdual + mgba + vbam + + + + + + gbh + Game Boy (Hacks) + Nintendo + 1989 + portable + /storage/roms/gbh + .gb .GB .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + gb + gbh + + + + gambatte + sameboy + gearboy + tgbdual + mgba + vbam + + + + + + gba + Game Boy Advance + Nintendo + 2001 + portable + /storage/roms/gba + .gba .GBA .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + gba + gba + + + + mgba + gpsp + vbam + vba_next + beetle_gba + + + + + + gbah + Game Boy Advance (Hacks) + Nintendo + 2001 + portable + /storage/roms/gbah + .gba .GBA .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + gba + gbah + + + + mgba + gpsp + vbam + vba_next + beetle_gba + + + + + + gbc + Game Boy Color + Nintendo + 1998 + portable + /storage/roms/gbc + .gb .GB .gbc .GBC .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + gbc + gbc + + + + gambatte + sameboy + gearboy + tgbdual + mgba + vbam + + + + + + gbch + Game Boy Color (Hacks) + Nintendo + 1998 + portable + /storage/roms/gbch + .gb .GB .gbc .GBC .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + gbc + gbch + + + + gambatte + sameboy + gearboy + tgbdual + mgba + vbam + + + + + + Nintendo GameCube + gamecube + Nintendo + 2001 + console + /storage/roms/gamecube + .gcm .GCM .iso .ISO .gcz .GCZ .ciso .CISO .wbfs .WBFS .rvz .RVZ + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + gc + gc + + + + dolphinsa + + + + + dolphin + + + + + + Nintendo Wii + wii + Nintendo + 2006 + console + /storage/roms/wii + .gcm .GCM .iso .ISO .gcz .GCZ .ciso .CISO .wbfs .WBFS .rvz .RVZ + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + wii + wii + + + + dolphinsa + + + + + dolphin + + + + + + gamegear + Game Gear + Sega + 1990 + portable + /storage/roms/gamegear + .bin .BIN .gg .GG .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + gamegear + gamegear + + + + gearsystem + genesis_plus_gx + picodrive + smsplus + + + + + + ggh + Game Gear (Hacks) + Sega + 1990 + portable + /storage/roms/gamegearh + .bin .BIN .gg .GG .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + gamegear + ggh + + + + gearsystem + genesis_plus_gx + picodrive + smsplus + + + + + + intellivision + Intellivision + Mattel + 1979 + console + /storage/roms/intellivision + .int .INT .bin .BIN .rom .ROM .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + intellivision + intellivision + + + + freeintv + + + + + + j2me + J2ME + Sun Microsystems + 2002 + portable + /storage/roms/j2me + .jar .JAR + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + j2me + j2me + + + + freej2me + + + + + + atarijaguar + Jaguar + Atari + 1993 + console + /storage/roms/atarijaguar + .j64 .J64 .jag .JAG .rom .ROM .abs .ABS .cof .COF .bin .BIN .prg .PRG + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + atarijaguar + atarijaguar + + + + virtualjaguar + + + + + + atarilynx + Lynx + Atari + 1989 + portable + /storage/roms/atarilynx + .lnx .LNX .o .O .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + atarilynx + atarilynx + + + + handy + beetle_lynx + + + + + + mame + MAME + Arcade + arcade + /storage/roms/mame + .7z .7Z .zip .ZIP + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + arcade + mame + + + + mame2003_plus + mame2000 + mame2010 + mame2015 + mame + fbneo + fbalpha2012 + fbalpha2019 + + + + + AdvanceMame + + + + + + megadrive-japan + Sega Mega Drive + Sega + 1988 + console + /storage/roms/megadrive-japan + .bin .BIN .gen .GEN .md .MD .sg .SG .smd .SMD .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + megadrive + megadrive-japan + + + + genesis_plus_gx + genesis_plus_gx_wide + picodrive + + + + + + pc + MS-DOS + Microsoft + 1981 + computer + /storage/roms/pc + .com .COM .bat .BAT .exe .EXE .dosz .DOSZ + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + pc + pc + + + + dosbox_pure + dosbox_svn + + + + + + snesmsu1 + MSU-1 + Nintendo + 2012 + console + /storage/roms/snesmsu1 + .smc .SMC .fig .FIG .sfc .SFC .swc .SWC .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + snesmsu1 snes + snesmsu1 + + + + snes9x + beetle_supafaust + + + + + + msx + MSX + Microsoft + 1983 + computer + /storage/roms/msx + .dsk .DSK .mx1 .MX1 .mx2 .MX2 .rom .ROM .zip .ZIP .7z .7Z .M3U .m3u + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + msx + msx + + + + bluemsx + fmsx + + + + + + msx2 + MSX2 + Microsoft + 1985 + computer + /storage/roms/msx2 + .dsk .DSK .mx1 .MX1 .mx2 .MX2 .rom .ROM .zip .ZIP .7z .7Z .M3U .m3u + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + msx + msx2 + + + + bluemsx + fmsx + + + + + + naomi + Naomi + Sega + 1998 + arcade + /storage/roms/naomi + .lst .LST .bin .BIN .dat .DAT .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + naomi arcade + naomi + + + + flycast_libretro + flycast32 + flycast + + + + + flycastsa + + + + + + neogeo + Neo Geo + SNK + 1990 + console + /storage/roms/neogeo + .7z .7Z .zip .ZIP + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + neogeo + neogeo + + + + fbneo + mame2003_plus + fbalpha2012 + fbalpha2019 + mame2010 + mame2015 + mame + + + + + + neocd + Neo Geo CD + SNK + 1990 + console + /storage/roms/neocd + .cue .CUE .iso .ISO .chd .CHD + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + neogeocd + neogeocd + + + + neocd + fbneo + + + + + + ngp + Neo Geo Pocket + SNK + 1998 + portable + /storage/roms/ngp + .ngc .NGC .ngp .NGP .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + ngp + ngp + + + + beetle_ngp + race + + + + + + ngpc + Neo Geo Pocket Color + SNK + 1999 + portable + /storage/roms/ngpc + .ngc .NGC .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + ngpc + ngpc + + + + beetle_ngp + race + + + + + + n64 + Nintendo 64 + Nintendo + 1996 + console + /storage/roms/n64 + .z64 .Z64 .n64 .N64 .v64 .V64 .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + n64 + n64 + + + + parallel_n64_glide64 + parallel_n64_rice + parallel_n64_gln64 + mupen64plus + mupen64plus_next + + + + + m64p_gliden64 + m64p_gl64mk2 + m64p_rice + + + + + + nds + Nintendo DS + /storage/roms/nds + Nintendo + 2005 + portable + .nds .zip .NDS .ZIP .7z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + nds + nds + + + + melonds + + + + + + nes + Nintendo Entertainment System + Nintendo + 1985 + console + /storage/roms/nes + .nes .NES .unif .UNIF .unf .UNF .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + nes + nes + + + + fceumm + nestopia + quicknes + mesen + + + + + + nesh + Nintendo Entertainment System (Hacks) + Nintendo + 1985 + console + /storage/roms/nesh + .nes .NES .unif .UNIF .unf .UNF .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + nes + nesh + + + + fceumm + nestopia + quicknes + + + + + + odyssey2 + Odyssey² + Magnavox + 1979 + console + /storage/roms/odyssey + .bin .BIN .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + odyssey2 + odyssey2 + + + + o2em + + + + + + openbor + OpenBOR + Various + 2008 + game engine + /storage/roms/openbor + .pak .PAK + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + openbor + openbor + + + + OpenBOR + + + + + + pc-8800 + PC-8800 + NEC + 1981 + computer + /storage/roms/pc88 + .d88 .D88 .m3u .M3U + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + pc88 + pc88 + + + + quasi88 + + + + + + pc-9800 + PC-9800 + NEC + 1983 + computer + /storage/roms/pc98 + .d98 .zip .98d .fdi .fdd .2hd .tfd .d88 .88d .hdm .xdf .dup .hdi .thd .nhd .hdd .hdn + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + pc98 + pc98 + + + + np2kai + nekop2 + + + + + + pcengine + PC Engine + NEC + 1987 + console + /storage/roms/pcengine + .pce .PCE .bin .BIN .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + pcengine + pcengine + + + + beetle_pce_fast + beetle_pce + beetle_supergrafx + + + + + + pcenginecd + PC Engine CD + NEC + 1988 + console + /storage/roms/pcenginecd + .cue .CUE .ccd .CCD .chd .CHD .toc .TOC .m3u .M3U + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + pcenginecd + pce-cd + + + + beetle_pce_fast + beetle_pce + beetle_supergrafx + + + + + + pcfx + PC-FX + NEC + 1994 + console + /storage/roms/pcfx + .chd .CHD .cue .CUE .ccd .CCD .toc .TOC + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + pcfx + pcfx + + + + beetle_pcfx + + + + + + pico-8 + PICO-8 + Lexaloffle + 2015 + console + /storage/roms/pico-8 + .sh .p8 .png .SH .P8 .PNG + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --controllers="%CONTROLLERSCONFIG%" + pico-8 + pico-8 + + + + pico8 + + + + + + psx + PlayStation + Sony + 1994 + console + /storage/roms/psx + .bin .BIN .cue .CUE .img .IMG .mdf .MDF .pbp .PBP .toc .TOC .cbn .CBN .m3u .M3U .ccd .CCD .chd .CHD .iso .ISO + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + psx + psx + + + + swanstation + duckstation + duckstation_custom + + + + + duckstationsa + + + + + + ps2 + PlayStation 2 + Sony + 2000 + console + /storage/roms/ps2 + .iso .ISO .mdf .MDF .nrg .NRG .bin .BIN .img .IMG .dump .DUMP .gz .GZ .cso .CSO .chd .CHD + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + ps2 + ps2 + + + + pcsx2 + + + + + pcsx2sa + + + + + + psp + PlayStation Portable + Sony + 2004 + portable + /storage/roms/psp + .iso .ISO .cso .CSO .pbp .PBP + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + psp + psp + + + + PPSSPPSDL + + + + + ppsspp + + + + + + pspminis + PSP Minis + Sony + 2004 + portable + /storage/roms/pspminis + .iso .ISO .cso .CSO .pbp .PBP + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + psp + pspminis + + + + PPSSPPSDL + + + + + ppsspp + + + + + + pokemini + Pokémon Mini + Nintendo + 2001 + portable + /storage/roms/pokemini + .min .MIN .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + pokemini + pokemini + + + + pokemini + + + + + + ports + Ports + Various + unknown + various + /storage/roms/ports + .sh .SH + /usr/bin/bash %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + pc + ports + + + sc-3000 + SC-3000 + Sega + 1983 + computer + /storage/roms/sc-3000 + .bin .BIN .sg .SG .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + sc-3000 + sc-3000 + + + + bluemsx + + + + + + scummvm + ScummVM + Various + 2001 + game engine + /storage/.config/scummvm/games + .sh .SH .svm .SVM .scummvm + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + pc + scummvm + + + + scummvm + + + + + scummvm + + + + + + sega32x + Sega 32X + Sega + 1994 + console + /storage/roms/sega32x + .32x .32X .smd .SMD .bin .BIN .md .MD .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + sega32x + sega32x + + + + picodrive + + + + + + segacd + Sega CD + Sega + 1991 + console + /storage/roms/segacd + .chd .CHD .cue .CUE .iso .ISO .m3u .M3U + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + segacd + segacd + + + + genesis_plus_gx + picodrive + + + + + + megacd + Sega Mega-CD + Sega + 1991 + console + /storage/roms/megacd + .chd .CHD .cue .CUE .iso .ISO .m3u .M3U + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + segacd + megacd + + + + genesis_plus_gx + picodrive + + + + + + genesis + Sega Genesis + Sega + 1989 + console + /storage/roms/genesis + .bin .BIN .gen .GEN .md .MD .sg .SG .smd .SMD .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + genesis + genesis + + + + genesis_plus_gx + genesis_plus_gx_wide + picodrive + + + + + + genh + Sega Genesis (Hacks) + Sega + 1989 + console + /storage/roms/genh + .bin .BIN .gen .GEN .md .MD .sg .SG .smd .SMD .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + genesis + genh + + + + genesis_plus_gx + genesis_plus_gx_wide + picodrive + + + + + + mastersystem + Sega Master System + Sega + 1985 + console + /storage/roms/mastersystem + .bin .BIN .sms .SMS .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + mastersystem + mastersystem + + + + gearsystem + genesis_plus_gx + picodrive + smsplus + + + + + + megadrive + Sega Mega Drive + Sega + 1990 + console + /storage/roms/megadrive + .bin .BIN .gen .GEN .md .MD .sg .SG .smd .SMD .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + megadrive + megadrive + + + + genesis_plus_gx + genesis_plus_gx_wide + picodrive + + + + + + megaduck + Mega Duck + Welback Holdings + 1993 + portable + /storage/roms/megaduck + .bin .BIN .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + megaduck + megaduck + + + + sameduck + + + + + + saturn + Sega Saturn + Sega + 1994 + console + /storage/roms/saturn + .cue .CUE .chd .CHD .iso .ISO + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + saturn + saturn + + + + yabasanshiroSA + + + + + yabasanshiro + + + + + + sg-1000 + SG-1000 + Sega + 1983 + console + /storage/roms/sg-1000 + .bin .BIN .sg .SG .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + sg-1000 + sg-1000 + + + + gearsystem + genesis_plus_gx + picodrive + + + + + + x1 + Sharp X1 + Sharp + 1982 + computer + /storage/roms/x1 + .dx1 .DX1 .2d .2D .2hd .2HD .tfd .TFD .d88 .D88 .88d .88D .hdm .HDM .xdf .XDF .dup .DUP .tap .TAP .cmd .CMD .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + x1 + x1 + + + + x1 + + + + + + zxspectrum + Sinclair ZX Spectrum + Sinclair + 1982 + computer + /storage/roms/zxspectrum + .tzx .TZX .tap .TAP .z80 .Z80 .rzx .RZX .scl .SCL .trd .TRD .dsk .DSK .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + zxspectrum + zxspectrum + + + + fuse + + + + + + zx81 + Sinclair ZX81 + Sinclair + 1981 + computer + /storage/roms/zx81 + .tzx .TZX .p .P .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + zx81 + zx81 + + + + 81 + + + + + + supergrafx + Super Grafx + NEC + 1989 + console + /storage/roms/sgfx + .pce .PCE .sgx .SGX .cue .CUE .ccd .CCD .chd .CHD .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + supergrafx + supergrafx + + + + beetle_supergrafx + beetle_pce + + + + + + snes + Super Nintendo + Nintendo + 1991 + console + /storage/roms/snes + .smc .SMC .fig .FIG .sfc .SFC .swc .SWC .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + snes + snes + + + + snes9x + snes9x2010 + snes9x2002 + snes9x2005_plus + beetle_supafaust + bsnes_mercury_performance + + + + + + snesh + Super Nintendo (Hacks) + Nintendo + 1991 + console + /storage/roms/snesh + .smc .SMC .fig .FIG .sfc .SFC .swc .SWC .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + snes + snesh + + + + snes9x + snes9x2010 + snes9x2002 + snes9x2005_plus + beetle_supafaust + + + + + + sfc + Super Famicom + Nintendo + 1990 + console + /storage/roms/sfc + .smc .SMC .fig .FIG .sfc .SFC .swc .SWC .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + snes + sfc + + + + snes9x + snes9x2010 + snes9x2002 + snes9x2005_plus + beetle_supafaust + + + + + + satellaview + Satellaview + Nintendo + 1995 + console + /storage/roms/satellaview + .smc .SMC .fig .FIG .bs .BS .sfc .SFC .bsx .BSX .swc .SWC .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + satellaview + satellaview + + + + snes9x + snes9x2010 + snes9x2002 + snes9x2005_plus + + + + + + sufami + SuFami Turbo + Bandai + 1996 + console + /storage/roms/sufami + .st .ST .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + sufami + sufami + + + + snes9x + + + + + + solarus + Solarus + Solarus + 2020 + game engine + /storage/roms/solarus + .solarus + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + solarus + solarus + + + + solarus + + + + + + supervision + Watara Supervision + Watara + 1992 + portable + /storage/roms/supervision + .sv .SV .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + supervision + supervision + + + + potator + + + + + + tic-80 + TIC-80 + Nesbox + 2017 + computer + /storage/roms/tic-80 + .tic .TIC + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + tic80 + tic-80 + + + + tic80 + + + + + + tg16 + TurboGrafx-16 + NEC + 1989 + console + /storage/roms/tg16 + .pce .PCE .bin .BIN .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + pcengine + tg16 + + + + beetle_pce_fast + beetle_pce + beetle_supergrafx + + + + + + tg16cd + TurboGrafx-CD + NEC + 1989 + console + /storage/roms/tg16cd + .cue .CUE .ccd .CCD .chd .CHD .toc .TOC .m3u .M3U + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + pcenginecd + tg16cd + + + + beetle_pce_fast + beetle_pce + beetle_supergrafx + + + + + + uzebox + Uzebox + belogic + 2008 + console + /storage/roms/uzebox + .uze .UZE + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + uzebox + uzebox + + + + uzem + + + + + + vectrex + Vectrex + Milton Bradley + 1982 + console + /storage/roms/vectrex + .bin .BIN .gam .GAM .vec .VEC .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + vectrex + vectrex + + + + vecx + + + + + + videopac + VideoPac + Philips + 1978 + console + /storage/roms/videopac + .bin .BIN .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + videopac + videopac + + + + o2em + + + + + + virtualboy + Virtual Boy + Nintendo + 1995 + console + /storage/roms/virtualboy + .vb .VB .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + virtualboy + virtualboy + + + + beetle_vb + + + + + + wonderswan + Wonderswan + Bandai + 1999 + portable + /storage/roms/wonderswan + .ws .WS .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + wonderswan + wonderswan + + + + beetle_wswan + + + + + + wonderswancolor + Wonderswan Color + Bandai + 2000 + portable + /storage/roms/wonderswancolor + .wsc .WSC .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + wonderswancolor + wonderswancolor + + + + beetle_wswan + + + + + + x68000 + x68000 + Sharp + 1987 + computer + /storage/roms/x68000 + .dim .DIM .img .IMG .d88 .D88 .88d .88D .hdm .HDM .dup .DUP .2hd .2HD .xdf .XDF .hdf .HDF .cmd .CMD .m3u .M3U .zip .ZIP .7z .7Z + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + x68000 + x68000 + + + + px68k + + + + + + ecwolf + Wolfenstein 3D + id Software + 1992 + game engine + /storage/roms/ecwolf + .sh .SH .ecwolf + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + pc + ecwolf + + + + ecwolf + + + + + + doom + Doom + id Software + 1993 + game engine + /storage/roms/doom + .sh .SH .doom + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + pc + doom + + + + gzdoom + + + + + lzdoom + + + + + prboom + + + + + + build + Build Engine + 3D Realms + 1995 + game engine + /storage/roms/build + .sh .SH .build + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + pc + build + + + + raze + + + + + + quake + Quake + id Software + 1996 + game engine + /storage/roms/quake + .sh .SH .quake + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + pc + quake + + + + tyrquake + + + + + + mplayer + MPlayer + Various + unknown + system + /storage/roms/mplayer + .mp4 .MP4 .mkv .MKV .avi .AVI .mov .MOV .wmv .WMV .m3u .M3U .mpg .MPG .ytb .YTB .twi .TWI .sh .SH .mp3 .MP3 .aac .AAC .mka .MKA .dts .DTS .flac .FLAC .ogg .OGG .m4a .M4A .ac3 .AC3 .opus .OPUS .wav .WAV .wv .WV .eac3 .EAC3 .thd .THD + /usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%" + mplayer + mplayer + + + + mpv + + + + + + moonlight + Moonlight Game Streaming + /storage/roms/moonlight/ + .sh .SH + %ROM% + moonlight + moonlight + + + tools +  Tools + Various + unknown + system + /storage/.config/modules + .sh + /usr/bin/run %ROM% + tools + tools + + + Screenshots + imageviewer + Various + unknown + system + /roms/screenshots + .jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .mkv .pdf .mp4 .avi + /usr/bin/true + imageviewer + imageviewer + + diff --git a/packages/ui/emulationstation/config/device/handheld b/packages/ui/emulationstation/config/device/handheld new file mode 120000 index 000000000..2988caf9b --- /dev/null +++ b/packages/ui/emulationstation/config/device/handheld @@ -0,0 +1 @@ +X86_64 \ No newline at end of file diff --git a/packages/ui/emulationstation/package.mk b/packages/ui/emulationstation/package.mk index 51e270ebd..33211e643 100644 --- a/packages/ui/emulationstation/package.mk +++ b/packages/ui/emulationstation/package.mk @@ -3,14 +3,14 @@ # Copyright (C) 2020-present Fewtarius PKG_NAME="emulationstation" -PKG_VERSION="686b812" +PKG_VERSION="7e94d3a" PKG_GIT_CLONE_BRANCH="main" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="https://github.com/JustEnoughLinuxOS/emulationstation" PKG_URL="${PKG_SITE}.git" -PKG_DEPENDS_TARGET="boost toolchain SDL2 freetype curl freeimage bash rapidjson SDL2_mixer fping p7zip vlc" +PKG_DEPENDS_TARGET="boost toolchain SDL2 freetype curl freeimage bash rapidjson SDL2_mixer fping p7zip alsa vlc" PKG_NEED_UNPACK="busybox" PKG_SHORTDESC="Emulationstation emulator frontend" PKG_BUILD_FLAGS="-gold" @@ -18,8 +18,8 @@ GET_HANDLER_SUPPORT="git" PKG_PATCH_DIRS+="${DEVICE}" if [ ! "${OPENGL}" = "no" ]; then - PKG_DEPENDS_TARGET+=" ${OPENGL} glu libglvnd" - PKG_CMAKE_OPTS_TARGET+=" -DGLES2=0" + PKG_DEPENDS_TARGET+=" ${OPENGL} glu" + PKG_CMAKE_OPTS_TARGET+=" -DGL=1" fi if [ "${OPENGLES_SUPPORT}" = yes ]; then @@ -93,11 +93,14 @@ makeinstall_target() { cp ${PKG_BUILD}/es_settings ${INSTALL}/usr/bin chmod 0755 ${INSTALL}/usr/bin/es_settings + cp ${PKG_BUILD}/start_es.sh ${INSTALL}/usr/bin + chmod 0755 ${INSTALL}/usr/bin/start_es.sh + mkdir -p ${INSTALL}/usr/lib/${PKG_PYTHON_VERSION} cp -rf ${PKG_DIR}/bluez/* ${INSTALL}/usr/lib/${PKG_PYTHON_VERSION} mkdir -p ${INSTALL}/usr/bin - ln -sf /storage/.config/emulationstation/resources ${INSTALL}/usr/bin/resources + #ln -sf /storage/.config/emulationstation/resources ${INSTALL}/usr/bin/resources cp -rf ${PKG_BUILD}/emulationstation ${INSTALL}/usr/bin mkdir -p ${INSTALL}/etc/emulationstation/ diff --git a/packages/ui/emulationstation/sources/start_es.sh b/packages/ui/emulationstation/sources/start_es.sh new file mode 100755 index 000000000..e584d30b5 --- /dev/null +++ b/packages/ui/emulationstation/sources/start_es.sh @@ -0,0 +1,4 @@ +#!/bin/bash +. /etc/profile +/usr/bin/es_settings +emulationstation --log-path /var/log diff --git a/packages/ui/splash/package.mk b/packages/ui/splash/package.mk index 31eec96ea..f36f68f7d 100644 --- a/packages/ui/splash/package.mk +++ b/packages/ui/splash/package.mk @@ -35,8 +35,8 @@ mksplash() { fi convert ${SPLASH} -rotate 270 -quality 100 -background black -resize ${SPLASH_RESOLUTION} -gravity center -extent ${SPLASH_RESOLUTION} ${1}/splashl.png else - cp ${SPLASH} ${INSTALL}/splash - convert ${SPLASH} -quality 100 -rotate 270 -background black ${INSTALL}/splash/splashl.png + cp ${SPLASH} ${1} + convert ${SPLASH} -rotate 90 -quality 100 -background black -gravity center ${1}/splashl.png fi } diff --git a/packages/virtual/emulators/package.mk b/packages/virtual/emulators/package.mk index 511314a6f..0bd376a58 100644 --- a/packages/virtual/emulators/package.mk +++ b/packages/virtual/emulators/package.mk @@ -36,9 +36,12 @@ PKG_DEPENDS_TARGET="${PKG_EMUS} ${PKG_RETROARCH} ${LIBRETRO_CORES}" ### Emulators or cores for specific devices case "${DEVICE}" in RG552) - PKG_DEPENDS_TARGET+=" duckstationsa" + PKG_DEPENDS_TARGET+=" duckstationsa dolphinsa dolphin" ;; RG503|RG353P) PKG_DEPENDS_TARGET+=" duckstationsa dolphinsa" ;; + handheld) + PKG_DEPENDS_TARGET+=" duckstationsa dolphinsa dolphin pcsx2sa pcsx2" + ;; esac diff --git a/packages/virtual/gamesupport/package.mk b/packages/virtual/gamesupport/package.mk index b3ea301c6..f5f242c62 100644 --- a/packages/virtual/gamesupport/package.mk +++ b/packages/virtual/gamesupport/package.mk @@ -7,7 +7,7 @@ PKG_SITE="www.jelos.org" PKG_SECTION="virtual" PKG_LONGDESC="Game support software metapackage." -PKG_GAMESUPPORT="sixaxis rg351p-js2xbox gptokeyb jstest-sdl gamecontrollerdb jelosaddons sdljoytest doomscan" +PKG_GAMESUPPORT="sixaxis rg351p-js2xbox gptokeyb jstest-sdl gamecontrollerdb jelosaddons sdljoytest doomscan wolfscan" PKG_DEPENDS_TARGET="${PKG_GAMESUPPORT}" diff --git a/packages/virtual/image/package.mk b/packages/virtual/image/package.mk index dd2603bb8..21161850a 100644 --- a/packages/virtual/image/package.mk +++ b/packages/virtual/image/package.mk @@ -4,38 +4,38 @@ PKG_NAME="image" PKG_LICENSE="GPL" PKG_SITE="https://libreelec.tv" -PKG_DEPENDS_TARGET="toolchain squashfs-tools:host dosfstools:host fakeroot:host kmod:host mtools:host populatefs:host libc gcc linux linux-drivers linux-firmware ${BOOTLOADER} busybox util-linux corefonts network misc-packages debug usb-modeswitch unzip poppler socat p7zip file bluez splash initramfs jelos" +PKG_DEPENDS_TARGET="toolchain squashfs-tools:host dosfstools:host fakeroot:host kmod:host mtools:host populatefs:host libc gcc linux linux-drivers linux-firmware ${BOOTLOADER} busybox util-linux corefonts network misc-packages debug usb-modeswitch unzip poppler jq socat p7zip file bluez splash initramfs jelos" PKG_SECTION="virtual" PKG_LONGDESC="Root package used to build and create complete image" -# Graphic support -[ ! "$DISPLAYSERVER" = "no" ] && PKG_DEPENDS_TARGET+=" $DISPLAYSERVER" +# Architecture specific tools +[ "${ARCH}" = "x86_64" ] && PKG_DEPENDS_TARGET+=" ryzenadj lm_sensors" # Sound support -[ "$ALSA_SUPPORT" = "yes" ] && PKG_DEPENDS_TARGET+=" alsa" +[ "${ALSA_SUPPORT}" = "yes" ] && PKG_DEPENDS_TARGET+=" alsa" # Automounter support -[ "$UDEVIL" = "yes" ] && PKG_DEPENDS_TARGET+=" udevil" +[ "${UDEVIL}" = "yes" ] && PKG_DEPENDS_TARGET+=" udevil" # EXFAT support -[ "$EXFAT" = "yes" ] && PKG_DEPENDS_TARGET+=" exfat exfatprogs" +[ "${EXFAT}" = "yes" ] && PKG_DEPENDS_TARGET+=" exfat exfatprogs" # NTFS 3G support -[ "$NTFS3G" = "yes" ] && PKG_DEPENDS_TARGET+=" ntfs-3g_ntfsprogs" +[ "${NTFS3G}" = "yes" ] && PKG_DEPENDS_TARGET+=" ntfs-3g_ntfsprogs" # Virtual image creation support -[ "$PROJECT" = "Generic" ] && PKG_DEPENDS_TARGET+=" virtual" +[ "${PROJECT}" = "Generic" ] && PKG_DEPENDS_TARGET+=" virtual" # Installer support -[ "$INSTALLER_SUPPORT" = "yes" ] && PKG_DEPENDS_TARGET+=" installer" +[ "${INSTALLER_SUPPORT}" = "yes" ] && PKG_DEPENDS_TARGET+=" installer" # Devtools... (not for Release) -[ "$TESTING" = "yes" ] && PKG_DEPENDS_TARGET+=" testing" +[ "${TESTING}" = "yes" ] && PKG_DEPENDS_TARGET+=" testing" # OEM packages -[ "$OEM_SUPPORT" = "yes" ] && PKG_DEPENDS_TARGET+=" oem" +[ "${OEM_SUPPORT}" = "yes" ] && PKG_DEPENDS_TARGET+=" oem" # htop -[ "$HTOP_TOOL" = "yes" ] && PKG_DEPENDS_TARGET+=" htop" +[ "${HTOP_TOOL}" = "yes" ] && PKG_DEPENDS_TARGET+=" htop" true diff --git a/packages/virtual/misc-packages/package.mk b/packages/virtual/misc-packages/package.mk index 74337cf7f..65a75e2ba 100644 --- a/packages/virtual/misc-packages/package.mk +++ b/packages/virtual/misc-packages/package.mk @@ -1,16 +1,21 @@ # SPDX-License-Identifier: GPL-2.0 # Copyright (C) 2018 Team LibreELEC (https://libreelec.tv) # Copyright (C) 2018-present Team CoreELEC (https://coreelec.org) +# Copyright (C) 2022-present Fewtarius PKG_NAME="misc-packages" PKG_VERSION="" PKG_LICENSE="GPL" -PKG_SITE="https://libreelec.tv" +PKG_SITE="https://www.jelos.org" PKG_URL="" -PKG_DEPENDS_TARGET="toolchain Python3 jq ${ADDITIONAL_PACKAGES}" PKG_SECTION="virtual" PKG_LONGDESC="misc-packages: Metapackage for miscellaneous packages" +if [ ! "${BASE_ONLY}" = "true" ] +then + PKG_DEPENDS_TARGET+=" ${ADDITIONAL_PACKAGES}" +fi + # Entware support if [ "$ENTWARE_SUPPORT" = "yes" ]; then ln -sf /storage/.opt $INSTALL/opt diff --git a/packages/virtual/network/package.mk b/packages/virtual/network/package.mk index 876a23e61..4415c067f 100644 --- a/packages/virtual/network/package.mk +++ b/packages/virtual/network/package.mk @@ -25,9 +25,6 @@ fi if [ "${WIREGUARD_SUPPORT}" = "yes" ]; then PKG_DEPENDS_TARGET="${PKG_DEPENDS_TARGET} wireguard-tools" - if [ ! "${TARGET_ARCH}" = "x86_64" ]; then - PKG_DEPENDS_TARGET+=" wireguard-linux-compat" - fi fi # nss needed by inputstream.adaptive, chromium etc. diff --git a/packages/wayland/compositor/sway/package.mk b/packages/wayland/compositor/sway/package.mk index ce6837b93..addab4be5 100644 --- a/packages/wayland/compositor/sway/package.mk +++ b/packages/wayland/compositor/sway/package.mk @@ -7,7 +7,7 @@ PKG_SHA256="0c64536fb2883ec518e75cfb119f9300115fb49b084e3fde62b794fe2c6c8d84" PKG_LICENSE="MIT" PKG_SITE="https://swaywm.org/" PKG_URL="https://github.com/swaywm/sway/archive/${PKG_VERSION}.tar.gz" -PKG_DEPENDS_TARGET="toolchain wayland wayland-protocols libdrm libxkbcommon libinput cairo pango libjpeg-turbo dbus json-c wlroots gdk-pixbuf swaybg foot bemenu" +PKG_DEPENDS_TARGET="toolchain wayland wayland-protocols libdrm libxkbcommon libinput cairo pango libjpeg-turbo dbus json-c wlroots gdk-pixbuf swaybg foot bemenu xorg-server" PKG_LONGDESC="i3-compatible Wayland compositor" PKG_MESON_OPTS_TARGET="-Ddefault-wallpaper=false \ @@ -16,7 +16,7 @@ PKG_MESON_OPTS_TARGET="-Ddefault-wallpaper=false \ -Dfish-completions=false \ -Dswaybar=true \ -Dswaynag=true \ - -Dxwayland=disabled \ + -Dxwayland=enabled \ -Dtray=disabled \ -Dgdk-pixbuf=enabled \ -Dman-pages=disabled \ @@ -24,7 +24,7 @@ PKG_MESON_OPTS_TARGET="-Ddefault-wallpaper=false \ pre_configure_target() { # sway does not build without -Wno flags as all warnings being treated as errors - export TARGET_CFLAGS=$(echo "${TARGET_CFLAGS} -Wno-unused-variable -Wno-unused-but-set-variable -Wno-unused-function -Wno-maybe-uninitialized") + export TARGET_CFLAGS=$(echo "${TARGET_CFLAGS} -Wno-unused-variable -Wno-unused-but-set-variable -Wno-unused-function -Wno-maybe-uninitialized -Wno-stringop-truncation -Wno-address") } post_makeinstall_target() { diff --git a/packages/wayland/lib/wlroots/package.mk b/packages/wayland/lib/wlroots/package.mk index c5591d8ad..bdcfe96db 100644 --- a/packages/wayland/lib/wlroots/package.mk +++ b/packages/wayland/lib/wlroots/package.mk @@ -7,7 +7,7 @@ PKG_SHA256="8bb791aed9405abc20253c570de1a3b7af91ad65bee2b60293fbbab27ea62c8d" PKG_LICENSE="MIT" PKG_SITE="https://gitlab.freedesktop.org/wlroots/wlroots/" PKG_URL="https://gitlab.freedesktop.org/wlroots/wlroots/-/archive/${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}.tar.bz2" -PKG_DEPENDS_TARGET="toolchain libinput libxkbcommon pixman libdrm wayland wayland-protocols seatd" +PKG_DEPENDS_TARGET="toolchain libinput libxkbcommon pixman libdrm wayland wayland-protocols seatd xorg-server" PKG_LONGDESC="A modular Wayland compositor library" configure_package() { @@ -18,7 +18,7 @@ configure_package() { } PKG_MESON_OPTS_TARGET="-Dxcb-errors=disabled \ - -Dxwayland=disabled \ + -Dxwayland=enabled \ -Dexamples=false \ -Drenderers=gles2" diff --git a/packages/wayland/libxkbcommon/package.mk b/packages/wayland/libxkbcommon/package.mk index ad0773023..d23babc5f 100644 --- a/packages/wayland/libxkbcommon/package.mk +++ b/packages/wayland/libxkbcommon/package.mk @@ -17,8 +17,9 @@ if [ "${DISPLAYSERVER}" = "x11" ]; then PKG_MESON_OPTS_TARGET+=" -Denable-x11=true \ -Denable-wayland=false" elif [ "${DISPLAYSERVER}" = "wl" ]; then - PKG_MESON_OPTS_TARGET+=" -Denable-x11=false \ - -Denable-wayland=true" + PKG_MESON_OPTS_TARGET+=" -Denable-x11=true \ + -Denable-wayland=true \ + -Dxkb-config-root=/usr/share/X11/xkb" else PKG_MESON_OPTS_TARGET+=" -Denable-x11=false \ -Denable-wayland=false" diff --git a/packages/wayland/util/bemenu/package.mk b/packages/wayland/util/bemenu/package.mk index e71357e23..5435a38af 100644 --- a/packages/wayland/util/bemenu/package.mk +++ b/packages/wayland/util/bemenu/package.mk @@ -2,8 +2,8 @@ # Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv) PKG_NAME="bemenu" -PKG_VERSION="0.6.7" -PKG_SHA256="8982ffbeebb0f642e0a68d3ab5a16078b2f43548ddca70a5ad30a597529ff142" +PKG_VERSION="0.6.10" +PKG_SHA256="9d47557ed4572fa66e6a80364b95e4dd7a588ca75fe89c68c029b7f240b56a60" PKG_LICENSE="MIT" PKG_SITE="https://github.com/Cloudef/bemenu" PKG_URL="https://github.com/Cloudef/bemenu/archive/${PKG_VERSION}.tar.gz" diff --git a/packages/wayland/wayland-protocols/package.mk b/packages/wayland/wayland-protocols/package.mk index 6dbc5a11f..3a5e3cb69 100644 --- a/packages/wayland/wayland-protocols/package.mk +++ b/packages/wayland/wayland-protocols/package.mk @@ -2,8 +2,8 @@ # Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) PKG_NAME="wayland-protocols" -PKG_VERSION="1.25" -PKG_SHA256="f1ff0f7199d0a0da337217dd8c99979967808dc37731a1e759e822b75b571460" +PKG_VERSION="1.26" +PKG_SHA256="c553384c1c68afd762fa537a2569cc9074fe7600da12d3472761e77a2ba56f13" PKG_LICENSE="OSS" PKG_SITE="https://wayland.freedesktop.org/" PKG_URL="https://wayland.freedesktop.org/releases/${PKG_NAME}-${PKG_VERSION}.tar.xz" diff --git a/packages/wayland/wayland/package.mk b/packages/wayland/wayland/package.mk index aadbfc47b..3b8b2e75c 100644 --- a/packages/wayland/wayland/package.mk +++ b/packages/wayland/wayland/package.mk @@ -2,22 +2,24 @@ # Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) PKG_NAME="wayland" -PKG_VERSION="1.20.0" -PKG_SHA256="b8a034154c7059772e0fdbd27dbfcda6c732df29cae56a82274f6ec5d7cd8725" +PKG_VERSION="1.21.0" +PKG_SHA256="6dc64d7fc16837a693a51cfdb2e568db538bfdc9f457d4656285bb9594ef11ac" PKG_LICENSE="OSS" PKG_SITE="https://wayland.freedesktop.org/" -PKG_URL="https://wayland.freedesktop.org/releases/${PKG_NAME}-${PKG_VERSION}.tar.xz" +PKG_URL="https://gitlab.freedesktop.org/wayland/wayland/-/releases/${PKG_VERSION}/downloads/${PKG_NAME}-${PKG_VERSION}.tar.xz" PKG_DEPENDS_HOST="libffi:host expat:host libxml2:host" PKG_DEPENDS_TARGET="toolchain wayland:host libffi expat libxml2" PKG_LONGDESC="a display server protocol" PKG_MESON_OPTS_HOST="-Dlibraries=false \ -Dscanner=true \ + -Dtests=false \ -Ddocumentation=false \ -Ddtd_validation=false" PKG_MESON_OPTS_TARGET="-Dlibraries=true \ -Dscanner=false \ + -Dtests=false \ -Ddocumentation=false \ -Ddtd_validation=false" diff --git a/packages/wayland/wayland/patches/01-we-build-scanner.patch b/packages/wayland/wayland/patches/01-we-build-scanner.patch new file mode 100644 index 000000000..5554998c3 --- /dev/null +++ b/packages/wayland/wayland/patches/01-we-build-scanner.patch @@ -0,0 +1,38 @@ +diff -rupN wayland-1.21.0.orig/src/meson.build wayland-1.21.0/src/meson.build +--- wayland-1.21.0.orig/src/meson.build 2022-08-27 16:11:57.858458871 -0400 ++++ wayland-1.21.0/src/meson.build 2022-08-27 16:20:31.739044226 -0400 +@@ -72,16 +72,6 @@ if get_option('scanner') + filebase: 'wayland-scanner' + ) + +- if meson.can_run_host_binaries() +- meson.override_find_program('wayland-scanner', wayland_scanner) +- endif +-endif +- +-if meson.is_cross_build() or not get_option('scanner') +- scanner_dep = dependency('wayland-scanner', native: true, version: meson.project_version()) +- wayland_scanner_for_build = find_program(scanner_dep.get_variable(pkgconfig: 'wayland_scanner')) +-else +- wayland_scanner_for_build = wayland_scanner + endif + + if get_option('libraries') +@@ -137,7 +127,7 @@ if get_option('libraries') + target = custom_target( + target_name, + command: [ +- wayland_scanner_for_build, '-s', scanner_args, ++ 'wayland-scanner', '-s', scanner_args, + '@INPUT@', '@OUTPUT@' + ], + input: wayland_protocol_xml, +@@ -152,7 +142,7 @@ if get_option('libraries') + wayland_protocol_c = custom_target( + 'protocol source', + command: [ +- wayland_scanner_for_build, '-s', 'public-code', '@INPUT@', '@OUTPUT@' ++ 'wayland-scanner', '-s', 'public-code', '@INPUT@', '@OUTPUT@' + ], + input: wayland_protocol_xml, + output: 'wayland-protocol.c' diff --git a/packages/wayland/weston/config/kiosk.ini b/packages/wayland/weston/config/kiosk.ini new file mode 100644 index 000000000..ca9ce11ab --- /dev/null +++ b/packages/wayland/weston/config/kiosk.ini @@ -0,0 +1,22 @@ +[core] +idle-time=0 +shell=kiosk-shell.so +xwayland=true + +[xwayland] +path=/usr/bin/Xwayland + +[terminal] +font-size=16 + +[shell] +background-image=/usr/config/splash/splash.png +background-type=scale-crop +background-color=0x00000000 +clock-format=minutes-24h +locking=false + +[autolaunch] +path=/usr/bin/start_es.sh +icon=/usr/config/emulationstation/resources/window_icon_24.png +watch=true diff --git a/packages/wayland/weston/config/weston.ini b/packages/wayland/weston/config/weston.ini index dbbb812c2..e3d3b0246 100644 --- a/packages/wayland/weston/config/weston.ini +++ b/packages/wayland/weston/config/weston.ini @@ -1,17 +1,23 @@ [core] idle-time=0 +xwayland=true + +[xwayland] +path=/usr/bin/Xwayland + +[terminal] +font-size=16 [shell] - -background-image=/usr/share/weston/libreelec-wallpaper-2160.png +background-image=/usr/config/splash/splash.png background-type=scale-crop background-color=0x00000000 clock-format=minutes-24h locking=false [launcher] -path=/usr/lib/kodi/kodi.bin -icon=/usr/share/kodi/media/icon16x16.png +path=/usr/bin/start_es.sh +icon=/usr/config/emulationstation/resources/window_icon_24.png [launcher] icon=/usr/share/weston/terminal.png diff --git a/packages/wayland/weston/package.mk b/packages/wayland/weston/package.mk index b8be91d5c..3c583ca42 100644 --- a/packages/wayland/weston/package.mk +++ b/packages/wayland/weston/package.mk @@ -2,12 +2,12 @@ # Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) PKG_NAME="weston" -PKG_VERSION="10.0.0" -PKG_SHA256="5c23964112b90238bed39e5dd1e41cd71a79398813cdc3bbb15a9fdc94e547ae" +PKG_VERSION="10.0.1" +PKG_SHA256="8a9e52506a865a7410981b04f8341b89b84106db8531ab1f9fdd37b5dc034115" PKG_LICENSE="MIT" PKG_SITE="https://wayland.freedesktop.org/" -PKG_URL="https://wayland.freedesktop.org/releases/${PKG_NAME}-${PKG_VERSION}.tar.xz" -PKG_DEPENDS_TARGET="toolchain wayland wayland-protocols libdrm libxkbcommon libinput cairo pango libjpeg-turbo dbus seatd" +PKG_URL="https://gitlab.freedesktop.org/wayland/weston/-/releases/${PKG_VERSION}/downloads/${PKG_NAME}-${PKG_VERSION}.tar.xz" +PKG_DEPENDS_TARGET="toolchain wayland wayland-protocols libdrm libxkbcommon libinput cairo pango libjpeg-turbo dbus seatd glu ${OPENGL} libX11 xorg-server libXcursor xkbcomp setxkbmap cairo" PKG_LONGDESC="Reference implementation of a Wayland compositor" PKG_MESON_OPTS_TARGET="-Dbackend-drm=true \ @@ -15,20 +15,20 @@ PKG_MESON_OPTS_TARGET="-Dbackend-drm=true \ -Dbackend-headless=false \ -Dbackend-rdp=false \ -Dscreenshare=false \ - -Dbackend-wayland=false \ + -Dbackend-wayland=true \ -Dbackend-x11=false \ -Ddeprecated-backend-fbdev=false \ -Dbackend-default=drm \ -Drenderer-gl=true \ -Ddeprecated-weston-launch=false \ - -Dxwayland=false \ + -Dxwayland=true \ -Dsystemd=true \ -Dremoting=false \ -Dpipewire=false \ -Dshell-desktop=true \ - -Dshell-fullscreen=false \ + -Dshell-fullscreen=true \ -Dshell-ivi=false \ - -Dshell-kiosk=false \ + -Dshell-kiosk=true \ -Ddesktop-shell-client-default="weston-desktop-shell" \ -Ddeprecated-wl-shell=false \ -Dcolor-management-lcms=false \ @@ -57,12 +57,7 @@ post_makeinstall_target() { cp ${PKG_DIR}/scripts/weston-config ${INSTALL}/usr/lib/weston mkdir -p ${INSTALL}/usr/share/weston - cp ${PKG_DIR}/config/weston.ini ${INSTALL}/usr/share/weston - find_file_path "splash/splash-2160.png" && cp ${FOUND_PATH} ${INSTALL}/usr/share/weston/libreelec-wallpaper-2160.png + cp ${PKG_DIR}/config/*ini ${INSTALL}/usr/share/weston safe_remove ${INSTALL}/usr/share/wayland-sessions } - -post_install() { - enable_service weston.service -} diff --git a/packages/wayland/weston/patches/001-terminal.patch b/packages/wayland/weston/patches/001-terminal.patch new file mode 100644 index 000000000..20b8eafdf --- /dev/null +++ b/packages/wayland/weston/patches/001-terminal.patch @@ -0,0 +1,21 @@ +diff -rupN weston-10.0.1.orig/clients/terminal.c weston-10.0.1/clients/terminal.c +--- weston-10.0.1.orig/clients/terminal.c 2022-06-23 09:52:38.000000000 -0400 ++++ weston-10.0.1/clients/terminal.c 2022-08-30 17:32:23.295568863 -0400 +@@ -3089,7 +3089,7 @@ terminal_run(struct terminal *terminal, + close(pipes[0]); + setenv("TERM", option_term, 1); + setenv("COLORTERM", option_term, 1); +- if (execl(path, path, NULL)) { ++ if (execl(path, path, "-l")) { + printf("exec failed: %s\n", strerror(errno)); + exit(EXIT_FAILURE); + } +@@ -3140,7 +3140,7 @@ int main(int argc, char *argv[]) + + option_shell = getenv("SHELL"); + if (!option_shell) +- option_shell = "/bin/sh"; ++ option_shell = "/bin/bash"; + + config_file = weston_config_get_name_from_env(); + config = weston_config_parse(config_file); diff --git a/packages/wayland/weston/patches/002-console.patch b/packages/wayland/weston/patches/002-console.patch new file mode 100644 index 000000000..9a167ea06 --- /dev/null +++ b/packages/wayland/weston/patches/002-console.patch @@ -0,0 +1,78 @@ +diff -rupN weston-10.0.1.orig/clients/terminal.c weston-10.0.1/clients/terminal.c +--- weston-10.0.1.orig/clients/terminal.c 2022-09-14 09:35:54.928561932 -0400 ++++ weston-10.0.1/clients/terminal.c 2022-09-14 09:43:23.195349394 -0400 +@@ -56,6 +56,8 @@ static char *option_font; + static int option_font_size; + static char *option_term; + static char *option_shell; ++static char *option_cwd; ++static char *option_command; + + static struct wl_list terminal_list; + +@@ -3089,6 +3091,14 @@ terminal_run(struct terminal *terminal, + close(pipes[0]); + setenv("TERM", option_term, 1); + setenv("COLORTERM", option_term, 1); ++ ++ if (option_command) { ++ if (execl(path, path, "-e", option_command, NULL)) { ++ fprintf(stderr, "command '%s' couldn't executed: %m", ++ option_command); ++ } ++ } ++ + if (execl(path, path, "-l")) { + printf("exec failed: %s\n", strerror(errno)); + exit(EXIT_FAILURE); +@@ -3123,6 +3133,8 @@ static const struct weston_option termin + { WESTON_OPTION_STRING, "font", 0, &option_font }, + { WESTON_OPTION_INTEGER, "font-size", 0, &option_font_size }, + { WESTON_OPTION_STRING, "shell", 0, &option_shell }, ++ { WESTON_OPTION_STRING, "cwd", 0, &option_cwd }, ++ { WESTON_OPTION_STRING, "command", 0, &option_command }, + }; + + int main(int argc, char *argv[]) +@@ -3140,7 +3152,7 @@ int main(int argc, char *argv[]) + + option_shell = getenv("SHELL"); + if (!option_shell) +- option_shell = "/bin/bash"; ++ option_shell = "/bin/sh"; + + config_file = weston_config_get_name_from_env(); + config = weston_config_parse(config_file); +@@ -3148,6 +3160,7 @@ int main(int argc, char *argv[]) + weston_config_section_get_string(s, "font", &option_font, "monospace"); + weston_config_section_get_int(s, "font-size", &option_font_size, 14); + weston_config_section_get_string(s, "term", &option_term, "xterm"); ++ weston_config_section_get_string(s, "command", &option_command, NULL); + weston_config_destroy(config); + + if (parse_options(terminal_options, +@@ -3157,7 +3170,9 @@ int main(int argc, char *argv[]) + " --maximized or -m\n" + " --font=NAME\n" + " --font-size=SIZE\n" +- " --shell=NAME\n", argv[0]); ++ " --shell=NAME\n" ++ " --cwd=PATH\n" ++ " --command=CMDLINE\n", argv[0]); + return 1; + } + +@@ -3178,6 +3193,13 @@ int main(int argc, char *argv[]) + + wl_list_init(&terminal_list); + terminal = terminal_create(d); ++ ++ if (option_cwd) { ++ if(chdir(option_cwd) == -1) ++ fprintf(stderr, "failed to changing directory as %s: %m\n", ++ option_cwd); ++ } ++ + if (terminal_run(terminal, option_shell)) + exit(EXIT_FAILURE); + diff --git a/packages/wayland/weston/profile.d/04-weston.conf b/packages/wayland/weston/profile.d/04-weston.conf index f175f0973..9d3df982c 100644 --- a/packages/wayland/weston/profile.d/04-weston.conf +++ b/packages/wayland/weston/profile.d/04-weston.conf @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-2.0 # Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) +export SDL_AUDIODRIVER=alsa +export SDL_VIDEODRIVER=wayland export WAYLAND_DISPLAY=wayland-1 +export XKB_CONFIG_ROOT=/usr/share/X11/xkb export XDG_RUNTIME_DIR=/var/run/0-runtime-dir diff --git a/packages/wayland/weston/scripts/weston-config b/packages/wayland/weston/scripts/weston-config index db28264db..5c02b039d 100755 --- a/packages/wayland/weston/scripts/weston-config +++ b/packages/wayland/weston/scripts/weston-config @@ -11,5 +11,5 @@ if [ ! -d "$XDG_RUNTIME_DIR" ]; then fi if [ ! -f /storage/.config/weston.ini ]; then - cp /usr/share/weston/weston.ini /storage/.config/weston.ini + cp /usr/share/weston/kiosk.ini /storage/.config/weston.ini fi diff --git a/packages/wayland/weston/system.d/weston.service b/packages/wayland/weston/system.d/weston.service index a776af3df..ff6a6b3eb 100644 --- a/packages/wayland/weston/system.d/weston.service +++ b/packages/wayland/weston/system.d/weston.service @@ -11,7 +11,7 @@ WorkingDirectory=/storage ExecStartPre=-/usr/lib/weston/weston-config ExecStart=/usr/bin/weston --tty=1 --log=/var/log/weston.log Restart=always -RestartSec=10 +RestartSec=2 [Install] Alias=display-manager.service diff --git a/packages/x11/data/xkeyboard-config/package.mk b/packages/x11/data/xkeyboard-config/package.mk index aec5c7c58..11750b8eb 100644 --- a/packages/x11/data/xkeyboard-config/package.mk +++ b/packages/x11/data/xkeyboard-config/package.mk @@ -13,7 +13,8 @@ PKG_LONGDESC="X keyboard extension data files." PKG_TOOLCHAIN="autotools" configure_package() { - if [ "${DISPLAYSERVER}" = "x11" ]; then + if [ "${DISPLAYSERVER}" = "x11" ] || \ + [ "${DISPLAYSERVER}" = "wl" ]; then PKG_DEPENDS_TARGET+=" xkbcomp" fi } @@ -24,10 +25,11 @@ pre_configure_target() { --disable-runtime-deps \ --enable-nls \ --disable-rpath \ - --datadir=/usr/lib \ + --datadir=${XORG_PATH_XKB} \ --with-gnu-ld" - if [ "${DISPLAYSERVER}" = "x11" ]; then + if [ "${DISPLAYSERVER}" = "x11" ] || \ + [ "${DISPLAYSERVER}" = "wl" ]; then PKG_CONFIGURE_OPTS_TARGET+=" XKBCOMP=/usr/bin/xkbcomp \ --with-xkb-base=${XORG_PATH_XKB} \ --with-xkb-rules-symlink=xorg" diff --git a/packages/x11/data/xkeyboard-config/patches/xkeyboard-config-995.01-2.36-fix-xkb-base-path.patch b/packages/x11/data/xkeyboard-config/patches/xkeyboard-config-995.01-2.36-fix-xkb-base-path.patch new file mode 100644 index 000000000..ab2682ae1 --- /dev/null +++ b/packages/x11/data/xkeyboard-config/patches/xkeyboard-config-995.01-2.36-fix-xkb-base-path.patch @@ -0,0 +1,15 @@ +--- /meson.build ++++ /meson.build +@@ -4,7 +4,10 @@ + meson_version: '>= 0.54.0') + + dir_data = join_paths(get_option('prefix'), get_option('datadir')) +-dir_xkb_base = join_paths(dir_data, 'X11', 'xkb') ++dir_xkb_base = get_option('xkb-base') ++if dir_xkb_base == '' ++ dir_xkb_base = join_paths(dir_data, 'X11', 'xkb') ++endif + dir_xkb_rules = join_paths(dir_xkb_base, 'rules') + dir_man7 = join_paths(get_option('prefix'), get_option('mandir'), 'man7') + dir_pkgconfig = join_paths(dir_data, 'pkgconfig') + diff --git a/packages/x11/lib/libX11/package.mk b/packages/x11/lib/libX11/package.mk index f4ad01f4c..823aeda31 100644 --- a/packages/x11/lib/libX11/package.mk +++ b/packages/x11/lib/libX11/package.mk @@ -13,7 +13,7 @@ PKG_LONGDESC="LibX11 is the main X11 library containing all the client-side code PKG_TOOLCHAIN="autotools" PKG_CONFIGURE_OPTS_TARGET="--disable-loadable-i18n \ - --disable-loadable-xcursor \ + --enable-loadable-xcursor \ --enable-xthreads \ --disable-xcms \ --enable-xlocale \ diff --git a/packages/x11/lib/libXext/package.mk b/packages/x11/lib/libXext/package.mk index d18384df1..3bc075dac 100644 --- a/packages/x11/lib/libXext/package.mk +++ b/packages/x11/lib/libXext/package.mk @@ -3,13 +3,13 @@ # Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="libXext" -PKG_VERSION="1.3.4" -PKG_SHA256="59ad6fcce98deaecc14d39a672cf218ca37aba617c9a0f691cac3bcd28edf82b" +PKG_VERSION="c6eded76e212419518bd955cad58c96b8653840e" PKG_LICENSE="OSS" -PKG_SITE="http://www.X.org" -PKG_URL="http://xorg.freedesktop.org/archive/individual/lib/${PKG_NAME}-${PKG_VERSION}.tar.bz2" +PKG_SITE="https://gitlab.freedesktop.org/xorg/lib/libxext" +PKG_URL="${PKG_SITE}.git" PKG_DEPENDS_TARGET="toolchain util-macros libX11" PKG_LONGDESC="LibXext provides an X Window System client interface to several extensions to the X protocol." +PKG_TOOLCHAIN="autotools" PKG_CONFIGURE_OPTS_TARGET="--enable-malloc0returnsnull --without-xmlto" diff --git a/packages/x11/lib/libXi/package.mk b/packages/x11/lib/libXi/package.mk index 4db930fe4..1fb0d20f2 100644 --- a/packages/x11/lib/libXi/package.mk +++ b/packages/x11/lib/libXi/package.mk @@ -23,6 +23,10 @@ PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared \ --without-asciidoc \ --with-gnu-ld" +pre_configure_target() { + TARGET_LDFLAGS="${LDFLAGS} -lXext" +} + post_configure_target() { libtool_remove_rpath libtool } diff --git a/packages/x11/lib/libXinerama/package.mk b/packages/x11/lib/libXinerama/package.mk index d76f15d64..897f53cdd 100644 --- a/packages/x11/lib/libXinerama/package.mk +++ b/packages/x11/lib/libXinerama/package.mk @@ -11,7 +11,7 @@ PKG_URL="http://xorg.freedesktop.org/archive/individual/lib/${PKG_NAME}-${PKG_VE 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="--disable-static --enable-shared --enable-malloc0returnsnull" post_configure_target() { libtool_remove_rpath libtool diff --git a/packages/x11/lib/libXrender/package.mk b/packages/x11/lib/libXrender/package.mk index 623621040..b23ba5aad 100644 --- a/packages/x11/lib/libXrender/package.mk +++ b/packages/x11/lib/libXrender/package.mk @@ -12,7 +12,7 @@ PKG_DEPENDS_TARGET="toolchain util-macros libX11" PKG_LONGDESC="The X Rendering Extension introduces digital image composition within the X Window System." PKG_BUILD_FLAGS="+pic" -PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared --enable-malloc0returnsnull" +PKG_CONFIGURE_OPTS_TARGET="--disable-static --enable-shared --enable-malloc0returnsnull" post_configure_target() { libtool_remove_rpath libtool diff --git a/packages/x11/lib/libXtst/package.mk b/packages/x11/lib/libXtst/package.mk index 44e3624ad..78f831090 100644 --- a/packages/x11/lib/libXtst/package.mk +++ b/packages/x11/lib/libXtst/package.mk @@ -3,16 +3,20 @@ # Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="libXtst" -PKG_VERSION="1.2.3" -PKG_SHA256="4655498a1b8e844e3d6f21f3b2c4e2b571effb5fd83199d428a6ba7ea4bf5204" +PKG_VERSION="14a44d0e3e6c3d9e757e2fdd143587efe532f1e9" PKG_LICENSE="OSS" -PKG_SITE="http://www.X.org" -PKG_URL="http://xorg.freedesktop.org/archive/individual/lib/${PKG_NAME}-${PKG_VERSION}.tar.bz2" +PKG_SITE="https://gitlab.freedesktop.org/xorg/lib/libxtst" +PKG_URL="${PKG_SITE}.git" PKG_DEPENDS_TARGET="toolchain util-macros libXext libXi libX11" PKG_LONGDESC="The Xtst Library" +PKG_TOOLCHAIN="autotools" PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared --with-gnu-ld --without-xmlto" +pre_configure_target() { + CFLAGS="${CFLAGS} -fPIC" +} + post_configure_target() { libtool_remove_rpath libtool } diff --git a/packages/x11/libXcursor/package.mk b/packages/x11/libXcursor/package.mk new file mode 100644 index 000000000..3649bb06b --- /dev/null +++ b/packages/x11/libXcursor/package.mk @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="libXcursor" +PKG_VERSION="1.2.1" +PKG_SHA256="46c143731610bafd2070159a844571b287ac26192537d047a39df06155492104" +PKG_LICENSE="OSS" +PKG_SITE="http://www.X.org" +PKG_URL="https://xorg.freedesktop.org/archive/individual/lib/libXcursor-${PKG_VERSION}.tar.xz" +PKG_DEPENDS_TARGET="toolchain libX11 libXfixes libXrender" +PKG_LONGDESC="X11 Cursor management library.s" +PKG_BUILD_FLAGS="+pic -sysroot" + +post_configure_target() { + libtool_remove_rpath libtool +} diff --git a/packages/x11/xserver/xorg-server/package.mk b/packages/x11/xserver/xorg-server/package.mk index fc0460883..1b8bf70d7 100644 --- a/packages/x11/xserver/xorg-server/package.mk +++ b/packages/x11/xserver/xorg-server/package.mk @@ -3,19 +3,28 @@ # Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="xorg-server" -PKG_VERSION="21.1.3" -PKG_SHA256="8dfd3d74ac18d32c821110b5231f31b66ada2de34f410012758a60ecb45f9feb" +PKG_VERSION="79c572f" PKG_LICENSE="OSS" -PKG_SITE="http://www.X.org" -PKG_URL="https://github.com/freedesktop/xorg-xserver/archive/refs/tags/${PKG_NAME}-${PKG_VERSION}.tar.gz" +PKG_SITE="https://github.com/freedesktop/xorg-xserver" +PKG_URL="${PKG_SITE}.git" PKG_DEPENDS_TARGET="toolchain util-macros font-util xorgproto libpciaccess libX11 libXfont2 libXinerama libxcvt libxshmfence libxkbfile libdrm openssl freetype pixman systemd xorg-launch-helper" PKG_NEED_UNPACK="$(get_pkg_directory xf86-video-nvidia) $(get_pkg_directory xf86-video-nvidia-legacy)" PKG_LONGDESC="X.Org Server is the free and open-source implementation of the X Window System display server." get_graphicdrivers -PKG_MESON_OPTS_TARGET="-Dxorg=true \ - -Dxephyr=false \ +if [ "${DISPLAYSERVER}" = "wl" ] +then +PKG_DEPENDS_TARGET+=" wayland libglvnd" +PKG_MESON_OPTS_TARGET+=" -Dxorg=false \ + -Dxwayland=true \ + -Dglamor=true" +else +PKG_MESON_OPTS_TARGET+=" -Dxorg=true \ + -Dxwayland=false" +fi + +PKG_MESON_OPTS_TARGET+=" -Dxephyr=false \ -Dxnest=false \ -Dxvfb=false \ -Dxwin=false \ diff --git a/packages/x11/xserver/xorg-server/patches/xorg-server-100.03-render-fix-build-with-gcc12.patch b/packages/x11/xserver/xorg-server/patches/xorg-server-100.03-render-fix-build-with-gcc12.patch deleted file mode 100644 index 907c18bb7..000000000 --- a/packages/x11/xserver/xorg-server/patches/xorg-server-100.03-render-fix-build-with-gcc12.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 53173fdab492f0f638f6616fcf01af0b9ea6338d Mon Sep 17 00:00:00 2001 -From: Olivier Fourdan -Date: Thu, 20 Jan 2022 10:20:38 +0100 -Subject: [PATCH] render: Fix build with gcc 12 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The xserver fails to compile with the latest gcc 12: - - render/picture.c: In function ‘CreateSolidPicture’: - render/picture.c:874:26: error: array subscript ‘union _SourcePict[0]’ is partly outside array bounds of ‘unsigned char[16]’ [-Werror=array-bounds] - 874 | pPicture->pSourcePict->type = SourcePictTypeSolidFill; - | ^~ - render/picture.c:868:45: note: object of size 16 allocated by ‘malloc’ - 868 | pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictSolidFill)); - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - render/picture.c: In function ‘CreateLinearGradientPicture’: - render/picture.c:906:26: error: array subscript ‘union _SourcePict[0]’ is partly outside array bounds of ‘unsigned char[32]’ [-Werror=array-bounds] - 906 | pPicture->pSourcePict->linear.type = SourcePictTypeLinear; - | ^~ - render/picture.c:899:45: note: object of size 32 allocated by ‘malloc’ - 899 | pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictLinearGradient)); - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - render/picture.c: In function ‘CreateConicalGradientPicture’: - render/picture.c:989:26: error: array subscript ‘union _SourcePict[0]’ is partly outside array bounds of ‘unsigned char[32]’ [-Werror=array-bounds] - 989 | pPicture->pSourcePict->conical.type = SourcePictTypeConical; - | ^~ - render/picture.c:982:45: note: object of size 32 allocated by ‘malloc’ - 982 | pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictConicalGradient)); - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - cc1: some warnings being treated as errors - ninja: build stopped: subcommand failed. - -This is because gcc 12 has become stricter and raises a warning now. - -Fix the warning/error by allocating enough memory to store the union -struct. - -Signed-off-by: Olivier Fourdan -Acked-by: Michel Dänzer -Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1256 -(cherry picked from commit c6b0dcb82d4db07a2f32c09a8c09c85a5f57248e) ---- - render/picture.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/render/picture.c b/render/picture.c -index afa0d258f..2be4b1954 100644 ---- a/render/picture.c -+++ b/render/picture.c -@@ -865,7 +865,7 @@ CreateSolidPicture(Picture pid, xRenderColor * color, int *error) - } - - pPicture->id = pid; -- pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictSolidFill)); -+ pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(SourcePict)); - if (!pPicture->pSourcePict) { - *error = BadAlloc; - free(pPicture); -@@ -896,7 +896,7 @@ CreateLinearGradientPicture(Picture pid, xPointFixed * p1, xPointFixed * p2, - } - - pPicture->id = pid; -- pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictLinearGradient)); -+ pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(SourcePict)); - if (!pPicture->pSourcePict) { - *error = BadAlloc; - free(pPicture); -@@ -936,7 +936,7 @@ CreateRadialGradientPicture(Picture pid, xPointFixed * inner, - } - - pPicture->id = pid; -- pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictRadialGradient)); -+ pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(SourcePict)); - if (!pPicture->pSourcePict) { - *error = BadAlloc; - free(pPicture); -@@ -979,7 +979,7 @@ CreateConicalGradientPicture(Picture pid, xPointFixed * center, xFixed angle, - } - - pPicture->id = pid; -- pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictConicalGradient)); -+ pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(SourcePict)); - if (!pPicture->pSourcePict) { - *error = BadAlloc; - free(pPicture); --- -GitLab - diff --git a/projects/PC/devices/X86_64/device.config b/projects/PC/devices/X86_64/device.config index deb612ef6..25ed45a0f 100644 --- a/projects/PC/devices/X86_64/device.config +++ b/projects/PC/devices/X86_64/device.config @@ -1,3 +1,12 @@ DEVICE_BRIGHTNESS="100" SPLASH_LOADER="imagemagick" -UI_SERVICE="systemctl start emustation.service" + +# FREQ Governors +CPU_FREQ=("/sys/devices/system/cpu/cpufreq/policy0" \ + "/sys/devices/system/cpu/cpufreq/policy1" \ + "/sys/devices/system/cpu/cpufreq/policy2" \ + "/sys/devices/system/cpu/cpufreq/policy3") + +# Affinity +SLOW_CORES="taskset -c 0-3" +FAST_CORES="${SLOW_CORES}" diff --git a/projects/PC/devices/X86_64/linux/linux.x86_64.conf b/projects/PC/devices/X86_64/linux/linux.x86_64.conf index b3586f968..495c8c35a 100644 --- a/projects/PC/devices/X86_64/linux/linux.x86_64.conf +++ b/projects/PC/devices/X86_64/linux/linux.x86_64.conf @@ -2629,7 +2629,7 @@ CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set # CONFIG_TOUCHSCREEN_EXC3000 is not set # CONFIG_TOUCHSCREEN_FUJITSU is not set -# CONFIG_TOUCHSCREEN_GOODIX is not set +CONFIG_TOUCHSCREEN_GOODIX=y # CONFIG_TOUCHSCREEN_HIDEEP is not set # CONFIG_TOUCHSCREEN_HYCON_HY46XX is not set # CONFIG_TOUCHSCREEN_ILI210X is not set diff --git a/projects/PC/devices/X86_64/options b/projects/PC/devices/X86_64/options index 7ca8bc9ae..1bef7acc4 100644 --- a/projects/PC/devices/X86_64/options +++ b/projects/PC/devices/X86_64/options @@ -1,30 +1,113 @@ -# kernel command line - EXTRA_CMDLINE="quiet console=tty0 ssh consoleblank=0 systemd.show_status=0 loglevel=0 panic=20" + # kernel command line + EXTRA_CMDLINE="quiet console=tty0 ssh consoleblank=0 systemd.show_status=0 loglevel=0 panic=20" -# Partition label - PARTITION_TABLE="msdos" + # Partition label + PARTITION_TABLE="msdos" -# OpenGL(X) implementation to use (mesa / no) - OPENGL="mesa" + # OpenGL(X) implementation to use (mesa / no) + OPENGL="mesa" -# OpenGL-ES implementation to use (mesa / no) - OPENGLES="no" + # OpenGL-ES implementation to use (mesa / no) + OPENGLES="mesa" -# Vulkan implementation to use (vulkan-loader / no) - VULKAN="vulkan-loader" + # Vulkan implementation to use (vulkan-loader / no) + VULKAN="vulkan-loader" -# VULKAN_SUPPORT - VULKAN_SUPPORT="yes" + # VULKAN_SUPPORT + VULKAN_SUPPORT="yes" -# Displayserver to use (weston / x11 / no) - DISPLAYSERVER="x11" + # Displayserver to use (weston / x11 / no) + DISPLAYSERVER="wl" -# Windowmanager to use (fluxbox / weston / no) -# WINDOWMANAGER="fluxbox" + # Windowmanager to use (fluxbox / weston / no) + WINDOWMANAGER="weston" -# Mesa 3D Graphic drivers to use (all / crocus,i915,iris,r300,r600,radeonsi,vmware,virtio) -# Space separated list is supported, -# e.g. GRAPHIC_DRIVERS="crocus i915 iris r300 r600 radeonsi vmware virtio" - GRAPHIC_DRIVERS="crocus i915 iris r300 r600 radeonsi vmware virtio" + # Mesa 3D Graphic drivers to use (all / crocus,i915,iris,r300,r600,radeonsi,vmware,virtio) + # Space separated list is supported, + # e.g. GRAPHIC_DRIVERS="crocus i915 iris r300 r600 radeonsi vmware virtio" + GRAPHIC_DRIVERS="crocus i915 iris r300 r600 radeonsi vmware virtio" -#VAAPI_SUPPORT="yes" + # additional packages to install + # ADDITIONAL_PACKAGES="" + + # 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" #rockchip-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="" + + # build and install driver addons (yes / no) + DRIVER_ADDONS_SUPPORT="no" + + # driver addons to install: + # for a list of additinoal drivers see packages/linux-driver-addons + # Space separated list is supported, + DRIVER_ADDONS="" + + # debug tty path + DEBUG_TTY="/dev/ttyFIQ0" + + # build and install PulseAudio support (yes / no) + PULSEAUDIO_SUPPORT="yes" + + # build and install bluetooth support (yes / no) + BLUETOOTH_SUPPORT="no" + + # build and install Avahi (Zeroconf) daemon (yes / no) + AVAHI_DAEMON="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="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="yes" + + # build with swap support (yes / no) + SWAP_SUPPORT="yes" + + # swap support enabled per default (yes / no) + SWAP_ENABLED_DEFAULT="yes" + + # swapfile size if SWAP_SUPPORT=yes in MB + SWAPFILESIZE="1024" + + # cron support (yes / no) + CRON_SUPPORT="no" + + # Settings package name - blank if not required + DISTRO_PKG_SETTINGS="" + + # htop tool (yes / no) + HTOP_TOOL="yes" diff --git a/projects/PC/devices/handheld/device.config b/projects/PC/devices/handheld/device.config new file mode 100644 index 000000000..9b52ea21b --- /dev/null +++ b/projects/PC/devices/handheld/device.config @@ -0,0 +1,36 @@ +DEVICE_VOLUMECTL=true +DEVICE_AUDIO_MIXER="PCM" +DEVICE_VOL_MODIFIER="ABS_RZ" +UI_SERVICE="weston.service" + +DEVICE_BRIGHTNESS="125" +SPLASH_LOADER="plymouth" + +# FREQ Governors +CPU_FREQ=("/sys/devices/system/cpu/cpufreq/policy0" \ + "/sys/devices/system/cpu/cpufreq/policy1" \ + "/sys/devices/system/cpu/cpufreq/policy2" \ + "/sys/devices/system/cpu/cpufreq/policy3") + +# Affinity +SLOW_CORES="taskset -c 0-3" +FAST_CORES="${SLOW_CORES}" + +# Controller +DEVICE_BTN_SOUTH="0" +DEVICE_BTN_EAST="1" +DEVICE_BTN_NORTH="3" +DEVICE_BTN_WEST="2" +DEVICE_BTN_TL="4" +DEVICE_BTN_TR="5" +#DEVICE_BTN_TL2="" +#DEVICE_BTN_TR2="" +DEVICE_BTN_SELECT="6" +DEVICE_BTN_START="7" +#DEVICE_BTN_MODE="" +DEVICE_BTN_THUMBL="9" +DEVICE_BTN_THUMBR="10" +#DEVICE_BTN_DPAD_UP="" +#DEVICE_BTN_DPAD_DOWN="" +#DEVICE_BTN_DPAD_LEFT="" +#DEVICE_BTN_DPAD_RIGHT="" diff --git a/projects/PC/devices/handheld/device.init b/projects/PC/devices/handheld/device.init new file mode 100644 index 000000000..e69de29bb diff --git a/projects/PC/devices/handheld/linux/linux.x86_64.conf b/projects/PC/devices/handheld/linux/linux.x86_64.conf new file mode 100644 index 000000000..7840014d4 --- /dev/null +++ b/projects/PC/devices/handheld/linux/linux.x86_64.conf @@ -0,0 +1,6974 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/x86 5.19.4 Kernel Configuration +# +CONFIG_CC_VERSION_TEXT="x86_64-libreelec-linux-gnu-gcc-10.3.0 (GCC) 10.3.0" +CONFIG_CC_IS_GCC=y +CONFIG_GCC_VERSION=100300 +CONFIG_CLANG_VERSION=0 +CONFIG_AS_IS_GNU=y +CONFIG_AS_VERSION=23800 +CONFIG_LD_IS_BFD=y +CONFIG_LD_VERSION=23800 +CONFIG_LLD_VERSION=0 +CONFIG_CC_CAN_LINK=y +CONFIG_CC_CAN_LINK_STATIC=y +CONFIG_CC_HAS_ASM_GOTO=y +CONFIG_CC_HAS_ASM_INLINE=y +CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y +CONFIG_PAHOLE_VERSION=0 +CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_TABLE_SORT=y +CONFIG_THREAD_INFO_IN_TASK=y + +# +# General setup +# +CONFIG_INIT_ENV_ARG_LIMIT=32 +# CONFIG_COMPILE_TEST is not set +# CONFIG_WERROR is not set +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_BUILD_SALT="" +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_BZIP2=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y +CONFIG_HAVE_KERNEL_LZO=y +CONFIG_HAVE_KERNEL_LZ4=y +CONFIG_HAVE_KERNEL_ZSTD=y +# CONFIG_KERNEL_GZIP is not set +# CONFIG_KERNEL_BZIP2 is not set +# CONFIG_KERNEL_LZMA is not set +CONFIG_KERNEL_XZ=y +# CONFIG_KERNEL_LZO is not set +# CONFIG_KERNEL_LZ4 is not set +# CONFIG_KERNEL_ZSTD is not set +CONFIG_DEFAULT_INIT="" +CONFIG_DEFAULT_HOSTNAME="@DEVICENAME@" +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_SYSVIPC_COMPAT=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +# CONFIG_WATCH_QUEUE is not set +CONFIG_CROSS_MEMORY_ATTACH=y +# CONFIG_USELIB is not set +# CONFIG_AUDIT is not set +CONFIG_HAVE_ARCH_AUDITSYSCALL=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_MIGRATION=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_DOMAIN_HIERARCHY=y +CONFIG_GENERIC_MSI_IRQ=y +CONFIG_GENERIC_MSI_IRQ_DOMAIN=y +CONFIG_IRQ_MSI_IOMMU=y +CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y +CONFIG_GENERIC_IRQ_RESERVATION_MODE=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_SPARSE_IRQ=y +# CONFIG_GENERIC_IRQ_DEBUGFS is not set +# end of IRQ subsystem + +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_ARCH_CLOCKSOURCE_INIT=y +CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y +CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100 +# end of Timers subsystem + +CONFIG_BPF=y +CONFIG_HAVE_EBPF_JIT=y +CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y + +# +# BPF subsystem +# +CONFIG_BPF_SYSCALL=y +# CONFIG_BPF_JIT is not set +# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set +# CONFIG_BPF_PRELOAD is not set +# end of BPF subsystem + +CONFIG_PREEMPT_VOLUNTARY_BUILD=y +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_VOLUNTARY=y +# CONFIG_PREEMPT is not set +# CONFIG_PREEMPT_DYNAMIC is not set +# CONFIG_SCHED_CORE is not set + +# +# CPU/Task time and stats accounting +# +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set +# CONFIG_IRQ_TIME_ACCOUNTING is not set +CONFIG_HAVE_SCHED_AVG_IRQ=y +CONFIG_BSD_PROCESS_ACCT=y +# CONFIG_BSD_PROCESS_ACCT_V3 is not set +# CONFIG_TASKSTATS is not set +# CONFIG_PSI is not set +# end of CPU/Task time and stats accounting + +CONFIG_CPU_ISOLATION=y + +# +# RCU Subsystem +# +CONFIG_TREE_RCU=y +# CONFIG_RCU_EXPERT is not set +CONFIG_SRCU=y +CONFIG_TREE_SRCU=y +CONFIG_TASKS_RCU_GENERIC=y +CONFIG_TASKS_RUDE_RCU=y +CONFIG_TASKS_TRACE_RCU=y +CONFIG_RCU_STALL_COMMON=y +CONFIG_RCU_NEED_SEGCBLIST=y +# end of RCU Subsystem + +CONFIG_IKCONFIG=m +CONFIG_IKCONFIG_PROC=y +# CONFIG_IKHEADERS is not set +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 +# CONFIG_PRINTK_INDEX is not set +CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y + +# +# Scheduler features +# +# CONFIG_UCLAMP_TASK is not set +# end of Scheduler features + +CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y +CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y +CONFIG_CC_HAS_INT128=y +CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" +CONFIG_ARCH_SUPPORTS_INT128=y +CONFIG_NUMA_BALANCING=y +CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y +CONFIG_CGROUPS=y +CONFIG_PAGE_COUNTER=y +CONFIG_MEMCG=y +CONFIG_MEMCG_SWAP=y +CONFIG_MEMCG_KMEM=y +CONFIG_BLK_CGROUP=y +CONFIG_CGROUP_WRITEBACK=y +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_CFS_BANDWIDTH=y +# CONFIG_RT_GROUP_SCHED is not set +# CONFIG_CGROUP_PIDS is not set +# CONFIG_CGROUP_RDMA is not set +CONFIG_CGROUP_FREEZER=y +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_BPF=y +# CONFIG_CGROUP_MISC is not set +# CONFIG_CGROUP_DEBUG is not set +CONFIG_SOCK_CGROUP_DATA=y +CONFIG_NAMESPACES=y +CONFIG_UTS_NS=y +CONFIG_TIME_NS=y +CONFIG_IPC_NS=y +# CONFIG_USER_NS is not set +CONFIG_PID_NS=y +CONFIG_NET_NS=y +# CONFIG_CHECKPOINT_RESTORE is not set +# CONFIG_SCHED_AUTOGROUP is not set +# CONFIG_SYSFS_DEPRECATED is not set +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="@INITRAMFS_SOURCE@" +CONFIG_INITRAMFS_ROOT_UID=0 +CONFIG_INITRAMFS_ROOT_GID=0 +# CONFIG_RD_GZIP is not set +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZO is not set +# CONFIG_RD_LZ4 is not set +CONFIG_RD_ZSTD=y +# CONFIG_INITRAMFS_COMPRESSION_ZSTD is not set +CONFIG_INITRAMFS_COMPRESSION_NONE=y +CONFIG_BOOT_CONFIG=y +# CONFIG_BOOT_CONFIG_EMBED is not set +# CONFIG_INITRAMFS_PRESERVE_MTIME is not set +CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_LD_ORPHAN_WARN=y +CONFIG_SYSCTL=y +CONFIG_HAVE_UID16=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_HAVE_PCSPKR_PLATFORM=y +CONFIG_EXPERT=y +# CONFIG_UID16 is not set +CONFIG_MULTIUSER=y +# CONFIG_SGETMASK_SYSCALL is not set +# CONFIG_SYSFS_SYSCALL is not set +CONFIG_FHANDLE=y +CONFIG_POSIX_TIMERS=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +# CONFIG_PCSPKR_PLATFORM is not set +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_FUTEX_PI=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_IO_URING=y +CONFIG_ADVISE_SYSCALLS=y +CONFIG_MEMBARRIER=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y +CONFIG_KALLSYMS_BASE_RELATIVE=y +CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y +CONFIG_KCMP=y +CONFIG_RSEQ=y +# CONFIG_DEBUG_RSEQ is not set +# CONFIG_EMBEDDED is not set +CONFIG_HAVE_PERF_EVENTS=y +# CONFIG_PC104 is not set + +# +# Kernel Performance Events And Counters +# +CONFIG_PERF_EVENTS=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +# end of Kernel Performance Events And Counters + +CONFIG_SYSTEM_DATA_VERIFICATION=y +# CONFIG_PROFILING is not set +CONFIG_TRACEPOINTS=y +# end of General setup + +CONFIG_64BIT=y +CONFIG_X86_64=y +CONFIG_X86=y +CONFIG_INSTRUCTION_DECODER=y +CONFIG_OUTPUT_FORMAT="elf64-x86-64" +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_MMU=y +CONFIG_ARCH_MMAP_RND_BITS_MIN=28 +CONFIG_ARCH_MMAP_RND_BITS_MAX=32 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ARCH_HAS_CPU_RELAX=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_NR_GPIO=1024 +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_AUDIT_ARCH=y +CONFIG_HAVE_INTEL_TXT=y +CONFIG_X86_64_SMP=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_PGTABLE_LEVELS=4 +CONFIG_CC_HAS_SANE_STACKPROTECTOR=y + +# +# Processor type and features +# +CONFIG_SMP=y +CONFIG_X86_FEATURE_NAMES=y +# CONFIG_X86_X2APIC is not set +CONFIG_X86_MPPARSE=y +# CONFIG_GOLDFISH is not set +# CONFIG_X86_CPU_RESCTRL is not set +# CONFIG_X86_EXTENDED_PLATFORM is not set +CONFIG_X86_INTEL_LPSS=y +CONFIG_X86_AMD_PLATFORM_DEVICE=y +CONFIG_IOSF_MBI=y +# CONFIG_IOSF_MBI_DEBUG is not set +CONFIG_SCHED_OMIT_FRAME_POINTER=y +CONFIG_HYPERVISOR_GUEST=y +CONFIG_PARAVIRT=y +# CONFIG_PARAVIRT_DEBUG is not set +CONFIG_PARAVIRT_SPINLOCKS=y +CONFIG_X86_HV_CALLBACK_VECTOR=y +# CONFIG_XEN is not set +CONFIG_KVM_GUEST=y +CONFIG_ARCH_CPUIDLE_HALTPOLL=y +# CONFIG_PVH is not set +CONFIG_PARAVIRT_TIME_ACCOUNTING=y +CONFIG_PARAVIRT_CLOCK=y +# CONFIG_JAILHOUSE_GUEST is not set +# CONFIG_ACRN_GUEST is not set +# CONFIG_MK8 is not set +# CONFIG_MPSC is not set +# CONFIG_MCORE2 is not set +# CONFIG_MATOM is not set +CONFIG_GENERIC_CPU=y +CONFIG_X86_INTERNODE_CACHE_SHIFT=6 +CONFIG_X86_L1_CACHE_SHIFT=6 +CONFIG_X86_TSC=y +CONFIG_X86_CMPXCHG64=y +CONFIG_X86_CMOV=y +CONFIG_X86_MINIMUM_CPU_FAMILY=64 +CONFIG_X86_DEBUGCTLMSR=y +CONFIG_IA32_FEAT_CTL=y +CONFIG_X86_VMX_FEATURE_NAMES=y +# CONFIG_PROCESSOR_SELECT is not set +CONFIG_CPU_SUP_INTEL=y +CONFIG_CPU_SUP_AMD=y +CONFIG_CPU_SUP_HYGON=y +CONFIG_CPU_SUP_CENTAUR=y +CONFIG_CPU_SUP_ZHAOXIN=y +CONFIG_HPET_TIMER=y +CONFIG_HPET_EMULATE_RTC=y +CONFIG_DMI=y +CONFIG_GART_IOMMU=y +# CONFIG_MAXSMP is not set +CONFIG_NR_CPUS_RANGE_BEGIN=2 +CONFIG_NR_CPUS_RANGE_END=512 +CONFIG_NR_CPUS_DEFAULT=64 +CONFIG_NR_CPUS=16 +# CONFIG_SCHED_CLUSTER is not set +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_MC_PRIO=y +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_IO_APIC=y +# CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set +# CONFIG_X86_MCE is not set + +# +# Performance monitoring +# +CONFIG_PERF_EVENTS_INTEL_UNCORE=y +CONFIG_PERF_EVENTS_INTEL_RAPL=y +CONFIG_PERF_EVENTS_INTEL_CSTATE=y +CONFIG_PERF_EVENTS_AMD_POWER=y +CONFIG_PERF_EVENTS_AMD_UNCORE=y +# CONFIG_PERF_EVENTS_AMD_BRS is not set +# end of Performance monitoring + +CONFIG_X86_16BIT=y +CONFIG_X86_ESPFIX64=y +CONFIG_X86_VSYSCALL_EMULATION=y +CONFIG_X86_IOPL_IOPERM=y +CONFIG_MICROCODE=y +CONFIG_MICROCODE_INTEL=y +CONFIG_MICROCODE_AMD=y +CONFIG_MICROCODE_OLD_INTERFACE=y +# CONFIG_MICROCODE_LATE_LOADING is not set +CONFIG_X86_MSR=y +CONFIG_X86_CPUID=y +# CONFIG_X86_5LEVEL is not set +CONFIG_X86_DIRECT_GBPAGES=y +# CONFIG_X86_CPA_STATISTICS is not set +# CONFIG_AMD_MEM_ENCRYPT is not set +CONFIG_NUMA=y +# CONFIG_AMD_NUMA is not set +CONFIG_X86_64_ACPI_NUMA=y +# CONFIG_NUMA_EMU is not set +CONFIG_NODES_SHIFT=6 +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_PROC_KCORE_TEXT=y +CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 +# CONFIG_X86_PMEM_LEGACY is not set +CONFIG_X86_CHECK_BIOS_CORRUPTION=y +CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y +CONFIG_MTRR=y +CONFIG_MTRR_SANITIZER=y +CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 +CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 +CONFIG_X86_PAT=y +CONFIG_ARCH_USES_PG_UNCACHED=y +CONFIG_ARCH_RANDOM=y +CONFIG_X86_UMIP=y +CONFIG_CC_HAS_IBT=y +# CONFIG_X86_KERNEL_IBT is not set +CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y +CONFIG_X86_INTEL_TSX_MODE_OFF=y +# CONFIG_X86_INTEL_TSX_MODE_ON is not set +# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set +# CONFIG_X86_SGX is not set +CONFIG_EFI=y +CONFIG_EFI_STUB=y +CONFIG_EFI_MIXED=y +# CONFIG_HZ_100 is not set +# CONFIG_HZ_250 is not set +CONFIG_HZ_300=y +# CONFIG_HZ_1000 is not set +CONFIG_HZ=300 +CONFIG_SCHED_HRTICK=y +# CONFIG_KEXEC is not set +# CONFIG_KEXEC_FILE is not set +# CONFIG_CRASH_DUMP is not set +CONFIG_PHYSICAL_START=0x1000000 +CONFIG_RELOCATABLE=y +CONFIG_RANDOMIZE_BASE=y +CONFIG_X86_NEED_RELOCS=y +CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_DYNAMIC_MEMORY_LAYOUT=y +CONFIG_RANDOMIZE_MEMORY=y +CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0x0 +CONFIG_HOTPLUG_CPU=y +# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set +# CONFIG_DEBUG_HOTPLUG_CPU0 is not set +# CONFIG_COMPAT_VDSO is not set +CONFIG_LEGACY_VSYSCALL_XONLY=y +# CONFIG_LEGACY_VSYSCALL_NONE is not set +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE="root=/dev/ram0 rdinit=/init usbcore.autosuspend=-1" +# CONFIG_CMDLINE_OVERRIDE is not set +CONFIG_MODIFY_LDT_SYSCALL=y +# CONFIG_STRICT_SIGALTSTACK_SIZE is not set +CONFIG_HAVE_LIVEPATCH=y +# end of Processor type and features + +CONFIG_CC_HAS_RETURN_THUNK=y +CONFIG_SPECULATION_MITIGATIONS=y +CONFIG_PAGE_TABLE_ISOLATION=y +CONFIG_RETPOLINE=y +CONFIG_RETHUNK=y +CONFIG_CPU_UNRET_ENTRY=y +CONFIG_CPU_IBPB_ENTRY=y +CONFIG_CPU_IBRS_ENTRY=y +CONFIG_ARCH_HAS_ADD_PAGES=y +CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y + +# +# Power management and ACPI options +# +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +# CONFIG_SUSPEND_SKIP_SYNC is not set +# CONFIG_HIBERNATION is not set +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +# CONFIG_PM_AUTOSLEEP is not set +# CONFIG_PM_WAKELOCKS is not set +CONFIG_PM=y +CONFIG_PM_DEBUG=y +# CONFIG_PM_ADVANCED_DEBUG is not set +CONFIG_PM_TEST_SUSPEND=y +CONFIG_PM_SLEEP_DEBUG=y +# CONFIG_PM_TRACE_RTC is not set +CONFIG_PM_CLK=y +CONFIG_PM_GENERIC_DOMAINS=y +# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +CONFIG_PM_GENERIC_DOMAINS_SLEEP=y +# CONFIG_ENERGY_MODEL is not set +CONFIG_ARCH_SUPPORTS_ACPI=y +CONFIG_ACPI=y +CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y +CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y +CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y +# CONFIG_ACPI_DEBUGGER is not set +CONFIG_ACPI_SPCR_TABLE=y +# CONFIG_ACPI_FPDT is not set +CONFIG_ACPI_LPIT=y +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y +# CONFIG_ACPI_EC_DEBUGFS is not set +# CONFIG_ACPI_AC is not set +CONFIG_ACPI_BATTERY=y +CONFIG_ACPI_BUTTON=y +CONFIG_ACPI_VIDEO=y +CONFIG_ACPI_FAN=y +# CONFIG_ACPI_TAD is not set +# CONFIG_ACPI_DOCK is not set +CONFIG_ACPI_CPU_FREQ_PSS=y +CONFIG_ACPI_PROCESSOR_CSTATE=y +CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_CPPC_LIB=y +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_PROCESSOR_AGGREGATOR=y +CONFIG_ACPI_THERMAL=y +CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y +CONFIG_ACPI_TABLE_UPGRADE=y +# CONFIG_ACPI_TABLE_OVERRIDE_VIA_BUILTIN_INITRD is not set +# CONFIG_ACPI_DEBUG is not set +# CONFIG_ACPI_PCI_SLOT is not set +CONFIG_ACPI_CONTAINER=y +CONFIG_ACPI_HOTPLUG_IOAPIC=y +# CONFIG_ACPI_SBS is not set +# CONFIG_ACPI_HED is not set +# CONFIG_ACPI_CUSTOM_METHOD is not set +# CONFIG_ACPI_BGRT is not set +# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set +# CONFIG_ACPI_NFIT is not set +CONFIG_ACPI_NUMA=y +# CONFIG_ACPI_HMAT is not set +CONFIG_HAVE_ACPI_APEI=y +CONFIG_HAVE_ACPI_APEI_NMI=y +# CONFIG_ACPI_APEI is not set +# CONFIG_ACPI_DPTF is not set +# CONFIG_ACPI_CONFIGFS is not set +# CONFIG_ACPI_PFRUT is not set +CONFIG_ACPI_PCC=y +# CONFIG_PMIC_OPREGION is not set +CONFIG_X86_PM_TIMER=y +CONFIG_ACPI_PRMT=y + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +CONFIG_CPU_FREQ_GOV_COMMON=y +CONFIG_CPU_FREQ_STAT=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +# CONFIG_CPU_FREQ_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y + +# +# CPU frequency scaling drivers +# +CONFIG_X86_INTEL_PSTATE=y +CONFIG_X86_PCC_CPUFREQ=m +# CONFIG_X86_AMD_PSTATE is not set +CONFIG_X86_ACPI_CPUFREQ=y +CONFIG_X86_ACPI_CPUFREQ_CPB=y +CONFIG_X86_POWERNOW_K8=y +CONFIG_X86_AMD_FREQ_SENSITIVITY=m +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +CONFIG_X86_P4_CLOCKMOD=y + +# +# shared options +# +CONFIG_X86_SPEEDSTEP_LIB=y +# end of CPU Frequency scaling + +# +# CPU Idle +# +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y +# CONFIG_CPU_IDLE_GOV_TEO is not set +# CONFIG_CPU_IDLE_GOV_HALTPOLL is not set +CONFIG_HALTPOLL_CPUIDLE=y +# end of CPU Idle + +CONFIG_INTEL_IDLE=y +# end of Power management and ACPI options + +# +# Bus options (PCI etc.) +# +CONFIG_PCI_DIRECT=y +CONFIG_PCI_MMCONFIG=y +CONFIG_MMCONF_FAM10H=y +# CONFIG_PCI_CNB20LE_QUIRK is not set +# CONFIG_ISA_BUS is not set +CONFIG_ISA_DMA_API=y +CONFIG_AMD_NB=y +# end of Bus options (PCI etc.) + +# +# Binary Emulations +# +CONFIG_IA32_EMULATION=y +# CONFIG_X86_X32_ABI is not set +CONFIG_COMPAT_32=y +CONFIG_COMPAT=y +CONFIG_COMPAT_FOR_U64_ALIGNMENT=y +# end of Binary Emulations + +CONFIG_HAVE_KVM=y +# CONFIG_VIRTUALIZATION is not set +CONFIG_AS_AVX512=y +CONFIG_AS_SHA1_NI=y +CONFIG_AS_SHA256_NI=y +CONFIG_AS_TPAUSE=y + +# +# General architecture-dependent options +# +CONFIG_CRASH_CORE=y +CONFIG_HOTPLUG_SMT=y +CONFIG_GENERIC_ENTRY=y +CONFIG_KPROBES=y +CONFIG_JUMP_LABEL=y +# CONFIG_STATIC_KEYS_SELFTEST is not set +# CONFIG_STATIC_CALL_SELFTEST is not set +CONFIG_OPTPROBES=y +CONFIG_KPROBES_ON_FTRACE=y +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_ARCH_USE_BUILTIN_BSWAP=y +CONFIG_KRETPROBES=y +CONFIG_KRETPROBE_ON_RETHOOK=y +CONFIG_HAVE_IOREMAP_PROT=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_OPTPROBES=y +CONFIG_HAVE_KPROBES_ON_FTRACE=y +CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y +CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y +CONFIG_HAVE_NMI=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_ARCH_HAS_FORTIFY_SOURCE=y +CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_ARCH_HAS_SET_DIRECT_MAP=y +CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y +CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y +CONFIG_ARCH_WANTS_NO_INSTR=y +CONFIG_HAVE_ASM_MODVERSIONS=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_RSEQ=y +CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y +CONFIG_HAVE_USER_RETURN_NOTIFIER=y +CONFIG_HAVE_PERF_EVENTS_NMI=y +CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y +CONFIG_MMU_GATHER_TABLE_FREE=y +CONFIG_MMU_GATHER_RCU_TABLE_FREE=y +CONFIG_MMU_GATHER_MERGE_VMAS=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y +CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y +CONFIG_HAVE_CMPXCHG_LOCAL=y +CONFIG_HAVE_CMPXCHG_DOUBLE=y +CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y +CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y +CONFIG_HAVE_ARCH_SECCOMP=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_SECCOMP=y +CONFIG_SECCOMP_FILTER=y +# CONFIG_SECCOMP_CACHE_DEBUG is not set +CONFIG_HAVE_ARCH_STACKLEAK=y +CONFIG_HAVE_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR_STRONG=y +CONFIG_ARCH_SUPPORTS_LTO_CLANG=y +CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y +CONFIG_LTO_NONE=y +CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_CONTEXT_TRACKING_OFFSTACK=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MOVE_PUD=y +CONFIG_HAVE_MOVE_PMD=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y +CONFIG_HAVE_ARCH_HUGE_VMAP=y +CONFIG_HAVE_ARCH_HUGE_VMALLOC=y +CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y +CONFIG_HAVE_ARCH_SOFT_DIRTY=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_MODULES_USE_ELF_RELA=y +CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y +CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_HAVE_ARCH_MMAP_RND_BITS=y +CONFIG_HAVE_EXIT_THREAD=y +CONFIG_ARCH_MMAP_RND_BITS=28 +CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y +CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8 +CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y +CONFIG_PAGE_SIZE_LESS_THAN_64KB=y +CONFIG_PAGE_SIZE_LESS_THAN_256KB=y +CONFIG_HAVE_OBJTOOL=y +CONFIG_HAVE_JUMP_LABEL_HACK=y +CONFIG_HAVE_NOINSTR_HACK=y +CONFIG_HAVE_NOINSTR_VALIDATION=y +CONFIG_HAVE_UACCESS_VALIDATION=y +CONFIG_HAVE_STACK_VALIDATION=y +CONFIG_HAVE_RELIABLE_STACKTRACE=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_COMPAT_OLD_SIGACTION=y +CONFIG_COMPAT_32BIT_TIME=y +CONFIG_HAVE_ARCH_VMAP_STACK=y +CONFIG_VMAP_STACK=y +CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y +CONFIG_RANDOMIZE_KSTACK_OFFSET=y +# CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT is not set +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +CONFIG_STRICT_KERNEL_RWX=y +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y +CONFIG_STRICT_MODULE_RWX=y +CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y +CONFIG_ARCH_USE_MEMREMAP_PROT=y +# CONFIG_LOCK_EVENT_COUNTS is not set +CONFIG_ARCH_HAS_MEM_ENCRYPT=y +CONFIG_HAVE_STATIC_CALL=y +CONFIG_HAVE_STATIC_CALL_INLINE=y +CONFIG_HAVE_PREEMPT_DYNAMIC=y +CONFIG_HAVE_PREEMPT_DYNAMIC_CALL=y +CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y +CONFIG_ARCH_HAS_ELFCORE_COMPAT=y +CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y +CONFIG_DYNAMIC_SIGFRAME=y + +# +# GCOV-based kernel profiling +# +# CONFIG_GCOV_KERNEL is not set +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y +# end of GCOV-based kernel profiling + +CONFIG_HAVE_GCC_PLUGINS=y +# CONFIG_GCC_PLUGINS is not set +# end of General architecture-dependent options + +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_LOAD is not set +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODULE_UNLOAD_TAINT_TRACKING=y +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +# CONFIG_MODULE_SIG is not set +CONFIG_MODULE_COMPRESS_NONE=y +# CONFIG_MODULE_COMPRESS_GZIP is not set +# CONFIG_MODULE_COMPRESS_XZ is not set +# CONFIG_MODULE_COMPRESS_ZSTD is not set +# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set +CONFIG_MODPROBE_PATH="/sbin/modprobe" +# CONFIG_TRIM_UNUSED_KSYMS is not set +CONFIG_MODULES_TREE_LOOKUP=y +CONFIG_BLOCK=y +# CONFIG_BLOCK_LEGACY_AUTOLOAD is not set +CONFIG_BLK_DEV_BSG_COMMON=y +CONFIG_BLK_ICQ=y +CONFIG_BLK_DEV_BSGLIB=y +# CONFIG_BLK_DEV_INTEGRITY is not set +# CONFIG_BLK_DEV_ZONED is not set +# CONFIG_BLK_DEV_THROTTLING is not set +# CONFIG_BLK_WBT is not set +# CONFIG_BLK_CGROUP_IOLATENCY is not set +# CONFIG_BLK_CGROUP_IOCOST is not set +# CONFIG_BLK_CGROUP_IOPRIO is not set +CONFIG_BLK_DEBUG_FS=y +# CONFIG_BLK_SED_OPAL is not set +# CONFIG_BLK_INLINE_ENCRYPTION is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_AIX_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +CONFIG_MAC_PARTITION=y +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set +# CONFIG_CMDLINE_PARTITION is not set +# end of Partition Types + +CONFIG_BLOCK_COMPAT=y +CONFIG_BLK_MQ_PCI=y +CONFIG_BLK_MQ_VIRTIO=y +CONFIG_BLK_PM=y + +# +# IO Schedulers +# +CONFIG_MQ_IOSCHED_DEADLINE=y +CONFIG_MQ_IOSCHED_KYBER=y +CONFIG_IOSCHED_BFQ=y +# CONFIG_BFQ_GROUP_IOSCHED is not set +# end of IO Schedulers + +CONFIG_ASN1=y +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_INLINE_READ_UNLOCK=y +CONFIG_INLINE_READ_UNLOCK_IRQ=y +CONFIG_INLINE_WRITE_UNLOCK=y +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y +CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y +CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y +CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y +CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y +CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y +CONFIG_FREEZER=y + +# +# Executable file formats +# +CONFIG_BINFMT_ELF=y +CONFIG_COMPAT_BINFMT_ELF=y +CONFIG_ELFCORE=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +CONFIG_BINFMT_SCRIPT=y +CONFIG_BINFMT_MISC=y +CONFIG_COREDUMP=y +# end of Executable file formats + +# +# Memory Management options +# +CONFIG_SWAP=y +# CONFIG_ZSWAP is not set + +# +# SLAB allocator options +# +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +CONFIG_SLAB_MERGE_DEFAULT=y +# CONFIG_SLAB_FREELIST_RANDOM is not set +# CONFIG_SLAB_FREELIST_HARDENED is not set +# CONFIG_SLUB_STATS is not set +CONFIG_SLUB_CPU_PARTIAL=y +# end of SLAB allocator options + +# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set +# CONFIG_COMPAT_BRK is not set +CONFIG_SPARSEMEM=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SPARSEMEM_VMEMMAP=y +CONFIG_HAVE_FAST_GUP=y +CONFIG_MEMORY_ISOLATION=y +CONFIG_EXCLUSIVE_SYSTEM_RAM=y +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +# CONFIG_MEMORY_HOTPLUG is not set +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y +CONFIG_MEMORY_BALLOON=y +CONFIG_BALLOON_COMPACTION=y +CONFIG_COMPACTION=y +CONFIG_PAGE_REPORTING=y +CONFIG_MIGRATION=y +CONFIG_ARCH_ENABLE_THP_MIGRATION=y +CONFIG_CONTIG_ALLOC=y +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_VIRT_TO_BUS=y +CONFIG_MMU_NOTIFIER=y +# CONFIG_KSM is not set +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y +CONFIG_ARCH_WANTS_THP_SWAP=y +CONFIG_TRANSPARENT_HUGEPAGE=y +# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set +CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y +CONFIG_THP_SWAP=y +# CONFIG_READ_ONLY_THP_FOR_FS is not set +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y +CONFIG_USE_PERCPU_NUMA_NODE_ID=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_CMA=y +# CONFIG_CMA_DEBUG is not set +# CONFIG_CMA_DEBUGFS is not set +# CONFIG_CMA_SYSFS is not set +CONFIG_CMA_AREAS=19 +CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set +# CONFIG_IDLE_PAGE_TRACKING is not set +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y +CONFIG_ARCH_HAS_VM_GET_PAGE_PROT=y +CONFIG_ARCH_HAS_PTE_DEVMAP=y +CONFIG_ARCH_HAS_ZONE_DMA_SET=y +CONFIG_ZONE_DMA=y +CONFIG_ZONE_DMA32=y +CONFIG_HMM_MIRROR=y +CONFIG_VMAP_PFN=y +CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y +CONFIG_ARCH_HAS_PKEYS=y +CONFIG_VM_EVENT_COUNTERS=y +# CONFIG_PERCPU_STATS is not set +# CONFIG_GUP_TEST is not set +CONFIG_ARCH_HAS_PTE_SPECIAL=y +CONFIG_MAPPING_DIRTY_HELPERS=y +CONFIG_SECRETMEM=y +# CONFIG_ANON_VMA_NAME is not set +# CONFIG_USERFAULTFD is not set + +# +# Data Access Monitoring +# +# CONFIG_DAMON is not set +# end of Data Access Monitoring +# end of Memory Management options + +CONFIG_NET=y +CONFIG_COMPAT_NETLINK_MESSAGES=y +CONFIG_NET_INGRESS=y +CONFIG_NET_EGRESS=y +CONFIG_SKB_EXTENSIONS=y + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_DIAG is not set +CONFIG_UNIX=y +CONFIG_UNIX_SCM=y +CONFIG_AF_UNIX_OOB=y +# CONFIG_UNIX_DIAG is not set +# CONFIG_TLS is not set +# CONFIG_XFRM_USER is not set +# CONFIG_NET_KEY is not set +# CONFIG_XDP_SOCKETS is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +# CONFIG_IP_FIB_TRIE_STATS is not set +CONFIG_IP_MULTIPLE_TABLES=y +# CONFIG_IP_ROUTE_MULTIPATH is not set +# CONFIG_IP_ROUTE_VERBOSE is not set +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE_DEMUX is not set +CONFIG_NET_IP_TUNNEL=m +CONFIG_IP_MROUTE_COMMON=y +CONFIG_IP_MROUTE=y +# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set +# CONFIG_IP_PIMSM_V1 is not set +# CONFIG_IP_PIMSM_V2 is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_NET_IPVTI is not set +CONFIG_NET_UDP_TUNNEL=m +CONFIG_NET_FOU=m +# CONFIG_NET_FOU_IP_TUNNELS is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +CONFIG_INET_TUNNEL=m +# CONFIG_INET_DIAG is not set +CONFIG_TCP_CONG_ADVANCED=y +# CONFIG_TCP_CONG_BIC is not set +CONFIG_TCP_CONG_CUBIC=y +# CONFIG_TCP_CONG_WESTWOOD is not set +CONFIG_TCP_CONG_HTCP=m +CONFIG_TCP_CONG_HSTCP=m +# CONFIG_TCP_CONG_HYBLA is not set +CONFIG_TCP_CONG_VEGAS=m +# CONFIG_TCP_CONG_NV is not set +CONFIG_TCP_CONG_SCALABLE=m +# CONFIG_TCP_CONG_LP is not set +CONFIG_TCP_CONG_VENO=m +CONFIG_TCP_CONG_YEAH=m +CONFIG_TCP_CONG_ILLINOIS=m +# CONFIG_TCP_CONG_DCTCP is not set +CONFIG_TCP_CONG_CDG=m +# CONFIG_TCP_CONG_BBR is not set +CONFIG_DEFAULT_CUBIC=y +# CONFIG_DEFAULT_RENO is not set +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +CONFIG_IPV6=y +# CONFIG_IPV6_ROUTER_PREF is not set +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +# CONFIG_INET6_AH is not set +# CONFIG_INET6_ESP is not set +# CONFIG_INET6_IPCOMP is not set +# CONFIG_IPV6_MIP6 is not set +# CONFIG_IPV6_ILA is not set +# CONFIG_IPV6_VTI is not set +CONFIG_IPV6_SIT=m +# CONFIG_IPV6_SIT_6RD is not set +CONFIG_IPV6_NDISC_NODETYPE=y +# CONFIG_IPV6_TUNNEL is not set +CONFIG_IPV6_FOU=m +# CONFIG_IPV6_MULTIPLE_TABLES is not set +# CONFIG_IPV6_MROUTE is not set +# CONFIG_IPV6_SEG6_LWTUNNEL is not set +# CONFIG_IPV6_SEG6_HMAC is not set +# CONFIG_IPV6_RPL_LWTUNNEL is not set +# CONFIG_IPV6_IOAM6_LWTUNNEL is not set +# CONFIG_MPTCP is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NET_PTP_CLASSIFY=y +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set +CONFIG_NETFILTER=y +CONFIG_NETFILTER_ADVANCED=y +CONFIG_BRIDGE_NETFILTER=m + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_INGRESS=y +CONFIG_NETFILTER_EGRESS=y +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_FAMILY_BRIDGE=y +# CONFIG_NETFILTER_NETLINK_ACCT is not set +# CONFIG_NETFILTER_NETLINK_QUEUE is not set +CONFIG_NETFILTER_NETLINK_LOG=m +# CONFIG_NETFILTER_NETLINK_OSF is not set +CONFIG_NF_CONNTRACK=m +# CONFIG_NF_LOG_SYSLOG is not set +# CONFIG_NF_CONNTRACK_MARK is not set +# CONFIG_NF_CONNTRACK_ZONES is not set +# CONFIG_NF_CONNTRACK_PROCFS is not set +# CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_TIMEOUT is not set +# CONFIG_NF_CONNTRACK_TIMESTAMP is not set +# CONFIG_NF_CONNTRACK_LABELS is not set +# CONFIG_NF_CT_PROTO_DCCP is not set +# CONFIG_NF_CT_PROTO_SCTP is not set +# CONFIG_NF_CT_PROTO_UDPLITE is not set +# CONFIG_NF_CONNTRACK_AMANDA is not set +CONFIG_NF_CONNTRACK_FTP=m +# CONFIG_NF_CONNTRACK_H323 is not set +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_BROADCAST=m +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +# CONFIG_NF_CONNTRACK_SNMP is not set +# CONFIG_NF_CONNTRACK_PPTP is not set +# CONFIG_NF_CONNTRACK_SANE is not set +CONFIG_NF_CONNTRACK_SIP=m +# CONFIG_NF_CONNTRACK_TFTP is not set +CONFIG_NF_CT_NETLINK=m +# CONFIG_NETFILTER_NETLINK_GLUE_CT is not set +CONFIG_NF_NAT=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_SIP=m +CONFIG_NF_NAT_MASQUERADE=y +# CONFIG_NF_TABLES is not set +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XTABLES_COMPAT=y + +# +# Xtables combined modules +# +# CONFIG_NETFILTER_XT_MARK is not set +# CONFIG_NETFILTER_XT_CONNMARK is not set + +# +# Xtables targets +# +# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set +# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set +# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set +# CONFIG_NETFILTER_XT_TARGET_DSCP is not set +# CONFIG_NETFILTER_XT_TARGET_HL is not set +# CONFIG_NETFILTER_XT_TARGET_HMARK is not set +# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set +# CONFIG_NETFILTER_XT_TARGET_LED is not set +# CONFIG_NETFILTER_XT_TARGET_LOG is not set +# CONFIG_NETFILTER_XT_TARGET_MARK is not set +CONFIG_NETFILTER_XT_NAT=m +# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set +# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set +# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set +# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set +# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set +CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m +# CONFIG_NETFILTER_XT_TARGET_TEE is not set +# CONFIG_NETFILTER_XT_TARGET_TPROXY is not set +# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set +# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set + +# +# Xtables matches +# +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +# CONFIG_NETFILTER_XT_MATCH_BPF is not set +# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set +# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set +# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set +# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set +# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set +# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set +# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +# CONFIG_NETFILTER_XT_MATCH_CPU is not set +# CONFIG_NETFILTER_XT_MATCH_DCCP is not set +# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set +# CONFIG_NETFILTER_XT_MATCH_DSCP is not set +# CONFIG_NETFILTER_XT_MATCH_ECN is not set +# CONFIG_NETFILTER_XT_MATCH_ESP is not set +# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set +# CONFIG_NETFILTER_XT_MATCH_HELPER is not set +# CONFIG_NETFILTER_XT_MATCH_HL is not set +# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set +CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +# CONFIG_NETFILTER_XT_MATCH_L2TP is not set +# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set +# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set +# CONFIG_NETFILTER_XT_MATCH_MAC is not set +# CONFIG_NETFILTER_XT_MATCH_MARK is not set +# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set +# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set +# CONFIG_NETFILTER_XT_MATCH_OSF is not set +CONFIG_NETFILTER_XT_MATCH_OWNER=m +# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set +# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set +# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set +# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set +# CONFIG_NETFILTER_XT_MATCH_REALM is not set +# CONFIG_NETFILTER_XT_MATCH_RECENT is not set +# CONFIG_NETFILTER_XT_MATCH_SCTP is not set +# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set +CONFIG_NETFILTER_XT_MATCH_STATE=m +# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set +# CONFIG_NETFILTER_XT_MATCH_STRING is not set +# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set +# CONFIG_NETFILTER_XT_MATCH_TIME is not set +# CONFIG_NETFILTER_XT_MATCH_U32 is not set +# end of Core Netfilter Configuration + +# CONFIG_IP_SET is not set +# CONFIG_IP_VS is not set + +# +# IP: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV4=m +# CONFIG_NF_SOCKET_IPV4 is not set +# CONFIG_NF_TPROXY_IPV4 is not set +# CONFIG_NF_DUP_IPV4 is not set +# CONFIG_NF_LOG_ARP is not set +# CONFIG_NF_LOG_IPV4 is not set +CONFIG_NF_REJECT_IPV4=m +CONFIG_IP_NF_IPTABLES=m +# CONFIG_IP_NF_MATCH_AH is not set +# CONFIG_IP_NF_MATCH_ECN is not set +# CONFIG_IP_NF_MATCH_RPFILTER is not set +# CONFIG_IP_NF_MATCH_TTL is not set +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +# CONFIG_IP_NF_TARGET_SYNPROXY is not set +CONFIG_IP_NF_NAT=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +# CONFIG_IP_NF_TARGET_NETMAP is not set +# CONFIG_IP_NF_TARGET_REDIRECT is not set +CONFIG_IP_NF_MANGLE=m +# CONFIG_IP_NF_TARGET_CLUSTERIP is not set +# CONFIG_IP_NF_TARGET_ECN is not set +# CONFIG_IP_NF_TARGET_TTL is not set +# CONFIG_IP_NF_RAW is not set +# CONFIG_IP_NF_ARPTABLES is not set +# end of IP: Netfilter Configuration + +# +# IPv6: Netfilter Configuration +# +# CONFIG_NF_SOCKET_IPV6 is not set +# CONFIG_NF_TPROXY_IPV6 is not set +# CONFIG_NF_DUP_IPV6 is not set +CONFIG_NF_REJECT_IPV6=m +# CONFIG_NF_LOG_IPV6 is not set +CONFIG_IP6_NF_IPTABLES=m +# CONFIG_IP6_NF_MATCH_AH is not set +# CONFIG_IP6_NF_MATCH_EUI64 is not set +# CONFIG_IP6_NF_MATCH_FRAG is not set +# CONFIG_IP6_NF_MATCH_OPTS is not set +# CONFIG_IP6_NF_MATCH_HL is not set +# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set +# CONFIG_IP6_NF_MATCH_MH is not set +# CONFIG_IP6_NF_MATCH_RPFILTER is not set +# CONFIG_IP6_NF_MATCH_RT is not set +# CONFIG_IP6_NF_MATCH_SRH is not set +# CONFIG_IP6_NF_TARGET_HL is not set +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +# CONFIG_IP6_NF_TARGET_SYNPROXY is not set +CONFIG_IP6_NF_MANGLE=m +# CONFIG_IP6_NF_RAW is not set +CONFIG_IP6_NF_NAT=m +# CONFIG_IP6_NF_TARGET_MASQUERADE is not set +# CONFIG_IP6_NF_TARGET_NPT is not set +# end of IPv6: Netfilter Configuration + +CONFIG_NF_DEFRAG_IPV6=m +# CONFIG_NF_CONNTRACK_BRIDGE is not set +# CONFIG_BRIDGE_NF_EBTABLES is not set +# CONFIG_BPFILTER is not set +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_RDS is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_L2TP is not set +CONFIG_STP=m +CONFIG_BRIDGE=m +CONFIG_BRIDGE_IGMP_SNOOPING=y +# CONFIG_BRIDGE_VLAN_FILTERING is not set +# CONFIG_BRIDGE_MRP is not set +# CONFIG_BRIDGE_CFM is not set +# CONFIG_NET_DSA is not set +CONFIG_VLAN_8021Q=m +# CONFIG_VLAN_8021Q_GVRP is not set +# CONFIG_VLAN_8021Q_MVRP is not set +# CONFIG_DECNET is not set +CONFIG_LLC=m +# CONFIG_LLC2 is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_PHONET is not set +# CONFIG_6LOWPAN is not set +# CONFIG_IEEE802154 is not set +CONFIG_NET_SCHED=y + +# +# Queueing/Scheduling +# +# CONFIG_NET_SCH_CBQ is not set +# CONFIG_NET_SCH_HTB is not set +# CONFIG_NET_SCH_HFSC is not set +# CONFIG_NET_SCH_PRIO is not set +# CONFIG_NET_SCH_MULTIQ is not set +# CONFIG_NET_SCH_RED is not set +# CONFIG_NET_SCH_SFB is not set +# CONFIG_NET_SCH_SFQ is not set +# CONFIG_NET_SCH_TEQL is not set +# CONFIG_NET_SCH_TBF is not set +# CONFIG_NET_SCH_CBS is not set +# CONFIG_NET_SCH_ETF is not set +# CONFIG_NET_SCH_TAPRIO is not set +# CONFIG_NET_SCH_GRED is not set +# CONFIG_NET_SCH_DSMARK is not set +# CONFIG_NET_SCH_NETEM is not set +# CONFIG_NET_SCH_DRR is not set +# CONFIG_NET_SCH_MQPRIO is not set +# CONFIG_NET_SCH_SKBPRIO is not set +# CONFIG_NET_SCH_CHOKE is not set +# CONFIG_NET_SCH_QFQ is not set +# CONFIG_NET_SCH_CODEL is not set +CONFIG_NET_SCH_FQ_CODEL=y +# CONFIG_NET_SCH_CAKE is not set +# CONFIG_NET_SCH_FQ is not set +# CONFIG_NET_SCH_HHF is not set +# CONFIG_NET_SCH_PIE is not set +# CONFIG_NET_SCH_PLUG is not set +# CONFIG_NET_SCH_ETS is not set +# CONFIG_NET_SCH_DEFAULT is not set + +# +# Classification +# +# CONFIG_NET_CLS_BASIC is not set +# CONFIG_NET_CLS_TCINDEX is not set +# CONFIG_NET_CLS_ROUTE4 is not set +# CONFIG_NET_CLS_FW is not set +# CONFIG_NET_CLS_U32 is not set +# CONFIG_NET_CLS_RSVP is not set +# CONFIG_NET_CLS_RSVP6 is not set +# CONFIG_NET_CLS_FLOW is not set +# CONFIG_NET_CLS_CGROUP is not set +# CONFIG_NET_CLS_BPF is not set +# CONFIG_NET_CLS_FLOWER is not set +# CONFIG_NET_CLS_MATCHALL is not set +# CONFIG_NET_EMATCH is not set +# CONFIG_NET_CLS_ACT is not set +CONFIG_NET_SCH_FIFO=y +# CONFIG_DCB is not set +CONFIG_DNS_RESOLVER=y +# CONFIG_BATMAN_ADV is not set +# CONFIG_OPENVSWITCH is not set +# CONFIG_VSOCKETS is not set +# CONFIG_NETLINK_DIAG is not set +# CONFIG_MPLS is not set +# CONFIG_NET_NSH is not set +# CONFIG_HSR is not set +# CONFIG_NET_SWITCHDEV is not set +# CONFIG_NET_L3_MASTER_DEV is not set +# CONFIG_QRTR is not set +# CONFIG_NET_NCSI is not set +CONFIG_PCPU_DEV_REFCNT=y +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_SOCK_RX_QUEUE_MAPPING=y +CONFIG_XPS=y +# CONFIG_CGROUP_NET_PRIO is not set +# CONFIG_CGROUP_NET_CLASSID is not set +CONFIG_NET_RX_BUSY_POLL=y +CONFIG_BQL=y +# CONFIG_BPF_STREAM_PARSER is not set +CONFIG_NET_FLOW_LIMIT=y + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_NET_DROP_MONITOR is not set +# end of Network testing +# end of Networking options + +# CONFIG_HAMRADIO is not set +# CONFIG_CAN is not set +CONFIG_BT=m +CONFIG_BT_BREDR=y +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m +CONFIG_BT_HS=y +CONFIG_BT_LE=y +# CONFIG_BT_LEDS is not set +# CONFIG_BT_MSFTEXT is not set +# CONFIG_BT_AOSPEXT is not set +# CONFIG_BT_DEBUGFS is not set +# CONFIG_BT_SELFTEST is not set + +# +# Bluetooth device drivers +# +CONFIG_BT_INTEL=m +CONFIG_BT_BCM=m +CONFIG_BT_RTL=m +CONFIG_BT_QCA=m +CONFIG_BT_MTK=m +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y +CONFIG_BT_HCIBTUSB_BCM=y +CONFIG_BT_HCIBTUSB_MTK=y +CONFIG_BT_HCIBTUSB_RTL=y +CONFIG_BT_HCIBTSDIO=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_SERDEV=y +CONFIG_BT_HCIUART_H4=y +# CONFIG_BT_HCIUART_NOKIA is not set +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIUART_3WIRE=y +CONFIG_BT_HCIUART_INTEL=y +CONFIG_BT_HCIUART_BCM=y +CONFIG_BT_HCIUART_RTL=y +CONFIG_BT_HCIUART_QCA=y +CONFIG_BT_HCIUART_AG6XX=y +CONFIG_BT_HCIUART_MRVL=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIVHCI=m +CONFIG_BT_MRVL=m +CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_ATH3K=m +CONFIG_BT_MTKSDIO=m +CONFIG_BT_MTKUART=m +# CONFIG_BT_VIRTIO is not set +# end of Bluetooth device drivers + +# CONFIG_AF_RXRPC is not set +# CONFIG_AF_KCM is not set +# CONFIG_MCTP is not set +CONFIG_FIB_RULES=y +CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y +CONFIG_CFG80211=m +# CONFIG_NL80211_TESTMODE is not set +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_CERTIFICATION_ONUS is not set +CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y +CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set +# CONFIG_CFG80211_CRDA_SUPPORT is not set +CONFIG_CFG80211_WEXT=y +CONFIG_CFG80211_WEXT_EXPORT=y +CONFIG_LIB80211=m +CONFIG_LIB80211_CRYPT_WEP=m +CONFIG_LIB80211_CRYPT_CCMP=m +CONFIG_LIB80211_CRYPT_TKIP=m +# CONFIG_LIB80211_DEBUG is not set +CONFIG_MAC80211=m +CONFIG_MAC80211_HAS_RC=y +CONFIG_MAC80211_RC_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" +# CONFIG_MAC80211_MESH is not set +CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set +# CONFIG_MAC80211_MESSAGE_TRACING is not set +# CONFIG_MAC80211_DEBUG_MENU is not set +CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 +CONFIG_RFKILL=m +CONFIG_RFKILL_LEDS=y +CONFIG_RFKILL_INPUT=y +# CONFIG_RFKILL_GPIO is not set +# CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +# CONFIG_CEPH_LIB is not set +# CONFIG_NFC is not set +# CONFIG_PSAMPLE is not set +# CONFIG_NET_IFE is not set +# CONFIG_LWTUNNEL is not set +CONFIG_DST_CACHE=y +CONFIG_GRO_CELLS=y +CONFIG_NET_SELFTESTS=y +CONFIG_NET_SOCK_MSG=y +CONFIG_NET_DEVLINK=y +CONFIG_PAGE_POOL=y +# CONFIG_PAGE_POOL_STATS is not set +CONFIG_FAILOVER=y +CONFIG_ETHTOOL_NETLINK=y + +# +# Device Drivers +# +CONFIG_HAVE_EISA=y +# CONFIG_EISA is not set +CONFIG_HAVE_PCI=y +CONFIG_PCI=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCIEAER=y +# CONFIG_PCIEAER_INJECT is not set +# CONFIG_PCIE_ECRC is not set +CONFIG_PCIEASPM=y +CONFIG_PCIEASPM_DEFAULT=y +# CONFIG_PCIEASPM_POWERSAVE is not set +# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set +# CONFIG_PCIEASPM_PERFORMANCE is not set +CONFIG_PCIE_PME=y +# CONFIG_PCIE_DPC is not set +# CONFIG_PCIE_PTM is not set +CONFIG_PCI_MSI=y +CONFIG_PCI_MSI_IRQ_DOMAIN=y +CONFIG_PCI_QUIRKS=y +# CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_STUB is not set +CONFIG_PCI_ATS=y +CONFIG_PCI_LOCKLESS_CONFIG=y +# CONFIG_PCI_IOV is not set +CONFIG_PCI_PRI=y +CONFIG_PCI_PASID=y +CONFIG_PCI_LABEL=y +# CONFIG_PCIE_BUS_TUNE_OFF is not set +CONFIG_PCIE_BUS_DEFAULT=y +# CONFIG_PCIE_BUS_SAFE is not set +# CONFIG_PCIE_BUS_PERFORMANCE is not set +# CONFIG_PCIE_BUS_PEER2PEER is not set +CONFIG_VGA_ARB=y +CONFIG_VGA_ARB_MAX_GPUS=16 +# CONFIG_HOTPLUG_PCI is not set + +# +# PCI controller drivers +# +# CONFIG_VMD is not set + +# +# DesignWare PCI Core Support +# +# CONFIG_PCIE_DW_PLAT_HOST is not set +# CONFIG_PCI_MESON is not set +# end of DesignWare PCI Core Support + +# +# Mobiveil PCIe Core Support +# +# end of Mobiveil PCIe Core Support + +# +# Cadence PCIe controllers support +# +# end of Cadence PCIe controllers support +# end of PCI controller drivers + +# +# PCI Endpoint +# +# CONFIG_PCI_ENDPOINT is not set +# end of PCI Endpoint + +# +# PCI switch controller drivers +# +# CONFIG_PCI_SW_SWITCHTEC is not set +# end of PCI switch controller drivers + +# CONFIG_CXL_BUS is not set +# CONFIG_PCCARD is not set +# CONFIG_RAPIDIO is not set + +# +# Generic Driver Options +# +CONFIG_AUXILIARY_BUS=y +# CONFIG_UEVENT_HELPER is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_DEVTMPFS_SAFE is not set +CONFIG_STANDALONE=y +# CONFIG_PREVENT_FIRMWARE_BUILD is not set + +# +# Firmware loader +# +CONFIG_FW_LOADER=y +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_FW_LOADER_USER_HELPER is not set +# CONFIG_FW_LOADER_COMPRESS is not set +CONFIG_FW_CACHE=y +CONFIG_FW_UPLOAD=y +# end of Firmware loader + +CONFIG_WANT_DEV_COREDUMP=y +# CONFIG_ALLOW_DEV_COREDUMP is not set +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set +# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set +CONFIG_GENERIC_CPU_AUTOPROBE=y +CONFIG_GENERIC_CPU_VULNERABILITIES=y +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=y +CONFIG_DMA_SHARED_BUFFER=y +# CONFIG_DMA_FENCE_TRACE is not set +# end of Generic Driver Options + +# +# Bus devices +# +# CONFIG_MHI_BUS is not set +# CONFIG_MHI_BUS_EP is not set +# end of Bus devices + +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y + +# +# Firmware Drivers +# + +# +# ARM System Control and Management Interface Protocol +# +# end of ARM System Control and Management Interface Protocol + +# CONFIG_EDD is not set +CONFIG_FIRMWARE_MEMMAP=y +CONFIG_DMIID=y +CONFIG_DMI_SYSFS=m +CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y +# CONFIG_ISCSI_IBFT is not set +# CONFIG_FW_CFG_SYSFS is not set +CONFIG_SYSFB=y +# CONFIG_SYSFB_SIMPLEFB is not set +# CONFIG_GOOGLE_FIRMWARE is not set + +# +# EFI (Extensible Firmware Interface) Support +# +CONFIG_EFI_VARS=y +CONFIG_EFI_ESRT=y +# CONFIG_EFI_FAKE_MEMMAP is not set +# CONFIG_EFI_DXE_MEM_ATTRIBUTES is not set +CONFIG_EFI_RUNTIME_WRAPPERS=y +CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y +# CONFIG_EFI_BOOTLOADER_CONTROL is not set +# CONFIG_EFI_CAPSULE_LOADER is not set +# CONFIG_EFI_TEST is not set +CONFIG_EFI_DEV_PATH_PARSER=y +CONFIG_APPLE_PROPERTIES=y +# CONFIG_RESET_ATTACK_MITIGATION is not set +# CONFIG_EFI_RCI2_TABLE is not set +# CONFIG_EFI_DISABLE_PCI_DMA is not set +CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y +# CONFIG_EFI_DISABLE_RUNTIME is not set +# CONFIG_EFI_COCO_SECRET is not set +# end of EFI (Extensible Firmware Interface) Support + +# +# Tegra firmware driver +# +# end of Tegra firmware driver +# end of Firmware Drivers + +# CONFIG_GNSS is not set +# CONFIG_MTD is not set +# CONFIG_OF is not set +CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y +# CONFIG_PARPORT is not set +CONFIG_PNP=y +# CONFIG_PNP_DEBUG_MESSAGES is not set + +# +# Protocols +# +CONFIG_PNPACPI=y +CONFIG_BLK_DEV=y +# CONFIG_BLK_DEV_NULL_BLK is not set +# CONFIG_BLK_DEV_FD is not set +CONFIG_CDROM=y +# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=0 +# CONFIG_BLK_DEV_DRBD is not set +CONFIG_BLK_DEV_NBD=y +# CONFIG_BLK_DEV_SX8 is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=16384 +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +CONFIG_VIRTIO_BLK=y +# CONFIG_BLK_DEV_RBD is not set + +# +# NVME Support +# +CONFIG_NVME_CORE=y +CONFIG_BLK_DEV_NVME=y +CONFIG_NVME_MULTIPATH=y +# CONFIG_NVME_VERBOSE_ERRORS is not set +CONFIG_NVME_HWMON=y +# CONFIG_NVME_FC is not set +# CONFIG_NVME_TCP is not set +# CONFIG_NVME_TARGET is not set +# end of NVME Support + +# +# Misc devices +# +# CONFIG_AD525X_DPOT is not set +# CONFIG_DUMMY_IRQ is not set +# CONFIG_IBM_ASM is not set +# CONFIG_PHANTOM is not set +# CONFIG_TIFM_CORE is not set +# CONFIG_ICS932S401 is not set +# CONFIG_ENCLOSURE_SERVICES is not set +# CONFIG_HP_ILO is not set +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set +# CONFIG_DS1682 is not set +# CONFIG_SRAM is not set +# CONFIG_DW_XDATA_PCIE is not set +# CONFIG_PCI_ENDPOINT_TEST is not set +# CONFIG_XILINX_SDFEC is not set +CONFIG_MISC_RTSX=y +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +# CONFIG_EEPROM_AT24 is not set +# CONFIG_EEPROM_LEGACY is not set +# CONFIG_EEPROM_MAX6875 is not set +CONFIG_EEPROM_93CX6=m +# CONFIG_EEPROM_IDT_89HPESX is not set +CONFIG_EEPROM_EE1004=y +# end of EEPROM support + +# CONFIG_CB710_CORE is not set + +# +# Texas Instruments shared transport line discipline +# +# CONFIG_TI_ST is not set +# end of Texas Instruments shared transport line discipline + +# CONFIG_SENSORS_LIS3_I2C is not set +CONFIG_ALTERA_STAPL=m +# CONFIG_INTEL_MEI is not set +# CONFIG_INTEL_MEI_ME is not set +# CONFIG_INTEL_MEI_TXE is not set +# CONFIG_INTEL_MEI_HDCP is not set +# CONFIG_INTEL_MEI_PXP is not set +# CONFIG_VMWARE_VMCI is not set +# CONFIG_GENWQE is not set +# CONFIG_ECHO is not set +# CONFIG_BCM_VK is not set +# CONFIG_MISC_ALCOR_PCI is not set +CONFIG_MISC_RTSX_PCI=y +CONFIG_MISC_RTSX_USB=y +# CONFIG_HABANA_AI is not set +# CONFIG_UACCE is not set +# CONFIG_PVPANIC is not set +# end of Misc devices + +# +# SCSI device support +# +CONFIG_SCSI_MOD=y +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI_COMMON=y +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +# CONFIG_SCSI_PROC_FS is not set + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +CONFIG_BLK_DEV_SR=y +CONFIG_CHR_DEV_SG=y +CONFIG_BLK_DEV_BSG=y +# CONFIG_CHR_DEV_SCH is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +CONFIG_SCSI_SCAN_ASYNC=y + +# +# SCSI Transports +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +CONFIG_SCSI_SAS_ATTRS=y +CONFIG_SCSI_SAS_LIBSAS=y +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_SAS_HOST_SMP=y +# CONFIG_SCSI_SRP_ATTRS is not set +# end of SCSI Transports + +CONFIG_SCSI_LOWLEVEL=y +# CONFIG_ISCSI_TCP is not set +# CONFIG_ISCSI_BOOT_SYSFS is not set +# CONFIG_SCSI_CXGB3_ISCSI is not set +# CONFIG_SCSI_CXGB4_ISCSI is not set +# CONFIG_SCSI_BNX2_ISCSI is not set +# CONFIG_BE2ISCSI is not set +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set +# CONFIG_SCSI_HPSA is not set +# CONFIG_SCSI_3W_9XXX is not set +# CONFIG_SCSI_3W_SAS is not set +# CONFIG_SCSI_ACARD is not set +# CONFIG_SCSI_AACRAID is not set +# CONFIG_SCSI_AIC7XXX is not set +# CONFIG_SCSI_AIC79XX is not set +# CONFIG_SCSI_AIC94XX is not set +CONFIG_SCSI_MVSAS=y +# CONFIG_SCSI_MVSAS_DEBUG is not set +# CONFIG_SCSI_MVSAS_TASKLET is not set +# CONFIG_SCSI_MVUMI is not set +# CONFIG_SCSI_DPT_I2O is not set +# CONFIG_SCSI_ADVANSYS is not set +# CONFIG_SCSI_ARCMSR is not set +# CONFIG_SCSI_ESAS2R is not set +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set +CONFIG_MEGARAID_SAS=y +# CONFIG_SCSI_MPT3SAS is not set +# CONFIG_SCSI_MPT2SAS is not set +# CONFIG_SCSI_MPI3MR is not set +# CONFIG_SCSI_SMARTPQI is not set +# CONFIG_SCSI_HPTIOP is not set +# CONFIG_SCSI_BUSLOGIC is not set +# CONFIG_SCSI_MYRB is not set +# CONFIG_SCSI_MYRS is not set +# CONFIG_VMWARE_PVSCSI is not set +# CONFIG_SCSI_SNIC is not set +# CONFIG_SCSI_DMX3191D is not set +# CONFIG_SCSI_FDOMAIN_PCI is not set +# CONFIG_SCSI_ISCI is not set +# CONFIG_SCSI_IPS is not set +# CONFIG_SCSI_INITIO is not set +# CONFIG_SCSI_INIA100 is not set +# CONFIG_SCSI_STEX is not set +# CONFIG_SCSI_SYM53C8XX_2 is not set +# CONFIG_SCSI_IPR is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +# CONFIG_SCSI_QLA_ISCSI is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_AM53C974 is not set +# CONFIG_SCSI_WD719X is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_SCSI_PMCRAID is not set +# CONFIG_SCSI_PM8001 is not set +# CONFIG_SCSI_VIRTIO is not set +# CONFIG_SCSI_DH is not set +# end of SCSI device support + +CONFIG_ATA=y +CONFIG_SATA_HOST=y +CONFIG_PATA_TIMINGS=y +# CONFIG_ATA_VERBOSE_ERROR is not set +CONFIG_ATA_FORCE=y +CONFIG_ATA_ACPI=y +# CONFIG_SATA_ZPODD is not set +CONFIG_SATA_PMP=y + +# +# Controllers with non-SFF native interface +# +CONFIG_SATA_AHCI=y +CONFIG_SATA_MOBILE_LPM_POLICY=0 +CONFIG_SATA_AHCI_PLATFORM=y +# CONFIG_SATA_INIC162X is not set +# CONFIG_SATA_ACARD_AHCI is not set +CONFIG_SATA_SIL24=y +CONFIG_ATA_SFF=y + +# +# SFF controllers with custom DMA interface +# +# CONFIG_PDC_ADMA is not set +# CONFIG_SATA_QSTOR is not set +# CONFIG_SATA_SX4 is not set +CONFIG_ATA_BMDMA=y + +# +# SATA SFF controllers with BMDMA +# +CONFIG_ATA_PIIX=y +# CONFIG_SATA_DWC is not set +# CONFIG_SATA_MV is not set +CONFIG_SATA_NV=y +# CONFIG_SATA_PROMISE is not set +CONFIG_SATA_SIL=y +CONFIG_SATA_SIS=y +# CONFIG_SATA_SVW is not set +CONFIG_SATA_ULI=y +CONFIG_SATA_VIA=y +# CONFIG_SATA_VITESSE is not set + +# +# PATA SFF controllers with BMDMA +# +CONFIG_PATA_ALI=y +CONFIG_PATA_AMD=y +# CONFIG_PATA_ARTOP is not set +CONFIG_PATA_ATIIXP=y +# CONFIG_PATA_ATP867X is not set +# CONFIG_PATA_CMD64X is not set +# CONFIG_PATA_CYPRESS is not set +# CONFIG_PATA_EFAR is not set +# CONFIG_PATA_HPT366 is not set +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set +# CONFIG_PATA_HPT3X3 is not set +# CONFIG_PATA_IT8213 is not set +# CONFIG_PATA_IT821X is not set +CONFIG_PATA_JMICRON=y +CONFIG_PATA_MARVELL=y +# CONFIG_PATA_NETCELL is not set +# CONFIG_PATA_NINJA32 is not set +# CONFIG_PATA_NS87415 is not set +# CONFIG_PATA_OLDPIIX is not set +# CONFIG_PATA_OPTIDMA is not set +# CONFIG_PATA_PDC2027X is not set +# CONFIG_PATA_PDC_OLD is not set +# CONFIG_PATA_RADISYS is not set +# CONFIG_PATA_RDC is not set +# CONFIG_PATA_SCH is not set +# CONFIG_PATA_SERVERWORKS is not set +# CONFIG_PATA_SIL680 is not set +CONFIG_PATA_SIS=y +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set +CONFIG_PATA_VIA=y +# CONFIG_PATA_WINBOND is not set + +# +# PIO-only SFF controllers +# +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_MPIIX is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_OPTI is not set +# CONFIG_PATA_PLATFORM is not set +# CONFIG_PATA_RZ1000 is not set + +# +# Generic fallback / legacy drivers +# +CONFIG_PATA_ACPI=y +CONFIG_ATA_GENERIC=y +# CONFIG_PATA_LEGACY is not set +# CONFIG_MD is not set +# CONFIG_TARGET_CORE is not set +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# +CONFIG_FIREWIRE=m +CONFIG_FIREWIRE_OHCI=m +CONFIG_FIREWIRE_SBP2=m +# CONFIG_FIREWIRE_NET is not set +# CONFIG_FIREWIRE_NOSY is not set +# end of IEEE 1394 (FireWire) support + +# CONFIG_MACINTOSH_DRIVERS is not set +CONFIG_NETDEVICES=y +CONFIG_MII=y +CONFIG_NET_CORE=y +# CONFIG_BONDING is not set +# CONFIG_DUMMY is not set +CONFIG_WIREGUARD=m +# CONFIG_WIREGUARD_DEBUG is not set +# CONFIG_EQUALIZER is not set +# CONFIG_NET_FC is not set +# CONFIG_NET_TEAM is not set +CONFIG_MACVLAN=m +# CONFIG_MACVTAP is not set +# CONFIG_IPVLAN is not set +# CONFIG_VXLAN is not set +# CONFIG_GENEVE is not set +# CONFIG_BAREUDP is not set +# CONFIG_GTP is not set +# CONFIG_AMT is not set +# CONFIG_MACSEC is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETCONSOLE_DYNAMIC is not set +CONFIG_NETPOLL=y +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_TUN=y +# CONFIG_TUN_VNET_CROSS_LE is not set +CONFIG_VETH=m +CONFIG_VIRTIO_NET=y +CONFIG_NLMON=m +# CONFIG_ARCNET is not set +CONFIG_ETHERNET=y +CONFIG_MDIO=y +CONFIG_NET_VENDOR_3COM=y +CONFIG_VORTEX=y +# CONFIG_TYPHOON is not set +# CONFIG_NET_VENDOR_ADAPTEC is not set +# CONFIG_NET_VENDOR_AGERE is not set +# CONFIG_NET_VENDOR_ALACRITECH is not set +# CONFIG_NET_VENDOR_ALTEON is not set +# CONFIG_ALTERA_TSE is not set +CONFIG_NET_VENDOR_AMAZON=y +# CONFIG_ENA_ETHERNET is not set +CONFIG_NET_VENDOR_AMD=y +# CONFIG_AMD8111_ETH is not set +CONFIG_PCNET32=y +# CONFIG_AMD_XGBE is not set +CONFIG_NET_VENDOR_AQUANTIA=y +CONFIG_AQTION=y +CONFIG_NET_VENDOR_ARC=y +# CONFIG_NET_VENDOR_ASIX is not set +CONFIG_NET_VENDOR_ATHEROS=y +CONFIG_ATL2=y +CONFIG_ATL1=y +CONFIG_ATL1E=y +CONFIG_ATL1C=y +CONFIG_ALX=y +# CONFIG_CX_ECAT is not set +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_B44=y +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI=y +# CONFIG_BCMGENET is not set +CONFIG_BNX2=y +CONFIG_CNIC=y +CONFIG_TIGON3=y +CONFIG_TIGON3_HWMON=y +# CONFIG_BNX2X is not set +# CONFIG_SYSTEMPORT is not set +# CONFIG_BNXT is not set +# CONFIG_NET_VENDOR_CADENCE is not set +CONFIG_NET_VENDOR_CAVIUM=y +# CONFIG_THUNDER_NIC_PF is not set +# CONFIG_THUNDER_NIC_VF is not set +# CONFIG_THUNDER_NIC_BGX is not set +# CONFIG_THUNDER_NIC_RGX is not set +# CONFIG_CAVIUM_PTP is not set +# CONFIG_LIQUIDIO is not set +# CONFIG_LIQUIDIO_VF is not set +# CONFIG_NET_VENDOR_CHELSIO is not set +# CONFIG_NET_VENDOR_CISCO is not set +# CONFIG_NET_VENDOR_CORTINA is not set +# CONFIG_NET_VENDOR_DAVICOM is not set +# CONFIG_DNET is not set +CONFIG_NET_VENDOR_DEC=y +CONFIG_NET_TULIP=y +# CONFIG_DE2104X is not set +# CONFIG_TULIP is not set +# CONFIG_WINBOND_840 is not set +# CONFIG_DM9102 is not set +CONFIG_ULI526X=y +# CONFIG_NET_VENDOR_DLINK is not set +# CONFIG_NET_VENDOR_EMULEX is not set +# CONFIG_NET_VENDOR_ENGLEDER is not set +CONFIG_NET_VENDOR_EZCHIP=y +# CONFIG_NET_VENDOR_FUNGIBLE is not set +# CONFIG_NET_VENDOR_GOOGLE is not set +# CONFIG_NET_VENDOR_HUAWEI is not set +CONFIG_NET_VENDOR_I825XX=y +CONFIG_NET_VENDOR_INTEL=y +CONFIG_E100=y +CONFIG_E1000=y +CONFIG_E1000E=y +CONFIG_E1000E_HWTS=y +CONFIG_IGB=y +CONFIG_IGB_HWMON=y +# CONFIG_IGBVF is not set +CONFIG_IXGB=y +CONFIG_IXGBE=y +CONFIG_IXGBE_HWMON=y +# CONFIG_IXGBEVF is not set +# CONFIG_I40E is not set +# CONFIG_I40EVF is not set +CONFIG_ICE=y +CONFIG_ICE_HWTS=y +# CONFIG_FM10K is not set +CONFIG_IGC=y +CONFIG_JME=y +# CONFIG_NET_VENDOR_LITEX is not set +CONFIG_NET_VENDOR_MARVELL=y +# CONFIG_MVMDIO is not set +CONFIG_SKGE=y +# CONFIG_SKGE_DEBUG is not set +CONFIG_SKGE_GENESIS=y +CONFIG_SKY2=y +# CONFIG_SKY2_DEBUG is not set +# CONFIG_OCTEON_EP is not set +# CONFIG_NET_VENDOR_MELLANOX is not set +# CONFIG_NET_VENDOR_MICREL is not set +CONFIG_NET_VENDOR_MICROCHIP=y +CONFIG_LAN743X=y +CONFIG_NET_VENDOR_MICROSEMI=y +CONFIG_NET_VENDOR_MICROSOFT=y +# CONFIG_NET_VENDOR_MYRI is not set +# CONFIG_FEALNX is not set +# CONFIG_NET_VENDOR_NI is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_NETERION is not set +CONFIG_NET_VENDOR_NETRONOME=y +# CONFIG_NFP is not set +CONFIG_NET_VENDOR_NVIDIA=y +CONFIG_FORCEDETH=y +# CONFIG_NET_VENDOR_OKI is not set +# CONFIG_ETHOC is not set +# CONFIG_NET_VENDOR_PACKET_ENGINES is not set +# CONFIG_NET_VENDOR_PENSANDO is not set +CONFIG_NET_VENDOR_QLOGIC=y +CONFIG_QLA3XXX=y +# CONFIG_QLCNIC is not set +# CONFIG_NETXEN_NIC is not set +# CONFIG_QED is not set +# CONFIG_NET_VENDOR_BROCADE is not set +# CONFIG_NET_VENDOR_QUALCOMM is not set +# CONFIG_NET_VENDOR_RDC is not set +CONFIG_NET_VENDOR_REALTEK=y +# CONFIG_8139CP is not set +CONFIG_8139TOO=y +# CONFIG_8139TOO_PIO is not set +# CONFIG_8139TOO_TUNE_TWISTER is not set +# CONFIG_8139TOO_8129 is not set +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_R8169=y +CONFIG_NET_VENDOR_RENESAS=y +CONFIG_NET_VENDOR_ROCKER=y +# CONFIG_NET_VENDOR_SAMSUNG is not set +# CONFIG_NET_VENDOR_SEEQ is not set +# CONFIG_NET_VENDOR_SILAN is not set +CONFIG_NET_VENDOR_SIS=y +CONFIG_SIS900=y +CONFIG_SIS190=y +# CONFIG_NET_VENDOR_SOLARFLARE is not set +# CONFIG_NET_VENDOR_SMSC is not set +# CONFIG_NET_VENDOR_SOCIONEXT is not set +# CONFIG_NET_VENDOR_STMICRO is not set +# CONFIG_NET_VENDOR_SUN is not set +CONFIG_NET_VENDOR_SYNOPSYS=y +# CONFIG_DWC_XLGMAC is not set +# CONFIG_NET_VENDOR_TEHUTI is not set +# CONFIG_NET_VENDOR_TI is not set +# CONFIG_NET_VENDOR_VERTEXCOM is not set +CONFIG_NET_VENDOR_VIA=y +CONFIG_VIA_RHINE=y +# CONFIG_VIA_RHINE_MMIO is not set +CONFIG_VIA_VELOCITY=y +# CONFIG_NET_VENDOR_WIZNET is not set +# CONFIG_NET_VENDOR_XILINX is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_NET_SB1000 is not set +CONFIG_PHYLIB=y +CONFIG_SWPHY=y +# CONFIG_LED_TRIGGER_PHY is not set +CONFIG_FIXED_PHY=y + +# +# MII PHY device drivers +# +CONFIG_AMD_PHY=y +# CONFIG_ADIN_PHY is not set +# CONFIG_ADIN1100_PHY is not set +# CONFIG_AQUANTIA_PHY is not set +CONFIG_AX88796B_PHY=m +CONFIG_BROADCOM_PHY=y +# CONFIG_BCM54140_PHY is not set +# CONFIG_BCM7XXX_PHY is not set +# CONFIG_BCM84881_PHY is not set +# CONFIG_BCM87XX_PHY is not set +CONFIG_BCM_NET_PHYLIB=y +# CONFIG_CICADA_PHY is not set +# CONFIG_CORTINA_PHY is not set +# CONFIG_DAVICOM_PHY is not set +# CONFIG_ICPLUS_PHY is not set +# CONFIG_LXT_PHY is not set +# CONFIG_INTEL_XWAY_PHY is not set +# CONFIG_LSI_ET1011C_PHY is not set +CONFIG_MARVELL_PHY=y +# CONFIG_MARVELL_10G_PHY is not set +# CONFIG_MARVELL_88X2222_PHY is not set +# CONFIG_MAXLINEAR_GPHY is not set +# CONFIG_MEDIATEK_GE_PHY is not set +# CONFIG_MICREL_PHY is not set +# CONFIG_MICROCHIP_PHY is not set +# CONFIG_MICROCHIP_T1_PHY is not set +# CONFIG_MICROSEMI_PHY is not set +# CONFIG_MOTORCOMM_PHY is not set +# CONFIG_NATIONAL_PHY is not set +# CONFIG_NXP_C45_TJA11XX_PHY is not set +# CONFIG_NXP_TJA11XX_PHY is not set +CONFIG_AT803X_PHY=y +# CONFIG_QSEMI_PHY is not set +CONFIG_REALTEK_PHY=y +# CONFIG_RENESAS_PHY is not set +# CONFIG_ROCKCHIP_PHY is not set +# CONFIG_SMSC_PHY is not set +# CONFIG_STE10XP is not set +# CONFIG_TERANETICS_PHY is not set +# CONFIG_DP83822_PHY is not set +# CONFIG_DP83TC811_PHY is not set +# CONFIG_DP83848_PHY is not set +# CONFIG_DP83867_PHY is not set +# CONFIG_DP83869_PHY is not set +# CONFIG_DP83TD510_PHY is not set +# CONFIG_VITESSE_PHY is not set +# CONFIG_XILINX_GMII2RGMII is not set +CONFIG_MDIO_DEVICE=y +CONFIG_MDIO_BUS=y +CONFIG_FWNODE_MDIO=y +CONFIG_ACPI_MDIO=y +CONFIG_MDIO_DEVRES=y +# CONFIG_MDIO_BITBANG is not set +# CONFIG_MDIO_BCM_UNIMAC is not set +# CONFIG_MDIO_MVUSB is not set +# CONFIG_MDIO_THUNDER is not set + +# +# MDIO Multiplexers +# + +# +# PCS device drivers +# +# CONFIG_PCS_XPCS is not set +# end of PCS device drivers + +CONFIG_PPP=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_MPPE=m +# CONFIG_PPP_MULTILINK is not set +CONFIG_PPPOE=m +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +# CONFIG_SLIP is not set +CONFIG_SLHC=m +CONFIG_USB_NET_DRIVERS=y +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +CONFIG_USB_RTL8152=m +# CONFIG_USB_LAN78XX is not set +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_AX88179_178A=m +CONFIG_USB_NET_CDCETHER=m +# CONFIG_USB_NET_CDC_EEM is not set +# CONFIG_USB_NET_CDC_NCM is not set +# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set +# CONFIG_USB_NET_CDC_MBIM is not set +CONFIG_USB_NET_DM9601=m +# CONFIG_USB_NET_SR9700 is not set +# CONFIG_USB_NET_SR9800 is not set +CONFIG_USB_NET_SMSC75XX=m +# CONFIG_USB_NET_SMSC95XX is not set +# CONFIG_USB_NET_GL620A is not set +# CONFIG_USB_NET_NET1080 is not set +# CONFIG_USB_NET_PLUSB is not set +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_RNDIS_HOST=m +# CONFIG_USB_NET_CDC_SUBSET is not set +# CONFIG_USB_NET_ZAURUS is not set +# CONFIG_USB_NET_CX82310_ETH is not set +# CONFIG_USB_NET_KALMIA is not set +# CONFIG_USB_NET_QMI_WWAN is not set +CONFIG_USB_HSO=m +# CONFIG_USB_NET_INT51X1 is not set +CONFIG_USB_IPHETH=m +# CONFIG_USB_SIERRA_NET is not set +# CONFIG_USB_VL600 is not set +# CONFIG_USB_NET_CH9200 is not set +# CONFIG_USB_NET_AQC111 is not set +CONFIG_USB_RTL8153_ECM=m +CONFIG_WLAN=y +CONFIG_WLAN_VENDOR_ADMTEK=y +# CONFIG_ADM8211 is not set +CONFIG_ATH_COMMON=m +CONFIG_WLAN_VENDOR_ATH=y +# CONFIG_ATH_DEBUG is not set +CONFIG_ATH5K=m +# CONFIG_ATH5K_DEBUG is not set +# CONFIG_ATH5K_TRACER is not set +CONFIG_ATH5K_PCI=y +CONFIG_ATH9K_HW=m +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_BTCOEX_SUPPORT=y +CONFIG_ATH9K=m +CONFIG_ATH9K_PCI=y +CONFIG_ATH9K_AHB=y +# CONFIG_ATH9K_DEBUGFS is not set +# CONFIG_ATH9K_DYNACK is not set +# CONFIG_ATH9K_WOW is not set +CONFIG_ATH9K_RFKILL=y +CONFIG_ATH9K_CHANNEL_CONTEXT=y +CONFIG_ATH9K_PCOEM=y +# CONFIG_ATH9K_PCI_NO_EEPROM is not set +CONFIG_ATH9K_HTC=m +# CONFIG_ATH9K_HTC_DEBUGFS is not set +CONFIG_ATH9K_HWRNG=y +CONFIG_CARL9170=m +CONFIG_CARL9170_LEDS=y +CONFIG_CARL9170_WPC=y +# CONFIG_CARL9170_HWRNG is not set +CONFIG_ATH6KL=m +# CONFIG_ATH6KL_SDIO is not set +CONFIG_ATH6KL_USB=m +# CONFIG_ATH6KL_DEBUG is not set +# CONFIG_ATH6KL_TRACING is not set +CONFIG_AR5523=m +# CONFIG_WIL6210 is not set +CONFIG_ATH10K=m +CONFIG_ATH10K_CE=y +CONFIG_ATH10K_PCI=m +# CONFIG_ATH10K_SDIO is not set +CONFIG_ATH10K_USB=m +# CONFIG_ATH10K_DEBUG is not set +# CONFIG_ATH10K_DEBUGFS is not set +# CONFIG_ATH10K_TRACING is not set +CONFIG_WCN36XX=m +# CONFIG_WCN36XX_DEBUGFS is not set +# CONFIG_ATH11K is not set +CONFIG_WLAN_VENDOR_ATMEL=y +CONFIG_ATMEL=m +CONFIG_PCI_ATMEL=m +# CONFIG_AT76C50X_USB is not set +CONFIG_WLAN_VENDOR_BROADCOM=y +# CONFIG_B43 is not set +# CONFIG_B43LEGACY is not set +CONFIG_BRCMUTIL=m +# CONFIG_BRCMSMAC is not set +CONFIG_BRCMFMAC=m +CONFIG_BRCMFMAC_PROTO_BCDC=y +CONFIG_BRCMFMAC_PROTO_MSGBUF=y +CONFIG_BRCMFMAC_SDIO=y +CONFIG_BRCMFMAC_USB=y +CONFIG_BRCMFMAC_PCIE=y +# CONFIG_BRCM_TRACING is not set +# CONFIG_BRCMDBG is not set +CONFIG_WLAN_VENDOR_CISCO=y +# CONFIG_AIRO is not set +CONFIG_WLAN_VENDOR_INTEL=y +CONFIG_IPW2100=m +CONFIG_IPW2100_MONITOR=y +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2200=m +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +# CONFIG_IPW2200_DEBUG is not set +CONFIG_LIBIPW=m +# CONFIG_LIBIPW_DEBUG is not set +CONFIG_IWLEGACY=m +CONFIG_IWL4965=m +CONFIG_IWL3945=m + +# +# iwl3945 / iwl4965 Debugging Options +# +# CONFIG_IWLEGACY_DEBUG is not set +# end of iwl3945 / iwl4965 Debugging Options + +CONFIG_IWLWIFI=m +CONFIG_IWLWIFI_LEDS=y +CONFIG_IWLDVM=m +CONFIG_IWLMVM=m +CONFIG_IWLWIFI_OPMODE_MODULAR=y + +# +# Debugging Options +# +# CONFIG_IWLWIFI_DEBUG is not set +CONFIG_IWLWIFI_DEVICE_TRACING=y +# end of Debugging Options + +CONFIG_WLAN_VENDOR_INTERSIL=y +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +# CONFIG_HOSTAP_PLX is not set +# CONFIG_HOSTAP_PCI is not set +# CONFIG_HERMES is not set +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +CONFIG_P54_LEDS=y +CONFIG_WLAN_VENDOR_MARVELL=y +CONFIG_LIBERTAS=m +# CONFIG_LIBERTAS_USB is not set +# CONFIG_LIBERTAS_SDIO is not set +# CONFIG_LIBERTAS_DEBUG is not set +# CONFIG_LIBERTAS_MESH is not set +CONFIG_LIBERTAS_THINFIRM=m +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM_USB=m +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m +# CONFIG_MWIFIEX_PCIE is not set +CONFIG_MWIFIEX_USB=m +# CONFIG_MWL8K is not set +CONFIG_WLAN_VENDOR_MEDIATEK=y +CONFIG_MT7601U=m +CONFIG_MT76_CORE=m +CONFIG_MT76_LEDS=y +CONFIG_MT76_USB=m +CONFIG_MT76x02_LIB=m +CONFIG_MT76x02_USB=m +CONFIG_MT76_CONNAC_LIB=m +CONFIG_MT76x0_COMMON=m +CONFIG_MT76x0U=m +# CONFIG_MT76x0E is not set +CONFIG_MT76x2_COMMON=m +CONFIG_MT76x2E=m +CONFIG_MT76x2U=m +CONFIG_MT7603E=m +CONFIG_MT7615_COMMON=m +CONFIG_MT7615E=m +CONFIG_MT7663_USB_SDIO_COMMON=m +CONFIG_MT7663U=m +# CONFIG_MT7663S is not set +CONFIG_MT7915E=m +# CONFIG_MT7921E is not set +# CONFIG_MT7921S is not set +# CONFIG_MT7921U is not set +CONFIG_WLAN_VENDOR_MICROCHIP=y +# CONFIG_WILC1000_SDIO is not set +# CONFIG_WLAN_VENDOR_PURELIFI is not set +CONFIG_WLAN_VENDOR_RALINK=y +CONFIG_RT2X00=m +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT61PCI=m +CONFIG_RT2800PCI=m +CONFIG_RT2800PCI_RT33XX=y +CONFIG_RT2800PCI_RT35XX=y +CONFIG_RT2800PCI_RT53XX=y +CONFIG_RT2800PCI_RT3290=y +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT3573=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RT2800_LIB=m +CONFIG_RT2800_LIB_MMIO=m +CONFIG_RT2X00_LIB_MMIO=m +CONFIG_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG is not set +CONFIG_WLAN_VENDOR_REALTEK=y +CONFIG_RTL8180=m +CONFIG_RTL8187=m +CONFIG_RTL8187_LEDS=y +CONFIG_RTL_CARDS=m +CONFIG_RTL8192CE=m +CONFIG_RTL8192SE=m +CONFIG_RTL8192DE=m +CONFIG_RTL8723AE=m +CONFIG_RTL8723BE=m +CONFIG_RTL8188EE=m +CONFIG_RTL8192EE=m +CONFIG_RTL8821AE=m +# CONFIG_RTL8192CU is not set +CONFIG_RTLWIFI=m +CONFIG_RTLWIFI_PCI=m +# CONFIG_RTLWIFI_DEBUG is not set +CONFIG_RTL8192C_COMMON=m +CONFIG_RTL8723_COMMON=m +CONFIG_RTLBTCOEXIST=m +CONFIG_RTL8XXXU=m +CONFIG_RTL8XXXU_UNTESTED=y +CONFIG_RTW88=m +CONFIG_RTW88_CORE=m +CONFIG_RTW88_PCI=m +CONFIG_RTW88_8822B=m +CONFIG_RTW88_8822C=m +CONFIG_RTW88_8723D=m +CONFIG_RTW88_8821C=m +CONFIG_RTW88_8822BE=m +CONFIG_RTW88_8822CE=m +CONFIG_RTW88_8723DE=m +CONFIG_RTW88_8821CE=m +# CONFIG_RTW88_DEBUG is not set +# CONFIG_RTW88_DEBUGFS is not set +# CONFIG_RTW89 is not set +CONFIG_WLAN_VENDOR_RSI=y +# CONFIG_RSI_91X is not set +# CONFIG_WLAN_VENDOR_SILABS is not set +CONFIG_WLAN_VENDOR_ST=y +# CONFIG_CW1200 is not set +CONFIG_WLAN_VENDOR_TI=y +# CONFIG_WL1251 is not set +# CONFIG_WL12XX is not set +# CONFIG_WL18XX is not set +# CONFIG_WLCORE is not set +CONFIG_WLAN_VENDOR_ZYDAS=y +CONFIG_USB_ZD1201=m +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +# CONFIG_WLAN_VENDOR_QUANTENNA is not set +# CONFIG_MAC80211_HWSIM is not set +CONFIG_USB_NET_RNDIS_WLAN=m +# CONFIG_VIRT_WIFI is not set +# CONFIG_WAN is not set + +# +# Wireless WAN +# +# CONFIG_WWAN is not set +# end of Wireless WAN + +# CONFIG_VMXNET3 is not set +# CONFIG_FUJITSU_ES is not set +# CONFIG_NETDEVSIM is not set +CONFIG_NET_FAILOVER=y +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_LEDS=y +CONFIG_INPUT_FF_MEMLESS=y +# CONFIG_INPUT_SPARSEKMAP is not set +# CONFIG_INPUT_MATRIXKMAP is not set +CONFIG_INPUT_VIVALDIFMAP=y + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_JOYDEV=y +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ADP5588 is not set +# CONFIG_KEYBOARD_ADP5589 is not set +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_QT1050 is not set +# CONFIG_KEYBOARD_QT1070 is not set +# CONFIG_KEYBOARD_QT2160 is not set +# CONFIG_KEYBOARD_DLINK_DIR685 is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_GPIO is not set +# CONFIG_KEYBOARD_GPIO_POLLED is not set +# CONFIG_KEYBOARD_TCA6416 is not set +# CONFIG_KEYBOARD_TCA8418 is not set +# CONFIG_KEYBOARD_MATRIX is not set +# CONFIG_KEYBOARD_LM8323 is not set +# CONFIG_KEYBOARD_LM8333 is not set +# CONFIG_KEYBOARD_MAX7359 is not set +# CONFIG_KEYBOARD_MCS is not set +# CONFIG_KEYBOARD_MPR121 is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_SAMSUNG is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_CYPRESS_SF is not set +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=y +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_BYD=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y +CONFIG_MOUSE_PS2_CYPRESS=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +# CONFIG_MOUSE_PS2_ELANTECH is not set +# CONFIG_MOUSE_PS2_SENTELIC is not set +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +# CONFIG_MOUSE_PS2_FOCALTECH is not set +# CONFIG_MOUSE_PS2_VMMOUSE is not set +CONFIG_MOUSE_PS2_SMBUS=y +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_APPLETOUCH is not set +# CONFIG_MOUSE_BCM5974 is not set +# CONFIG_MOUSE_CYAPA is not set +# CONFIG_MOUSE_ELAN_I2C is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_MOUSE_GPIO is not set +# CONFIG_MOUSE_SYNAPTICS_I2C is not set +# CONFIG_MOUSE_SYNAPTICS_USB is not set +CONFIG_INPUT_JOYSTICK=y +# CONFIG_JOYSTICK_ANALOG is not set +# CONFIG_JOYSTICK_A3D is not set +# CONFIG_JOYSTICK_ADI is not set +# CONFIG_JOYSTICK_COBRA is not set +# CONFIG_JOYSTICK_GF2K is not set +# CONFIG_JOYSTICK_GRIP is not set +# CONFIG_JOYSTICK_GRIP_MP is not set +# CONFIG_JOYSTICK_GUILLEMOT is not set +# CONFIG_JOYSTICK_INTERACT is not set +# CONFIG_JOYSTICK_SIDEWINDER is not set +# CONFIG_JOYSTICK_TMDC is not set +# CONFIG_JOYSTICK_IFORCE is not set +# CONFIG_JOYSTICK_WARRIOR is not set +# CONFIG_JOYSTICK_MAGELLAN is not set +# CONFIG_JOYSTICK_SPACEORB is not set +# CONFIG_JOYSTICK_SPACEBALL is not set +# CONFIG_JOYSTICK_STINGER is not set +# CONFIG_JOYSTICK_TWIDJOY is not set +# CONFIG_JOYSTICK_ZHENHUA is not set +# CONFIG_JOYSTICK_AS5011 is not set +# CONFIG_JOYSTICK_JOYDUMP is not set +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y +# CONFIG_JOYSTICK_PXRC is not set +# CONFIG_JOYSTICK_QWIIC is not set +# CONFIG_JOYSTICK_FSIA6B is not set +# CONFIG_JOYSTICK_SENSEHAT is not set +# CONFIG_INPUT_TABLET is not set +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_TOUCHSCREEN_AD7879 is not set +# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set +# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set +# CONFIG_TOUCHSCREEN_BU21013 is not set +# CONFIG_TOUCHSCREEN_BU21029 is not set +# CONFIG_TOUCHSCREEN_CHIPONE_ICN8505 is not set +# CONFIG_TOUCHSCREEN_CY8CTMA140 is not set +# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set +# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set +# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set +# CONFIG_TOUCHSCREEN_DYNAPRO is not set +# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set +# CONFIG_TOUCHSCREEN_EETI is not set +# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set +# CONFIG_TOUCHSCREEN_EXC3000 is not set +# CONFIG_TOUCHSCREEN_FUJITSU is not set +# CONFIG_TOUCHSCREEN_GOODIX is not set +# CONFIG_TOUCHSCREEN_HIDEEP is not set +# CONFIG_TOUCHSCREEN_HYCON_HY46XX is not set +# CONFIG_TOUCHSCREEN_ILI210X is not set +# CONFIG_TOUCHSCREEN_ILITEK is not set +# CONFIG_TOUCHSCREEN_S6SY761 is not set +# CONFIG_TOUCHSCREEN_GUNZE is not set +# CONFIG_TOUCHSCREEN_EKTF2127 is not set +CONFIG_TOUCHSCREEN_ELAN=y +# CONFIG_TOUCHSCREEN_ELO is not set +# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set +# CONFIG_TOUCHSCREEN_WACOM_I2C is not set +# CONFIG_TOUCHSCREEN_MAX11801 is not set +# CONFIG_TOUCHSCREEN_MCS5000 is not set +# CONFIG_TOUCHSCREEN_MMS114 is not set +# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set +# CONFIG_TOUCHSCREEN_MSG2638 is not set +# CONFIG_TOUCHSCREEN_MTOUCH is not set +# CONFIG_TOUCHSCREEN_IMAGIS is not set +# CONFIG_TOUCHSCREEN_INEXIO is not set +# CONFIG_TOUCHSCREEN_MK712 is not set +# CONFIG_TOUCHSCREEN_PENMOUNT is not set +# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set +# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set +# CONFIG_TOUCHSCREEN_TOUCHWIN is not set +# CONFIG_TOUCHSCREEN_PIXCIR is not set +# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set +# CONFIG_TOUCHSCREEN_WM97XX is not set +CONFIG_TOUCHSCREEN_USB_COMPOSITE=m +CONFIG_TOUCHSCREEN_USB_EGALAX=y +# CONFIG_TOUCHSCREEN_USB_PANJIT is not set +CONFIG_TOUCHSCREEN_USB_3M=y +# CONFIG_TOUCHSCREEN_USB_ITM is not set +# CONFIG_TOUCHSCREEN_USB_ETURBO is not set +# CONFIG_TOUCHSCREEN_USB_GUNZE is not set +# CONFIG_TOUCHSCREEN_USB_DMC_TSC10 is not set +# CONFIG_TOUCHSCREEN_USB_IRTOUCH is not set +# CONFIG_TOUCHSCREEN_USB_IDEALTEK is not set +# CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH is not set +# CONFIG_TOUCHSCREEN_USB_GOTOP is not set +# CONFIG_TOUCHSCREEN_USB_JASTEC is not set +# CONFIG_TOUCHSCREEN_USB_ELO is not set +# CONFIG_TOUCHSCREEN_USB_E2I is not set +# CONFIG_TOUCHSCREEN_USB_ZYTRONIC is not set +# CONFIG_TOUCHSCREEN_USB_ETT_TC45USB is not set +# CONFIG_TOUCHSCREEN_USB_NEXIO is not set +CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y +# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set +# CONFIG_TOUCHSCREEN_TSC_SERIO is not set +# CONFIG_TOUCHSCREEN_TSC2004 is not set +# CONFIG_TOUCHSCREEN_TSC2007 is not set +# CONFIG_TOUCHSCREEN_RM_TS is not set +# CONFIG_TOUCHSCREEN_SILEAD is not set +# CONFIG_TOUCHSCREEN_SIS_I2C is not set +CONFIG_TOUCHSCREEN_ST1232=m +# CONFIG_TOUCHSCREEN_STMFTS is not set +# CONFIG_TOUCHSCREEN_SUR40 is not set +# CONFIG_TOUCHSCREEN_SX8654 is not set +# CONFIG_TOUCHSCREEN_TPS6507X is not set +# CONFIG_TOUCHSCREEN_ZET6223 is not set +# CONFIG_TOUCHSCREEN_ZFORCE is not set +# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set +# CONFIG_TOUCHSCREEN_IQS5XX is not set +# CONFIG_TOUCHSCREEN_ZINITIX is not set +CONFIG_INPUT_MISC=y +# CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_BMA150 is not set +# CONFIG_INPUT_E3X0_BUTTON is not set +# CONFIG_INPUT_MMA8450 is not set +# CONFIG_INPUT_APANEL is not set +# CONFIG_INPUT_GPIO_BEEPER is not set +# CONFIG_INPUT_GPIO_DECODER is not set +# CONFIG_INPUT_GPIO_VIBRA is not set +# CONFIG_INPUT_ATLAS_BTNS is not set +CONFIG_INPUT_ATI_REMOTE2=m +# CONFIG_INPUT_KEYSPAN_REMOTE is not set +# CONFIG_INPUT_KXTJ9 is not set +# CONFIG_INPUT_POWERMATE is not set +# CONFIG_INPUT_YEALINK is not set +# CONFIG_INPUT_CM109 is not set +# CONFIG_INPUT_REGULATOR_HAPTIC is not set +CONFIG_INPUT_UINPUT=y +# CONFIG_INPUT_PCF8574 is not set +# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set +# CONFIG_INPUT_DA7280_HAPTICS is not set +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_IMS_PCU is not set +# CONFIG_INPUT_IQS269A is not set +# CONFIG_INPUT_IQS626A is not set +# CONFIG_INPUT_IQS7222 is not set +# CONFIG_INPUT_CMA3000 is not set +# CONFIG_INPUT_IDEAPAD_SLIDEBAR is not set +# CONFIG_INPUT_DRV260X_HAPTICS is not set +# CONFIG_INPUT_DRV2665_HAPTICS is not set +# CONFIG_INPUT_DRV2667_HAPTICS is not set +CONFIG_RMI4_CORE=y +# CONFIG_RMI4_I2C is not set +# CONFIG_RMI4_SMB is not set +CONFIG_RMI4_F03=y +CONFIG_RMI4_F03_SERIO=y +CONFIG_RMI4_2D_SENSOR=y +CONFIG_RMI4_F11=y +CONFIG_RMI4_F12=y +CONFIG_RMI4_F30=y +# CONFIG_RMI4_F34 is not set +# CONFIG_RMI4_F3A is not set +# CONFIG_RMI4_F55 is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y +CONFIG_SERIO_I8042=y +CONFIG_SERIO_SERPORT=y +# CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_PCIPS2 is not set +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set +# CONFIG_SERIO_ALTERA_PS2 is not set +# CONFIG_SERIO_PS2MULT is not set +# CONFIG_SERIO_ARC_PS2 is not set +# CONFIG_SERIO_GPIO_PS2 is not set +# CONFIG_USERIO is not set +# CONFIG_GAMEPORT is not set +# end of Hardware I/O ports +# end of Input device support + +# +# Character devices +# +CONFIG_TTY=y +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_HW_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_UNIX98_PTYS=y +# CONFIG_LEGACY_PTYS is not set +CONFIG_LDISC_AUTOLOAD=y + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +CONFIG_SERIAL_8250_PNP=y +# CONFIG_SERIAL_8250_16550A_VARIANTS is not set +# CONFIG_SERIAL_8250_FINTEK is not set +# CONFIG_SERIAL_8250_CONSOLE is not set +CONFIG_SERIAL_8250_DMA=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_EXAR=y +CONFIG_SERIAL_8250_NR_UARTS=32 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_DWLIB=y +CONFIG_SERIAL_8250_DW=y +# CONFIG_SERIAL_8250_RT288X is not set +# CONFIG_SERIAL_8250_LPSS is not set +CONFIG_SERIAL_8250_MID=y +# CONFIG_SERIAL_8250_PERICOM is not set + +# +# Non-8250 serial port support +# +# CONFIG_SERIAL_UARTLITE is not set +CONFIG_SERIAL_CORE=y +# CONFIG_SERIAL_JSM is not set +# CONFIG_SERIAL_LANTIQ is not set +# CONFIG_SERIAL_SCCNXP is not set +# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_ARC is not set +# CONFIG_SERIAL_RP2 is not set +# CONFIG_SERIAL_FSL_LPUART is not set +# CONFIG_SERIAL_FSL_LINFLEXUART is not set +# CONFIG_SERIAL_SPRD is not set +# end of Serial drivers + +CONFIG_SERIAL_MCTRL_GPIO=y +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_N_GSM is not set +# CONFIG_NOZOMI is not set +# CONFIG_NULL_TTY is not set +CONFIG_HVC_DRIVER=y +CONFIG_SERIAL_DEV_BUS=y +CONFIG_SERIAL_DEV_CTRL_TTYPORT=y +# CONFIG_TTY_PRINTK is not set +CONFIG_VIRTIO_CONSOLE=y +# CONFIG_IPMI_HANDLER is not set +CONFIG_HW_RANDOM=m +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +CONFIG_HW_RANDOM_INTEL=m +CONFIG_HW_RANDOM_AMD=m +# CONFIG_HW_RANDOM_BA431 is not set +# CONFIG_HW_RANDOM_VIA is not set +CONFIG_HW_RANDOM_VIRTIO=m +# CONFIG_HW_RANDOM_XIPHERA is not set +# CONFIG_APPLICOM is not set +# CONFIG_MWAVE is not set +CONFIG_DEVMEM=y +# CONFIG_NVRAM is not set +CONFIG_DEVPORT=y +# CONFIG_HPET is not set +# CONFIG_HANGCHECK_TIMER is not set +# CONFIG_TCG_TPM is not set +# CONFIG_TELCLOCK is not set +# CONFIG_XILLYBUS is not set +# CONFIG_XILLYUSB is not set +# CONFIG_RANDOM_TRUST_CPU is not set +# CONFIG_RANDOM_TRUST_BOOTLOADER is not set +# end of Character devices + +# +# I2C support +# +CONFIG_I2C=y +CONFIG_ACPI_I2C_OPREGION=y +CONFIG_I2C_BOARDINFO=y +# CONFIG_I2C_COMPAT is not set +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX=m + +# +# Multiplexer I2C Chip support +# +# CONFIG_I2C_MUX_GPIO is not set +# CONFIG_I2C_MUX_LTC4306 is not set +# CONFIG_I2C_MUX_PCA9541 is not set +# CONFIG_I2C_MUX_PCA954x is not set +# CONFIG_I2C_MUX_REG is not set +# CONFIG_I2C_MUX_MLXCPLD is not set +# end of Multiplexer I2C Chip support + +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_SMBUS=y +CONFIG_I2C_ALGOBIT=y + +# +# I2C Hardware Bus support +# + +# +# PC SMBus host controller drivers +# +CONFIG_I2C_CCGX_UCSI=m +# CONFIG_I2C_ALI1535 is not set +# CONFIG_I2C_ALI1563 is not set +# CONFIG_I2C_ALI15X3 is not set +# CONFIG_I2C_AMD756 is not set +# CONFIG_I2C_AMD8111 is not set +# CONFIG_I2C_AMD_MP2 is not set +CONFIG_I2C_I801=y +CONFIG_I2C_ISCH=y +# CONFIG_I2C_ISMT is not set +CONFIG_I2C_PIIX4=y +CONFIG_I2C_NFORCE2=y +# CONFIG_I2C_NFORCE2_S4985 is not set +CONFIG_I2C_NVIDIA_GPU=m +# CONFIG_I2C_SIS5595 is not set +# CONFIG_I2C_SIS630 is not set +# CONFIG_I2C_SIS96X is not set +CONFIG_I2C_VIA=y +CONFIG_I2C_VIAPRO=y + +# +# ACPI drivers +# +# CONFIG_I2C_SCMI is not set + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +# CONFIG_I2C_CBUS_GPIO is not set +CONFIG_I2C_DESIGNWARE_CORE=y +# CONFIG_I2C_DESIGNWARE_SLAVE is not set +CONFIG_I2C_DESIGNWARE_PLATFORM=y +# CONFIG_I2C_DESIGNWARE_AMDPSP is not set +CONFIG_I2C_DESIGNWARE_BAYTRAIL=y +# CONFIG_I2C_DESIGNWARE_PCI is not set +# CONFIG_I2C_EMEV2 is not set +# CONFIG_I2C_GPIO is not set +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PCA_PLATFORM is not set +# CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_XILINX is not set + +# +# External I2C/SMBus adapter drivers +# +# CONFIG_I2C_DIOLAN_U2C is not set +# CONFIG_I2C_CP2615 is not set +# CONFIG_I2C_ROBOTFUZZ_OSIF is not set +# CONFIG_I2C_TAOS_EVM is not set +# CONFIG_I2C_TINY_USB is not set + +# +# Other I2C/SMBus bus drivers +# +# CONFIG_I2C_MLXCPLD is not set +# CONFIG_I2C_VIRTIO is not set +# end of I2C Hardware Bus support + +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_SLAVE is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# end of I2C support + +# CONFIG_I3C is not set +# CONFIG_SPI is not set +# CONFIG_SPMI is not set +# CONFIG_HSI is not set +CONFIG_PPS=y +# CONFIG_PPS_DEBUG is not set + +# +# PPS clients support +# +# CONFIG_PPS_CLIENT_KTIMER is not set +# CONFIG_PPS_CLIENT_LDISC is not set +# CONFIG_PPS_CLIENT_GPIO is not set + +# +# PPS generators support +# + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK=y +CONFIG_PTP_1588_CLOCK_OPTIONAL=y + +# +# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. +# +CONFIG_PTP_1588_CLOCK_KVM=y +# CONFIG_PTP_1588_CLOCK_IDT82P33 is not set +# CONFIG_PTP_1588_CLOCK_IDTCM is not set +# CONFIG_PTP_1588_CLOCK_VMW is not set +# end of PTP clock support + +CONFIG_PINCTRL=y +CONFIG_PINMUX=y +CONFIG_PINCONF=y +CONFIG_GENERIC_PINCONF=y +# CONFIG_DEBUG_PINCTRL is not set +# CONFIG_PINCTRL_AMD is not set +# CONFIG_PINCTRL_MCP23S08 is not set +# CONFIG_PINCTRL_SX150X is not set + +# +# Intel pinctrl drivers +# +CONFIG_PINCTRL_BAYTRAIL=y +CONFIG_PINCTRL_CHERRYVIEW=y +CONFIG_PINCTRL_LYNXPOINT=y +CONFIG_PINCTRL_INTEL=y +# CONFIG_PINCTRL_ALDERLAKE is not set +CONFIG_PINCTRL_BROXTON=y +CONFIG_PINCTRL_CANNONLAKE=y +CONFIG_PINCTRL_CEDARFORK=y +CONFIG_PINCTRL_DENVERTON=y +# CONFIG_PINCTRL_ELKHARTLAKE is not set +CONFIG_PINCTRL_EMMITSBURG=y +CONFIG_PINCTRL_GEMINILAKE=y +CONFIG_PINCTRL_ICELAKE=y +CONFIG_PINCTRL_JASPERLAKE=y +# CONFIG_PINCTRL_LAKEFIELD is not set +CONFIG_PINCTRL_LEWISBURG=y +CONFIG_PINCTRL_SUNRISEPOINT=y +CONFIG_PINCTRL_TIGERLAKE=y +# end of Intel pinctrl drivers + +# +# Renesas pinctrl drivers +# +# end of Renesas pinctrl drivers + +CONFIG_GPIOLIB=y +CONFIG_GPIOLIB_FASTPATH_LIMIT=512 +CONFIG_GPIO_ACPI=y +CONFIG_GPIOLIB_IRQCHIP=y +# CONFIG_DEBUG_GPIO is not set +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_CDEV=y +CONFIG_GPIO_CDEV_V1=y + +# +# Memory mapped GPIO drivers +# +# CONFIG_GPIO_AMDPT is not set +# CONFIG_GPIO_DWAPB is not set +# CONFIG_GPIO_EXAR is not set +# CONFIG_GPIO_GENERIC_PLATFORM is not set +# CONFIG_GPIO_MB86S7X is not set +# CONFIG_GPIO_VX855 is not set +# CONFIG_GPIO_AMD_FCH is not set +# end of Memory mapped GPIO drivers + +# +# Port-mapped I/O GPIO drivers +# +# CONFIG_GPIO_F7188X is not set +# CONFIG_GPIO_IT87 is not set +# CONFIG_GPIO_SCH is not set +# CONFIG_GPIO_SCH311X is not set +# CONFIG_GPIO_WINBOND is not set +# CONFIG_GPIO_WS16C48 is not set +# end of Port-mapped I/O GPIO drivers + +# +# I2C GPIO expanders +# +# CONFIG_GPIO_ADP5588 is not set +# CONFIG_GPIO_MAX7300 is not set +# CONFIG_GPIO_MAX732X is not set +# CONFIG_GPIO_PCA953X is not set +# CONFIG_GPIO_PCA9570 is not set +# CONFIG_GPIO_PCF857X is not set +# CONFIG_GPIO_TPIC2810 is not set +# end of I2C GPIO expanders + +# +# MFD GPIO expanders +# +# end of MFD GPIO expanders + +# +# PCI GPIO expanders +# +# CONFIG_GPIO_AMD8111 is not set +# CONFIG_GPIO_ML_IOH is not set +# CONFIG_GPIO_PCI_IDIO_16 is not set +# CONFIG_GPIO_PCIE_IDIO_24 is not set +# CONFIG_GPIO_RDC321X is not set +# end of PCI GPIO expanders + +# +# USB GPIO expanders +# +# end of USB GPIO expanders + +# +# Virtual GPIO drivers +# +# CONFIG_GPIO_AGGREGATOR is not set +# CONFIG_GPIO_MOCKUP is not set +# CONFIG_GPIO_VIRTIO is not set +# CONFIG_GPIO_SIM is not set +# end of Virtual GPIO drivers + +# CONFIG_W1 is not set +# CONFIG_POWER_RESET is not set +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +CONFIG_POWER_SUPPLY_HWMON=y +# CONFIG_PDA_POWER is not set +# CONFIG_IP5XXX_POWER is not set +# CONFIG_TEST_POWER is not set +# CONFIG_CHARGER_ADP5061 is not set +# CONFIG_BATTERY_CW2015 is not set +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2781 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_SAMSUNG_SDI is not set +# CONFIG_BATTERY_SBS is not set +# CONFIG_CHARGER_SBS is not set +# CONFIG_MANAGER_SBS is not set +# CONFIG_BATTERY_BQ27XXX is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_LP8727 is not set +# CONFIG_CHARGER_GPIO is not set +# CONFIG_CHARGER_MANAGER is not set +# CONFIG_CHARGER_LT3651 is not set +# CONFIG_CHARGER_LTC4162L is not set +# CONFIG_CHARGER_MAX77976 is not set +# CONFIG_CHARGER_BQ2415X is not set +# CONFIG_CHARGER_BQ24257 is not set +# CONFIG_CHARGER_BQ24735 is not set +# CONFIG_CHARGER_BQ2515X is not set +# CONFIG_CHARGER_BQ25890 is not set +# CONFIG_CHARGER_BQ25980 is not set +# CONFIG_CHARGER_BQ256XX is not set +# CONFIG_CHARGER_SMB347 is not set +# CONFIG_BATTERY_GAUGE_LTC2941 is not set +# CONFIG_BATTERY_GOLDFISH is not set +# CONFIG_BATTERY_RT5033 is not set +# CONFIG_CHARGER_RT9455 is not set +# CONFIG_CHARGER_BD99954 is not set +# CONFIG_BATTERY_UG3105 is not set +CONFIG_HWMON=y +CONFIG_HWMON_VID=y +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Native drivers +# +# CONFIG_SENSORS_ABITUGURU is not set +# CONFIG_SENSORS_ABITUGURU3 is not set +# CONFIG_SENSORS_AD7414 is not set +# CONFIG_SENSORS_AD7418 is not set +# CONFIG_SENSORS_ADM1021 is not set +# CONFIG_SENSORS_ADM1025 is not set +# CONFIG_SENSORS_ADM1026 is not set +# CONFIG_SENSORS_ADM1029 is not set +# CONFIG_SENSORS_ADM1031 is not set +# CONFIG_SENSORS_ADM1177 is not set +# CONFIG_SENSORS_ADM9240 is not set +# CONFIG_SENSORS_ADT7410 is not set +# CONFIG_SENSORS_ADT7411 is not set +# CONFIG_SENSORS_ADT7462 is not set +# CONFIG_SENSORS_ADT7470 is not set +# CONFIG_SENSORS_ADT7475 is not set +# CONFIG_SENSORS_AHT10 is not set +# CONFIG_SENSORS_AQUACOMPUTER_D5NEXT is not set +# CONFIG_SENSORS_AS370 is not set +# CONFIG_SENSORS_ASC7621 is not set +# CONFIG_SENSORS_AXI_FAN_CONTROL is not set +CONFIG_SENSORS_K8TEMP=m +CONFIG_SENSORS_K10TEMP=m +CONFIG_SENSORS_FAM15H_POWER=m +# CONFIG_SENSORS_APPLESMC is not set +# CONFIG_SENSORS_ASB100 is not set +# CONFIG_SENSORS_ASPEED is not set +# CONFIG_SENSORS_ATXP1 is not set +# CONFIG_SENSORS_CORSAIR_CPRO is not set +# CONFIG_SENSORS_CORSAIR_PSU is not set +# CONFIG_SENSORS_DRIVETEMP is not set +# CONFIG_SENSORS_DS620 is not set +# CONFIG_SENSORS_DS1621 is not set +# CONFIG_SENSORS_DELL_SMM is not set +# CONFIG_SENSORS_I5K_AMB is not set +# CONFIG_SENSORS_F71805F is not set +# CONFIG_SENSORS_F71882FG is not set +# CONFIG_SENSORS_F75375S is not set +# CONFIG_SENSORS_FSCHMD is not set +# CONFIG_SENSORS_GL518SM is not set +# CONFIG_SENSORS_GL520SM is not set +# CONFIG_SENSORS_G760A is not set +# CONFIG_SENSORS_G762 is not set +# CONFIG_SENSORS_HIH6130 is not set +# CONFIG_SENSORS_I5500 is not set +CONFIG_SENSORS_CORETEMP=y +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_JC42=m +# CONFIG_SENSORS_POWR1220 is not set +# CONFIG_SENSORS_LINEAGE is not set +# CONFIG_SENSORS_LTC2945 is not set +# CONFIG_SENSORS_LTC2947_I2C is not set +# CONFIG_SENSORS_LTC2990 is not set +# CONFIG_SENSORS_LTC2992 is not set +# CONFIG_SENSORS_LTC4151 is not set +# CONFIG_SENSORS_LTC4215 is not set +# CONFIG_SENSORS_LTC4222 is not set +# CONFIG_SENSORS_LTC4245 is not set +# CONFIG_SENSORS_LTC4260 is not set +# CONFIG_SENSORS_LTC4261 is not set +# CONFIG_SENSORS_MAX127 is not set +# CONFIG_SENSORS_MAX16065 is not set +# CONFIG_SENSORS_MAX1619 is not set +# CONFIG_SENSORS_MAX1668 is not set +# CONFIG_SENSORS_MAX197 is not set +# CONFIG_SENSORS_MAX31730 is not set +# CONFIG_SENSORS_MAX6620 is not set +# CONFIG_SENSORS_MAX6621 is not set +# CONFIG_SENSORS_MAX6639 is not set +# CONFIG_SENSORS_MAX6642 is not set +# CONFIG_SENSORS_MAX6650 is not set +# CONFIG_SENSORS_MAX6697 is not set +# CONFIG_SENSORS_MAX31790 is not set +# CONFIG_SENSORS_MCP3021 is not set +# CONFIG_SENSORS_TC654 is not set +# CONFIG_SENSORS_TPS23861 is not set +# CONFIG_SENSORS_MR75203 is not set +# CONFIG_SENSORS_LM63 is not set +# CONFIG_SENSORS_LM73 is not set +# CONFIG_SENSORS_LM75 is not set +# CONFIG_SENSORS_LM77 is not set +# CONFIG_SENSORS_LM78 is not set +# CONFIG_SENSORS_LM80 is not set +# CONFIG_SENSORS_LM83 is not set +# CONFIG_SENSORS_LM85 is not set +# CONFIG_SENSORS_LM87 is not set +# CONFIG_SENSORS_LM90 is not set +# CONFIG_SENSORS_LM92 is not set +# CONFIG_SENSORS_LM93 is not set +# CONFIG_SENSORS_LM95234 is not set +# CONFIG_SENSORS_LM95241 is not set +# CONFIG_SENSORS_LM95245 is not set +# CONFIG_SENSORS_PC87360 is not set +# CONFIG_SENSORS_PC87427 is not set +# CONFIG_SENSORS_NCT6683 is not set +# CONFIG_SENSORS_NCT6775 is not set +# CONFIG_SENSORS_NCT6775_I2C is not set +# CONFIG_SENSORS_NCT7802 is not set +# CONFIG_SENSORS_NPCM7XX is not set +# CONFIG_SENSORS_NZXT_KRAKEN2 is not set +# CONFIG_SENSORS_NZXT_SMART2 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_PMBUS is not set +# CONFIG_SENSORS_SBTSI is not set +# CONFIG_SENSORS_SBRMI is not set +# CONFIG_SENSORS_SHT15 is not set +# CONFIG_SENSORS_SHT21 is not set +# CONFIG_SENSORS_SHT3x is not set +# CONFIG_SENSORS_SHT4x is not set +# CONFIG_SENSORS_SHTC1 is not set +# CONFIG_SENSORS_SIS5595 is not set +# CONFIG_SENSORS_SY7636A is not set +# CONFIG_SENSORS_DME1737 is not set +# CONFIG_SENSORS_EMC1403 is not set +# CONFIG_SENSORS_EMC2103 is not set +# CONFIG_SENSORS_EMC6W201 is not set +# CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47M192 is not set +# CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_STTS751 is not set +# CONFIG_SENSORS_SMM665 is not set +# CONFIG_SENSORS_ADC128D818 is not set +# CONFIG_SENSORS_ADS7828 is not set +# CONFIG_SENSORS_AMC6821 is not set +# CONFIG_SENSORS_INA209 is not set +# CONFIG_SENSORS_INA2XX is not set +# CONFIG_SENSORS_INA238 is not set +# CONFIG_SENSORS_INA3221 is not set +# CONFIG_SENSORS_TC74 is not set +# CONFIG_SENSORS_THMC50 is not set +# CONFIG_SENSORS_TMP102 is not set +# CONFIG_SENSORS_TMP103 is not set +# CONFIG_SENSORS_TMP108 is not set +# CONFIG_SENSORS_TMP401 is not set +# CONFIG_SENSORS_TMP421 is not set +# CONFIG_SENSORS_TMP464 is not set +# CONFIG_SENSORS_TMP513 is not set +# CONFIG_SENSORS_VIA_CPUTEMP is not set +# CONFIG_SENSORS_VIA686A is not set +# CONFIG_SENSORS_VT1211 is not set +# CONFIG_SENSORS_VT8231 is not set +# CONFIG_SENSORS_W83773G is not set +# CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83791D is not set +# CONFIG_SENSORS_W83792D is not set +# CONFIG_SENSORS_W83793 is not set +# CONFIG_SENSORS_W83795 is not set +# CONFIG_SENSORS_W83L785TS is not set +# CONFIG_SENSORS_W83L786NG is not set +# CONFIG_SENSORS_W83627HF is not set +CONFIG_SENSORS_W83627EHF=y +# CONFIG_SENSORS_XGENE is not set + +# +# ACPI drivers +# +# CONFIG_SENSORS_ACPI_POWER is not set +CONFIG_SENSORS_ATK0110=m +# CONFIG_SENSORS_ASUS_WMI is not set +# CONFIG_SENSORS_ASUS_WMI_EC is not set +# CONFIG_SENSORS_ASUS_EC is not set +CONFIG_THERMAL=y +CONFIG_THERMAL_NETLINK=y +CONFIG_THERMAL_STATISTICS=y +CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 +CONFIG_THERMAL_HWMON=y +CONFIG_THERMAL_WRITABLE_TRIPS=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +# CONFIG_THERMAL_GOV_FAIR_SHARE is not set +CONFIG_THERMAL_GOV_STEP_WISE=y +# CONFIG_THERMAL_GOV_BANG_BANG is not set +CONFIG_THERMAL_GOV_USER_SPACE=y +# CONFIG_THERMAL_EMULATION is not set + +# +# Intel thermal drivers +# +CONFIG_INTEL_POWERCLAMP=m +CONFIG_X86_THERMAL_VECTOR=y +CONFIG_X86_PKG_TEMP_THERMAL=m +CONFIG_INTEL_SOC_DTS_IOSF_CORE=m +CONFIG_INTEL_SOC_DTS_THERMAL=m + +# +# ACPI INT340X thermal drivers +# +# CONFIG_INT340X_THERMAL is not set +# end of ACPI INT340X thermal drivers + +# CONFIG_INTEL_PCH_THERMAL is not set +# CONFIG_INTEL_TCC_COOLING is not set +# CONFIG_INTEL_MENLOW is not set +CONFIG_INTEL_HFI_THERMAL=y +# end of Intel thermal drivers + +# CONFIG_WATCHDOG is not set +CONFIG_SSB_POSSIBLE=y +CONFIG_SSB=y +CONFIG_SSB_SPROM=y +CONFIG_SSB_PCIHOST_POSSIBLE=y +CONFIG_SSB_PCIHOST=y +CONFIG_SSB_SDIOHOST_POSSIBLE=y +CONFIG_SSB_SDIOHOST=y +CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y +CONFIG_SSB_DRIVER_PCICORE=y +# CONFIG_SSB_DRIVER_GPIO is not set +CONFIG_BCMA_POSSIBLE=y +CONFIG_BCMA=m +CONFIG_BCMA_HOST_PCI_POSSIBLE=y +CONFIG_BCMA_HOST_PCI=y +# CONFIG_BCMA_HOST_SOC is not set +CONFIG_BCMA_DRIVER_PCI=y +CONFIG_BCMA_DRIVER_GMAC_CMN=y +# CONFIG_BCMA_DRIVER_GPIO is not set +# CONFIG_BCMA_DEBUG is not set + +# +# Multifunction device drivers +# +CONFIG_MFD_CORE=y +# CONFIG_MFD_AS3711 is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_AAT2870_CORE is not set +# CONFIG_MFD_BCM590XX is not set +# CONFIG_MFD_BD9571MWV is not set +# CONFIG_MFD_AXP20X_I2C is not set +# CONFIG_MFD_MADERA is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_MFD_DA9052_I2C is not set +# CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_DA9062 is not set +# CONFIG_MFD_DA9063 is not set +# CONFIG_MFD_DA9150 is not set +# CONFIG_MFD_DLN2 is not set +# CONFIG_MFD_MC13XXX_I2C is not set +# CONFIG_MFD_MP2629 is not set +# CONFIG_HTC_PASIC3 is not set +# CONFIG_HTC_I2CPLD is not set +# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set +# CONFIG_LPC_ICH is not set +CONFIG_LPC_SCH=y +# CONFIG_INTEL_SOC_PMIC is not set +# CONFIG_INTEL_SOC_PMIC_CHTWC is not set +# CONFIG_INTEL_SOC_PMIC_CHTDC_TI is not set +CONFIG_MFD_INTEL_LPSS=y +CONFIG_MFD_INTEL_LPSS_ACPI=y +CONFIG_MFD_INTEL_LPSS_PCI=y +# CONFIG_MFD_INTEL_PMC_BXT is not set +# CONFIG_MFD_IQS62X is not set +# CONFIG_MFD_JANZ_CMODIO is not set +# CONFIG_MFD_KEMPLD is not set +# CONFIG_MFD_88PM800 is not set +# CONFIG_MFD_88PM805 is not set +# CONFIG_MFD_88PM860X is not set +# CONFIG_MFD_MAX14577 is not set +# CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX77843 is not set +# CONFIG_MFD_MAX8907 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +# CONFIG_MFD_MT6360 is not set +# CONFIG_MFD_MT6397 is not set +# CONFIG_MFD_MENF21BMC is not set +# CONFIG_MFD_VIPERBOARD is not set +# CONFIG_MFD_RETU is not set +# CONFIG_MFD_PCF50633 is not set +# CONFIG_UCB1400_CORE is not set +# CONFIG_MFD_RDC321X is not set +# CONFIG_MFD_RT4831 is not set +# CONFIG_MFD_RT5033 is not set +# CONFIG_MFD_RC5T583 is not set +# CONFIG_MFD_SI476X_CORE is not set +# CONFIG_MFD_SIMPLE_MFD_I2C is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_MFD_SKY81452 is not set +# CONFIG_MFD_SYSCON is not set +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_LP3943 is not set +# CONFIG_MFD_LP8788 is not set +# CONFIG_MFD_TI_LMU is not set +# CONFIG_MFD_PALMAS is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65086 is not set +# CONFIG_MFD_TPS65090 is not set +# CONFIG_MFD_TI_LP873X is not set +# CONFIG_MFD_TPS6586X is not set +# CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_TWL4030_CORE is not set +# CONFIG_TWL6040_CORE is not set +CONFIG_MFD_WL1273_CORE=m +# CONFIG_MFD_LM3533 is not set +# CONFIG_MFD_TQMX86 is not set +# CONFIG_MFD_VX855 is not set +# CONFIG_MFD_ARIZONA_I2C is not set +# CONFIG_MFD_WM8400 is not set +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set +# CONFIG_MFD_ATC260X_I2C is not set +# CONFIG_RAVE_SP_CORE is not set +# end of Multifunction device drivers + +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_FIXED_VOLTAGE is not set +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +# CONFIG_REGULATOR_88PG86X is not set +# CONFIG_REGULATOR_ACT8865 is not set +# CONFIG_REGULATOR_AD5398 is not set +# CONFIG_REGULATOR_DA9210 is not set +# CONFIG_REGULATOR_DA9211 is not set +# CONFIG_REGULATOR_FAN53555 is not set +# CONFIG_REGULATOR_GPIO is not set +# CONFIG_REGULATOR_ISL9305 is not set +# CONFIG_REGULATOR_ISL6271A is not set +# CONFIG_REGULATOR_LP3971 is not set +# CONFIG_REGULATOR_LP3972 is not set +# CONFIG_REGULATOR_LP872X is not set +# CONFIG_REGULATOR_LP8755 is not set +# CONFIG_REGULATOR_LTC3589 is not set +# CONFIG_REGULATOR_LTC3676 is not set +# CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8893 is not set +# CONFIG_REGULATOR_MAX8952 is not set +# CONFIG_REGULATOR_MAX20086 is not set +# CONFIG_REGULATOR_MAX77826 is not set +# CONFIG_REGULATOR_MP8859 is not set +# CONFIG_REGULATOR_MT6311 is not set +# CONFIG_REGULATOR_PCA9450 is not set +# CONFIG_REGULATOR_PV88060 is not set +# CONFIG_REGULATOR_PV88080 is not set +# CONFIG_REGULATOR_PV88090 is not set +# CONFIG_REGULATOR_RT4801 is not set +# CONFIG_REGULATOR_RT5190A is not set +# CONFIG_REGULATOR_RT5759 is not set +# CONFIG_REGULATOR_RT6160 is not set +# CONFIG_REGULATOR_RT6245 is not set +# CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTMV20 is not set +# CONFIG_REGULATOR_RTQ6752 is not set +# CONFIG_REGULATOR_SLG51000 is not set +# CONFIG_REGULATOR_SY7636A is not set +# CONFIG_REGULATOR_TPS51632 is not set +# CONFIG_REGULATOR_TPS62360 is not set +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set +# CONFIG_REGULATOR_TPS65132 is not set +CONFIG_RC_CORE=y +CONFIG_BPF_LIRC_MODE2=y +CONFIG_LIRC=y +CONFIG_RC_MAP=m +CONFIG_RC_DECODERS=y +CONFIG_IR_IMON_DECODER=m +CONFIG_IR_JVC_DECODER=m +CONFIG_IR_MCE_KBD_DECODER=m +CONFIG_IR_NEC_DECODER=m +CONFIG_IR_RC5_DECODER=m +CONFIG_IR_RC6_DECODER=m +CONFIG_IR_RCMM_DECODER=m +CONFIG_IR_SANYO_DECODER=m +CONFIG_IR_SHARP_DECODER=m +CONFIG_IR_SONY_DECODER=m +CONFIG_IR_XMP_DECODER=m +CONFIG_RC_DEVICES=y +CONFIG_IR_ENE=m +CONFIG_IR_FINTEK=m +CONFIG_IR_IGORPLUGUSB=m +CONFIG_IR_IGUANA=m +CONFIG_IR_IMON=m +CONFIG_IR_IMON_RAW=m +CONFIG_IR_ITE_CIR=m +CONFIG_IR_MCEUSB=m +CONFIG_IR_NUVOTON=m +CONFIG_IR_REDRAT3=m +CONFIG_IR_SERIAL=m +CONFIG_IR_SERIAL_TRANSMITTER=y +CONFIG_IR_STREAMZAP=m +CONFIG_IR_TOY=m +CONFIG_IR_TTUSBIR=m +CONFIG_IR_WINBOND_CIR=m +CONFIG_RC_ATI_REMOTE=m +# CONFIG_RC_LOOPBACK is not set +CONFIG_RC_XBOX_DVD=m +CONFIG_CEC_CORE=y + +# +# CEC support +# +# CONFIG_MEDIA_CEC_RC is not set +# CONFIG_MEDIA_CEC_SUPPORT is not set +# end of CEC support + +CONFIG_MEDIA_SUPPORT=m +# CONFIG_MEDIA_SUPPORT_FILTER is not set +CONFIG_MEDIA_SUBDRV_AUTOSELECT=y + +# +# Media device types +# +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +CONFIG_MEDIA_SDR_SUPPORT=y +CONFIG_MEDIA_PLATFORM_SUPPORT=y +CONFIG_MEDIA_TEST_SUPPORT=y +# end of Media device types + +# +# Media core support +# +CONFIG_VIDEO_DEV=m +CONFIG_MEDIA_CONTROLLER=y +CONFIG_DVB_CORE=m +# end of Media core support + +# +# Video4Linux options +# +CONFIG_VIDEO_V4L2_I2C=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_VIDEO_TUNER=m +# CONFIG_V4L2_FLASH_LED_CLASS is not set +CONFIG_V4L2_FWNODE=m +CONFIG_V4L2_ASYNC=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_VMALLOC=m +# end of Video4Linux options + +# +# Media controller options +# +CONFIG_MEDIA_CONTROLLER_DVB=y +# end of Media controller options + +# +# Digital TV options +# +# CONFIG_DVB_MMAP is not set +CONFIG_DVB_NET=y +CONFIG_DVB_MAX_ADAPTERS=64 +# CONFIG_DVB_DYNAMIC_MINORS is not set +# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set +# CONFIG_DVB_ULE_DEBUG is not set +# end of Digital TV options + +# +# Media drivers +# + +# +# Media drivers +# +CONFIG_MEDIA_USB_SUPPORT=y + +# +# Webcam devices +# +# CONFIG_VIDEO_CPIA2 is not set +# CONFIG_USB_GSPCA is not set +# CONFIG_USB_PWC is not set +# CONFIG_USB_S2255 is not set +# CONFIG_USB_STKWEBCAM is not set +CONFIG_VIDEO_USBTV=m +CONFIG_USB_VIDEO_CLASS=m +# CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV is not set +# CONFIG_USB_ZR364XX is not set + +# +# Analog TV USB devices +# +# CONFIG_VIDEO_GO7007 is not set +CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DVB=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_STK1160_COMMON=m +CONFIG_VIDEO_STK1160=m + +# +# Analog/digital TV USB devices +# +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_AU0828_V4L2=y +CONFIG_VIDEO_AU0828_RC=y +CONFIG_VIDEO_CX231XX=m +CONFIG_VIDEO_CX231XX_RC=y +# CONFIG_VIDEO_CX231XX_ALSA is not set +CONFIG_VIDEO_CX231XX_DVB=m +CONFIG_VIDEO_TM6000=m +# CONFIG_VIDEO_TM6000_ALSA is not set +CONFIG_VIDEO_TM6000_DVB=m + +# +# Digital TV USB devices +# +CONFIG_DVB_AS102=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set +CONFIG_DVB_USB_V2=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_AF9035=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_AZ6007=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_DVBSKY=m +CONFIG_DVB_USB_EC168=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_LME2510=m +CONFIG_DVB_USB_MXL111SF=m +CONFIG_DVB_USB_RTL28XXU=m +CONFIG_DVB_USB_ZD1301=m +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_CXUSB=m +# CONFIG_DVB_USB_CXUSB_ANALOG is not set +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_DIB3000MC=m +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_PCTV452E=m +CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_VP7045=m +CONFIG_SMS_USB_DRV=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m + +# +# Webcam, TV (analog/digital) USB devices +# +CONFIG_VIDEO_EM28XX=m +# CONFIG_VIDEO_EM28XX_V4L2 is not set +# CONFIG_VIDEO_EM28XX_ALSA is not set +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_EM28XX_RC=m + +# +# Software defined radio USB devices +# +# CONFIG_USB_AIRSPY is not set +# CONFIG_USB_HACKRF is not set +CONFIG_MEDIA_PCI_SUPPORT=y + +# +# Media capture support +# +# CONFIG_VIDEO_SOLO6X10 is not set +# CONFIG_VIDEO_TW5864 is not set +# CONFIG_VIDEO_TW68 is not set +# CONFIG_VIDEO_TW686X is not set + +# +# Media capture/analog TV support +# +# CONFIG_VIDEO_DT3155 is not set +# CONFIG_VIDEO_IVTV is not set +# CONFIG_VIDEO_HEXIUM_GEMINI is not set +# CONFIG_VIDEO_HEXIUM_ORION is not set +# CONFIG_VIDEO_MXB is not set + +# +# Media capture/analog/hybrid TV support +# +CONFIG_VIDEO_BT848=m +CONFIG_DVB_BT8XX=m +CONFIG_VIDEO_CX18=m +# CONFIG_VIDEO_CX18_ALSA is not set +CONFIG_VIDEO_CX23885=m +CONFIG_MEDIA_ALTERA_CI=m +CONFIG_VIDEO_CX25821=m +# CONFIG_VIDEO_CX25821_ALSA is not set +CONFIG_VIDEO_CX88=m +# CONFIG_VIDEO_CX88_ALSA is not set +# CONFIG_VIDEO_CX88_BLACKBIRD is not set +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_ENABLE_VP3054=y +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_CX88_MPEG=m +CONFIG_VIDEO_SAA7134=m +# CONFIG_VIDEO_SAA7134_ALSA is not set +CONFIG_VIDEO_SAA7134_RC=y +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_SAA7164=m + +# +# Media digital TV PCI Adapters +# +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set +CONFIG_DVB_DDBRIDGE=m +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set +CONFIG_DVB_DM1105=m +CONFIG_MANTIS_CORE=m +CONFIG_DVB_MANTIS=m +CONFIG_DVB_HOPPER=m +CONFIG_DVB_NGENE=m +# CONFIG_DVB_PLUTO2 is not set +CONFIG_DVB_PT1=m +CONFIG_DVB_PT3=m +CONFIG_DVB_SMIPCIE=m +CONFIG_DVB_BUDGET_CORE=m +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_VIDEO_IPU3_CIO2=m +# CONFIG_CIO2_BRIDGE is not set +CONFIG_RADIO_ADAPTERS=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_RADIO_SAA7706H=m +CONFIG_RADIO_SHARK=m +CONFIG_RADIO_SHARK2=m +CONFIG_RADIO_SI4713=m +CONFIG_RADIO_TEA575X=m +CONFIG_RADIO_TEA5764=m +CONFIG_RADIO_TEF6862=m +CONFIG_RADIO_WL1273=m +CONFIG_USB_DSBR=m +CONFIG_USB_KEENE=m +CONFIG_USB_MA901=m +CONFIG_USB_MR800=m +CONFIG_USB_RAREMONO=m +CONFIG_RADIO_SI470X=m +CONFIG_USB_SI470X=m +CONFIG_I2C_SI470X=m +CONFIG_USB_SI4713=m +CONFIG_PLATFORM_SI4713=m +CONFIG_I2C_SI4713=m +CONFIG_MEDIA_PLATFORM_DRIVERS=y +# CONFIG_V4L_PLATFORM_DRIVERS is not set +# CONFIG_SDR_PLATFORM_DRIVERS is not set +# CONFIG_DVB_PLATFORM_DRIVERS is not set +# CONFIG_V4L_MEM2MEM_DRIVERS is not set + +# +# Allegro DVT media platform drivers +# + +# +# Amlogic media platform drivers +# + +# +# Amphion drivers +# + +# +# Aspeed media platform drivers +# + +# +# Atmel media platform drivers +# + +# +# Cadence media platform drivers +# +# CONFIG_VIDEO_CADENCE_CSI2RX is not set +# CONFIG_VIDEO_CADENCE_CSI2TX is not set + +# +# Chips&Media media platform drivers +# + +# +# Intel media platform drivers +# + +# +# Marvell media platform drivers +# + +# +# Mediatek media platform drivers +# + +# +# NVidia media platform drivers +# + +# +# NXP media platform drivers +# + +# +# Qualcomm media platform drivers +# + +# +# Renesas media platform drivers +# + +# +# Rockchip media platform drivers +# + +# +# Samsung media platform drivers +# + +# +# STMicroelectronics media platform drivers +# + +# +# Sunxi media platform drivers +# + +# +# Texas Instruments drivers +# + +# +# VIA media platform drivers +# + +# +# Xilinx media platform drivers +# + +# +# MMC/SDIO DVB adapters +# +CONFIG_SMS_SDIO_DRV=m +# CONFIG_V4L_TEST_DRIVERS is not set +# CONFIG_DVB_TEST_DRIVERS is not set + +# +# FireWire (IEEE 1394) Adapters +# +CONFIG_DVB_FIREDTV=m +CONFIG_DVB_FIREDTV_INPUT=y +CONFIG_MEDIA_COMMON_OPTIONS=y + +# +# common driver options +# +CONFIG_CYPRESS_FIRMWARE=m +CONFIG_TTPCI_EEPROM=m +CONFIG_VIDEO_CX2341X=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_SMS_SIANO_MDTV=m +CONFIG_SMS_SIANO_RC=y +# CONFIG_SMS_SIANO_DEBUGFS is not set +CONFIG_VIDEOBUF2_CORE=m +CONFIG_VIDEOBUF2_V4L2=m +CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_VMALLOC=m +CONFIG_VIDEOBUF2_DMA_SG=m +CONFIG_VIDEOBUF2_DVB=m +# end of Media drivers + +# +# Media ancillary drivers +# +CONFIG_MEDIA_ATTACH=y + +# +# IR I2C driver auto-selected by 'Autoselect ancillary drivers' +# +CONFIG_VIDEO_IR_I2C=m + +# +# Camera sensor devices +# +# CONFIG_VIDEO_HI556 is not set +# CONFIG_VIDEO_HI846 is not set +# CONFIG_VIDEO_HI847 is not set +# CONFIG_VIDEO_IMX208 is not set +# CONFIG_VIDEO_IMX214 is not set +# CONFIG_VIDEO_IMX219 is not set +# CONFIG_VIDEO_IMX258 is not set +# CONFIG_VIDEO_IMX274 is not set +# CONFIG_VIDEO_IMX290 is not set +# CONFIG_VIDEO_IMX319 is not set +# CONFIG_VIDEO_IMX355 is not set +# CONFIG_VIDEO_MT9M001 is not set +# CONFIG_VIDEO_MT9M032 is not set +# CONFIG_VIDEO_MT9M111 is not set +# CONFIG_VIDEO_MT9P031 is not set +# CONFIG_VIDEO_MT9T001 is not set +# CONFIG_VIDEO_MT9T112 is not set +# CONFIG_VIDEO_MT9V011 is not set +# CONFIG_VIDEO_MT9V032 is not set +# CONFIG_VIDEO_MT9V111 is not set +# CONFIG_VIDEO_NOON010PC30 is not set +# CONFIG_VIDEO_OG01A1B is not set +# CONFIG_VIDEO_OV02A10 is not set +# CONFIG_VIDEO_OV08D10 is not set +# CONFIG_VIDEO_OV13858 is not set +# CONFIG_VIDEO_OV13B10 is not set +# CONFIG_VIDEO_OV2640 is not set +# CONFIG_VIDEO_OV2659 is not set +# CONFIG_VIDEO_OV2680 is not set +# CONFIG_VIDEO_OV2685 is not set +# CONFIG_VIDEO_OV2740 is not set +# CONFIG_VIDEO_OV5647 is not set +# CONFIG_VIDEO_OV5648 is not set +# CONFIG_VIDEO_OV5670 is not set +# CONFIG_VIDEO_OV5675 is not set +# CONFIG_VIDEO_OV5693 is not set +# CONFIG_VIDEO_OV5695 is not set +# CONFIG_VIDEO_OV6650 is not set +# CONFIG_VIDEO_OV7251 is not set +# CONFIG_VIDEO_OV7640 is not set +# CONFIG_VIDEO_OV7670 is not set +# CONFIG_VIDEO_OV772X is not set +# CONFIG_VIDEO_OV7740 is not set +# CONFIG_VIDEO_OV8856 is not set +# CONFIG_VIDEO_OV8865 is not set +# CONFIG_VIDEO_OV9640 is not set +# CONFIG_VIDEO_OV9650 is not set +# CONFIG_VIDEO_OV9734 is not set +# CONFIG_VIDEO_RDACM20 is not set +# CONFIG_VIDEO_RDACM21 is not set +# CONFIG_VIDEO_RJ54N1 is not set +# CONFIG_VIDEO_S5K4ECGX is not set +# CONFIG_VIDEO_S5K5BAF is not set +# CONFIG_VIDEO_S5K6A3 is not set +# CONFIG_VIDEO_S5K6AA is not set +# CONFIG_VIDEO_SR030PC30 is not set +# CONFIG_VIDEO_VS6624 is not set +# CONFIG_VIDEO_CCS is not set +# CONFIG_VIDEO_ET8EK8 is not set +# CONFIG_VIDEO_M5MOLS is not set +# end of Camera sensor devices + +# +# Lens drivers +# +# CONFIG_VIDEO_AD5820 is not set +# CONFIG_VIDEO_AK7375 is not set +# CONFIG_VIDEO_DW9714 is not set +# CONFIG_VIDEO_DW9768 is not set +# CONFIG_VIDEO_DW9807_VCM is not set +# end of Lens drivers + +# +# Flash devices +# +# CONFIG_VIDEO_ADP1653 is not set +# CONFIG_VIDEO_LM3560 is not set +# CONFIG_VIDEO_LM3646 is not set +# end of Flash devices + +# +# Audio decoders, processors and mixers +# +CONFIG_VIDEO_CS3308=m +CONFIG_VIDEO_CS5345=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_MSP3400=m +# CONFIG_VIDEO_SONY_BTF_MPX is not set +# CONFIG_VIDEO_TDA1997X is not set +CONFIG_VIDEO_TDA7432=m +# CONFIG_VIDEO_TDA9840 is not set +# CONFIG_VIDEO_TEA6415C is not set +# CONFIG_VIDEO_TEA6420 is not set +# CONFIG_VIDEO_TLV320AIC23B is not set +CONFIG_VIDEO_TVAUDIO=m +# CONFIG_VIDEO_UDA1342 is not set +# CONFIG_VIDEO_VP27SMPX is not set +# CONFIG_VIDEO_WM8739 is not set +CONFIG_VIDEO_WM8775=m +# end of Audio decoders, processors and mixers + +# +# RDS decoders +# +CONFIG_VIDEO_SAA6588=m +# end of RDS decoders + +# +# Video decoders +# +CONFIG_VIDEO_ADV7180=m +# CONFIG_VIDEO_ADV7183 is not set +# CONFIG_VIDEO_ADV7604 is not set +# CONFIG_VIDEO_ADV7842 is not set +# CONFIG_VIDEO_BT819 is not set +# CONFIG_VIDEO_BT856 is not set +# CONFIG_VIDEO_BT866 is not set +# CONFIG_VIDEO_KS0127 is not set +# CONFIG_VIDEO_ML86V7667 is not set +# CONFIG_VIDEO_SAA7110 is not set +CONFIG_VIDEO_SAA711X=m +# CONFIG_VIDEO_TC358743 is not set +# CONFIG_VIDEO_TVP514X is not set +# CONFIG_VIDEO_TVP5150 is not set +# CONFIG_VIDEO_TVP7002 is not set +# CONFIG_VIDEO_TW2804 is not set +# CONFIG_VIDEO_TW9903 is not set +# CONFIG_VIDEO_TW9906 is not set +# CONFIG_VIDEO_TW9910 is not set +# CONFIG_VIDEO_VPX3220 is not set + +# +# Video and audio decoders +# +# CONFIG_VIDEO_SAA717X is not set +CONFIG_VIDEO_CX25840=m +# end of Video decoders + +# +# Video encoders +# +# CONFIG_VIDEO_AD9389B is not set +# CONFIG_VIDEO_ADV7170 is not set +# CONFIG_VIDEO_ADV7175 is not set +# CONFIG_VIDEO_ADV7343 is not set +# CONFIG_VIDEO_ADV7393 is not set +# CONFIG_VIDEO_ADV7511 is not set +# CONFIG_VIDEO_AK881X is not set +# CONFIG_VIDEO_SAA7127 is not set +# CONFIG_VIDEO_SAA7185 is not set +# CONFIG_VIDEO_THS8200 is not set +# end of Video encoders + +# +# Video improvement chips +# +# CONFIG_VIDEO_UPD64031A is not set +# CONFIG_VIDEO_UPD64083 is not set +# end of Video improvement chips + +# +# Audio/Video compression chips +# +CONFIG_VIDEO_SAA6752HS=m +# end of Audio/Video compression chips + +# +# SDR tuner chips +# +CONFIG_SDR_MAX2175=m +# end of SDR tuner chips + +# +# Miscellaneous helper chips +# +# CONFIG_VIDEO_I2C is not set +# CONFIG_VIDEO_M52790 is not set +# CONFIG_VIDEO_ST_MIPID02 is not set +# CONFIG_VIDEO_THS7303 is not set +# end of Miscellaneous helper chips + +CONFIG_MEDIA_TUNER=m + +# +# Customize TV tuners +# +CONFIG_MEDIA_TUNER_E4000=m +CONFIG_MEDIA_TUNER_FC0011=m +CONFIG_MEDIA_TUNER_FC0012=m +CONFIG_MEDIA_TUNER_FC0013=m +CONFIG_MEDIA_TUNER_FC2580=m +CONFIG_MEDIA_TUNER_IT913X=m +CONFIG_MEDIA_TUNER_M88RS6000T=m +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2063=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_MT2131=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_MXL301RF=m +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_QM1D1B0004=m +CONFIG_MEDIA_TUNER_QM1D1C0042=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_R820T=m +CONFIG_MEDIA_TUNER_SI2157=m +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA18212=m +CONFIG_MEDIA_TUNER_TDA18218=m +CONFIG_MEDIA_TUNER_TDA18250=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_TUA9001=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC4000=m +CONFIG_MEDIA_TUNER_XC5000=m +# end of Customize TV tuners + +# +# Customise DVB Frontends +# + +# +# Multistandard (satellite) frontends +# +CONFIG_DVB_M88DS3103=m +CONFIG_DVB_MXL5XX=m +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m +CONFIG_DVB_STV090x=m +CONFIG_DVB_STV0910=m +CONFIG_DVB_STV6110x=m +CONFIG_DVB_STV6111=m + +# +# Multistandard (cable + terrestrial) frontends +# +CONFIG_DVB_DRXK=m +CONFIG_DVB_MN88472=m +CONFIG_DVB_MN88473=m +CONFIG_DVB_SI2165=m +CONFIG_DVB_TDA18271C2DD=m + +# +# DVB-S (satellite) frontends +# +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_CX24117=m +CONFIG_DVB_CX24120=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_DS3000=m +CONFIG_DVB_MB86A16=m +CONFIG_DVB_MT312=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_SI21XX=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV0900=m +CONFIG_DVB_STV6110=m +CONFIG_DVB_TDA10071=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TDA8261=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TS2020=m +CONFIG_DVB_TUA6100=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_ZL10036=m +CONFIG_DVB_ZL10039=m + +# +# DVB-T (terrestrial) frontends +# +CONFIG_DVB_AF9013=m +CONFIG_DVB_AS102_FE=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_CXD2820R=m +CONFIG_DVB_CXD2841ER=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +# CONFIG_DVB_DIB9000 is not set +CONFIG_DVB_DRXD=m +CONFIG_DVB_EC100=m +CONFIG_DVB_GP8PSK_FE=m +CONFIG_DVB_L64781=m +CONFIG_DVB_MT352=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_RTL2830=m +CONFIG_DVB_RTL2832=m +CONFIG_DVB_RTL2832_SDR=m +# CONFIG_DVB_S5H1432 is not set +CONFIG_DVB_SI2168=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_STV0367=m +CONFIG_DVB_TDA10048=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_ZD1301_DEMOD=m +CONFIG_DVB_ZL10353=m + +# +# DVB-C (cable) frontends +# +CONFIG_DVB_STV0297=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_VES1820=m + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# +CONFIG_DVB_AU8522=m +CONFIG_DVB_AU8522_DTV=m +CONFIG_DVB_AU8522_V4L=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LG2160=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_LGDT3306A=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_MXL692=m +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_S5H1411=m + +# +# ISDB-T (terrestrial) frontends +# +CONFIG_DVB_DIB8000=m +CONFIG_DVB_MB86A20S=m +CONFIG_DVB_S921=m + +# +# ISDB-S (satellite) & ISDB-T (terrestrial) frontends +# +# CONFIG_DVB_MN88443X is not set +CONFIG_DVB_TC90522=m + +# +# Digital terrestrial only tuners/PLL +# +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m +CONFIG_DVB_TUNER_DIB0090=m + +# +# SEC control devices for DVB-S +# +CONFIG_DVB_A8293=m +CONFIG_DVB_AF9033=m +# CONFIG_DVB_ASCOT2E is not set +CONFIG_DVB_ATBM8830=m +# CONFIG_DVB_HELENE is not set +# CONFIG_DVB_HORUS3A is not set +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_ISL6423=m +CONFIG_DVB_IX2505V=m +# CONFIG_DVB_LGS8GL5 is not set +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_LNBH25=m +# CONFIG_DVB_LNBH29 is not set +CONFIG_DVB_LNBP21=m +CONFIG_DVB_LNBP22=m +CONFIG_DVB_M88RS2000=m +CONFIG_DVB_TDA665x=m +CONFIG_DVB_DRX39XYJ=m + +# +# Common Interface (EN50221) controller drivers +# +CONFIG_DVB_CXD2099=m +CONFIG_DVB_SP2=m +# end of Customise DVB Frontends + +# +# Tools to develop new frontends +# +CONFIG_DVB_DUMMY_FE=m +# end of Media ancillary drivers + +# +# Graphics support +# +CONFIG_AGP=y +# CONFIG_AGP_AMD64 is not set +CONFIG_AGP_INTEL=y +# CONFIG_AGP_SIS is not set +CONFIG_AGP_VIA=y +CONFIG_INTEL_GTT=y +CONFIG_VGA_SWITCHEROO=y +CONFIG_DRM=y +CONFIG_DRM_MIPI_DSI=y +# CONFIG_DRM_DEBUG_MM is not set +# CONFIG_DRM_DEBUG_SELFTEST is not set +CONFIG_DRM_KMS_HELPER=y +# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set +# CONFIG_DRM_DEBUG_MODESET_LOCK is not set +CONFIG_DRM_FBDEV_EMULATION=y +CONFIG_DRM_FBDEV_OVERALLOC=100 +# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set +CONFIG_DRM_LOAD_EDID_FIRMWARE=y +CONFIG_DRM_DISPLAY_HELPER=y +CONFIG_DRM_DISPLAY_DP_HELPER=y +CONFIG_DRM_DISPLAY_HDCP_HELPER=y +CONFIG_DRM_DISPLAY_HDMI_HELPER=y +CONFIG_DRM_DP_AUX_CHARDEV=y +CONFIG_DRM_DP_CEC=y +CONFIG_DRM_TTM=y +CONFIG_DRM_BUDDY=y +CONFIG_DRM_TTM_HELPER=y +CONFIG_DRM_GEM_SHMEM_HELPER=y +CONFIG_DRM_SCHED=y + +# +# I2C encoder or helper chips +# +# CONFIG_DRM_I2C_CH7006 is not set +# CONFIG_DRM_I2C_SIL164 is not set +# CONFIG_DRM_I2C_NXP_TDA998X is not set +# CONFIG_DRM_I2C_NXP_TDA9950 is not set +# end of I2C encoder or helper chips + +# +# ARM devices +# +# end of ARM devices + +CONFIG_DRM_RADEON=y +# CONFIG_DRM_RADEON_USERPTR is not set +CONFIG_DRM_AMDGPU=y +CONFIG_DRM_AMDGPU_SI=y +CONFIG_DRM_AMDGPU_CIK=y +CONFIG_DRM_AMDGPU_USERPTR=y + +# +# ACP (Audio CoProcessor) Configuration +# +CONFIG_DRM_AMD_ACP=y +# end of ACP (Audio CoProcessor) Configuration + +# +# Display Engine Configuration +# +CONFIG_DRM_AMD_DC=y +CONFIG_DRM_AMD_DC_DCN=y +# CONFIG_DRM_AMD_DC_HDCP is not set +# CONFIG_DRM_AMD_DC_SI is not set +# CONFIG_DRM_AMD_SECURE_DISPLAY is not set +# end of Display Engine Configuration + +CONFIG_HSA_AMD=y +# CONFIG_DRM_NOUVEAU is not set +CONFIG_DRM_I915=y +CONFIG_DRM_I915_FORCE_PROBE="" +CONFIG_DRM_I915_CAPTURE_ERROR=y +CONFIG_DRM_I915_COMPRESS_ERROR=y +CONFIG_DRM_I915_USERPTR=y + +# +# drm/i915 Debugging +# +# CONFIG_DRM_I915_WERROR is not set +# CONFIG_DRM_I915_DEBUG is not set +# CONFIG_DRM_I915_DEBUG_MMIO is not set +# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set +# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set +# CONFIG_DRM_I915_DEBUG_GUC is not set +# CONFIG_DRM_I915_SELFTEST is not set +# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set +# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set +# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set +# end of drm/i915 Debugging + +# +# drm/i915 Profile Guided Optimisation +# +CONFIG_DRM_I915_REQUEST_TIMEOUT=20000 +CONFIG_DRM_I915_FENCE_TIMEOUT=10000 +CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250 +CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500 +CONFIG_DRM_I915_PREEMPT_TIMEOUT=640 +CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000 +CONFIG_DRM_I915_STOP_TIMEOUT=100 +CONFIG_DRM_I915_TIMESLICE_DURATION=1 +# end of drm/i915 Profile Guided Optimisation + +# CONFIG_DRM_VGEM is not set +# CONFIG_DRM_VKMS is not set +CONFIG_DRM_VMWGFX=y +CONFIG_DRM_VMWGFX_FBCON=y +# CONFIG_DRM_VMWGFX_MKSSTATS is not set +# CONFIG_DRM_GMA500 is not set +# CONFIG_DRM_UDL is not set +# CONFIG_DRM_AST is not set +# CONFIG_DRM_MGAG200 is not set +# CONFIG_DRM_QXL is not set +CONFIG_DRM_VIRTIO_GPU=y +CONFIG_DRM_PANEL=y + +# +# Display Panels +# +# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set +# end of Display Panels + +CONFIG_DRM_BRIDGE=y +CONFIG_DRM_PANEL_BRIDGE=y + +# +# Display Interface Bridges +# +# CONFIG_DRM_ANALOGIX_ANX78XX is not set +# end of Display Interface Bridges + +# CONFIG_DRM_ETNAVIV is not set +# CONFIG_DRM_BOCHS is not set +# CONFIG_DRM_CIRRUS_QEMU is not set +# CONFIG_DRM_GM12U320 is not set +# CONFIG_DRM_SIMPLEDRM is not set +# CONFIG_DRM_VBOXVIDEO is not set +# CONFIG_DRM_GUD is not set +# CONFIG_DRM_SSD130X is not set +# CONFIG_DRM_LEGACY is not set +CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y +CONFIG_DRM_NOMODESET=y + +# +# Frame buffer Devices +# +CONFIG_FB_CMDLINE=y +CONFIG_FB_NOTIFY=y +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FB_SYS_FILLRECT=y +CONFIG_FB_SYS_COPYAREA=y +CONFIG_FB_SYS_IMAGEBLIT=y +# CONFIG_FB_FOREIGN_ENDIAN is not set +CONFIG_FB_SYS_FOPS=y +CONFIG_FB_DEFERRED_IO=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ARC is not set +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +# CONFIG_FB_VGA16 is not set +# CONFIG_FB_UVESA is not set +# CONFIG_FB_VESA is not set +CONFIG_FB_EFI=y +# CONFIG_FB_N411 is not set +# CONFIG_FB_HGA is not set +# CONFIG_FB_OPENCORES is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_NVIDIA is not set +# CONFIG_FB_RIVA is not set +# CONFIG_FB_I740 is not set +# CONFIG_FB_LE80578 is not set +# CONFIG_FB_MATROX is not set +CONFIG_FB_RADEON=y +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_S3 is not set +# CONFIG_FB_SAVAGE is not set +# CONFIG_FB_SIS is not set +# CONFIG_FB_VIA is not set +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_VT8623 is not set +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_ARK is not set +# CONFIG_FB_PM3 is not set +# CONFIG_FB_CARMINE is not set +# CONFIG_FB_SMSCUFX is not set +CONFIG_FB_UDL=m +# CONFIG_FB_IBM_GXT4500 is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_METRONOME is not set +# CONFIG_FB_MB862XX is not set +# CONFIG_FB_SIMPLE is not set +# CONFIG_FB_SSD1307 is not set +# CONFIG_FB_SM712 is not set +# end of Frame buffer Devices + +# +# Backlight & LCD device support +# +# CONFIG_LCD_CLASS_DEVICE is not set +CONFIG_BACKLIGHT_CLASS_DEVICE=y +# CONFIG_BACKLIGHT_KTD253 is not set +# CONFIG_BACKLIGHT_APPLE is not set +# CONFIG_BACKLIGHT_QCOM_WLED is not set +# CONFIG_BACKLIGHT_SAHARA is not set +# CONFIG_BACKLIGHT_ADP8860 is not set +# CONFIG_BACKLIGHT_ADP8870 is not set +# CONFIG_BACKLIGHT_LM3639 is not set +# CONFIG_BACKLIGHT_GPIO is not set +# CONFIG_BACKLIGHT_LV5207LP is not set +# CONFIG_BACKLIGHT_BD6107 is not set +# CONFIG_BACKLIGHT_ARCXCNN is not set +# end of Backlight & LCD device support + +CONFIG_HDMI=y + +# +# Console display driver support +# +CONFIG_VGA_CONSOLE=y +CONFIG_DUMMY_CONSOLE=y +CONFIG_DUMMY_CONSOLE_COLUMNS=80 +CONFIG_DUMMY_CONSOLE_ROWS=25 +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set +# end of Console display driver support + +# CONFIG_LOGO is not set +# end of Graphics support + +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_PCM_ELD=y +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_COMPRESS_OFFLOAD=y +CONFIG_SND_JACK=y +CONFIG_SND_JACK_INPUT_DEV=y +# CONFIG_SND_OSSEMUL is not set +CONFIG_SND_PCM_TIMER=y +CONFIG_SND_HRTIMER=y +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_SND_MAX_CARDS=32 +# CONFIG_SND_SUPPORT_OLD_API is not set +CONFIG_SND_PROC_FS=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set +CONFIG_SND_VMASTER=y +CONFIG_SND_DMA_SGBUF=y +CONFIG_SND_CTL_LED=m +# CONFIG_SND_SEQUENCER is not set +CONFIG_SND_MPU401_UART=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_DRIVERS=y +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_ALOOP is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set +# CONFIG_SND_AC97_POWER_SAVE is not set +CONFIG_SND_PCI=y +# CONFIG_SND_AD1889 is not set +# CONFIG_SND_ALS300 is not set +# CONFIG_SND_ALS4000 is not set +# CONFIG_SND_ALI5451 is not set +# CONFIG_SND_ASIHPI is not set +CONFIG_SND_ATIIXP=m +# CONFIG_SND_ATIIXP_MODEM is not set +# CONFIG_SND_AU8810 is not set +# CONFIG_SND_AU8820 is not set +# CONFIG_SND_AU8830 is not set +# CONFIG_SND_AW2 is not set +# CONFIG_SND_AZT3328 is not set +# CONFIG_SND_BT87X is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_OXYGEN_LIB=m +CONFIG_SND_OXYGEN=m +# CONFIG_SND_CS4281 is not set +# CONFIG_SND_CS46XX is not set +CONFIG_SND_CTXFI=m +# CONFIG_SND_DARLA20 is not set +# CONFIG_SND_GINA20 is not set +# CONFIG_SND_LAYLA20 is not set +# CONFIG_SND_DARLA24 is not set +# CONFIG_SND_GINA24 is not set +CONFIG_SND_LAYLA24=m +# CONFIG_SND_MONA is not set +# CONFIG_SND_MIA is not set +# CONFIG_SND_ECHO3G is not set +# CONFIG_SND_INDIGO is not set +# CONFIG_SND_INDIGOIO is not set +# CONFIG_SND_INDIGODJ is not set +# CONFIG_SND_INDIGOIOX is not set +# CONFIG_SND_INDIGODJX is not set +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +# CONFIG_SND_ENS1370 is not set +# CONFIG_SND_ENS1371 is not set +# CONFIG_SND_ES1938 is not set +# CONFIG_SND_ES1968 is not set +# CONFIG_SND_FM801 is not set +# CONFIG_SND_HDSP is not set +# CONFIG_SND_HDSPM is not set +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INTEL8X0=m +# CONFIG_SND_INTEL8X0M is not set +# CONFIG_SND_KORG1212 is not set +# CONFIG_SND_LOLA is not set +# CONFIG_SND_LX6464ES is not set +# CONFIG_SND_MAESTRO3 is not set +# CONFIG_SND_MIXART is not set +# CONFIG_SND_NM256 is not set +# CONFIG_SND_PCXHR is not set +# CONFIG_SND_RIPTIDE is not set +# CONFIG_SND_RME32 is not set +# CONFIG_SND_RME96 is not set +CONFIG_SND_RME9652=m +# CONFIG_SND_SONICVIBES is not set +# CONFIG_SND_TRIDENT is not set +CONFIG_SND_VIA82XX=m +# CONFIG_SND_VIA82XX_MODEM is not set +CONFIG_SND_VIRTUOSO=m +# CONFIG_SND_VX222 is not set +# CONFIG_SND_YMFPCI is not set + +# +# HD-Audio +# +CONFIG_SND_HDA=m +CONFIG_SND_HDA_GENERIC_LEDS=y +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_HWDEP=y +CONFIG_SND_HDA_RECONFIG=y +CONFIG_SND_HDA_INPUT_BEEP=y +CONFIG_SND_HDA_INPUT_BEEP_MODE=1 +CONFIG_SND_HDA_PATCH_LOADER=y +# CONFIG_SND_HDA_SCODEC_CS35L41_I2C is not set +CONFIG_SND_HDA_CODEC_REALTEK=m +CONFIG_SND_HDA_CODEC_ANALOG=m +CONFIG_SND_HDA_CODEC_SIGMATEL=m +CONFIG_SND_HDA_CODEC_VIA=m +CONFIG_SND_HDA_CODEC_HDMI=m +CONFIG_SND_HDA_CODEC_CIRRUS=m +# CONFIG_SND_HDA_CODEC_CS8409 is not set +CONFIG_SND_HDA_CODEC_CONEXANT=m +CONFIG_SND_HDA_CODEC_CA0110=m +CONFIG_SND_HDA_CODEC_CA0132=m +CONFIG_SND_HDA_CODEC_CA0132_DSP=y +CONFIG_SND_HDA_CODEC_CMEDIA=m +CONFIG_SND_HDA_CODEC_SI3054=m +CONFIG_SND_HDA_GENERIC=m +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +# CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM is not set +# end of HD-Audio + +CONFIG_SND_HDA_CORE=m +CONFIG_SND_HDA_DSP_LOADER=y +CONFIG_SND_HDA_COMPONENT=y +CONFIG_SND_HDA_I915=y +CONFIG_SND_HDA_EXT_CORE=m +CONFIG_SND_HDA_PREALLOC_SIZE=0 +CONFIG_SND_INTEL_NHLT=y +CONFIG_SND_INTEL_DSP_CONFIG=m +CONFIG_SND_INTEL_SOUNDWIRE_ACPI=m +CONFIG_SND_USB=y +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y +CONFIG_SND_USB_UA101=m +CONFIG_SND_USB_USX2Y=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_US122L=m +CONFIG_SND_USB_6FIRE=m +CONFIG_SND_USB_HIFACE=m +CONFIG_SND_BCD2000=m +CONFIG_SND_USB_LINE6=m +CONFIG_SND_USB_POD=m +CONFIG_SND_USB_PODHD=m +CONFIG_SND_USB_TONEPORT=m +CONFIG_SND_USB_VARIAX=m +CONFIG_SND_FIREWIRE=y +# CONFIG_SND_DICE is not set +# CONFIG_SND_OXFW is not set +# CONFIG_SND_ISIGHT is not set +# CONFIG_SND_FIREWORKS is not set +# CONFIG_SND_BEBOB is not set +# CONFIG_SND_FIREWIRE_DIGI00X is not set +# CONFIG_SND_FIREWIRE_TASCAM is not set +# CONFIG_SND_FIREWIRE_MOTU is not set +# CONFIG_SND_FIREFACE is not set +CONFIG_SND_SOC=y +CONFIG_SND_SOC_COMPRESS=y +CONFIG_SND_SOC_TOPOLOGY=y +CONFIG_SND_SOC_ACPI=m +# CONFIG_SND_SOC_ADI is not set +CONFIG_SND_SOC_AMD_ACP=m +CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH=m +CONFIG_SND_SOC_AMD_CZ_RT5645_MACH=m +CONFIG_SND_SOC_AMD_ACP3x=m +CONFIG_SND_SOC_AMD_RENOIR=m +CONFIG_SND_SOC_AMD_RENOIR_MACH=m +# CONFIG_SND_SOC_AMD_ACP5x is not set +# CONFIG_SND_SOC_AMD_ACP6x is not set +CONFIG_SND_AMD_ACP_CONFIG=m +# CONFIG_SND_SOC_AMD_ACP_COMMON is not set +# CONFIG_SND_ATMEL_SOC is not set +# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set +# CONFIG_SND_DESIGNWARE_I2S is not set + +# +# SoC Audio for Freescale CPUs +# + +# +# Common SoC Audio options for Freescale CPUs: +# +# CONFIG_SND_SOC_FSL_ASRC is not set +# CONFIG_SND_SOC_FSL_SAI is not set +# CONFIG_SND_SOC_FSL_AUDMIX is not set +# CONFIG_SND_SOC_FSL_SSI is not set +# CONFIG_SND_SOC_FSL_SPDIF is not set +# CONFIG_SND_SOC_FSL_ESAI is not set +# CONFIG_SND_SOC_FSL_MICFIL is not set +# CONFIG_SND_SOC_FSL_XCVR is not set +# CONFIG_SND_SOC_IMX_AUDMUX is not set +# end of SoC Audio for Freescale CPUs + +# CONFIG_SND_I2S_HI6210_I2S is not set +# CONFIG_SND_SOC_IMG is not set +CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y +CONFIG_SND_SOC_INTEL_SST=m +# CONFIG_SND_SOC_INTEL_CATPT is not set +CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m +CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m +CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI=m +CONFIG_SND_SOC_INTEL_SKYLAKE=m +CONFIG_SND_SOC_INTEL_SKL=m +CONFIG_SND_SOC_INTEL_APL=m +CONFIG_SND_SOC_INTEL_KBL=m +CONFIG_SND_SOC_INTEL_GLK=m +CONFIG_SND_SOC_INTEL_CNL=m +CONFIG_SND_SOC_INTEL_CFL=m +CONFIG_SND_SOC_INTEL_CML_H=m +CONFIG_SND_SOC_INTEL_CML_LP=m +CONFIG_SND_SOC_INTEL_SKYLAKE_FAMILY=m +CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y +CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m +CONFIG_SND_SOC_ACPI_INTEL_MATCH=m +CONFIG_SND_SOC_INTEL_AVS=m +CONFIG_SND_SOC_INTEL_MACH=y +# CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES is not set +CONFIG_SND_SOC_INTEL_HDA_DSP_COMMON=m +CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m +CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m +CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m +CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m +CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m +CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m +CONFIG_SND_SOC_INTEL_BYT_CHT_CX2072X_MACH=m +CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m +CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m +CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m +# CONFIG_SND_SOC_INTEL_SKL_RT286_MACH is not set +# CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH is not set +# CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH is not set +# CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH is not set +# CONFIG_SND_SOC_INTEL_BXT_RT298_MACH is not set +# CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH is not set +# CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH is not set +# CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH is not set +# CONFIG_SND_SOC_INTEL_KBL_RT5660_MACH is not set +CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m +# CONFIG_SND_SOC_MTK_BTCVSD is not set +# CONFIG_SND_SOC_SOF_TOPLEVEL is not set + +# +# STMicroelectronics STM32 SOC audio support +# +# end of STMicroelectronics STM32 SOC audio support + +# CONFIG_SND_SOC_XILINX_I2S is not set +# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set +# CONFIG_SND_SOC_XILINX_SPDIF is not set +# CONFIG_SND_SOC_XTFPGA_I2S is not set +CONFIG_SND_SOC_I2C_AND_SPI=y + +# +# CODEC drivers +# +# CONFIG_SND_SOC_AC97_CODEC is not set +# CONFIG_SND_SOC_ADAU1372_I2C is not set +# CONFIG_SND_SOC_ADAU1701 is not set +# CONFIG_SND_SOC_ADAU1761_I2C is not set +CONFIG_SND_SOC_ADAU7002=m +# CONFIG_SND_SOC_ADAU7118_HW is not set +# CONFIG_SND_SOC_ADAU7118_I2C is not set +# CONFIG_SND_SOC_AK4118 is not set +# CONFIG_SND_SOC_AK4375 is not set +# CONFIG_SND_SOC_AK4458 is not set +# CONFIG_SND_SOC_AK4554 is not set +# CONFIG_SND_SOC_AK4613 is not set +# CONFIG_SND_SOC_AK4642 is not set +# CONFIG_SND_SOC_AK5386 is not set +# CONFIG_SND_SOC_AK5558 is not set +# CONFIG_SND_SOC_ALC5623 is not set +# CONFIG_SND_SOC_AW8738 is not set +# CONFIG_SND_SOC_BD28623 is not set +# CONFIG_SND_SOC_BT_SCO is not set +# CONFIG_SND_SOC_CS35L32 is not set +# CONFIG_SND_SOC_CS35L33 is not set +# CONFIG_SND_SOC_CS35L34 is not set +# CONFIG_SND_SOC_CS35L35 is not set +# CONFIG_SND_SOC_CS35L36 is not set +# CONFIG_SND_SOC_CS35L41_I2C is not set +# CONFIG_SND_SOC_CS35L45_I2C is not set +# CONFIG_SND_SOC_CS42L42 is not set +# CONFIG_SND_SOC_CS42L51_I2C is not set +# CONFIG_SND_SOC_CS42L52 is not set +# CONFIG_SND_SOC_CS42L56 is not set +# CONFIG_SND_SOC_CS42L73 is not set +# CONFIG_SND_SOC_CS4234 is not set +# CONFIG_SND_SOC_CS4265 is not set +# CONFIG_SND_SOC_CS4270 is not set +# CONFIG_SND_SOC_CS4271_I2C is not set +# CONFIG_SND_SOC_CS42XX8_I2C is not set +# CONFIG_SND_SOC_CS43130 is not set +# CONFIG_SND_SOC_CS4341 is not set +# CONFIG_SND_SOC_CS4349 is not set +# CONFIG_SND_SOC_CS53L30 is not set +CONFIG_SND_SOC_CX2072X=m +CONFIG_SND_SOC_DA7213=m +CONFIG_SND_SOC_DA7219=m +CONFIG_SND_SOC_DMIC=m +# CONFIG_SND_SOC_ES7134 is not set +# CONFIG_SND_SOC_ES7241 is not set +CONFIG_SND_SOC_ES8316=m +# CONFIG_SND_SOC_ES8328_I2C is not set +# CONFIG_SND_SOC_GTM601 is not set +CONFIG_SND_SOC_HDAC_HDMI=m +CONFIG_SND_SOC_HDAC_HDA=m +# CONFIG_SND_SOC_ICS43432 is not set +# CONFIG_SND_SOC_INNO_RK3036 is not set +# CONFIG_SND_SOC_MAX98088 is not set +CONFIG_SND_SOC_MAX98090=m +CONFIG_SND_SOC_MAX98357A=m +# CONFIG_SND_SOC_MAX98504 is not set +# CONFIG_SND_SOC_MAX9867 is not set +CONFIG_SND_SOC_MAX98927=m +# CONFIG_SND_SOC_MAX98520 is not set +# CONFIG_SND_SOC_MAX98373_I2C is not set +# CONFIG_SND_SOC_MAX98390 is not set +# CONFIG_SND_SOC_MAX98396 is not set +# CONFIG_SND_SOC_MAX9860 is not set +# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set +# CONFIG_SND_SOC_PCM1681 is not set +# CONFIG_SND_SOC_PCM1789_I2C is not set +# CONFIG_SND_SOC_PCM179X_I2C is not set +# CONFIG_SND_SOC_PCM186X_I2C is not set +# CONFIG_SND_SOC_PCM3060_I2C is not set +# CONFIG_SND_SOC_PCM3168A_I2C is not set +# CONFIG_SND_SOC_PCM5102A is not set +# CONFIG_SND_SOC_PCM512x_I2C is not set +# CONFIG_SND_SOC_RK3328 is not set +CONFIG_SND_SOC_RL6231=m +# CONFIG_SND_SOC_RT5616 is not set +# CONFIG_SND_SOC_RT5631 is not set +CONFIG_SND_SOC_RT5640=m +CONFIG_SND_SOC_RT5645=m +CONFIG_SND_SOC_RT5651=m +# CONFIG_SND_SOC_RT5659 is not set +CONFIG_SND_SOC_RT5670=m +CONFIG_SND_SOC_RT5682=m +CONFIG_SND_SOC_RT5682_I2C=m +# CONFIG_SND_SOC_RT9120 is not set +# CONFIG_SND_SOC_SGTL5000 is not set +# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set +# CONFIG_SND_SOC_SIMPLE_MUX is not set +CONFIG_SND_SOC_SPDIF=m +# CONFIG_SND_SOC_SSM2305 is not set +# CONFIG_SND_SOC_SSM2518 is not set +# CONFIG_SND_SOC_SSM2602_I2C is not set +# CONFIG_SND_SOC_SSM4567 is not set +# CONFIG_SND_SOC_STA32X is not set +# CONFIG_SND_SOC_STA350 is not set +# CONFIG_SND_SOC_STI_SAS is not set +# CONFIG_SND_SOC_TAS2552 is not set +# CONFIG_SND_SOC_TAS2562 is not set +# CONFIG_SND_SOC_TAS2764 is not set +# CONFIG_SND_SOC_TAS2770 is not set +# CONFIG_SND_SOC_TAS5086 is not set +# CONFIG_SND_SOC_TAS571X is not set +# CONFIG_SND_SOC_TAS5720 is not set +# CONFIG_SND_SOC_TAS5805M is not set +# CONFIG_SND_SOC_TAS6424 is not set +# CONFIG_SND_SOC_TDA7419 is not set +# CONFIG_SND_SOC_TFA9879 is not set +# CONFIG_SND_SOC_TFA989X is not set +# CONFIG_SND_SOC_TLV320ADC3XXX is not set +# CONFIG_SND_SOC_TLV320AIC23_I2C is not set +# CONFIG_SND_SOC_TLV320AIC31XX is not set +# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set +# CONFIG_SND_SOC_TLV320AIC3X_I2C is not set +# CONFIG_SND_SOC_TLV320ADCX140 is not set +CONFIG_SND_SOC_TS3A227E=m +# CONFIG_SND_SOC_TSCS42XX is not set +# CONFIG_SND_SOC_TSCS454 is not set +# CONFIG_SND_SOC_UDA1334 is not set +# CONFIG_SND_SOC_WM8510 is not set +# CONFIG_SND_SOC_WM8523 is not set +# CONFIG_SND_SOC_WM8524 is not set +# CONFIG_SND_SOC_WM8580 is not set +# CONFIG_SND_SOC_WM8711 is not set +# CONFIG_SND_SOC_WM8728 is not set +# CONFIG_SND_SOC_WM8731_I2C is not set +# CONFIG_SND_SOC_WM8737 is not set +# CONFIG_SND_SOC_WM8741 is not set +# CONFIG_SND_SOC_WM8750 is not set +# CONFIG_SND_SOC_WM8753 is not set +# CONFIG_SND_SOC_WM8776 is not set +# CONFIG_SND_SOC_WM8782 is not set +# CONFIG_SND_SOC_WM8804_I2C is not set +# CONFIG_SND_SOC_WM8903 is not set +# CONFIG_SND_SOC_WM8904 is not set +# CONFIG_SND_SOC_WM8940 is not set +# CONFIG_SND_SOC_WM8960 is not set +# CONFIG_SND_SOC_WM8962 is not set +# CONFIG_SND_SOC_WM8974 is not set +# CONFIG_SND_SOC_WM8978 is not set +# CONFIG_SND_SOC_WM8985 is not set +# CONFIG_SND_SOC_MAX9759 is not set +# CONFIG_SND_SOC_MT6351 is not set +# CONFIG_SND_SOC_MT6358 is not set +# CONFIG_SND_SOC_MT6660 is not set +# CONFIG_SND_SOC_NAU8315 is not set +# CONFIG_SND_SOC_NAU8540 is not set +# CONFIG_SND_SOC_NAU8810 is not set +# CONFIG_SND_SOC_NAU8821 is not set +# CONFIG_SND_SOC_NAU8822 is not set +CONFIG_SND_SOC_NAU8824=m +# CONFIG_SND_SOC_TPA6130A2 is not set +# CONFIG_SND_SOC_LPASS_WSA_MACRO is not set +# CONFIG_SND_SOC_LPASS_VA_MACRO is not set +# CONFIG_SND_SOC_LPASS_RX_MACRO is not set +# CONFIG_SND_SOC_LPASS_TX_MACRO is not set +# end of CODEC drivers + +CONFIG_SND_SIMPLE_CARD_UTILS=m +CONFIG_SND_SIMPLE_CARD=m +CONFIG_SND_X86=y +CONFIG_HDMI_LPE_AUDIO=m +# CONFIG_SND_VIRTIO is not set +CONFIG_AC97_BUS=m + +# +# HID support +# +CONFIG_HID=y +# CONFIG_HID_BATTERY_STRENGTH is not set +CONFIG_HIDRAW=y +CONFIG_UHID=y +CONFIG_HID_GENERIC=y + +# +# Special HID drivers +# +CONFIG_HID_A4TECH=y +# CONFIG_HID_ACCUTOUCH is not set +# CONFIG_HID_ACRUX is not set +CONFIG_HID_APPLE=y +CONFIG_HID_APPLEIR=m +CONFIG_HID_ASUS=y +CONFIG_HID_AUREAL=y +CONFIG_HID_BELKIN=y +# CONFIG_HID_BETOP_FF is not set +CONFIG_HID_BIGBEN_FF=m +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +# CONFIG_HID_CORSAIR is not set +# CONFIG_HID_COUGAR is not set +# CONFIG_HID_MACALLY is not set +# CONFIG_HID_PRODIKEYS is not set +# CONFIG_HID_CMEDIA is not set +# CONFIG_HID_CP2112 is not set +# CONFIG_HID_CREATIVE_SB0540 is not set +CONFIG_HID_CYPRESS=y +CONFIG_HID_DRAGONRISE=m +CONFIG_DRAGONRISE_FF=y +# CONFIG_HID_EMS_FF is not set +# CONFIG_HID_ELAN is not set +# CONFIG_HID_ELECOM is not set +# CONFIG_HID_ELO is not set +CONFIG_HID_EZKEY=y +# CONFIG_HID_FT260 is not set +# CONFIG_HID_GEMBIRD is not set +# CONFIG_HID_GFRM is not set +# CONFIG_HID_GLORIOUS is not set +# CONFIG_HID_HOLTEK is not set +# CONFIG_HID_VIVALDI is not set +# CONFIG_HID_GT683R is not set +# CONFIG_HID_KEYTOUCH is not set +CONFIG_HID_KYE=y +# CONFIG_HID_UCLOGIC is not set +# CONFIG_HID_WALTOP is not set +# CONFIG_HID_VIEWSONIC is not set +# CONFIG_HID_XIAOMI is not set +CONFIG_HID_GYRATION=y +# CONFIG_HID_ICADE is not set +# CONFIG_HID_ITE is not set +# CONFIG_HID_JABRA is not set +CONFIG_HID_TWINHAN=y +CONFIG_HID_KENSINGTON=y +CONFIG_HID_LCPOWER=y +# CONFIG_HID_LED is not set +CONFIG_HID_LENOVO=y +# CONFIG_HID_LETSKETCH is not set +CONFIG_HID_LOGITECH=y +CONFIG_HID_LOGITECH_DJ=y +CONFIG_HID_LOGITECH_HIDPP=y +CONFIG_LOGITECH_FF=y +CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_LOGIG940_FF=y +CONFIG_LOGIWHEELS_FF=y +# CONFIG_HID_MAGICMOUSE is not set +# CONFIG_HID_MALTRON is not set +# CONFIG_HID_MAYFLASH is not set +# CONFIG_HID_MEGAWORLD_FF is not set +# CONFIG_HID_REDRAGON is not set +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +CONFIG_HID_MULTITOUCH=m +# CONFIG_HID_NINTENDO is not set +# CONFIG_HID_NTI is not set +# CONFIG_HID_NTRIG is not set +CONFIG_HID_ORTEK=y +CONFIG_HID_PANTHERLORD=y +CONFIG_PANTHERLORD_FF=y +CONFIG_HID_PENMOUNT=y +CONFIG_HID_PETALYNX=y +# CONFIG_HID_PICOLCD is not set +# CONFIG_HID_PLANTRONICS is not set +# CONFIG_HID_RAZER is not set +# CONFIG_HID_PRIMAX is not set +# CONFIG_HID_RETRODE is not set +# CONFIG_HID_ROCCAT is not set +# CONFIG_HID_SAITEK is not set +CONFIG_HID_SAMSUNG=y +# CONFIG_HID_SEMITEK is not set +# CONFIG_HID_SIGMAMICRO is not set +CONFIG_HID_SONY=y +CONFIG_SONY_FF=y +# CONFIG_HID_SPEEDLINK is not set +CONFIG_HID_STEAM=m +# CONFIG_HID_STEELSERIES is not set +CONFIG_HID_SUNPLUS=y +CONFIG_HID_RMI=y +# CONFIG_HID_GREENASIA is not set +CONFIG_HID_SMARTJOYPLUS=m +CONFIG_SMARTJOYPLUS_FF=y +CONFIG_HID_TIVO=y +CONFIG_HID_TOPSEED=y +# CONFIG_HID_THINGM is not set +# CONFIG_HID_THRUSTMASTER is not set +# CONFIG_HID_UDRAW_PS3 is not set +# CONFIG_HID_U2FZERO is not set +# CONFIG_HID_WACOM is not set +CONFIG_HID_WIIMOTE=m +CONFIG_HID_XINMO=y +# CONFIG_HID_ZEROPLUS is not set +CONFIG_HID_ZYDACRON=y +# CONFIG_HID_SENSOR_HUB is not set +CONFIG_HID_ALPS=m +# CONFIG_HID_MCP2221 is not set +# end of Special HID drivers + +# +# USB HID support +# +CONFIG_USB_HID=y +# CONFIG_HID_PID is not set +CONFIG_USB_HIDDEV=y +# end of USB HID support + +# +# I2C HID support +# +CONFIG_I2C_HID_ACPI=y +# end of I2C HID support + +CONFIG_I2C_HID_CORE=y + +# +# Intel ISH HID support +# +# CONFIG_INTEL_ISH_HID is not set +# end of Intel ISH HID support + +# +# AMD SFH HID Support +# +# CONFIG_AMD_SFH_HID is not set +# end of AMD SFH HID Support +# end of HID support + +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +# CONFIG_USB_LED_TRIG is not set +# CONFIG_USB_ULPI_BUS is not set +# CONFIG_USB_CONN_GPIO is not set +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB=y +CONFIG_USB_PCI=y +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEFAULT_PERSIST=y +# CONFIG_USB_FEW_INIT_RETRIES is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_OTG is not set +# CONFIG_USB_OTG_PRODUCTLIST is not set +# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set +# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set +CONFIG_USB_AUTOSUSPEND_DELAY=2 +CONFIG_USB_MON=m + +# +# USB Host Controller Drivers +# +# CONFIG_USB_C67X00_HCD is not set +CONFIG_USB_XHCI_HCD=y +# CONFIG_USB_XHCI_DBGCAP is not set +CONFIG_USB_XHCI_PCI=y +CONFIG_USB_XHCI_PCI_RENESAS=y +# CONFIG_USB_XHCI_PLATFORM is not set +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_EHCI_PCI=y +# CONFIG_USB_EHCI_FSL is not set +# CONFIG_USB_EHCI_HCD_PLATFORM is not set +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_FOTG210_HCD is not set +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PCI=y +# CONFIG_USB_OHCI_HCD_SSB is not set +# CONFIG_USB_OHCI_HCD_PLATFORM is not set +CONFIG_USB_UHCI_HCD=y +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set +# CONFIG_USB_HCD_BCMA is not set +# CONFIG_USB_HCD_SSB is not set +# CONFIG_USB_HCD_TEST_MODE is not set + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +# CONFIG_USB_PRINTER is not set +# CONFIG_USB_WDM is not set +# CONFIG_USB_TMC is not set + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_REALTEK is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_ONETOUCH is not set +# CONFIG_USB_STORAGE_KARMA is not set +# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set +# CONFIG_USB_STORAGE_ENE_UB6250 is not set +CONFIG_USB_UAS=y + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set +# CONFIG_USBIP_CORE is not set +# CONFIG_USB_CDNS_SUPPORT is not set +# CONFIG_USB_MUSB_HDRC is not set +# CONFIG_USB_DWC3 is not set +# CONFIG_USB_DWC2 is not set +# CONFIG_USB_CHIPIDEA is not set +# CONFIG_USB_ISP1760 is not set + +# +# USB port drivers +# +CONFIG_USB_SERIAL=m +# CONFIG_USB_SERIAL_GENERIC is not set +# CONFIG_USB_SERIAL_SIMPLE is not set +# CONFIG_USB_SERIAL_AIRCABLE is not set +# CONFIG_USB_SERIAL_ARK3116 is not set +# CONFIG_USB_SERIAL_BELKIN is not set +CONFIG_USB_SERIAL_CH341=m +# CONFIG_USB_SERIAL_WHITEHEAT is not set +# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set +CONFIG_USB_SERIAL_CP210X=m +# CONFIG_USB_SERIAL_CYPRESS_M8 is not set +# CONFIG_USB_SERIAL_EMPEG is not set +CONFIG_USB_SERIAL_FTDI_SIO=m +# CONFIG_USB_SERIAL_VISOR is not set +# CONFIG_USB_SERIAL_IPAQ is not set +# CONFIG_USB_SERIAL_IR is not set +# CONFIG_USB_SERIAL_EDGEPORT is not set +# CONFIG_USB_SERIAL_EDGEPORT_TI is not set +# CONFIG_USB_SERIAL_F81232 is not set +# CONFIG_USB_SERIAL_F8153X is not set +# CONFIG_USB_SERIAL_GARMIN is not set +# CONFIG_USB_SERIAL_IPW is not set +CONFIG_USB_SERIAL_IUU=m +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +# CONFIG_USB_SERIAL_KEYSPAN is not set +# CONFIG_USB_SERIAL_KLSI is not set +# CONFIG_USB_SERIAL_KOBIL_SCT is not set +# CONFIG_USB_SERIAL_MCT_U232 is not set +# CONFIG_USB_SERIAL_METRO is not set +# CONFIG_USB_SERIAL_MOS7720 is not set +# CONFIG_USB_SERIAL_MOS7840 is not set +# CONFIG_USB_SERIAL_MXUPORT is not set +# CONFIG_USB_SERIAL_NAVMAN is not set +CONFIG_USB_SERIAL_PL2303=m +# CONFIG_USB_SERIAL_OTI6858 is not set +# CONFIG_USB_SERIAL_QCAUX is not set +# CONFIG_USB_SERIAL_QUALCOMM is not set +# CONFIG_USB_SERIAL_SPCP8X5 is not set +# CONFIG_USB_SERIAL_SAFE is not set +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set +# CONFIG_USB_SERIAL_SYMBOL is not set +# CONFIG_USB_SERIAL_TI is not set +# CONFIG_USB_SERIAL_CYBERJACK is not set +# CONFIG_USB_SERIAL_OPTION is not set +# CONFIG_USB_SERIAL_OMNINET is not set +# CONFIG_USB_SERIAL_OPTICON is not set +# CONFIG_USB_SERIAL_XSENS_MT is not set +# CONFIG_USB_SERIAL_WISHBONE is not set +# CONFIG_USB_SERIAL_SSU100 is not set +# CONFIG_USB_SERIAL_QT2 is not set +# CONFIG_USB_SERIAL_UPD78F0730 is not set +# CONFIG_USB_SERIAL_XR is not set +# CONFIG_USB_SERIAL_DEBUG is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_SEVSEG is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_APPLE_MFI_FASTCHARGE is not set +# CONFIG_USB_SISUSBVGA is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set +# CONFIG_USB_EHSET_TEST_FIXTURE is not set +# CONFIG_USB_ISIGHTFW is not set +# CONFIG_USB_YUREX is not set +# CONFIG_USB_EZUSB_FX2 is not set +# CONFIG_USB_HUB_USB251XB is not set +# CONFIG_USB_HSIC_USB3503 is not set +# CONFIG_USB_HSIC_USB4604 is not set +# CONFIG_USB_LINK_LAYER_TEST is not set +# CONFIG_USB_CHAOSKEY is not set + +# +# USB Physical Layer drivers +# +# CONFIG_NOP_USB_XCEIV is not set +# CONFIG_USB_GPIO_VBUS is not set +# CONFIG_USB_ISP1301 is not set +# end of USB Physical Layer drivers + +# CONFIG_USB_GADGET is not set +CONFIG_TYPEC=m +# CONFIG_TYPEC_TCPM is not set +# CONFIG_TYPEC_UCSI is not set +# CONFIG_TYPEC_TPS6598X is not set +# CONFIG_TYPEC_RT1719 is not set +# CONFIG_TYPEC_STUSB160X is not set +# CONFIG_TYPEC_WUSB3801 is not set + +# +# USB Type-C Multiplexer/DeMultiplexer Switch support +# +# CONFIG_TYPEC_MUX_FSA4480 is not set +# CONFIG_TYPEC_MUX_PI3USB30532 is not set +# end of USB Type-C Multiplexer/DeMultiplexer Switch support + +# +# USB Type-C Alternate Mode drivers +# +# CONFIG_TYPEC_DP_ALTMODE is not set +# end of USB Type-C Alternate Mode drivers + +# CONFIG_USB_ROLE_SWITCH is not set +CONFIG_MMC=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=32 +# CONFIG_SDIO_UART is not set +# CONFIG_MMC_TEST is not set + +# +# MMC/SD/SDIO Host Controller Drivers +# +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_IO_ACCESSORS=y +CONFIG_MMC_SDHCI_PCI=y +# CONFIG_MMC_RICOH_MMC is not set +CONFIG_MMC_SDHCI_ACPI=y +CONFIG_MMC_SDHCI_PLTFM=y +# CONFIG_MMC_SDHCI_F_SDH30 is not set +# CONFIG_MMC_WBSD is not set +# CONFIG_MMC_TIFM_SD is not set +# CONFIG_MMC_CB710 is not set +# CONFIG_MMC_VIA_SDMMC is not set +# CONFIG_MMC_VUB300 is not set +# CONFIG_MMC_USHC is not set +# CONFIG_MMC_USDHI6ROL0 is not set +CONFIG_MMC_REALTEK_PCI=y +CONFIG_MMC_REALTEK_USB=y +CONFIG_MMC_CQHCI=y +CONFIG_MMC_HSQ=y +CONFIG_MMC_TOSHIBA_PCI=y +# CONFIG_MMC_MTK is not set +# CONFIG_MMC_SDHCI_XENON is not set +# CONFIG_SCSI_UFSHCD is not set +# CONFIG_MEMSTICK is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_CLASS_FLASH=y +# CONFIG_LEDS_CLASS_MULTICOLOR is not set +# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set + +# +# LED drivers +# +# CONFIG_LEDS_APU is not set +# CONFIG_LEDS_LM3530 is not set +# CONFIG_LEDS_LM3532 is not set +# CONFIG_LEDS_LM3642 is not set +# CONFIG_LEDS_PCA9532 is not set +# CONFIG_LEDS_GPIO is not set +# CONFIG_LEDS_LP3944 is not set +# CONFIG_LEDS_LP3952 is not set +# CONFIG_LEDS_LP50XX is not set +# CONFIG_LEDS_CLEVO_MAIL is not set +# CONFIG_LEDS_PCA955X is not set +# CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_REGULATOR is not set +# CONFIG_LEDS_BD2802 is not set +# CONFIG_LEDS_INTEL_SS4200 is not set +# CONFIG_LEDS_LT3593 is not set +# CONFIG_LEDS_TCA6507 is not set +# CONFIG_LEDS_TLC591XX is not set +# CONFIG_LEDS_LM355x is not set + +# +# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) +# +# CONFIG_LEDS_BLINKM is not set +# CONFIG_LEDS_MLXCPLD is not set +# CONFIG_LEDS_MLXREG is not set +# CONFIG_LEDS_USER is not set +# CONFIG_LEDS_NIC78BX is not set +# CONFIG_LEDS_TI_LMU_COMMON is not set + +# +# Flash and Torch LED drivers +# +# CONFIG_LEDS_AS3645A is not set +# CONFIG_LEDS_LM3601X is not set +# CONFIG_LEDS_RT8515 is not set +# CONFIG_LEDS_SGM3140 is not set + +# +# RGB LED drivers +# + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +# CONFIG_LEDS_TRIGGER_TIMER is not set +# CONFIG_LEDS_TRIGGER_ONESHOT is not set +# CONFIG_LEDS_TRIGGER_DISK is not set +# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set +# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set +# CONFIG_LEDS_TRIGGER_CPU is not set +# CONFIG_LEDS_TRIGGER_ACTIVITY is not set +# CONFIG_LEDS_TRIGGER_GPIO is not set +# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set + +# +# iptables trigger is under Netfilter config (LED target) +# +# CONFIG_LEDS_TRIGGER_TRANSIENT is not set +# CONFIG_LEDS_TRIGGER_CAMERA is not set +# CONFIG_LEDS_TRIGGER_PANIC is not set +# CONFIG_LEDS_TRIGGER_NETDEV is not set +# CONFIG_LEDS_TRIGGER_PATTERN is not set +CONFIG_LEDS_TRIGGER_AUDIO=m +# CONFIG_LEDS_TRIGGER_TTY is not set + +# +# Simple LED drivers +# +# CONFIG_ACCESSIBILITY is not set +# CONFIG_INFINIBAND is not set +CONFIG_EDAC_ATOMIC_SCRUB=y +CONFIG_EDAC_SUPPORT=y +# CONFIG_EDAC is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_MC146818_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +CONFIG_RTC_SYSTOHC=y +CONFIG_RTC_SYSTOHC_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set +CONFIG_RTC_NVMEM=y + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +# CONFIG_RTC_DRV_ABB5ZES3 is not set +# CONFIG_RTC_DRV_ABEOZ9 is not set +# CONFIG_RTC_DRV_ABX80X is not set +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1374 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_MAX6900 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_ISL12022 is not set +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_PCF8523 is not set +# CONFIG_RTC_DRV_PCF85063 is not set +# CONFIG_RTC_DRV_PCF85363 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_M41T80 is not set +# CONFIG_RTC_DRV_BQ32K is not set +# CONFIG_RTC_DRV_S35390A is not set +# CONFIG_RTC_DRV_FM3130 is not set +# CONFIG_RTC_DRV_RX8010 is not set +# CONFIG_RTC_DRV_RX8581 is not set +# CONFIG_RTC_DRV_RX8025 is not set +# CONFIG_RTC_DRV_EM3027 is not set +# CONFIG_RTC_DRV_RV3028 is not set +# CONFIG_RTC_DRV_RV3032 is not set +# CONFIG_RTC_DRV_RV8803 is not set +# CONFIG_RTC_DRV_SD3078 is not set + +# +# SPI RTC drivers +# +CONFIG_RTC_I2C_AND_SPI=y + +# +# SPI and I2C RTC drivers +# +# CONFIG_RTC_DRV_DS3232 is not set +# CONFIG_RTC_DRV_PCF2127 is not set +# CONFIG_RTC_DRV_RV3029C2 is not set +# CONFIG_RTC_DRV_RX6110 is not set + +# +# Platform RTC drivers +# +CONFIG_RTC_DRV_CMOS=y +# CONFIG_RTC_DRV_DS1286 is not set +# CONFIG_RTC_DRV_DS1511 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1685_FAMILY is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_DS2404 is not set +# CONFIG_RTC_DRV_STK17TA8 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T35 is not set +# CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_MSM6242 is not set +# CONFIG_RTC_DRV_BQ4802 is not set +# CONFIG_RTC_DRV_RP5C01 is not set +# CONFIG_RTC_DRV_V3020 is not set + +# +# on-CPU RTC drivers +# +# CONFIG_RTC_DRV_FTRTC010 is not set + +# +# HID Sensor RTC drivers +# +# CONFIG_RTC_DRV_GOLDFISH is not set +CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set + +# +# DMA Devices +# +CONFIG_DMA_ENGINE=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +CONFIG_DMA_ACPI=y +# CONFIG_ALTERA_MSGDMA is not set +CONFIG_INTEL_IDMA64=m +# CONFIG_INTEL_IDXD is not set +# CONFIG_INTEL_IDXD_COMPAT is not set +CONFIG_INTEL_IOATDMA=m +# CONFIG_PLX_DMA is not set +# CONFIG_AMD_PTDMA is not set +# CONFIG_QCOM_HIDMA_MGMT is not set +# CONFIG_QCOM_HIDMA is not set +CONFIG_DW_DMAC_CORE=m +CONFIG_DW_DMAC=m +CONFIG_DW_DMAC_PCI=m +# CONFIG_DW_EDMA is not set +# CONFIG_DW_EDMA_PCIE is not set +CONFIG_HSU_DMA=y +# CONFIG_SF_PDMA is not set +# CONFIG_INTEL_LDMA is not set + +# +# DMA Clients +# +# CONFIG_ASYNC_TX_DMA is not set +# CONFIG_DMATEST is not set +CONFIG_DMA_ENGINE_RAID=y + +# +# DMABUF options +# +CONFIG_SYNC_FILE=y +# CONFIG_SW_SYNC is not set +# CONFIG_UDMABUF is not set +# CONFIG_DMABUF_MOVE_NOTIFY is not set +# CONFIG_DMABUF_DEBUG is not set +# CONFIG_DMABUF_SELFTESTS is not set +CONFIG_DMABUF_HEAPS=y +# CONFIG_DMABUF_SYSFS_STATS is not set +CONFIG_DMABUF_HEAPS_SYSTEM=y +CONFIG_DMABUF_HEAPS_CMA=y +# end of DMABUF options + +CONFIG_DCA=m +# CONFIG_AUXDISPLAY is not set +CONFIG_UIO=y +# CONFIG_UIO_CIF is not set +# CONFIG_UIO_PDRV_GENIRQ is not set +# CONFIG_UIO_DMEM_GENIRQ is not set +# CONFIG_UIO_AEC is not set +# CONFIG_UIO_SERCOS3 is not set +# CONFIG_UIO_PCI_GENERIC is not set +# CONFIG_UIO_NETX is not set +# CONFIG_UIO_PRUSS is not set +# CONFIG_UIO_MF624 is not set +# CONFIG_VFIO is not set +# CONFIG_VIRT_DRIVERS is not set +CONFIG_VIRTIO_ANCHOR=y +CONFIG_VIRTIO=y +CONFIG_VIRTIO_PCI_LIB=y +CONFIG_VIRTIO_PCI_LIB_LEGACY=y +CONFIG_VIRTIO_MENU=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_PCI_LEGACY=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_VIRTIO_INPUT=y +CONFIG_VIRTIO_MMIO=y +# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set +CONFIG_VIRTIO_DMA_SHARED_BUFFER=y +# CONFIG_VDPA is not set +# CONFIG_VHOST_MENU is not set + +# +# Microsoft Hyper-V guest support +# +# CONFIG_HYPERV is not set +# end of Microsoft Hyper-V guest support + +# CONFIG_GREYBUS is not set +# CONFIG_COMEDI is not set +CONFIG_STAGING=y +# CONFIG_PRISM2_USB is not set +CONFIG_RTL8192U=m +# CONFIG_RTLLIB is not set +CONFIG_RTL8723BS=m +CONFIG_R8712U=m +CONFIG_R8188EU=m +CONFIG_RTS5208=y +# CONFIG_VT6655 is not set +CONFIG_VT6656=m +# CONFIG_FB_SM750 is not set +CONFIG_STAGING_MEDIA=y +# CONFIG_INTEL_ATOMISP is not set +# CONFIG_VIDEO_ZORAN is not set +CONFIG_VIDEO_IPU3_IMGU=m +CONFIG_DVB_AV7110_IR=y +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_BUDGET_PATCH=m +CONFIG_DVB_SP8870=m +# CONFIG_LTE_GDM724X is not set +# CONFIG_FIREWIRE_SERIAL is not set +# CONFIG_KS7010 is not set +# CONFIG_FIELDBUS_DEV is not set +# CONFIG_QLGE is not set + +# +# VME Device Drivers +# +CONFIG_X86_PLATFORM_DEVICES=y +CONFIG_ACPI_WMI=y +CONFIG_WMI_BMOF=y +# CONFIG_HUAWEI_WMI is not set +# CONFIG_MXM_WMI is not set +# CONFIG_PEAQ_WMI is not set +# CONFIG_NVIDIA_WMI_EC_BACKLIGHT is not set +# CONFIG_XIAOMI_WMI is not set +# CONFIG_GIGABYTE_WMI is not set +# CONFIG_YOGABOOK_WMI is not set +# CONFIG_ACERHDF is not set +# CONFIG_ACER_WIRELESS is not set +# CONFIG_ACER_WMI is not set +# CONFIG_AMD_PMC is not set +# CONFIG_AMD_HSMP is not set +# CONFIG_ADV_SWBUTTON is not set +# CONFIG_APPLE_GMUX is not set +# CONFIG_ASUS_LAPTOP is not set +# CONFIG_ASUS_WIRELESS is not set +# CONFIG_ASUS_TF103C_DOCK is not set +# CONFIG_X86_PLATFORM_DRIVERS_DELL is not set +# CONFIG_AMILO_RFKILL is not set +# CONFIG_FUJITSU_LAPTOP is not set +# CONFIG_FUJITSU_TABLET is not set +# CONFIG_GPD_POCKET_FAN is not set +# CONFIG_HP_ACCEL is not set +# CONFIG_WIRELESS_HOTKEY is not set +# CONFIG_HP_WMI is not set +# CONFIG_IBM_RTL is not set +# CONFIG_IDEAPAD_LAPTOP is not set +# CONFIG_SENSORS_HDAPS is not set +# CONFIG_THINKPAD_ACPI is not set +# CONFIG_THINKPAD_LMI is not set +CONFIG_INTEL_ATOMISP2_PDX86=y +CONFIG_INTEL_ATOMISP2_PM=y +# CONFIG_INTEL_SAR_INT1092 is not set +# CONFIG_INTEL_SKL_INT3472 is not set +# CONFIG_INTEL_PMC_CORE is not set + +# +# Intel Speed Select Technology interface support +# +# CONFIG_INTEL_SPEED_SELECT_INTERFACE is not set +# end of Intel Speed Select Technology interface support + +# CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set +# CONFIG_INTEL_WMI_THUNDERBOLT is not set + +# +# Intel Uncore Frequency Control +# +# CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set +# end of Intel Uncore Frequency Control + +# CONFIG_INTEL_HID_EVENT is not set +# CONFIG_INTEL_VBTN is not set +# CONFIG_INTEL_INT0002_VGPIO is not set +# CONFIG_INTEL_OAKTRAIL is not set +# CONFIG_INTEL_PUNIT_IPC is not set +# CONFIG_INTEL_RST is not set +# CONFIG_INTEL_SMARTCONNECT is not set +# CONFIG_INTEL_TURBO_MAX_3 is not set +# CONFIG_INTEL_VSEC is not set +# CONFIG_MSI_LAPTOP is not set +# CONFIG_MSI_WMI is not set +# CONFIG_PCENGINES_APU2 is not set +# CONFIG_BARCO_P50_GPIO is not set +# CONFIG_SAMSUNG_LAPTOP is not set +# CONFIG_SAMSUNG_Q10 is not set +# CONFIG_TOSHIBA_BT_RFKILL is not set +# CONFIG_TOSHIBA_HAPS is not set +# CONFIG_TOSHIBA_WMI is not set +# CONFIG_ACPI_CMPC is not set +# CONFIG_COMPAL_LAPTOP is not set +# CONFIG_LG_LAPTOP is not set +# CONFIG_PANASONIC_LAPTOP is not set +# CONFIG_SONY_LAPTOP is not set +# CONFIG_SYSTEM76_ACPI is not set +# CONFIG_TOPSTAR_LAPTOP is not set +# CONFIG_MLX_PLATFORM is not set +# CONFIG_INTEL_IPS is not set +# CONFIG_INTEL_SCU_PCI is not set +# CONFIG_INTEL_SCU_PLATFORM is not set +# CONFIG_SIEMENS_SIMATIC_IPC is not set +# CONFIG_WINMATE_FM07_KEYS is not set +CONFIG_PMC_ATOM=y +# CONFIG_CHROME_PLATFORMS is not set +# CONFIG_MELLANOX_PLATFORM is not set +CONFIG_SURFACE_PLATFORMS=y +# CONFIG_SURFACE_3_POWER_OPREGION is not set +# CONFIG_SURFACE_GPE is not set +# CONFIG_SURFACE_HOTPLUG is not set +# CONFIG_SURFACE_PRO3_BUTTON is not set +# CONFIG_SURFACE_AGGREGATOR is not set +CONFIG_HAVE_CLK=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y +# CONFIG_COMMON_CLK_MAX9485 is not set +# CONFIG_COMMON_CLK_SI5341 is not set +# CONFIG_COMMON_CLK_SI5351 is not set +# CONFIG_COMMON_CLK_SI544 is not set +# CONFIG_COMMON_CLK_CDCE706 is not set +# CONFIG_COMMON_CLK_CS2000_CP is not set +# CONFIG_XILINX_VCU is not set +# CONFIG_HWSPINLOCK is not set + +# +# Clock Source drivers +# +CONFIG_CLKEVT_I8253=y +CONFIG_CLKBLD_I8253=y +# end of Clock Source drivers + +CONFIG_MAILBOX=y +CONFIG_PCC=y +# CONFIG_ALTERA_MBOX is not set +CONFIG_IOMMU_IOVA=y +CONFIG_IOASID=y +CONFIG_IOMMU_API=y +CONFIG_IOMMU_SUPPORT=y + +# +# Generic IOMMU Pagetable Support +# +CONFIG_IOMMU_IO_PGTABLE=y +# end of Generic IOMMU Pagetable Support + +# CONFIG_IOMMU_DEBUGFS is not set +# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set +# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set +CONFIG_IOMMU_DEFAULT_PASSTHROUGH=y +CONFIG_IOMMU_DMA=y +CONFIG_IOMMU_SVA=y +CONFIG_AMD_IOMMU=y +CONFIG_AMD_IOMMU_V2=y +CONFIG_DMAR_TABLE=y +CONFIG_INTEL_IOMMU=y +CONFIG_INTEL_IOMMU_SVM=y +# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set +CONFIG_INTEL_IOMMU_FLOPPY_WA=y +# CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set +CONFIG_IRQ_REMAP=y +# CONFIG_VIRTIO_IOMMU is not set + +# +# Remoteproc drivers +# +# CONFIG_REMOTEPROC is not set +# end of Remoteproc drivers + +# +# Rpmsg drivers +# +# CONFIG_RPMSG_QCOM_GLINK_RPM is not set +# CONFIG_RPMSG_VIRTIO is not set +# end of Rpmsg drivers + +# CONFIG_SOUNDWIRE is not set + +# +# SOC (System On Chip) specific Drivers +# + +# +# Amlogic SoC drivers +# +# end of Amlogic SoC drivers + +# +# Broadcom SoC drivers +# +# end of Broadcom SoC drivers + +# +# NXP/Freescale QorIQ SoC drivers +# +# end of NXP/Freescale QorIQ SoC drivers + +# +# i.MX SoC drivers +# +# end of i.MX SoC drivers + +# +# Enable LiteX SoC Builder specific drivers +# +# end of Enable LiteX SoC Builder specific drivers + +# +# Qualcomm SoC drivers +# +# end of Qualcomm SoC drivers + +# CONFIG_SOC_TI is not set + +# +# Xilinx SoC drivers +# +# end of Xilinx SoC drivers +# end of SOC (System On Chip) specific Drivers + +# CONFIG_PM_DEVFREQ is not set +# CONFIG_EXTCON is not set +# CONFIG_MEMORY is not set +# CONFIG_IIO is not set +# CONFIG_NTB is not set +# CONFIG_VME_BUS is not set +# CONFIG_PWM is not set + +# +# IRQ chip support +# +# end of IRQ chip support + +# CONFIG_IPACK_BUS is not set +CONFIG_RESET_CONTROLLER=y +# CONFIG_RESET_TI_SYSCON is not set + +# +# PHY Subsystem +# +# CONFIG_GENERIC_PHY is not set +# CONFIG_USB_LGM_PHY is not set +# CONFIG_PHY_CAN_TRANSCEIVER is not set + +# +# PHY drivers for Broadcom platforms +# +# CONFIG_BCM_KONA_USB2_PHY is not set +# end of PHY drivers for Broadcom platforms + +# CONFIG_PHY_PXA_28NM_HSIC is not set +# CONFIG_PHY_PXA_28NM_USB2 is not set +# CONFIG_PHY_INTEL_LGM_EMMC is not set +# end of PHY Subsystem + +CONFIG_POWERCAP=y +CONFIG_INTEL_RAPL_CORE=m +CONFIG_INTEL_RAPL=m +# CONFIG_IDLE_INJECT is not set +# CONFIG_MCB is not set + +# +# Performance monitor support +# +# end of Performance monitor support + +CONFIG_RAS=y +# CONFIG_USB4 is not set + +# +# Android +# +# CONFIG_ANDROID is not set +# end of Android + +# CONFIG_LIBNVDIMM is not set +# CONFIG_DAX is not set +CONFIG_NVMEM=y +CONFIG_NVMEM_SYSFS=y +# CONFIG_NVMEM_RMEM is not set + +# +# HW tracing support +# +# CONFIG_STM is not set +# CONFIG_INTEL_TH is not set +# end of HW tracing support + +# CONFIG_FPGA is not set +# CONFIG_TEE is not set +# CONFIG_SIOX is not set +# CONFIG_SLIMBUS is not set +# CONFIG_INTERCONNECT is not set +# CONFIG_COUNTER is not set +# CONFIG_MOST is not set +# CONFIG_PECI is not set +# CONFIG_HTE is not set +# end of Device Drivers + +# +# File systems +# +CONFIG_DCACHE_WORD_ACCESS=y +CONFIG_VALIDATE_FS_PARSER=y +CONFIG_FS_IOMAP=y +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT2=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=y +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set +# CONFIG_REISERFS_FS_XATTR is not set +CONFIG_JFS_FS=m +# CONFIG_JFS_POSIX_ACL is not set +# CONFIG_JFS_SECURITY is not set +# CONFIG_JFS_DEBUG is not set +# CONFIG_JFS_STATISTICS is not set +CONFIG_XFS_FS=m +CONFIG_XFS_SUPPORT_V4=y +# CONFIG_XFS_QUOTA is not set +# CONFIG_XFS_POSIX_ACL is not set +# CONFIG_XFS_RT is not set +# CONFIG_XFS_ONLINE_SCRUB is not set +# CONFIG_XFS_WARN is not set +# CONFIG_XFS_DEBUG is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +CONFIG_BTRFS_FS=y +CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set +# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +# CONFIG_BTRFS_DEBUG is not set +# CONFIG_BTRFS_ASSERT is not set +# CONFIG_BTRFS_FS_REF_VERIFY is not set +# CONFIG_NILFS2_FS is not set +CONFIG_F2FS_FS=y +CONFIG_F2FS_STAT_FS=y +# CONFIG_F2FS_FS_XATTR is not set +CONFIG_F2FS_CHECK_FS=y +# CONFIG_F2FS_FAULT_INJECTION is not set +# CONFIG_F2FS_FS_COMPRESSION is not set +CONFIG_F2FS_IOSTAT=y +# CONFIG_F2FS_UNFAIR_RWSEM is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=y +# CONFIG_EXPORTFS_BLOCK_OPS is not set +CONFIG_FILE_LOCKING=y +# CONFIG_FS_ENCRYPTION is not set +# CONFIG_FS_VERITY is not set +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_FANOTIFY=y +# CONFIG_QUOTA is not set +CONFIG_AUTOFS4_FS=y +CONFIG_AUTOFS_FS=y +CONFIG_FUSE_FS=m +# CONFIG_CUSE is not set +# CONFIG_VIRTIO_FS is not set +CONFIG_OVERLAY_FS=m +# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set +CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y +# CONFIG_OVERLAY_FS_INDEX is not set +# CONFIG_OVERLAY_FS_XINO_AUTO is not set +# CONFIG_OVERLAY_FS_METACOPY is not set + +# +# Caches +# +CONFIG_NETFS_SUPPORT=y +# CONFIG_NETFS_STATS is not set +CONFIG_FSCACHE=y +# CONFIG_FSCACHE_STATS is not set +# CONFIG_FSCACHE_DEBUG is not set +# CONFIG_CACHEFILES is not set +# end of Caches + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +# end of CD-ROM/DVD Filesystems + +# +# DOS/FAT/EXFAT/NT Filesystems +# +CONFIG_FAT_FS=y +# CONFIG_MSDOS_FS is not set +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_FAT_DEFAULT_UTF8 is not set +CONFIG_EXFAT_FS=m +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" +# CONFIG_NTFS_FS is not set +CONFIG_NTFS3_FS=m +# CONFIG_NTFS3_64BIT_CLUSTER is not set +# CONFIG_NTFS3_LZX_XPRESS is not set +# CONFIG_NTFS3_FS_POSIX_ACL is not set +# end of DOS/FAT/EXFAT/NT Filesystems + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +# CONFIG_PROC_CHILDREN is not set +CONFIG_PROC_PID_ARCH_STATUS=y +CONFIG_KERNFS=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_XATTR=y +# CONFIG_TMPFS_INODE64 is not set +# CONFIG_HUGETLBFS is not set +CONFIG_MEMFD_CREATE=y +CONFIG_ARCH_HAS_GIGANTIC_PAGE=y +CONFIG_CONFIGFS_FS=y +CONFIG_EFIVAR_FS=y +# end of Pseudo filesystems + +CONFIG_MISC_FILESYSTEMS=y +# CONFIG_ORANGEFS_FS is not set +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_ECRYPT_FS is not set +# CONFIG_HFS_FS is not set +CONFIG_HFSPLUS_FS=m +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_CRAMFS is not set +CONFIG_SQUASHFS=y +# CONFIG_SQUASHFS_FILE_CACHE is not set +CONFIG_SQUASHFS_FILE_DIRECT=y +# CONFIG_SQUASHFS_DECOMP_SINGLE is not set +# CONFIG_SQUASHFS_DECOMP_MULTI is not set +CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y +# CONFIG_SQUASHFS_XATTR is not set +CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_LZ4=y +CONFIG_SQUASHFS_LZO=y +CONFIG_SQUASHFS_XZ=y +CONFIG_SQUASHFS_ZSTD=y +# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +# CONFIG_VXFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_OMFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_PSTORE is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set +# CONFIG_EROFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +# CONFIG_NFS_FS is not set +# CONFIG_NFSD is not set +# CONFIG_CEPH_FS is not set +# CONFIG_CIFS is not set +# CONFIG_SMB_SERVER is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +# CONFIG_NLS_MAC_ROMAN is not set +# CONFIG_NLS_MAC_CELTIC is not set +# CONFIG_NLS_MAC_CENTEURO is not set +# CONFIG_NLS_MAC_CROATIAN is not set +# CONFIG_NLS_MAC_CYRILLIC is not set +# CONFIG_NLS_MAC_GAELIC is not set +# CONFIG_NLS_MAC_GREEK is not set +# CONFIG_NLS_MAC_ICELAND is not set +# CONFIG_NLS_MAC_INUIT is not set +# CONFIG_NLS_MAC_ROMANIAN is not set +# CONFIG_NLS_MAC_TURKISH is not set +CONFIG_NLS_UTF8=y +# CONFIG_DLM is not set +# CONFIG_UNICODE is not set +CONFIG_IO_WQ=y +# end of File systems + +# +# Security options +# +CONFIG_KEYS=y +CONFIG_KEYS_REQUEST_CACHE=y +# CONFIG_PERSISTENT_KEYRINGS is not set +CONFIG_TRUSTED_KEYS=m + +# +# No trust source selected! +# +# CONFIG_ENCRYPTED_KEYS is not set +CONFIG_KEY_DH_OPERATIONS=y +# CONFIG_SECURITY_DMESG_RESTRICT is not set +# CONFIG_SECURITY is not set +CONFIG_SECURITYFS=y +# CONFIG_INTEL_TXT is not set +CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y +# CONFIG_HARDENED_USERCOPY is not set +# CONFIG_FORTIFY_SOURCE is not set +# CONFIG_STATIC_USERMODEHELPER is not set +# CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_LSM="yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor" + +# +# Kernel hardening options +# + +# +# Memory initialization +# +CONFIG_INIT_STACK_NONE=y +# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set +# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set +CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y +# end of Memory initialization + +CONFIG_RANDSTRUCT_NONE=y +# end of Kernel hardening options +# end of Security options + +CONFIG_XOR_BLOCKS=y +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_SKCIPHER=y +CONFIG_CRYPTO_SKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_RNG_DEFAULT=y +CONFIG_CRYPTO_AKCIPHER2=y +CONFIG_CRYPTO_AKCIPHER=y +CONFIG_CRYPTO_KPP2=y +CONFIG_CRYPTO_KPP=y +CONFIG_CRYPTO_ACOMP2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +# CONFIG_CRYPTO_USER is not set +# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set +# CONFIG_CRYPTO_MANAGER_EXTRA_TESTS is not set +CONFIG_CRYPTO_GF128MUL=y +CONFIG_CRYPTO_NULL=y +CONFIG_CRYPTO_NULL2=y +# CONFIG_CRYPTO_PCRYPT is not set +CONFIG_CRYPTO_CRYPTD=y +# CONFIG_CRYPTO_AUTHENC is not set +# CONFIG_CRYPTO_TEST is not set +CONFIG_CRYPTO_SIMD=y + +# +# Public-key cryptography +# +CONFIG_CRYPTO_RSA=y +CONFIG_CRYPTO_DH=y +# CONFIG_CRYPTO_DH_RFC7919_GROUPS is not set +CONFIG_CRYPTO_ECC=m +CONFIG_CRYPTO_ECDH=m +# CONFIG_CRYPTO_ECDSA is not set +# CONFIG_CRYPTO_ECRDSA is not set +# CONFIG_CRYPTO_SM2 is not set +# CONFIG_CRYPTO_CURVE25519 is not set +CONFIG_CRYPTO_CURVE25519_X86=m + +# +# Authenticated Encryption with Associated Data +# +CONFIG_CRYPTO_CCM=y +CONFIG_CRYPTO_GCM=y +# CONFIG_CRYPTO_CHACHA20POLY1305 is not set +# CONFIG_CRYPTO_AEGIS128 is not set +# CONFIG_CRYPTO_AEGIS128_AESNI_SSE2 is not set +CONFIG_CRYPTO_SEQIV=y +CONFIG_CRYPTO_ECHAINIV=m + +# +# Block modes +# +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CFB=m +CONFIG_CRYPTO_CTR=y +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_ECB=y +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_OFB is not set +# CONFIG_CRYPTO_PCBC is not set +# CONFIG_CRYPTO_XTS is not set +# CONFIG_CRYPTO_KEYWRAP is not set +# CONFIG_CRYPTO_NHPOLY1305_SSE2 is not set +# CONFIG_CRYPTO_NHPOLY1305_AVX2 is not set +# CONFIG_CRYPTO_ADIANTUM is not set +# CONFIG_CRYPTO_ESSIV is not set + +# +# Hash modes +# +CONFIG_CRYPTO_CMAC=y +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_VMAC is not set + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=y +# CONFIG_CRYPTO_CRC32C_INTEL is not set +CONFIG_CRYPTO_CRC32=y +# CONFIG_CRYPTO_CRC32_PCLMUL is not set +CONFIG_CRYPTO_XXHASH=y +CONFIG_CRYPTO_BLAKE2B=y +CONFIG_CRYPTO_BLAKE2S_X86=y +# CONFIG_CRYPTO_CRCT10DIF is not set +CONFIG_CRYPTO_GHASH=y +# CONFIG_CRYPTO_POLY1305 is not set +CONFIG_CRYPTO_POLY1305_X86_64=m +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=m +# CONFIG_CRYPTO_RMD160 is not set +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA1_SSSE3=y +CONFIG_CRYPTO_SHA256_SSSE3=y +CONFIG_CRYPTO_SHA512_SSSE3=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA512=y +# CONFIG_CRYPTO_SHA3 is not set +# CONFIG_CRYPTO_SM3_GENERIC is not set +# CONFIG_CRYPTO_SM3_AVX_X86_64 is not set +# CONFIG_CRYPTO_STREEBOG is not set +# CONFIG_CRYPTO_WP512 is not set +# CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set + +# +# Ciphers +# +CONFIG_CRYPTO_AES=y +# CONFIG_CRYPTO_AES_TI is not set +CONFIG_CRYPTO_AES_NI_INTEL=y +# CONFIG_CRYPTO_ANUBIS is not set +# CONFIG_CRYPTO_ARC4 is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_BLOWFISH_X86_64 is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_CAMELLIA_X86_64 is not set +# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 is not set +# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set +CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_DES3_EDE_X86_64=y +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_CHACHA20 is not set +CONFIG_CRYPTO_CHACHA20_X86_64=m +# CONFIG_CRYPTO_SEED is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set +# CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set +# CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_GENERIC is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_TEA is not set +# CONFIG_CRYPTO_TWOFISH is not set +# CONFIG_CRYPTO_TWOFISH_X86_64 is not set +# CONFIG_CRYPTO_TWOFISH_X86_64_3WAY is not set +# CONFIG_CRYPTO_TWOFISH_AVX_X86_64 is not set + +# +# Compression +# +# CONFIG_CRYPTO_DEFLATE is not set +# CONFIG_CRYPTO_LZO is not set +# CONFIG_CRYPTO_842 is not set +# CONFIG_CRYPTO_LZ4 is not set +# CONFIG_CRYPTO_LZ4HC is not set +# CONFIG_CRYPTO_ZSTD is not set + +# +# Random Number Generation +# +# CONFIG_CRYPTO_ANSI_CPRNG is not set +CONFIG_CRYPTO_DRBG_MENU=y +CONFIG_CRYPTO_DRBG_HMAC=y +# CONFIG_CRYPTO_DRBG_HASH is not set +# CONFIG_CRYPTO_DRBG_CTR is not set +CONFIG_CRYPTO_DRBG=y +CONFIG_CRYPTO_JITTERENTROPY=y +CONFIG_CRYPTO_KDF800108_CTR=y +CONFIG_CRYPTO_USER_API=y +CONFIG_CRYPTO_USER_API_HASH=y +CONFIG_CRYPTO_USER_API_SKCIPHER=y +# CONFIG_CRYPTO_USER_API_RNG is not set +CONFIG_CRYPTO_USER_API_AEAD=y +CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y +CONFIG_CRYPTO_HASH_INFO=y +# CONFIG_CRYPTO_HW is not set +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y +CONFIG_X509_CERTIFICATE_PARSER=y +CONFIG_PKCS8_PRIVATE_KEY_PARSER=m +CONFIG_PKCS7_MESSAGE_PARSER=y +# CONFIG_PKCS7_TEST_KEY is not set +# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set +# CONFIG_FIPS_SIGNATURE_SELFTEST is not set + +# +# Certificates for signature checking +# +CONFIG_SYSTEM_TRUSTED_KEYRING=y +CONFIG_SYSTEM_TRUSTED_KEYS="" +# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set +# CONFIG_SECONDARY_TRUSTED_KEYRING is not set +# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set +# end of Certificates for signature checking + +CONFIG_BINARY_PRINTF=y + +# +# Library routines +# +CONFIG_RAID6_PQ=y +# CONFIG_RAID6_PQ_BENCHMARK is not set +CONFIG_LINEAR_RANGES=y +# CONFIG_PACKING is not set +CONFIG_BITREVERSE=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_NET_UTILS=y +# CONFIG_CORDIC is not set +# CONFIG_PRIME_NUMBERS is not set +CONFIG_RATIONAL=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IOMAP=y +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +CONFIG_ARCH_HAS_FAST_MULTIPLIER=y +CONFIG_ARCH_USE_SYM_ANNOTATIONS=y + +# +# Crypto library routines +# +CONFIG_CRYPTO_LIB_AES=y +CONFIG_CRYPTO_LIB_ARC4=m +CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=y +CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y +CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m +CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m +CONFIG_CRYPTO_LIB_CHACHA=m +CONFIG_CRYPTO_ARCH_HAVE_LIB_CURVE25519=m +CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m +CONFIG_CRYPTO_LIB_CURVE25519=m +CONFIG_CRYPTO_LIB_DES=y +CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11 +CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m +CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m +CONFIG_CRYPTO_LIB_POLY1305=m +CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m +CONFIG_CRYPTO_LIB_SHA256=y +# end of Crypto library routines + +CONFIG_LIB_MEMNEQ=y +CONFIG_CRC_CCITT=y +CONFIG_CRC16=y +# CONFIG_CRC_T10DIF is not set +# CONFIG_CRC64_ROCKSOFT is not set +CONFIG_CRC_ITU_T=m +CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set +# CONFIG_CRC64 is not set +# CONFIG_CRC4 is not set +# CONFIG_CRC7 is not set +CONFIG_LIBCRC32C=y +# CONFIG_CRC8 is not set +CONFIG_XXHASH=y +# CONFIG_RANDOM32_SELFTEST is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_LZ4_DECOMPRESS=y +CONFIG_ZSTD_COMPRESS=y +CONFIG_ZSTD_DECOMPRESS=y +CONFIG_XZ_DEC=y +# CONFIG_XZ_DEC_X86 is not set +# CONFIG_XZ_DEC_POWERPC is not set +# CONFIG_XZ_DEC_IA64 is not set +# CONFIG_XZ_DEC_ARM is not set +# CONFIG_XZ_DEC_ARMTHUMB is not set +# CONFIG_XZ_DEC_SPARC is not set +# CONFIG_XZ_DEC_MICROLZMA is not set +# CONFIG_XZ_DEC_TEST is not set +CONFIG_DECOMPRESS_ZSTD=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_INTERVAL_TREE=y +CONFIG_XARRAY_MULTI=y +CONFIG_ASSOCIATIVE_ARRAY=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT_MAP=y +CONFIG_HAS_DMA=y +CONFIG_DMA_OPS=y +CONFIG_NEED_SG_DMA_LENGTH=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_SWIOTLB=y +CONFIG_DMA_CMA=y +# CONFIG_DMA_PERNUMA_CMA is not set + +# +# Default contiguous memory area size: +# +CONFIG_CMA_SIZE_MBYTES=256 +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_ALIGNMENT=8 +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_SGL_ALLOC=y +CONFIG_IOMMU_HELPER=y +CONFIG_CHECK_SIGNATURE=y +CONFIG_CPU_RMAP=y +CONFIG_DQL=y +CONFIG_GLOB=y +# CONFIG_GLOB_SELFTEST is not set +CONFIG_NLATTR=y +CONFIG_CLZ_TAB=y +CONFIG_IRQ_POLL=y +CONFIG_MPILIB=y +CONFIG_DIMLIB=y +CONFIG_OID_REGISTRY=y +CONFIG_UCS2_STRING=y +CONFIG_HAVE_GENERIC_VDSO=y +CONFIG_GENERIC_GETTIMEOFDAY=y +CONFIG_GENERIC_VDSO_TIME_NS=y +CONFIG_FONT_SUPPORT=y +# CONFIG_FONTS is not set +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +CONFIG_SG_POOL=y +CONFIG_ARCH_HAS_PMEM_API=y +CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y +CONFIG_ARCH_HAS_COPY_MC=y +CONFIG_ARCH_STACKWALK=y +CONFIG_STACKDEPOT=y +CONFIG_STACK_HASH_ORDER=20 +CONFIG_SBITMAP=y +# end of Library routines + +CONFIG_PLDMFW=y + +# +# Kernel hacking +# + +# +# printk and dmesg options +# +CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_CALLER is not set +# CONFIG_STACKTRACE_BUILD_ID is not set +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 +CONFIG_CONSOLE_LOGLEVEL_QUIET=4 +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 +# CONFIG_BOOT_PRINTK_DELAY is not set +CONFIG_DYNAMIC_DEBUG=y +CONFIG_DYNAMIC_DEBUG_CORE=y +CONFIG_SYMBOLIC_ERRNAME=y +CONFIG_DEBUG_BUGVERBOSE=y +# end of printk and dmesg options + +CONFIG_DEBUG_KERNEL=y +CONFIG_DEBUG_MISC=y + +# +# Compile-time checks and compiler options +# +CONFIG_DEBUG_INFO_NONE=y +# CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is not set +# CONFIG_DEBUG_INFO_DWARF4 is not set +# CONFIG_DEBUG_INFO_DWARF5 is not set +CONFIG_FRAME_WARN=1024 +CONFIG_STRIP_ASM_SYMS=y +# CONFIG_READABLE_ASM is not set +# CONFIG_HEADERS_INSTALL is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_SECTION_MISMATCH_WARN_ONLY=y +# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B is not set +CONFIG_FRAME_POINTER=y +CONFIG_OBJTOOL=y +CONFIG_STACK_VALIDATION=y +# CONFIG_VMLINUX_MAP is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# end of Compile-time checks and compiler options + +# +# Generic Kernel Debugging Instruments +# +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 +CONFIG_MAGIC_SYSRQ_SERIAL=y +CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" +CONFIG_DEBUG_FS=y +CONFIG_DEBUG_FS_ALLOW_ALL=y +# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set +# CONFIG_DEBUG_FS_ALLOW_NONE is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y +# CONFIG_UBSAN is not set +CONFIG_HAVE_ARCH_KCSAN=y +# end of Generic Kernel Debugging Instruments + +# +# Networking Debugging +# +# CONFIG_NET_DEV_REFCNT_TRACKER is not set +# CONFIG_NET_NS_REFCNT_TRACKER is not set +# CONFIG_DEBUG_NET is not set +# end of Networking Debugging + +# +# Memory Debugging +# +# CONFIG_PAGE_EXTENSION is not set +# CONFIG_DEBUG_PAGEALLOC is not set +CONFIG_SLUB_DEBUG=y +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_PAGE_OWNER is not set +# CONFIG_PAGE_TABLE_CHECK is not set +# CONFIG_PAGE_POISONING is not set +# CONFIG_DEBUG_PAGE_REF is not set +# CONFIG_DEBUG_RODATA_TEST is not set +CONFIG_ARCH_HAS_DEBUG_WX=y +# CONFIG_DEBUG_WX is not set +CONFIG_GENERIC_PTDUMP=y +# CONFIG_PTDUMP_DEBUGFS is not set +# CONFIG_DEBUG_OBJECTS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_SCHED_STACK_END_CHECK is not set +CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_VM_PGTABLE is not set +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y +# CONFIG_DEBUG_VIRTUAL is not set +# CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y +# CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set +CONFIG_HAVE_ARCH_KASAN=y +CONFIG_HAVE_ARCH_KASAN_VMALLOC=y +CONFIG_CC_HAS_KASAN_GENERIC=y +CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y +# CONFIG_KASAN is not set +CONFIG_HAVE_ARCH_KFENCE=y +# CONFIG_KFENCE is not set +# end of Memory Debugging + +# CONFIG_DEBUG_SHIRQ is not set + +# +# Debug Oops, Lockups and Hangs +# +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +CONFIG_PANIC_TIMEOUT=0 +CONFIG_LOCKUP_DETECTOR=y +CONFIG_SOFTLOCKUP_DETECTOR=y +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_HARDLOCKUP_DETECTOR_PERF=y +CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y +CONFIG_HARDLOCKUP_DETECTOR=y +# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 +# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set +# CONFIG_WQ_WATCHDOG is not set +# CONFIG_TEST_LOCKUP is not set +# end of Debug Oops, Lockups and Hangs + +# +# Scheduler Debugging +# +# CONFIG_SCHED_DEBUG is not set +# CONFIG_SCHEDSTATS is not set +# end of Scheduler Debugging + +# CONFIG_DEBUG_TIMEKEEPING is not set + +# +# Lock Debugging (spinlocks, mutexes, etc...) +# +CONFIG_LOCK_DEBUGGING_SUPPORT=y +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +# CONFIG_DEBUG_RWSEMS is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_LOCK_TORTURE_TEST is not set +# CONFIG_WW_MUTEX_SELFTEST is not set +# CONFIG_SCF_TORTURE_TEST is not set +# CONFIG_CSD_LOCK_WAIT_DEBUG is not set +# end of Lock Debugging (spinlocks, mutexes, etc...) + +CONFIG_TRACE_IRQFLAGS=y +CONFIG_TRACE_IRQFLAGS_NMI=y +# CONFIG_DEBUG_IRQFLAGS is not set +CONFIG_STACKTRACE=y +# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set +# CONFIG_DEBUG_KOBJECT is not set + +# +# Debug kernel data structures +# +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_PLIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_BUG_ON_DATA_CORRUPTION is not set +# end of Debug kernel data structures + +# CONFIG_DEBUG_CREDENTIALS is not set + +# +# RCU Debugging +# +# CONFIG_RCU_SCALE_TEST is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_RCU_REF_SCALE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=60 +CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 +# CONFIG_RCU_TRACE is not set +# CONFIG_RCU_EQS_DEBUG is not set +# end of RCU Debugging + +# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set +# CONFIG_LATENCYTOP is not set +CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_NOP_TRACER=y +CONFIG_HAVE_RETHOOK=y +CONFIG_RETHOOK=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_FENTRY=y +CONFIG_HAVE_OBJTOOL_MCOUNT=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_HAVE_BUILDTIME_MCOUNT_SORT=y +CONFIG_BUILDTIME_MCOUNT_SORT=y +CONFIG_TRACER_MAX_TRACE=y +CONFIG_TRACE_CLOCK=y +CONFIG_RING_BUFFER=y +CONFIG_EVENT_TRACING=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_RING_BUFFER_ALLOW_SWAP=y +CONFIG_PREEMPTIRQ_TRACEPOINTS=y +CONFIG_TRACING=y +CONFIG_GENERIC_TRACER=y +CONFIG_TRACING_SUPPORT=y +CONFIG_FTRACE=y +CONFIG_BOOTTIME_TRACING=y +CONFIG_FUNCTION_TRACER=y +CONFIG_FUNCTION_GRAPH_TRACER=y +CONFIG_DYNAMIC_FTRACE=y +CONFIG_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y +CONFIG_DYNAMIC_FTRACE_WITH_ARGS=y +# CONFIG_FPROBE is not set +# CONFIG_FUNCTION_PROFILER is not set +CONFIG_STACK_TRACER=y +CONFIG_IRQSOFF_TRACER=y +CONFIG_SCHED_TRACER=y +# CONFIG_HWLAT_TRACER is not set +# CONFIG_OSNOISE_TRACER is not set +# CONFIG_TIMERLAT_TRACER is not set +# CONFIG_MMIOTRACE is not set +# CONFIG_FTRACE_SYSCALLS is not set +CONFIG_TRACER_SNAPSHOT=y +CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +# CONFIG_PROFILE_ALL_BRANCHES is not set +CONFIG_BLK_DEV_IO_TRACE=y +CONFIG_KPROBE_EVENTS=y +# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set +# CONFIG_UPROBE_EVENTS is not set +CONFIG_BPF_EVENTS=y +CONFIG_DYNAMIC_EVENTS=y +CONFIG_PROBE_EVENTS=y +# CONFIG_BPF_KPROBE_OVERRIDE is not set +CONFIG_FTRACE_MCOUNT_RECORD=y +CONFIG_FTRACE_MCOUNT_USE_CC=y +# CONFIG_SYNTH_EVENTS is not set +# CONFIG_HIST_TRIGGERS is not set +# CONFIG_TRACE_EVENT_INJECT is not set +# CONFIG_TRACEPOINT_BENCHMARK is not set +# CONFIG_RING_BUFFER_BENCHMARK is not set +# CONFIG_TRACE_EVAL_MAP_FILE is not set +# CONFIG_FTRACE_RECORD_RECURSION is not set +# CONFIG_FTRACE_STARTUP_TEST is not set +# CONFIG_FTRACE_SORT_STARTUP_TEST is not set +# CONFIG_RING_BUFFER_STARTUP_TEST is not set +# CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set +# CONFIG_PREEMPTIRQ_DELAY_TEST is not set +# CONFIG_KPROBE_EVENT_GEN_TEST is not set +# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set +# CONFIG_SAMPLES is not set +CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y +CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y +CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y +CONFIG_STRICT_DEVMEM=y +# CONFIG_IO_STRICT_DEVMEM is not set + +# +# x86 Debugging +# +# CONFIG_X86_VERBOSE_BOOTUP is not set +# CONFIG_EARLY_PRINTK is not set +# CONFIG_EFI_PGT_DUMP is not set +# CONFIG_DEBUG_TLBFLUSH is not set +# CONFIG_IOMMU_DEBUG is not set +CONFIG_HAVE_MMIOTRACE_SUPPORT=y +# CONFIG_X86_DECODER_SELFTEST is not set +CONFIG_IO_DELAY_0X80=y +# CONFIG_IO_DELAY_0XED is not set +# CONFIG_IO_DELAY_UDELAY is not set +# CONFIG_IO_DELAY_NONE is not set +# CONFIG_DEBUG_BOOT_PARAMS is not set +# CONFIG_CPA_DEBUG is not set +# CONFIG_DEBUG_ENTRY is not set +# CONFIG_DEBUG_NMI_SELFTEST is not set +CONFIG_X86_DEBUG_FPU=y +# CONFIG_PUNIT_ATOM_DEBUG is not set +# CONFIG_UNWINDER_ORC is not set +CONFIG_UNWINDER_FRAME_POINTER=y +# end of x86 Debugging + +# +# Kernel Testing and Coverage +# +# CONFIG_KUNIT is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set +CONFIG_FUNCTION_ERROR_INJECTION=y +# CONFIG_FAULT_INJECTION is not set +CONFIG_ARCH_HAS_KCOV=y +CONFIG_CC_HAS_SANCOV_TRACE_PC=y +# CONFIG_KCOV is not set +CONFIG_RUNTIME_TESTING_MENU=y +# CONFIG_LKDTM is not set +# CONFIG_TEST_MIN_HEAP is not set +# CONFIG_TEST_DIV64 is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_TEST_REF_TRACKER is not set +# CONFIG_RBTREE_TEST is not set +# CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_PERCPU_TEST is not set +# CONFIG_ATOMIC64_SELFTEST is not set +# CONFIG_TEST_HEXDUMP is not set +# CONFIG_STRING_SELFTEST is not set +# CONFIG_TEST_STRING_HELPERS is not set +# CONFIG_TEST_STRSCPY is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_TEST_PRINTF is not set +# CONFIG_TEST_SCANF is not set +# CONFIG_TEST_BITMAP is not set +# CONFIG_TEST_UUID is not set +# CONFIG_TEST_XARRAY is not set +# CONFIG_TEST_RHASHTABLE is not set +# CONFIG_TEST_SIPHASH is not set +# CONFIG_TEST_IDA is not set +# CONFIG_TEST_LKM is not set +# CONFIG_TEST_BITOPS is not set +# CONFIG_TEST_VMALLOC is not set +# CONFIG_TEST_USER_COPY is not set +# CONFIG_TEST_BPF is not set +# CONFIG_TEST_BLACKHOLE_DEV is not set +# CONFIG_FIND_BIT_BENCHMARK is not set +# CONFIG_TEST_FIRMWARE is not set +# CONFIG_TEST_SYSCTL is not set +# CONFIG_TEST_UDELAY is not set +# CONFIG_TEST_STATIC_KEYS is not set +# CONFIG_TEST_KMOD is not set +# CONFIG_TEST_MEMCAT_P is not set +# CONFIG_TEST_MEMINIT is not set +# CONFIG_TEST_FREE_PAGES is not set +# CONFIG_TEST_FPU is not set +# CONFIG_TEST_CLOCKSOURCE_WATCHDOG is not set +CONFIG_ARCH_USE_MEMTEST=y +# CONFIG_MEMTEST is not set +# end of Kernel Testing and Coverage +# end of Kernel hacking diff --git a/projects/PC/devices/handheld/options b/projects/PC/devices/handheld/options new file mode 100644 index 000000000..378981535 --- /dev/null +++ b/projects/PC/devices/handheld/options @@ -0,0 +1,110 @@ + # kernel command line + EXTRA_CMDLINE="quiet ssh consoleblank=0 systemd.show_status=0 loglevel=0 panic=20" + + # Partition label + PARTITION_TABLE="msdos" + + # OpenGL(X) implementation to use (mesa / no) + OPENGL="mesa" + + # OpenGL-ES implementation to use (mesa / no) + OPENGLES="mesa" + + # Vulkan implementation to use (vulkan-loader / no) + VULKAN="vulkan-loader" + + # VULKAN_SUPPORT + VULKAN_SUPPORT="yes" + + # Displayserver to use (weston / x11 / no) + DISPLAYSERVER="wl" + + # Windowmanager to use (fluxbox / weston / no) + WINDOWMANAGER="weston" + + # Mesa 3D Graphic drivers to use (all / crocus,i915,iris,r300,r600,radeonsi,vmware,virtio) + # Space separated list is supported, + # e.g. GRAPHIC_DRIVERS="crocus i915 iris r300 r600 radeonsi vmware virtio" + GRAPHIC_DRIVERS="crocus i915 iris r300 r600 radeonsi vmware virtio" + + # additional packages to install + ADDITIONAL_PACKAGES=" emulators gamesupport 351files" + + # 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" #rockchip-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="" + + # build and install driver addons (yes / no) + DRIVER_ADDONS_SUPPORT="no" + + # driver addons to install: + # for a list of additinoal drivers see packages/linux-driver-addons + # Space separated list is supported, + DRIVER_ADDONS="" + + # build and install PulseAudio support (yes / no) + PULSEAUDIO_SUPPORT="yes" + + # build and install bluetooth support (yes / no) + BLUETOOTH_SUPPORT="no" + + # build and install Avahi (Zeroconf) daemon (yes / no) + AVAHI_DAEMON="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="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="yes" + + # build with swap support (yes / no) + SWAP_SUPPORT="yes" + + # swap support enabled per default (yes / no) + SWAP_ENABLED_DEFAULT="yes" + + # swapfile size if SWAP_SUPPORT=yes in MB + SWAPFILESIZE="1024" + + # cron support (yes / no) + CRON_SUPPORT="no" + + # Settings package name - blank if not required + DISTRO_PKG_SETTINGS="" + + # htop tool (yes / no) + HTOP_TOOL="yes" diff --git a/projects/PC/filesystem/usr/share/bootloader/canupdate.sh b/projects/PC/filesystem/usr/share/bootloader/canupdate.sh index 69eea69dd..bb1e0bfa0 100644 --- a/projects/PC/filesystem/usr/share/bootloader/canupdate.sh +++ b/projects/PC/filesystem/usr/share/bootloader/canupdate.sh @@ -2,7 +2,7 @@ # Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv) # Allow upgrades between different Generic builds -if [ "$1" = "Virtual.x86_64" -o "$1" = "Generic.x86_64" -o "$1" = "Generic-legacy.x86_64" -o "$1" = "gbm.x86_64" -o "$1" = "wayland.x86_64" -o "$1" = "x11.x86_64" ]; then +if [ "$1" = "handheld.x86_64" -o "$1" = "X86_64.x86_64" -o "$1" = "Virtual.x86_64" -o "$1" = "Generic.x86_64" -o "$1" = "Generic-legacy.x86_64" -o "$1" = "gbm.x86_64" -o "$1" = "wayland.x86_64" -o "$1" = "x11.x86_64" ]; then exit 0 else exit 1 diff --git a/projects/PC/linux/linux.x86_64.conf b/projects/PC/linux/linux.x86_64.conf index b11e9528a..5590a4b12 100644 --- a/projects/PC/linux/linux.x86_64.conf +++ b/projects/PC/linux/linux.x86_64.conf @@ -2629,7 +2629,7 @@ CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set # CONFIG_TOUCHSCREEN_EXC3000 is not set # CONFIG_TOUCHSCREEN_FUJITSU is not set -# CONFIG_TOUCHSCREEN_GOODIX is not set +CONFIG_TOUCHSCREEN_GOODIX=y # CONFIG_TOUCHSCREEN_HIDEEP is not set # CONFIG_TOUCHSCREEN_HYCON_HY46XX is not set # CONFIG_TOUCHSCREEN_ILI210X is not set diff --git a/projects/Rockchip/devices/RG351MP/device.config b/projects/Rockchip/devices/RG351MP/device.config index e094c00a4..39f2f4b3b 100644 --- a/projects/Rockchip/devices/RG351MP/device.config +++ b/projects/Rockchip/devices/RG351MP/device.config @@ -6,12 +6,10 @@ DEVICE_FAKE_JACKSENSE=true DEVICE_VOLUMECTL=true DEVICE_POWER_LED=true DEVICE_AUDIO_MIXER="Playback" -DEVICE_VOLUME_DEV="/dev/input/by-path/platform-rg351-keys-event" DEVICE_HEADPHONE_DEV="/dev/input/by-path/platform-rk817-sound-event" -DEVICE_CONTROLLER_DEV="/dev/input/event2" DEVICE_BRIGHTNESS="70" SPLASH_LOADER="imagemagick" -UI_SERVICE="systemctl start emustation.service" +UI_SERVICE="emustation.service" # Kernel Modules DEVICE_INTERNAL_WIFI=false diff --git a/projects/Rockchip/devices/RG351MP/options b/projects/Rockchip/devices/RG351MP/options index 00dcd32ab..d54f2a426 100644 --- a/projects/Rockchip/devices/RG351MP/options +++ b/projects/Rockchip/devices/RG351MP/options @@ -50,9 +50,18 @@ # Mali GPU family MALI_FAMILY="bifrost-g31" OPENGLES="libmali" + OPENGL="no" + VULKAN_SUPPORT="no" + MALI_VERSION="r13p0" GRAPHIC_DRIVERS="" + # Displayserver to use (weston / x11 / no) + DISPLAYSERVER="no" + + # Windowmanager to use (fluxbox / weston / no) + WINDOWMANAGER="no" + # Define the CPU HW_CPU="Rockchip RK3326" @@ -60,7 +69,7 @@ EXTRA_CMDLINE="quiet console=tty0 ssh consoleblank=0 systemd.show_status=0 loglevel=0 panic=20" # additional packages to install - # ADDITIONAL_PACKAGES="" + ADDITIONAL_PACKAGES=" emulators gamesupport 351files" # additional Firmware to use (dvb-firmware, misc-firmware, wlan-firmware) # Space separated list is supported, diff --git a/projects/Rockchip/devices/RG351P/device.config b/projects/Rockchip/devices/RG351P/device.config index ef630a414..82b2038b7 100644 --- a/projects/Rockchip/devices/RG351P/device.config +++ b/projects/Rockchip/devices/RG351P/device.config @@ -6,12 +6,10 @@ DEVICE_FAKE_JACKSENSE=true DEVICE_VOLUMECTL=true DEVICE_POWER_LED=true DEVICE_AUDIO_MIXER="Playback" -DEVICE_VOLUME_DEV="/dev/input/by-path/platform-rg351-keys-event" DEVICE_HEADPHONE_DEV="/dev/input/by-path/platform-rk817-sound-event" -DEVICE_CONTROLLER_DEV="/dev/input/event3" DEVICE_BRIGHTNESS="70" SPLASH_LOADER="imagemagick" -UI_SERVICE="systemctl start emustation.service" +UI_SERVICE="emustation.service" # Kernel Modules DEVICE_INTERNAL_WIFI=true diff --git a/projects/Rockchip/devices/RG351P/options b/projects/Rockchip/devices/RG351P/options index 1c989d823..0ae2c5116 100644 --- a/projects/Rockchip/devices/RG351P/options +++ b/projects/Rockchip/devices/RG351P/options @@ -50,9 +50,18 @@ # Mali GPU family MALI_FAMILY="bifrost-g31" OPENGLES="libmali" + OPENGL="no" + VULKAN_SUPPORT="no" + MALI_VERSION="r13p0" GRAPHIC_DRIVERS="" + # Displayserver to use (weston / x11 / no) + DISPLAYSERVER="no" + + # Windowmanager to use (fluxbox / weston / no) + WINDOWMANAGER="no" + # Define the CPU HW_CPU="Rockchip RK3326" @@ -60,7 +69,7 @@ EXTRA_CMDLINE="quiet console=tty0 fbcon=rotate:3 ssh consoleblank=0 systemd.show_status=0 loglevel=0 panic=20" # additional packages to install - # ADDITIONAL_PACKAGES="" + ADDITIONAL_PACKAGES=" emulators gamesupport 351files" # additional Firmware to use (dvb-firmware, misc-firmware, wlan-firmware) # Space separated list is supported, diff --git a/projects/Rockchip/devices/RG351V/device.config b/projects/Rockchip/devices/RG351V/device.config index 5de89fa14..ae0a0ff74 100644 --- a/projects/Rockchip/devices/RG351V/device.config +++ b/projects/Rockchip/devices/RG351V/device.config @@ -6,12 +6,10 @@ DEVICE_FAKE_JACKSENSE=true DEVICE_VOLUMECTL=true DEVICE_POWER_LED=true DEVICE_AUDIO_MIXER="Playback" -DEVICE_VOLUME_DEV="/dev/input/by-path/platform-rg351-keys-event" DEVICE_HEADPHONE_DEV="/dev/input/by-path/platform-rk817-sound-event" -DEVICE_CONTROLLER_DEV="/dev/input/event3" DEVICE_BRIGHTNESS="70" SPLASH_LOADER="imagemagick" -UI_SERVICE="systemctl start emustation.service" +UI_SERVICE="emustation.service" # Kernel Modules DEVICE_INTERNAL_WIFI=true diff --git a/projects/Rockchip/devices/RG351V/options b/projects/Rockchip/devices/RG351V/options index d631d4815..1a79050cb 100644 --- a/projects/Rockchip/devices/RG351V/options +++ b/projects/Rockchip/devices/RG351V/options @@ -50,9 +50,18 @@ # Mali GPU family MALI_FAMILY="bifrost-g31" OPENGLES="libmali" + OPENGL="no" + VULKAN_SUPPORT="no" + MALI_VERSION="r13p0" GRAPHIC_DRIVERS="" + # Displayserver to use (weston / x11 / no) + DISPLAYSERVER="no" + + # Windowmanager to use (fluxbox / weston / no) + WINDOWMANAGER="no" + # Define the CPU HW_CPU="Rockchip RK3326" @@ -61,6 +70,7 @@ # additional packages to install # ADDITIONAL_PACKAGES="" + ADDITIONAL_PACKAGES=" emulators gamesupport 351files" # additional Firmware to use (dvb-firmware, misc-firmware, wlan-firmware) # Space separated list is supported, diff --git a/projects/Rockchip/devices/RG353P/device.config b/projects/Rockchip/devices/RG353P/device.config index 3371ac496..0e981118b 100644 --- a/projects/Rockchip/devices/RG353P/device.config +++ b/projects/Rockchip/devices/RG353P/device.config @@ -6,12 +6,10 @@ DEVICE_FAKE_JACKSENSE=false DEVICE_VOLUMECTL=true DEVICE_POWER_LED=false DEVICE_AUDIO_MIXER="Master" -DEVICE_VOLUME_DEV="/dev/input/by-path/platform-gpio-keys-event" -DEVICE_CONTROLLER_DEV="/dev/input/by-path/platform-singleadc-joypad-event-joystick" #DEVICE_HEADPHONE_DEV="" DEVICE_BRIGHTNESS="30" SPLASH_LOADER="imagemagick" -UI_SERVICE="systemctl start emustation.service" +UI_SERVICE="emustation.service" # Kernel Modules DEVICE_INTERNAL_WIFI=true diff --git a/projects/Rockchip/devices/RG353P/options b/projects/Rockchip/devices/RG353P/options index 42f37b5b2..6cddb5f79 100644 --- a/projects/Rockchip/devices/RG353P/options +++ b/projects/Rockchip/devices/RG353P/options @@ -55,14 +55,22 @@ MALI_FAMILY="bifrost-g52" MALI_VERSION="g2p0" OPENGLES="libmali" + OPENGL="no" + VULKAN_SUPPORT="no" + GRAPHIC_DRIVERS="" + # Displayserver to use (weston / x11 / no) + DISPLAYSERVER="no" + + # Windowmanager to use (fluxbox / weston / no) + WINDOWMANAGER="no" # kernel serial console EXTRA_CMDLINE="quiet console=ttyS2,1500000 console=tty0 ssh consoleblank=0 systemd.show_status=0 loglevel=0 panic=20 video=HDMI-A-1:1280x720@60" # additional packages to install - #ADDITIONAL_PACKAGES="" + ADDITIONAL_PACKAGES=" emulators gamesupport 351files" # additional Firmware to use (dvb-firmware, misc-firmware, wlan-firmware) # Space separated list is supported, diff --git a/projects/Rockchip/devices/RG503/device.config b/projects/Rockchip/devices/RG503/device.config index 435699d2a..c877153dc 100644 --- a/projects/Rockchip/devices/RG503/device.config +++ b/projects/Rockchip/devices/RG503/device.config @@ -6,12 +6,10 @@ DEVICE_FAKE_JACKSENSE=false DEVICE_VOLUMECTL=true DEVICE_POWER_LED=false DEVICE_AUDIO_MIXER="Master" -DEVICE_VOLUME_DEV="/dev/input/by-path/platform-gpio-keys-event" -DEVICE_CONTROLLER_DEV="/dev/input/by-path/platform-singleadc-joypad-event-joystick" #DEVICE_HEADPHONE_DEV="" DEVICE_BRIGHTNESS="75" SPLASH_LOADER="imagemagick" -UI_SERVICE="systemctl start emustation.service" +UI_SERVICE="emustation.service" # Kernel Modules DEVICE_INTERNAL_WIFI=true diff --git a/projects/Rockchip/devices/RG503/options b/projects/Rockchip/devices/RG503/options index 54d41e4bf..2aeb28f45 100644 --- a/projects/Rockchip/devices/RG503/options +++ b/projects/Rockchip/devices/RG503/options @@ -55,14 +55,21 @@ MALI_FAMILY="bifrost-g52" MALI_VERSION="g2p0" OPENGLES="libmali" + OPENGL="no" + VULKAN_SUPPORT="no" GRAPHIC_DRIVERS="" + # Displayserver to use (weston / x11 / no) + DISPLAYSERVER="no" + + # Windowmanager to use (fluxbox / weston / no) + WINDOWMANAGER="no" # kernel serial console EXTRA_CMDLINE="quiet console=ttyS2,1500000 console=tty0 ssh consoleblank=0 systemd.show_status=0 loglevel=0 panic=20 video=HDMI-A-1:1280x720@60" # additional packages to install - #ADDITIONAL_PACKAGES="" + ADDITIONAL_PACKAGES=" emulators gamesupport 351files" # additional Firmware to use (dvb-firmware, misc-firmware, wlan-firmware) # Space separated list is supported, diff --git a/projects/Rockchip/devices/RG552/device.config b/projects/Rockchip/devices/RG552/device.config index 5ae68d22f..c0b3fd42a 100644 --- a/projects/Rockchip/devices/RG552/device.config +++ b/projects/Rockchip/devices/RG552/device.config @@ -9,7 +9,7 @@ DEVICE_VOLUME_DEV="/dev/input/by-path/platform-volume-keys-event" DEVICE_CONTROLLER_DEV="/dev/input/by-path/platform-singleadc-joypad-event-joystick" DEVICE_BRIGHTNESS="50" SPLASH_LOADER="plymouth" -UI_SERVICE="systemctl start emustation.service" +UI_SERVICE="weston.service" # Kernel Modules DEVICE_INTERNAL_WIFI=true @@ -18,7 +18,7 @@ DEVICE_WIFI_MODULE="8188fu" # GPIOS DEVICE_WIFI="113" DEVICE_PWM_MOTOR="pwmchip3" -DEVICE_PWM_FAN="/sys/class/hwmon/hwmon0/pwm1" +DEVICE_PWM_FAN="/sys/class/hwmon/hwmon1/pwm1" #DEVICE_JACK="" # FREQ Governors @@ -33,7 +33,7 @@ FAST_CORES="taskset -c 4-5" # Volume Keys #DEVICE_KEY_VOLUMEDOWN= #DEVICE_KEY_VOLUMEUP= -DEVICE_VOL_MODIFIER="BTN_MODE" +DEVICE_VOL_MODIFIER="BTN_TR2" # Controller DEVICE_BTN_SOUTH="0" # B diff --git a/projects/Rockchip/devices/RG552/linux/linux.aarch64.conf b/projects/Rockchip/devices/RG552/linux/linux.aarch64.conf index 49ce65676..c88e278f1 100644 --- a/projects/Rockchip/devices/RG552/linux/linux.aarch64.conf +++ b/projects/Rockchip/devices/RG552/linux/linux.aarch64.conf @@ -1,59 +1,44 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 4.4.301 Kernel Configuration +# Linux/arm64 5.19.0-rc8 Kernel Configuration # -CONFIG_ARM64=y -CONFIG_64BIT=y -CONFIG_ARCH_PHYS_ADDR_T_64BIT=y -CONFIG_MMU=y -CONFIG_ARCH_MMAP_RND_BITS_MIN=18 -CONFIG_ARCH_MMAP_RND_BITS_MAX=24 -CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 -CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 -CONFIG_ARM64_PAGE_SHIFT=12 -CONFIG_ARM64_CONT_SHIFT=4 -CONFIG_STACKTRACE_SUPPORT=y -CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 -CONFIG_LOCKDEP_SUPPORT=y -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -CONFIG_RWSEM_XCHGADD_ALGORITHM=y -CONFIG_GENERIC_BUG=y -CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y -CONFIG_GENERIC_HWEIGHT=y -CONFIG_GENERIC_CSUM=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_ZONE_DMA=y -CONFIG_HAVE_GENERIC_RCU_GUP=y -CONFIG_ARCH_DMA_ADDR_T_64BIT=y -CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_NEED_SG_DMA_LENGTH=y -CONFIG_SMP=y -CONFIG_SWIOTLB=y -CONFIG_IOMMU_HELPER=y -CONFIG_KERNEL_MODE_NEON=y -CONFIG_FIX_EARLYCON_MEM=y -CONFIG_PGTABLE_LEVELS=3 -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" +CONFIG_CC_VERSION_TEXT="aarch64-libreelec-linux-gnueabi-gcc-10.3.0 (GCC) 10.3.0" +CONFIG_CC_IS_GCC=y +CONFIG_GCC_VERSION=100300 +CONFIG_CLANG_VERSION=0 +CONFIG_AS_IS_GNU=y +CONFIG_AS_VERSION=23800 +CONFIG_LD_IS_BFD=y +CONFIG_LD_VERSION=23800 +CONFIG_LLD_VERSION=0 +CONFIG_CC_CAN_LINK=y +CONFIG_CC_CAN_LINK_STATIC=y +CONFIG_CC_HAS_ASM_GOTO=y +CONFIG_CC_HAS_ASM_INLINE=y +CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y +CONFIG_PAHOLE_VERSION=0 CONFIG_IRQ_WORK=y -CONFIG_BUILDTIME_EXTABLE_SORT=y +CONFIG_BUILDTIME_TABLE_SORT=y CONFIG_THREAD_INFO_IN_TASK=y # # General setup # CONFIG_INIT_ENV_ARG_LIMIT=32 -CONFIG_CROSS_COMPILE="" # CONFIG_COMPILE_TEST is not set +# CONFIG_WERROR is not set CONFIG_LOCALVERSION="" -CONFIG_LOCALVERSION_AUTO=y +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_BUILD_SALT="-ragnarok" +CONFIG_DEFAULT_INIT="" CONFIG_DEFAULT_HOSTNAME="@DEVICENAME@" -CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y +CONFIG_SYSVIPC_COMPAT=y CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y -CONFIG_CROSS_MEMORY_ATTACH=y -CONFIG_FHANDLE=y +CONFIG_WATCH_QUEUE=y +# CONFIG_CROSS_MEMORY_ATTACH is not set CONFIG_USELIB=y # CONFIG_AUDIT is not set CONFIG_HAVE_ARCH_AUDITSYSCALL=y @@ -64,21 +49,27 @@ CONFIG_HAVE_ARCH_AUDITSYSCALL=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_IRQ_SHOW_LEVEL=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_GENERIC_IRQ_CHIP=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y +CONFIG_GENERIC_IRQ_IPI=y CONFIG_GENERIC_MSI_IRQ=y CONFIG_GENERIC_MSI_IRQ_DOMAIN=y -CONFIG_HANDLE_DOMAIN_IRQ=y -# CONFIG_IRQ_DOMAIN_DEBUG is not set +CONFIG_IRQ_MSI_IOMMU=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y +# CONFIG_GENERIC_IRQ_DEBUGFS is not set +# end of IRQ subsystem + CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_ARCH_HAS_TICK_BROADCAST=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y +CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y # # Timers subsystem @@ -86,64 +77,117 @@ CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set -CONFIG_NO_HZ_IDLE=y -# CONFIG_NO_HZ_FULL is not set +# CONFIG_NO_HZ_IDLE is not set +CONFIG_NO_HZ_FULL=y +CONFIG_CONTEXT_TRACKING=y +# CONFIG_CONTEXT_TRACKING_FORCE is not set CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y +# end of Timers subsystem + +CONFIG_BPF=y +CONFIG_HAVE_EBPF_JIT=y +CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y + +# +# BPF subsystem +# +CONFIG_BPF_SYSCALL=y +CONFIG_BPF_JIT=y +# CONFIG_BPF_JIT_ALWAYS_ON is not set +CONFIG_BPF_JIT_DEFAULT_ON=y +# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set +# CONFIG_BPF_PRELOAD is not set +# end of BPF subsystem + +CONFIG_PREEMPT_BUILD=y +# CONFIG_PREEMPT_NONE is not set +# CONFIG_PREEMPT_VOLUNTARY is not set +CONFIG_PREEMPT=y +CONFIG_PREEMPT_COUNT=y +CONFIG_PREEMPTION=y +# CONFIG_PREEMPT_DYNAMIC is not set # # CPU/Task time and stats accounting # -CONFIG_TICK_CPU_ACCOUNTING=y -# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set +CONFIG_VIRT_CPU_ACCOUNTING=y +CONFIG_VIRT_CPU_ACCOUNTING_GEN=y # CONFIG_IRQ_TIME_ACCOUNTING is not set -# CONFIG_SCHED_WALT is not set +CONFIG_SCHED_THERMAL_PRESSURE=y # CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_TASKSTATS is not set +# CONFIG_PSI is not set +# end of CPU/Task time and stats accounting + +CONFIG_CPU_ISOLATION=y # # RCU Subsystem # CONFIG_TREE_RCU=y +CONFIG_PREEMPT_RCU=y # CONFIG_RCU_EXPERT is not set CONFIG_SRCU=y -# CONFIG_TASKS_RCU is not set +CONFIG_TREE_SRCU=y +CONFIG_TASKS_RCU_GENERIC=y +CONFIG_TASKS_RCU=y +CONFIG_TASKS_TRACE_RCU=y CONFIG_RCU_STALL_COMMON=y -# CONFIG_TREE_RCU_TRACE is not set -# CONFIG_RCU_EXPEDITE_BOOT is not set -CONFIG_BUILD_BIN2C=y +CONFIG_RCU_NEED_SEGCBLIST=y +CONFIG_RCU_NOCB_CPU=y +# end of RCU Subsystem + CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y +# CONFIG_IKHEADERS is not set CONFIG_LOG_BUF_SHIFT=18 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 +# CONFIG_PRINTK_INDEX is not set CONFIG_GENERIC_SCHED_CLOCK=y + +# +# Scheduler features +# +# CONFIG_UCLAMP_TASK is not set +# end of Scheduler features + +CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y +CONFIG_CC_HAS_INT128=y +CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" +CONFIG_GCC12_NO_ARRAY_BOUNDS=y +CONFIG_ARCH_SUPPORTS_INT128=y CONFIG_CGROUPS=y -# CONFIG_CGROUP_DEBUG is not set -CONFIG_CGROUP_FREEZER=y -# CONFIG_CGROUP_PIDS is not set -CONFIG_CGROUP_DEVICE=y -CONFIG_CPUSETS=y -CONFIG_PROC_PID_CPUSET=y -CONFIG_CGROUP_CPUACCT=y CONFIG_PAGE_COUNTER=y CONFIG_MEMCG=y -# CONFIG_MEMCG_SWAP is not set -# CONFIG_MEMCG_KMEM is not set +CONFIG_MEMCG_KMEM=y +CONFIG_BLK_CGROUP=y +CONFIG_CGROUP_WRITEBACK=y CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y # CONFIG_RT_GROUP_SCHED is not set -# CONFIG_BLK_CGROUP is not set -# CONFIG_CHECKPOINT_RESTORE is not set +CONFIG_CGROUP_PIDS=y +CONFIG_CGROUP_RDMA=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CPUSETS=y +# CONFIG_PROC_PID_CPUSET is not set +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_CPUACCT=y +# CONFIG_CGROUP_BPF is not set +CONFIG_CGROUP_MISC=y +CONFIG_CGROUP_DEBUG=y +CONFIG_SOCK_CGROUP_DATA=y CONFIG_NAMESPACES=y CONFIG_UTS_NS=y +CONFIG_TIME_NS=y CONFIG_IPC_NS=y CONFIG_USER_NS=y CONFIG_PID_NS=y CONFIG_NET_NS=y +# CONFIG_CHECKPOINT_RESTORE is not set # CONFIG_SCHED_AUTOGROUP is not set -# CONFIG_SCHED_TUNE is not set -CONFIG_DEFAULT_USE_ENERGY_AWARE=y # CONFIG_SYSFS_DEPRECATED is not set CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y @@ -156,92 +200,464 @@ CONFIG_RD_LZMA=y CONFIG_RD_XZ=y CONFIG_RD_LZO=y CONFIG_RD_LZ4=y -# CONFIG_INITRD_ASYNC is not set -CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y -# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_RD_ZSTD=y +CONFIG_INITRAMFS_COMPRESSION_GZIP=y +# CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set +# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set +# CONFIG_INITRAMFS_COMPRESSION_XZ is not set +# CONFIG_INITRAMFS_COMPRESSION_LZO is not set +# CONFIG_INITRAMFS_COMPRESSION_LZ4 is not set +# CONFIG_INITRAMFS_COMPRESSION_ZSTD is not set +# CONFIG_INITRAMFS_COMPRESSION_NONE is not set +# CONFIG_BOOT_CONFIG is not set +CONFIG_INITRAMFS_PRESERVE_MTIME=y +# CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_LD_ORPHAN_WARN=y CONFIG_SYSCTL=y -CONFIG_ANON_INODES=y CONFIG_HAVE_UID16=y CONFIG_SYSCTL_EXCEPTION_TRACE=y -CONFIG_BPF=y CONFIG_EXPERT=y CONFIG_UID16=y CONFIG_MULTIUSER=y -# CONFIG_SGETMASK_SYSCALL is not set +CONFIG_SGETMASK_SYSCALL=y CONFIG_SYSFS_SYSCALL=y -# CONFIG_SYSCTL_SYSCALL is not set -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set +CONFIG_FHANDLE=y +CONFIG_POSIX_TIMERS=y CONFIG_PRINTK=y -CONFIG_BUG=y -CONFIG_ELF_CORE=y +# CONFIG_BUG is not set CONFIG_BASE_FULL=y CONFIG_FUTEX=y +CONFIG_FUTEX_PI=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y CONFIG_EVENTFD=y -# CONFIG_BPF_SYSCALL is not set CONFIG_SHMEM=y CONFIG_AIO=y +CONFIG_IO_URING=y CONFIG_ADVISE_SYSCALLS=y -# CONFIG_USERFAULTFD is not set -CONFIG_PCI_QUIRKS=y CONFIG_MEMBARRIER=y +# CONFIG_KALLSYMS is not set +CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y +CONFIG_KCMP=y +CONFIG_RSEQ=y +# CONFIG_DEBUG_RSEQ is not set CONFIG_EMBEDDED=y CONFIG_HAVE_PERF_EVENTS=y -CONFIG_PERF_USE_VMALLOC=y +# CONFIG_PC104 is not set # # Kernel Performance Events And Counters # # CONFIG_PERF_EVENTS is not set -CONFIG_VM_EVENT_COUNTERS=y -CONFIG_SLUB_SYSFS=y -CONFIG_SLUB_DEBUG=y -# CONFIG_COMPAT_BRK is not set -# CONFIG_SLAB is not set -CONFIG_SLUB=y -# CONFIG_SLOB is not set -CONFIG_SLUB_CPU_PARTIAL=y -# CONFIG_SYSTEM_DATA_VERIFICATION is not set +# end of Kernel Performance Events And Counters + +CONFIG_SYSTEM_DATA_VERIFICATION=y CONFIG_PROFILING=y -CONFIG_TRACEPOINTS=y +# end of General setup + +CONFIG_ARM64=y +CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_64BIT=y +CONFIG_MMU=y +CONFIG_ARM64_PAGE_SHIFT=12 +CONFIG_ARM64_CONT_PTE_SHIFT=4 +CONFIG_ARM64_CONT_PMD_SHIFT=4 +CONFIG_ARCH_MMAP_RND_BITS_MIN=18 +CONFIG_ARCH_MMAP_RND_BITS_MAX=33 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CSUM=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y +CONFIG_SMP=y +CONFIG_KERNEL_MODE_NEON=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_PGTABLE_LEVELS=4 +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_ARCH_PROC_KCORE_TEXT=y + +# +# Platform selection +# +# CONFIG_ARCH_ACTIONS is not set +# CONFIG_ARCH_SUNXI is not set +# CONFIG_ARCH_ALPINE is not set +# CONFIG_ARCH_APPLE is not set +# CONFIG_ARCH_BCM2835 is not set +# CONFIG_ARCH_BCM4908 is not set +# CONFIG_ARCH_BCM_IPROC is not set +# CONFIG_ARCH_BERLIN is not set +# CONFIG_ARCH_BITMAIN is not set +# CONFIG_ARCH_BRCMSTB is not set +# CONFIG_ARCH_EXYNOS is not set +# CONFIG_ARCH_SPARX5 is not set +# CONFIG_ARCH_K3 is not set +# CONFIG_ARCH_LAYERSCAPE is not set +# CONFIG_ARCH_LG1K is not set +# CONFIG_ARCH_HISI is not set +# CONFIG_ARCH_KEEMBAY is not set +# CONFIG_ARCH_MEDIATEK is not set +# CONFIG_ARCH_MESON is not set +# CONFIG_ARCH_MVEBU is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_QCOM is not set +# CONFIG_ARCH_REALTEK is not set +# CONFIG_ARCH_RENESAS is not set +CONFIG_ARCH_ROCKCHIP=y +# CONFIG_ARCH_S32 is not set +# CONFIG_ARCH_SEATTLE is not set +# CONFIG_ARCH_INTEL_SOCFPGA is not set +# CONFIG_ARCH_SYNQUACER is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_SPRD is not set +# CONFIG_ARCH_THUNDER is not set +# CONFIG_ARCH_THUNDER2 is not set +# CONFIG_ARCH_UNIPHIER is not set +# CONFIG_ARCH_VEXPRESS is not set +# CONFIG_ARCH_VISCONTI is not set +# CONFIG_ARCH_XGENE is not set +# CONFIG_ARCH_ZYNQMP is not set +# end of Platform selection + +# +# Kernel Features +# + +# +# ARM errata workarounds via the alternatives framework +# +# CONFIG_ARM64_ERRATUM_826319 is not set +# CONFIG_ARM64_ERRATUM_827319 is not set +# CONFIG_ARM64_ERRATUM_824069 is not set +# CONFIG_ARM64_ERRATUM_819472 is not set +# CONFIG_ARM64_ERRATUM_832075 is not set +CONFIG_ARM64_ERRATUM_834220=y +# CONFIG_ARM64_ERRATUM_845719 is not set +# CONFIG_ARM64_ERRATUM_843419 is not set +CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419=y +# CONFIG_ARM64_ERRATUM_1024718 is not set +# CONFIG_ARM64_ERRATUM_1418040 is not set +# CONFIG_ARM64_ERRATUM_1165522 is not set +# CONFIG_ARM64_ERRATUM_1319367 is not set +# CONFIG_ARM64_ERRATUM_1530923 is not set +# CONFIG_ARM64_ERRATUM_1286807 is not set +# CONFIG_ARM64_ERRATUM_1463225 is not set +# CONFIG_ARM64_ERRATUM_1542419 is not set +# CONFIG_ARM64_ERRATUM_1508412 is not set +# CONFIG_ARM64_ERRATUM_2051678 is not set +CONFIG_ARM64_ERRATUM_2077057=y +# CONFIG_ARM64_ERRATUM_2054223 is not set +# CONFIG_ARM64_ERRATUM_2067961 is not set +# CONFIG_CAVIUM_ERRATUM_22375 is not set +# CONFIG_CAVIUM_ERRATUM_23154 is not set +# CONFIG_CAVIUM_ERRATUM_27456 is not set +# CONFIG_CAVIUM_ERRATUM_30115 is not set +# CONFIG_CAVIUM_TX2_ERRATUM_219 is not set +# CONFIG_FUJITSU_ERRATUM_010001 is not set +# CONFIG_HISILICON_ERRATUM_161600802 is not set +# CONFIG_QCOM_FALKOR_ERRATUM_1003 is not set +# CONFIG_QCOM_FALKOR_ERRATUM_1009 is not set +# CONFIG_QCOM_QDF2400_ERRATUM_0065 is not set +# CONFIG_QCOM_FALKOR_ERRATUM_E1041 is not set +# CONFIG_NVIDIA_CARMEL_CNP_ERRATUM is not set +# CONFIG_SOCIONEXT_SYNQUACER_PREITS is not set +# end of ARM errata workarounds via the alternatives framework + +CONFIG_ARM64_4K_PAGES=y +# CONFIG_ARM64_16K_PAGES is not set +# CONFIG_ARM64_64K_PAGES is not set +# CONFIG_ARM64_VA_BITS_39 is not set +CONFIG_ARM64_VA_BITS_48=y +CONFIG_ARM64_VA_BITS=48 +CONFIG_ARM64_PA_BITS_48=y +CONFIG_ARM64_PA_BITS=48 +# CONFIG_CPU_BIG_ENDIAN is not set +CONFIG_CPU_LITTLE_ENDIAN=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_CLUSTER=y +# CONFIG_SCHED_SMT is not set +CONFIG_NR_CPUS=8 +CONFIG_HOTPLUG_CPU=y +# CONFIG_NUMA is not set +# CONFIG_HZ_100 is not set +# CONFIG_HZ_250 is not set +# CONFIG_HZ_300 is not set +CONFIG_HZ_1000=y +CONFIG_HZ=1000 +CONFIG_SCHED_HRTICK=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +# CONFIG_PARAVIRT is not set +# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set +# CONFIG_KEXEC is not set +# CONFIG_KEXEC_FILE is not set +# CONFIG_CRASH_DUMP is not set +# CONFIG_XEN is not set +CONFIG_FORCE_MAX_ZONEORDER=11 +# CONFIG_UNMAP_KERNEL_AT_EL0 is not set +# CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY is not set +# CONFIG_RODATA_FULL_DEFAULT_ENABLED is not set +# CONFIG_ARM64_SW_TTBR0_PAN is not set +CONFIG_ARM64_TAGGED_ADDR_ABI=y +CONFIG_COMPAT=y +CONFIG_KUSER_HELPERS=y +CONFIG_ARMV8_DEPRECATED=y +CONFIG_SWP_EMULATION=y +CONFIG_CP15_BARRIER_EMULATION=y +CONFIG_SETEND_EMULATION=y + +# +# ARMv8.1 architectural features +# +# CONFIG_ARM64_HW_AFDBM is not set +# CONFIG_ARM64_PAN is not set +CONFIG_AS_HAS_LDAPR=y +CONFIG_AS_HAS_LSE_ATOMICS=y +# end of ARMv8.1 architectural features + +# +# ARMv8.2 architectural features +# +CONFIG_AS_HAS_ARMV8_2=y +CONFIG_AS_HAS_SHA3=y +# CONFIG_ARM64_PMEM is not set +# CONFIG_ARM64_RAS_EXTN is not set +# CONFIG_ARM64_CNP is not set +# end of ARMv8.2 architectural features + +# +# ARMv8.3 architectural features +# +# CONFIG_ARM64_PTR_AUTH is not set +CONFIG_CC_HAS_BRANCH_PROT_PAC_RET=y +CONFIG_CC_HAS_SIGN_RETURN_ADDRESS=y +CONFIG_AS_HAS_PAC=y +CONFIG_AS_HAS_CFI_NEGATE_RA_STATE=y +# end of ARMv8.3 architectural features + +# +# ARMv8.4 architectural features +# +# CONFIG_ARM64_AMU_EXTN is not set +CONFIG_AS_HAS_ARMV8_4=y +CONFIG_ARM64_TLB_RANGE=y +# end of ARMv8.4 architectural features + +# +# ARMv8.5 architectural features +# +CONFIG_AS_HAS_ARMV8_5=y +# CONFIG_ARM64_BTI is not set +CONFIG_CC_HAS_BRANCH_PROT_PAC_RET_BTI=y +# CONFIG_ARM64_E0PD is not set +# CONFIG_ARCH_RANDOM is not set +CONFIG_ARM64_AS_HAS_MTE=y +# end of ARMv8.5 architectural features + +# +# ARMv8.7 architectural features +# +# end of ARMv8.7 architectural features + +CONFIG_ARM64_SVE=y +CONFIG_ARM64_SME=y +CONFIG_ARM64_MODULE_PLTS=y +# CONFIG_ARM64_PSEUDO_NMI is not set +CONFIG_RELOCATABLE=y +CONFIG_RANDOMIZE_BASE=y +CONFIG_RANDOMIZE_MODULE_REGION_FULL=y +CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y +CONFIG_STACKPROTECTOR_PER_TASK=y +CONFIG_ARCH_NR_GPIO=0 +# end of Kernel Features + +# +# Boot options +# +CONFIG_CMDLINE="" +CONFIG_CMDLINE_FROM_BOOTLOADER=y +# CONFIG_CMDLINE_FORCE is not set +# CONFIG_EFI is not set +# end of Boot options + +# +# Power management options +# +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_SUSPEND_SKIP_SYNC=y +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_AUTOSLEEP=y +# CONFIG_PM_WAKELOCKS is not set +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_CLK=y +CONFIG_PM_GENERIC_DOMAINS=y +CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y +CONFIG_PM_GENERIC_DOMAINS_SLEEP=y +CONFIG_PM_GENERIC_DOMAINS_OF=y +CONFIG_CPU_PM=y +CONFIG_ENERGY_MODEL=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +# end of Power management options + +# +# CPU Power Management +# + +# +# CPU Idle +# +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y +# CONFIG_CPU_IDLE_GOV_TEO is not set +CONFIG_DT_IDLE_STATES=y +CONFIG_DT_IDLE_GENPD=y + +# +# ARM CPU Idle Drivers +# +CONFIG_ARM_CPUIDLE=y +CONFIG_ARM_PSCI_CPUIDLE=y +CONFIG_ARM_PSCI_CPUIDLE_DOMAIN=y +# end of ARM CPU Idle Drivers +# end of CPU Idle + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +CONFIG_CPU_FREQ_GOV_COMMON=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y + +# +# CPU frequency scaling drivers +# +CONFIG_CPUFREQ_DT=y +CONFIG_CPUFREQ_DT_PLATDEV=y +# CONFIG_ARM_SCMI_CPUFREQ is not set +# end of CPU Frequency scaling +# end of CPU Power Management + +CONFIG_IRQ_BYPASS_MANAGER=y +CONFIG_HAVE_KVM=y +CONFIG_HAVE_KVM_IRQCHIP=y +CONFIG_HAVE_KVM_IRQFD=y +CONFIG_HAVE_KVM_IRQ_ROUTING=y +CONFIG_HAVE_KVM_EVENTFD=y +CONFIG_KVM_MMIO=y +CONFIG_HAVE_KVM_MSI=y +CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y +CONFIG_KVM_VFIO=y +CONFIG_HAVE_KVM_ARCH_TLB_FLUSH_ALL=y +CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y +CONFIG_HAVE_KVM_IRQ_BYPASS=y +CONFIG_HAVE_KVM_VCPU_RUN_PID_CHANGE=y +CONFIG_KVM_XFER_TO_GUEST_WORK=y +CONFIG_VIRTUALIZATION=y +CONFIG_KVM=y +# CONFIG_NVHE_EL2_DEBUG is not set +CONFIG_ARM64_CRYPTO=y +CONFIG_CRYPTO_SHA256_ARM64=y +# CONFIG_CRYPTO_SHA512_ARM64 is not set +CONFIG_CRYPTO_SHA1_ARM64_CE=y +CONFIG_CRYPTO_SHA2_ARM64_CE=y +# CONFIG_CRYPTO_SHA512_ARM64_CE is not set +# CONFIG_CRYPTO_SHA3_ARM64 is not set +# CONFIG_CRYPTO_SM3_ARM64_CE is not set +# CONFIG_CRYPTO_SM4_ARM64_CE is not set +# CONFIG_CRYPTO_SM4_ARM64_CE_BLK is not set +# CONFIG_CRYPTO_SM4_ARM64_NEON_BLK is not set +CONFIG_CRYPTO_GHASH_ARM64_CE=y +# CONFIG_CRYPTO_CRCT10DIF_ARM64_CE is not set +# CONFIG_CRYPTO_AES_ARM64 is not set +CONFIG_CRYPTO_AES_ARM64_CE=y +CONFIG_CRYPTO_AES_ARM64_CE_CCM=y +CONFIG_CRYPTO_AES_ARM64_CE_BLK=y +# CONFIG_CRYPTO_AES_ARM64_NEON_BLK is not set +# CONFIG_CRYPTO_CHACHA20_NEON is not set +# CONFIG_CRYPTO_POLY1305_NEON is not set +# CONFIG_CRYPTO_NHPOLY1305_NEON is not set +# CONFIG_CRYPTO_AES_ARM64_BS is not set + +# +# General architecture-dependent options +# # CONFIG_KPROBES is not set # CONFIG_JUMP_LABEL is not set -# CONFIG_UPROBES is not set -# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y +CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y +CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y +CONFIG_HAVE_NMI=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_HAVE_ARCH_TRACEHOOK=y -CONFIG_HAVE_DMA_ATTRS=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_ARCH_HAS_FORTIFY_SOURCE=y +CONFIG_ARCH_HAS_KEEPINITRD=y +CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_ARCH_HAS_SET_DIRECT_MAP=y +CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y +CONFIG_ARCH_WANTS_NO_INSTR=y +CONFIG_HAVE_ASM_MODVERSIONS=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y -CONFIG_HAVE_CLK=y -CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_RSEQ=y +CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y CONFIG_HAVE_PERF_REGS=y CONFIG_HAVE_PERF_USER_STACK_DUMP=y CONFIG_HAVE_ARCH_JUMP_LABEL=y -CONFIG_HAVE_RCU_TABLE_FREE=y +CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y +CONFIG_MMU_GATHER_TABLE_FREE=y +CONFIG_MMU_GATHER_RCU_TABLE_FREE=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y CONFIG_HAVE_CMPXCHG_LOCAL=y CONFIG_HAVE_CMPXCHG_DOUBLE=y CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y +CONFIG_HAVE_ARCH_SECCOMP=y CONFIG_HAVE_ARCH_SECCOMP_FILTER=y -CONFIG_SECCOMP_FILTER=y -CONFIG_HAVE_CC_STACKPROTECTOR=y -# CONFIG_CC_STACKPROTECTOR is not set -CONFIG_CC_STACKPROTECTOR_NONE=y -# CONFIG_CC_STACKPROTECTOR_REGULAR is not set -# CONFIG_CC_STACKPROTECTOR_STRONG is not set +# CONFIG_SECCOMP is not set +CONFIG_HAVE_ARCH_STACKLEAK=y +CONFIG_HAVE_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR=y +# CONFIG_STACKPROTECTOR_STRONG is not set +CONFIG_ARCH_SUPPORTS_LTO_CLANG=y +CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y +CONFIG_LTO_NONE=y +CONFIG_ARCH_SUPPORTS_CFI_CLANG=y CONFIG_HAVE_CONTEXT_TRACKING=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MOVE_PUD=y +CONFIG_HAVE_MOVE_PMD=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y CONFIG_HAVE_ARCH_HUGE_VMAP=y +CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y CONFIG_HAVE_MOD_ARCH_SPECIFIC=y CONFIG_MODULES_USE_ELF_RELA=y CONFIG_ARCH_HAS_ELF_RANDOMIZE=y @@ -249,35 +665,75 @@ CONFIG_HAVE_ARCH_MMAP_RND_BITS=y CONFIG_ARCH_MMAP_RND_BITS=18 CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11 +CONFIG_PAGE_SIZE_LESS_THAN_64KB=y +CONFIG_PAGE_SIZE_LESS_THAN_256KB=y +CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y CONFIG_CLONE_BACKWARDS=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_COMPAT_OLD_SIGACTION=y +CONFIG_COMPAT_32BIT_TIME=y +CONFIG_HAVE_ARCH_VMAP_STACK=y +CONFIG_VMAP_STACK=y +CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y +CONFIG_RANDOMIZE_KSTACK_OFFSET=y +# CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT is not set +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +CONFIG_STRICT_KERNEL_RWX=y +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y +CONFIG_STRICT_MODULE_RWX=y +CONFIG_HAVE_ARCH_COMPILER_H=y +CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y +# CONFIG_LOCK_EVENT_COUNTS is not set CONFIG_ARCH_HAS_RELR=y -# CONFIG_RELR is not set +CONFIG_HAVE_PREEMPT_DYNAMIC=y +CONFIG_HAVE_PREEMPT_DYNAMIC_KEY=y +CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y # # GCOV-based kernel profiling # # CONFIG_GCOV_KERNEL is not set CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y -CONFIG_HAVE_GENERIC_DMA_COHERENT=y -CONFIG_SLABINFO=y +# end of GCOV-based kernel profiling + +CONFIG_HAVE_GCC_PLUGINS=y +CONFIG_GCC_PLUGINS=y +# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set +# end of General architecture-dependent options + CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 CONFIG_MODULES=y CONFIG_MODULE_FORCE_LOAD=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODULE_UNLOAD_TAINT_TRACKING is not set # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set # CONFIG_MODULE_SIG is not set -# CONFIG_MODULE_COMPRESS is not set -CONFIG_MODULES_TREE_LOOKUP=y +CONFIG_MODULE_COMPRESS_NONE=y +# CONFIG_MODULE_COMPRESS_GZIP is not set +# CONFIG_MODULE_COMPRESS_XZ is not set +# CONFIG_MODULE_COMPRESS_ZSTD is not set +# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set +CONFIG_MODPROBE_PATH="/sbin/modprobe" +# CONFIG_TRIM_UNUSED_KSYMS is not set CONFIG_BLOCK=y -CONFIG_BLK_DEV_BSG=y -# CONFIG_BLK_DEV_BSGLIB is not set +CONFIG_BLOCK_LEGACY_AUTOLOAD=y +CONFIG_BLK_DEV_BSG_COMMON=y +CONFIG_BLK_DEV_BSGLIB=y # CONFIG_BLK_DEV_INTEGRITY is not set -# CONFIG_BLK_CMDLINE_PARSER is not set +# CONFIG_BLK_DEV_ZONED is not set +# CONFIG_BLK_DEV_THROTTLING is not set +# CONFIG_BLK_WBT is not set +# CONFIG_BLK_CGROUP_IOLATENCY is not set +# CONFIG_BLK_CGROUP_IOCOST is not set +# CONFIG_BLK_CGROUP_IOPRIO is not set +# CONFIG_BLK_DEBUG_FS is not set +# CONFIG_BLK_SED_OPAL is not set +# CONFIG_BLK_INLINE_ENCRYPTION is not set # # Partition Types @@ -301,20 +757,23 @@ CONFIG_MSDOS_PARTITION=y # CONFIG_KARMA_PARTITION is not set CONFIG_EFI_PARTITION=y # CONFIG_SYSV68_PARTITION is not set -CONFIG_RK_PARTITION=y # CONFIG_CMDLINE_PARTITION is not set +# end of Partition Types + CONFIG_BLOCK_COMPAT=y +CONFIG_BLK_MQ_PCI=y +CONFIG_BLK_PM=y +CONFIG_BLOCK_HOLDER_DEPRECATED=y +CONFIG_BLK_MQ_STACKING=y # # IO Schedulers # -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=y -# CONFIG_DEFAULT_DEADLINE is not set -CONFIG_DEFAULT_CFQ=y -# CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_MQ_IOSCHED_DEADLINE=y +# CONFIG_MQ_IOSCHED_KYBER is not set +# CONFIG_IOSCHED_BFQ is not set +# end of IO Schedulers + CONFIG_PREEMPT_NOTIFIERS=y CONFIG_ASN1=y CONFIG_UNINLINE_SPIN_UNLOCK=y @@ -322,290 +781,102 @@ CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_RWSEM_SPIN_ON_OWNER=y CONFIG_LOCK_SPIN_ON_OWNER=y +CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y +CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y +CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y +CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y CONFIG_FREEZER=y # -# Platform selection -# -# CONFIG_ARCH_BCM_IPROC is not set -# CONFIG_ARCH_BERLIN is not set -# CONFIG_ARCH_EXYNOS7 is not set -# CONFIG_ARCH_LAYERSCAPE is not set -# CONFIG_ARCH_HISI is not set -# CONFIG_ARCH_MEDIATEK is not set -# CONFIG_ARCH_QCOM is not set -CONFIG_ARCH_ROCKCHIP=y -# CONFIG_ARCH_SEATTLE is not set -# CONFIG_ARCH_STRATIX10 is not set -# CONFIG_ARCH_TEGRA is not set -# CONFIG_ARCH_SPRD is not set -# CONFIG_ARCH_THUNDER is not set -# CONFIG_ARCH_VEXPRESS is not set -# CONFIG_ARCH_XGENE is not set -# CONFIG_ARCH_ZYNQMP is not set - -# -# Bus support -# -CONFIG_PCI=y -CONFIG_PCI_DOMAINS=y -CONFIG_PCI_DOMAINS_GENERIC=y -CONFIG_PCI_SYSCALL=y -CONFIG_PCI_BUS_ADDR_T_64BIT=y -CONFIG_PCI_MSI=y -CONFIG_PCI_MSI_IRQ_DOMAIN=y -CONFIG_PCI_DEBUG=y -# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set -# CONFIG_PCI_STUB is not set -# CONFIG_PCI_IOV is not set -# CONFIG_PCI_PRI is not set -# CONFIG_PCI_PASID is not set -CONFIG_PCI_LABEL=y - -# -# PCI host controller drivers -# -# CONFIG_PCIE_DW_ROCKCHIP is not set -# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set -# CONFIG_PCI_HOST_GENERIC is not set -# CONFIG_PCIE_IPROC is not set -# CONFIG_PCI_HISI is not set -CONFIG_PCIE_ROCKCHIP=y -CONFIG_PCIEPORTBUS=y -CONFIG_PCIEAER=y -# CONFIG_PCIE_ECRC is not set -# CONFIG_PCIEAER_INJECT is not set -CONFIG_PCIEASPM=y -# CONFIG_PCIEASPM_DEBUG is not set -# CONFIG_PCIEASPM_DEFAULT is not set -CONFIG_PCIEASPM_POWERSAVE=y -# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set -# CONFIG_PCIEASPM_PERFORMANCE is not set -CONFIG_PCIE_PME=y -# CONFIG_HOTPLUG_PCI is not set - -# -# Kernel Features -# - -# -# ARM errata workarounds via the alternatives framework -# -# CONFIG_ARM64_ERRATUM_826319 is not set -# CONFIG_ARM64_ERRATUM_827319 is not set -# CONFIG_ARM64_ERRATUM_824069 is not set -# CONFIG_ARM64_ERRATUM_819472 is not set -# CONFIG_ARM64_ERRATUM_832075 is not set -CONFIG_ARM64_ERRATUM_834220=y -CONFIG_ARM64_ERRATUM_845719=y -CONFIG_ARM64_ERRATUM_843419=y -# CONFIG_ARM64_ERRATUM_1024718 is not set -# CONFIG_CAVIUM_ERRATUM_22375 is not set -# CONFIG_CAVIUM_ERRATUM_23154 is not set -CONFIG_CAVIUM_ERRATUM_27456=y -CONFIG_ARM64_4K_PAGES=y -# CONFIG_ARM64_16K_PAGES is not set -# CONFIG_ARM64_64K_PAGES is not set -CONFIG_ARM64_VA_BITS_39=y -# CONFIG_ARM64_VA_BITS_48 is not set -CONFIG_ARM64_VA_BITS=39 -# CONFIG_CPU_BIG_ENDIAN is not set -CONFIG_SCHED_MC=y -# CONFIG_SCHED_SMT is not set -CONFIG_NR_CPUS=6 -CONFIG_HOTPLUG_CPU=y -# CONFIG_PREEMPT_NONE is not set -CONFIG_PREEMPT_VOLUNTARY=y -# CONFIG_PREEMPT is not set -# CONFIG_HZ_100 is not set -# CONFIG_HZ_250 is not set -# CONFIG_HZ_300 is not set -CONFIG_HZ_1000=y -CONFIG_HZ=1000 -CONFIG_SCHED_HRTICK=y -CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y -CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y -CONFIG_ARCH_SPARSEMEM_ENABLE=y -CONFIG_ARCH_SPARSEMEM_DEFAULT=y -CONFIG_ARCH_SELECT_MEMORY_MODEL=y -CONFIG_HAVE_ARCH_PFN_VALID=y -CONFIG_SYS_SUPPORTS_HUGETLBFS=y -CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y -CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_SPARSEMEM_MANUAL=y -CONFIG_SPARSEMEM=y -CONFIG_HAVE_MEMORY_PRESENT=y -CONFIG_SPARSEMEM_EXTREME=y -CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y -CONFIG_SPARSEMEM_VMEMMAP=y -CONFIG_HAVE_MEMBLOCK=y -CONFIG_NO_BOOTMEM=y -# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set -CONFIG_SPLIT_PTLOCK_CPUS=4 -# CONFIG_COMPACTION is not set -CONFIG_PHYS_ADDR_T_64BIT=y -CONFIG_ZONE_DMA_FLAG=1 -CONFIG_BOUNCE=y -CONFIG_MMU_NOTIFIER=y -# CONFIG_KSM is not set -CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 -# CONFIG_TRANSPARENT_HUGEPAGE is not set -# CONFIG_CLEANCACHE is not set -CONFIG_FRONTSWAP=y -# CONFIG_CMA is not set -CONFIG_ZSWAP=y -CONFIG_ZPOOL=y -CONFIG_ZBUD=y -CONFIG_ZSMALLOC=y -# CONFIG_PGTABLE_MAPPING is not set -# CONFIG_ZSMALLOC_STAT is not set -CONFIG_GENERIC_EARLY_IOREMAP=y -# CONFIG_IDLE_PAGE_TRACKING is not set -CONFIG_FRAME_VECTOR=y -CONFIG_SECCOMP=y -# CONFIG_KEXEC is not set -# CONFIG_CRASH_DUMP is not set -# CONFIG_XEN is not set -CONFIG_FORCE_MAX_ZONEORDER=11 -CONFIG_UNMAP_KERNEL_AT_EL0=y -CONFIG_ARMV8_DEPRECATED=y -CONFIG_SWP_EMULATION=y -CONFIG_CP15_BARRIER_EMULATION=y -CONFIG_SETEND_EMULATION=y -# CONFIG_ARM64_SW_TTBR0_PAN is not set - -# -# ARMv8.1 architectural features -# -CONFIG_ARM64_HW_AFDBM=y -CONFIG_ARM64_PAN=y -# CONFIG_ARM64_LSE_ATOMICS is not set -CONFIG_ARM64_UAO=y -CONFIG_ARM64_MODULE_CMODEL_LARGE=y -CONFIG_ARM64_MODULE_PLTS=y -CONFIG_RELOCATABLE=y -CONFIG_RANDOMIZE_BASE=y - -# -# Boot options -# -# CONFIG_ARM64_ACPI_PARKING_PROTOCOL is not set -CONFIG_CMDLINE="" -# CONFIG_EFI is not set -# CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE is not set - -# -# Userspace binary formats +# Executable file formats # CONFIG_BINFMT_ELF=y CONFIG_COMPAT_BINFMT_ELF=y +CONFIG_ARCH_BINFMT_ELF_STATE=y +CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS=y +CONFIG_ARCH_HAVE_ELF_PROT=y +CONFIG_ARCH_USE_GNU_PROPERTY=y CONFIG_ELFCORE=y -CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_BINFMT_SCRIPT=y -# CONFIG_HAVE_AOUT is not set CONFIG_BINFMT_MISC=y -CONFIG_COREDUMP=y -CONFIG_COMPAT=y -CONFIG_SYSVIPC_COMPAT=y -CONFIG_KEYS_COMPAT=y +# CONFIG_COREDUMP is not set +# end of Executable file formats # -# Power management options +# Memory Management options # -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y -# CONFIG_SUSPEND_SKIP_SYNC is not set -CONFIG_HAS_WAKELOCK=y -CONFIG_WAKELOCK=y -# CONFIG_HIBERNATION is not set -CONFIG_PM_SLEEP=y -CONFIG_PM_SLEEP_SMP=y -CONFIG_PM_AUTOSLEEP=y -# CONFIG_PM_WAKELOCKS is not set -CONFIG_PM=y -# CONFIG_PM_DEBUG is not set -CONFIG_PM_OPP=y -CONFIG_PM_CLK=y -CONFIG_PM_GENERIC_DOMAINS=y -# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set -CONFIG_PM_GENERIC_DOMAINS_SLEEP=y -CONFIG_PM_GENERIC_DOMAINS_OF=y -CONFIG_CPU_PM=y -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y +# CONFIG_SWAP is not set +CONFIG_ZSMALLOC=y +# CONFIG_ZSMALLOC_STAT is not set # -# CPU Power Management +# SLAB allocator options # +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +# CONFIG_SLAB_MERGE_DEFAULT is not set +# CONFIG_SLAB_FREELIST_RANDOM is not set +# CONFIG_SLAB_FREELIST_HARDENED is not set +# CONFIG_SLUB_STATS is not set +# CONFIG_SLUB_CPU_PARTIAL is not set +# end of SLAB allocator options + +# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set +# CONFIG_COMPAT_BRK is not set +CONFIG_SPARSEMEM=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SPARSEMEM_VMEMMAP=y +CONFIG_HAVE_FAST_GUP=y +CONFIG_ARCH_KEEP_MEMBLOCK=y +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y +# CONFIG_MEMORY_HOTPLUG is not set +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y +# CONFIG_COMPACTION is not set +# CONFIG_PAGE_REPORTING is not set +CONFIG_MIGRATION=y +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_MMU_NOTIFIER=y +# CONFIG_KSM is not set +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 +CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y +# CONFIG_MEMORY_FAILURE is not set +# CONFIG_TRANSPARENT_HUGEPAGE is not set +# CONFIG_CMA is not set +CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set +# CONFIG_IDLE_PAGE_TRACKING is not set +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y +CONFIG_ARCH_HAS_VM_GET_PAGE_PROT=y +CONFIG_ARCH_HAS_PTE_DEVMAP=y +CONFIG_ARCH_HAS_ZONE_DMA_SET=y +CONFIG_ZONE_DMA=y +CONFIG_ZONE_DMA32=y +# CONFIG_VM_EVENT_COUNTERS is not set +# CONFIG_PERCPU_STATS is not set +# CONFIG_GUP_TEST is not set +CONFIG_ARCH_HAS_PTE_SPECIAL=y +# CONFIG_ANON_VMA_NAME is not set +# CONFIG_USERFAULTFD is not set # -# CPU Idle +# Data Access Monitoring # -CONFIG_CPU_IDLE=y -CONFIG_CPU_IDLE_GOV_LADDER=y -CONFIG_CPU_IDLE_GOV_MENU=y -CONFIG_DT_IDLE_STATES=y +# CONFIG_DAMON is not set +# end of Data Access Monitoring +# end of Memory Management options -# -# ARM CPU Idle Drivers -# -CONFIG_ARM_CPUIDLE=y -# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set - -# -# CPU Frequency scaling -# -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_GOV_COMMON=y -CONFIG_CPU_FREQ_STAT=y -# CONFIG_CPU_FREQ_STAT_DETAILS is not set -# CONFIG_CPU_WAKE_BOOST is not set - -# -# CPU frequency scaling drivers -# -CONFIG_CPU_FREQ_TIMES=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_MRFIXEDFREQ12 is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_MRFIXEDFREQ13 is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_MRFIXEDFREQ14 is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_MRFIXEDFREQ15 is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_MRFIXEDFREQ18 is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_MRFIXEDFREQ20 is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_MRFIXEDFREQ22 is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set -# CONFIG_CPU_FREQ_GOV_MRFIXEDFREQ12 is not set -# CONFIG_CPU_FREQ_GOV_MRFIXEDFREQ13 is not set -# CONFIG_CPU_FREQ_GOV_MRFIXEDFREQ14 is not set -# CONFIG_CPU_FREQ_GOV_MRFIXEDFREQ15 is not set -# CONFIG_CPU_FREQ_GOV_MRFIXEDFREQ18 is not set -# CONFIG_CPU_FREQ_GOV_MRFIXEDFREQ20 is not set -# CONFIG_CPU_FREQ_GOV_MRFIXEDFREQ22 is not set -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -CONFIG_CPU_FREQ_GOV_POWERSAVE=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_CPU_FREQ_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_INTERACTIVE=y -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y -# CONFIG_CPU_FREQ_GOV_SCHEDUTIL is not set - -# -# CPU frequency scaling drivers -# -CONFIG_CPUFREQ_DT=y -# CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set -# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set -CONFIG_ARM_ROCKCHIP_CPUFREQ=y -# CONFIG_ACPI_CPPC_CPUFREQ is not set CONFIG_NET=y CONFIG_COMPAT_NETLINK_MESSAGES=y CONFIG_NET_INGRESS=y +CONFIG_NET_EGRESS=y +CONFIG_SKB_EXTENSIONS=y # # Networking options @@ -614,16 +885,21 @@ CONFIG_PACKET=y # CONFIG_PACKET_DIAG is not set CONFIG_UNIX=y CONFIG_UNIX_SCM=y +CONFIG_AF_UNIX_OOB=y CONFIG_UNIX_DIAG=m +# CONFIG_TLS is not set CONFIG_XFRM=y CONFIG_XFRM_ALGO=y CONFIG_XFRM_USER=y # CONFIG_XFRM_SUB_POLICY is not set # CONFIG_XFRM_MIGRATE is not set # CONFIG_XFRM_STATISTICS is not set +CONFIG_XFRM_AH=y +CONFIG_XFRM_ESP=y CONFIG_XFRM_IPCOMP=y CONFIG_NET_KEY=y # CONFIG_NET_KEY_MIGRATE is not set +# CONFIG_XDP_SOCKETS is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y @@ -638,23 +914,23 @@ CONFIG_NET_IPGRE_DEMUX=m CONFIG_NET_IP_TUNNEL=m CONFIG_NET_IPGRE=m # CONFIG_NET_IPGRE_BROADCAST is not set +CONFIG_IP_MROUTE_COMMON=y CONFIG_IP_MROUTE=y CONFIG_IP_MROUTE_MULTIPLE_TABLES=y CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y CONFIG_SYN_COOKIES=y +# CONFIG_NET_IPVTI is not set CONFIG_NET_UDP_TUNNEL=m # CONFIG_NET_FOU is not set # CONFIG_NET_FOU_IP_TUNNELS is not set CONFIG_INET_AH=y CONFIG_INET_ESP=y +# CONFIG_INET_ESP_OFFLOAD is not set +# CONFIG_INET_ESPINTCP is not set CONFIG_INET_IPCOMP=y CONFIG_INET_XFRM_TUNNEL=y CONFIG_INET_TUNNEL=y -# CONFIG_INET_XFRM_MODE_TRANSPORT is not set -# CONFIG_INET_XFRM_MODE_TUNNEL is not set -# CONFIG_INET_XFRM_MODE_BEET is not set -# CONFIG_INET_LRO is not set # CONFIG_INET_DIAG is not set CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m @@ -664,6 +940,7 @@ CONFIG_TCP_CONG_HTCP=m CONFIG_TCP_CONG_HSTCP=m CONFIG_TCP_CONG_HYBLA=m CONFIG_TCP_CONG_VEGAS=m +# CONFIG_TCP_CONG_NV is not set CONFIG_TCP_CONG_SCALABLE=m CONFIG_TCP_CONG_LP=m CONFIG_TCP_CONG_VENO=m @@ -671,38 +948,16 @@ CONFIG_TCP_CONG_YEAH=m CONFIG_TCP_CONG_ILLINOIS=m CONFIG_TCP_CONG_DCTCP=m CONFIG_TCP_CONG_CDG=m +# CONFIG_TCP_CONG_BBR is not set CONFIG_DEFAULT_RENO=y CONFIG_DEFAULT_TCP_CONG="reno" CONFIG_TCP_MD5SIG=y -CONFIG_IPV6=y -# CONFIG_IPV6_ROUTER_PREF is not set -# CONFIG_IPV6_OPTIMISTIC_DAD is not set -CONFIG_INET6_AH=y -CONFIG_INET6_ESP=y -CONFIG_INET6_IPCOMP=m -CONFIG_IPV6_MIP6=m -CONFIG_IPV6_ILA=m -CONFIG_INET6_XFRM_TUNNEL=m -CONFIG_INET6_TUNNEL=m -CONFIG_INET6_XFRM_MODE_TRANSPORT=m -CONFIG_INET6_XFRM_MODE_TUNNEL=m -CONFIG_INET6_XFRM_MODE_BEET=m -CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m -CONFIG_IPV6_VTI=m -CONFIG_IPV6_SIT=m -# CONFIG_IPV6_SIT_6RD is not set -CONFIG_IPV6_NDISC_NODETYPE=y -CONFIG_IPV6_TUNNEL=m -CONFIG_IPV6_GRE=m -CONFIG_IPV6_MULTIPLE_TABLES=y -CONFIG_IPV6_SUBTREES=y -# CONFIG_IPV6_MROUTE is not set -# CONFIG_ANDROID_PARANOID_NETWORK is not set +# CONFIG_IPV6 is not set +# CONFIG_MPTCP is not set # CONFIG_NETWORK_SECMARK is not set CONFIG_NET_PTP_CLASSIFY=y # CONFIG_NETWORK_PHY_TIMESTAMPING is not set CONFIG_NETFILTER=y -# CONFIG_NETFILTER_DEBUG is not set CONFIG_NETFILTER_ADVANCED=y CONFIG_BRIDGE_NETFILTER=y @@ -710,12 +965,18 @@ CONFIG_BRIDGE_NETFILTER=y # Core Netfilter Configuration # CONFIG_NETFILTER_INGRESS=y +CONFIG_NETFILTER_EGRESS=y CONFIG_NETFILTER_NETLINK=y +CONFIG_NETFILTER_FAMILY_BRIDGE=y +CONFIG_NETFILTER_FAMILY_ARP=y +# CONFIG_NETFILTER_NETLINK_HOOK is not set CONFIG_NETFILTER_NETLINK_ACCT=m CONFIG_NETFILTER_NETLINK_QUEUE=y CONFIG_NETFILTER_NETLINK_LOG=y +CONFIG_NETFILTER_NETLINK_OSF=m CONFIG_NF_CONNTRACK=m -CONFIG_NF_LOG_COMMON=m +CONFIG_NF_LOG_SYSLOG=m +CONFIG_NETFILTER_CONNCOUNT=m CONFIG_NF_CONNTRACK_MARK=y # CONFIG_NF_CONNTRACK_ZONES is not set CONFIG_NF_CONNTRACK_PROCFS=y @@ -723,10 +984,10 @@ CONFIG_NF_CONNTRACK_EVENTS=y CONFIG_NF_CONNTRACK_TIMEOUT=y CONFIG_NF_CONNTRACK_TIMESTAMP=y CONFIG_NF_CONNTRACK_LABELS=y -CONFIG_NF_CT_PROTO_DCCP=m -CONFIG_NF_CT_PROTO_GRE=m -CONFIG_NF_CT_PROTO_SCTP=m -CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_CT_PROTO_DCCP=y +CONFIG_NF_CT_PROTO_GRE=y +CONFIG_NF_CT_PROTO_SCTP=y +CONFIG_NF_CT_PROTO_UDPLITE=y CONFIG_NF_CONNTRACK_AMANDA=m CONFIG_NF_CONNTRACK_FTP=m CONFIG_NF_CONNTRACK_H323=m @@ -742,36 +1003,38 @@ CONFIG_NF_CT_NETLINK=m CONFIG_NF_CT_NETLINK_TIMEOUT=m # CONFIG_NETFILTER_NETLINK_GLUE_CT is not set CONFIG_NF_NAT=m -CONFIG_NF_NAT_NEEDED=y -CONFIG_NF_NAT_PROTO_DCCP=m -CONFIG_NF_NAT_PROTO_UDPLITE=m -CONFIG_NF_NAT_PROTO_SCTP=m CONFIG_NF_NAT_AMANDA=m CONFIG_NF_NAT_FTP=m CONFIG_NF_NAT_IRC=m CONFIG_NF_NAT_SIP=m CONFIG_NF_NAT_TFTP=m -CONFIG_NF_NAT_REDIRECT=m +CONFIG_NF_NAT_REDIRECT=y +CONFIG_NF_NAT_MASQUERADE=y CONFIG_NETFILTER_SYNPROXY=m CONFIG_NF_TABLES=m -CONFIG_NF_TABLES_INET=m -CONFIG_NF_TABLES_NETDEV=m -CONFIG_NFT_EXTHDR=m -CONFIG_NFT_META=m +# CONFIG_NF_TABLES_NETDEV is not set +# CONFIG_NFT_NUMGEN is not set CONFIG_NFT_CT=m -CONFIG_NFT_RBTREE=m -CONFIG_NFT_HASH=m -CONFIG_NFT_COUNTER=m +# CONFIG_NFT_CONNLIMIT is not set CONFIG_NFT_LOG=m CONFIG_NFT_LIMIT=m CONFIG_NFT_MASQ=m CONFIG_NFT_REDIR=m -CONFIG_NFT_NAT=m +# CONFIG_NFT_TUNNEL is not set +# CONFIG_NFT_OBJREF is not set CONFIG_NFT_QUEUE=m +# CONFIG_NFT_QUOTA is not set CONFIG_NFT_REJECT=m -CONFIG_NFT_REJECT_INET=m CONFIG_NFT_COMPAT=m +CONFIG_NFT_HASH=m +# CONFIG_NFT_XFRM is not set +# CONFIG_NFT_SOCKET is not set +# CONFIG_NFT_OSF is not set +# CONFIG_NFT_TPROXY is not set +# CONFIG_NFT_SYNPROXY is not set +# CONFIG_NF_FLOW_TABLE is not set CONFIG_NETFILTER_XTABLES=y +CONFIG_NETFILTER_XTABLES_COMPAT=y # # Xtables combined modules @@ -801,6 +1064,7 @@ CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_RATEEST=m CONFIG_NETFILTER_XT_TARGET_REDIRECT=m +CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TPROXY=m CONFIG_NETFILTER_XT_TARGET_TRACE=m @@ -845,8 +1109,6 @@ CONFIG_NETFILTER_XT_MATCH_POLICY=m CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m CONFIG_NETFILTER_XT_MATCH_QUOTA=m -CONFIG_NETFILTER_XT_MATCH_QUOTA2=m -CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG=y CONFIG_NETFILTER_XT_MATCH_RATEEST=m CONFIG_NETFILTER_XT_MATCH_REALM=m CONFIG_NETFILTER_XT_MATCH_RECENT=m @@ -858,6 +1120,8 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m +# end of Core Netfilter Configuration + CONFIG_IP_SET=y CONFIG_IP_SET_MAX=256 CONFIG_IP_SET_BITMAP_IP=m @@ -868,6 +1132,7 @@ CONFIG_IP_SET_HASH_IPMARK=m CONFIG_IP_SET_HASH_IPPORT=m CONFIG_IP_SET_HASH_IPPORTIP=m CONFIG_IP_SET_HASH_IPPORTNET=m +# CONFIG_IP_SET_HASH_IPMAC is not set CONFIG_IP_SET_HASH_MAC=m CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_HASH_NET=m @@ -876,7 +1141,6 @@ CONFIG_IP_SET_HASH_NETPORT=m CONFIG_IP_SET_HASH_NETIFACE=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_VS=m -CONFIG_IP_VS_IPV6=y # CONFIG_IP_VS_DEBUG is not set CONFIG_IP_VS_TAB_BITS=12 @@ -903,14 +1167,21 @@ CONFIG_IP_VS_LBLC=m CONFIG_IP_VS_LBLCR=m CONFIG_IP_VS_DH=m CONFIG_IP_VS_SH=m +# CONFIG_IP_VS_MH is not set CONFIG_IP_VS_SED=m CONFIG_IP_VS_NQ=m +# CONFIG_IP_VS_TWOS is not set # # IPVS SH scheduler # CONFIG_IP_VS_SH_TAB_BITS=8 +# +# IPVS MH scheduler +# +CONFIG_IP_VS_MH_TAB_INDEX=12 + # # IPVS application helper # @@ -922,24 +1193,15 @@ CONFIG_IP_VS_NFCT=y # IP: Netfilter Configuration # CONFIG_NF_DEFRAG_IPV4=m -CONFIG_NF_CONNTRACK_IPV4=m -CONFIG_NF_CONNTRACK_PROC_COMPAT=y -CONFIG_NF_TABLES_IPV4=m -CONFIG_NFT_CHAIN_ROUTE_IPV4=m -CONFIG_NFT_REJECT_IPV4=m -CONFIG_NFT_DUP_IPV4=m -CONFIG_NF_TABLES_ARP=m +CONFIG_NF_SOCKET_IPV4=m +CONFIG_NF_TPROXY_IPV4=m +# CONFIG_NF_TABLES_IPV4 is not set +# CONFIG_NF_TABLES_ARP is not set CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m CONFIG_NF_LOG_IPV4=m CONFIG_NF_REJECT_IPV4=m -CONFIG_NF_NAT_IPV4=m -CONFIG_NFT_CHAIN_NAT_IPV4=m -CONFIG_NF_NAT_MASQUERADE_IPV4=m -CONFIG_NFT_MASQ_IPV4=m -CONFIG_NFT_REDIR_IPV4=m CONFIG_NF_NAT_SNMP_BASIC=m -CONFIG_NF_NAT_PROTO_GRE=m CONFIG_NF_NAT_PPTP=m CONFIG_NF_NAT_H323=m CONFIG_IP_NF_IPTABLES=y @@ -962,47 +1224,11 @@ CONFIG_IP_NF_RAW=m CONFIG_IP_NF_ARPTABLES=m CONFIG_IP_NF_ARPFILTER=m CONFIG_IP_NF_ARP_MANGLE=m +# end of IP: Netfilter Configuration -# -# IPv6: Netfilter Configuration -# -CONFIG_NF_DEFRAG_IPV6=m -CONFIG_NF_CONNTRACK_IPV6=m -CONFIG_NF_TABLES_IPV6=m -CONFIG_NFT_CHAIN_ROUTE_IPV6=m -CONFIG_NFT_REJECT_IPV6=m -CONFIG_NFT_DUP_IPV6=m -CONFIG_NF_DUP_IPV6=m -CONFIG_NF_REJECT_IPV6=m -CONFIG_NF_LOG_IPV6=m -CONFIG_NF_NAT_IPV6=m -CONFIG_NFT_CHAIN_NAT_IPV6=m -CONFIG_NF_NAT_MASQUERADE_IPV6=m -CONFIG_NFT_MASQ_IPV6=m -CONFIG_NFT_REDIR_IPV6=m -CONFIG_IP6_NF_IPTABLES=m -CONFIG_IP6_NF_MATCH_AH=m -CONFIG_IP6_NF_MATCH_EUI64=m -CONFIG_IP6_NF_MATCH_FRAG=m -CONFIG_IP6_NF_MATCH_OPTS=m -CONFIG_IP6_NF_MATCH_HL=m -CONFIG_IP6_NF_MATCH_IPV6HEADER=m -CONFIG_IP6_NF_MATCH_MH=m -CONFIG_IP6_NF_MATCH_RPFILTER=m -CONFIG_IP6_NF_MATCH_RT=m -CONFIG_IP6_NF_TARGET_HL=m -CONFIG_IP6_NF_FILTER=m -CONFIG_IP6_NF_TARGET_REJECT=m -CONFIG_IP6_NF_TARGET_SYNPROXY=m -CONFIG_IP6_NF_MANGLE=m -CONFIG_IP6_NF_RAW=m -CONFIG_IP6_NF_NAT=m -CONFIG_IP6_NF_TARGET_MASQUERADE=m -CONFIG_IP6_NF_TARGET_NPT=m CONFIG_NF_TABLES_BRIDGE=m CONFIG_NFT_BRIDGE_META=m -CONFIG_NFT_BRIDGE_REJECT=m -CONFIG_NF_LOG_BRIDGE=m +# CONFIG_NF_CONNTRACK_BRIDGE is not set CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m @@ -1011,7 +1237,6 @@ CONFIG_BRIDGE_EBT_802_3=m CONFIG_BRIDGE_EBT_AMONG=m CONFIG_BRIDGE_EBT_ARP=m CONFIG_BRIDGE_EBT_IP=m -CONFIG_BRIDGE_EBT_IP6=m CONFIG_BRIDGE_EBT_LIMIT=m CONFIG_BRIDGE_EBT_MARK=m CONFIG_BRIDGE_EBT_PKTTYPE=m @@ -1024,6 +1249,7 @@ CONFIG_BRIDGE_EBT_REDIRECT=m CONFIG_BRIDGE_EBT_SNAT=m CONFIG_BRIDGE_EBT_LOG=m CONFIG_BRIDGE_EBT_NFLOG=m +# CONFIG_BPFILTER is not set # CONFIG_IP_DCCP is not set # CONFIG_IP_SCTP is not set # CONFIG_RDS is not set @@ -1034,7 +1260,8 @@ CONFIG_STP=y CONFIG_BRIDGE=y CONFIG_BRIDGE_IGMP_SNOOPING=y # CONFIG_BRIDGE_VLAN_FILTERING is not set -CONFIG_HAVE_NET_DSA=y +# CONFIG_BRIDGE_MRP is not set +# CONFIG_BRIDGE_CFM is not set # CONFIG_NET_DSA is not set CONFIG_VLAN_8021Q=y # CONFIG_VLAN_8021Q_GVRP is not set @@ -1042,12 +1269,10 @@ CONFIG_VLAN_8021Q=y # CONFIG_DECNET is not set CONFIG_LLC=y # CONFIG_LLC2 is not set -# CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set # CONFIG_PHONET is not set -# CONFIG_6LOWPAN is not set # CONFIG_IEEE802154 is not set CONFIG_NET_SCHED=y @@ -1064,19 +1289,26 @@ CONFIG_NET_SCH_HTB=y # CONFIG_NET_SCH_SFQ is not set # CONFIG_NET_SCH_TEQL is not set # CONFIG_NET_SCH_TBF is not set +# CONFIG_NET_SCH_CBS is not set +# CONFIG_NET_SCH_ETF is not set +# CONFIG_NET_SCH_TAPRIO is not set # CONFIG_NET_SCH_GRED is not set # CONFIG_NET_SCH_DSMARK is not set # CONFIG_NET_SCH_NETEM is not set # CONFIG_NET_SCH_DRR is not set # CONFIG_NET_SCH_MQPRIO is not set +# CONFIG_NET_SCH_SKBPRIO is not set # CONFIG_NET_SCH_CHOKE is not set # CONFIG_NET_SCH_QFQ is not set CONFIG_NET_SCH_CODEL=y CONFIG_NET_SCH_FQ_CODEL=y +# CONFIG_NET_SCH_CAKE is not set # CONFIG_NET_SCH_FQ is not set # CONFIG_NET_SCH_HHF is not set # CONFIG_NET_SCH_PIE is not set # CONFIG_NET_SCH_PLUG is not set +# CONFIG_NET_SCH_ETS is not set +# CONFIG_NET_SCH_DEFAULT is not set # # Classification @@ -1095,9 +1327,9 @@ CONFIG_CLS_U32_MARK=y CONFIG_NET_CLS_CGROUP=y # CONFIG_NET_CLS_BPF is not set # CONFIG_NET_CLS_FLOWER is not set +# CONFIG_NET_CLS_MATCHALL is not set # CONFIG_NET_EMATCH is not set # CONFIG_NET_CLS_ACT is not set -# CONFIG_NET_CLS_IND is not set CONFIG_NET_SCH_FIFO=y # CONFIG_DCB is not set CONFIG_DNS_RESOLVER=y @@ -1110,80 +1342,108 @@ CONFIG_OPENVSWITCH_VXLAN=m CONFIG_MPLS=y CONFIG_NET_MPLS_GSO=m # CONFIG_MPLS_ROUTING is not set +CONFIG_NET_NSH=m # CONFIG_HSR is not set # CONFIG_NET_SWITCHDEV is not set -# CONFIG_NET_L3_MASTER_DEV is not set +CONFIG_NET_L3_MASTER_DEV=y +# CONFIG_QRTR is not set +# CONFIG_NET_NCSI is not set +CONFIG_PCPU_DEV_REFCNT=y CONFIG_RPS=y CONFIG_RFS_ACCEL=y +CONFIG_SOCK_RX_QUEUE_MAPPING=y CONFIG_XPS=y CONFIG_CGROUP_NET_PRIO=y CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y -# CONFIG_BPF_JIT is not set CONFIG_NET_FLOW_LIMIT=y # # Network testing # # CONFIG_NET_PKTGEN is not set -# CONFIG_NET_DROP_MONITOR is not set +# end of Network testing +# end of Networking options + # CONFIG_HAMRADIO is not set CONFIG_CAN=y CONFIG_CAN_RAW=y CONFIG_CAN_BCM=y CONFIG_CAN_GW=y +# CONFIG_CAN_J1939 is not set +# CONFIG_CAN_ISOTP is not set # # CAN Device Drivers # # CONFIG_CAN_VCAN is not set +# CONFIG_CAN_VXCAN is not set # CONFIG_CAN_SLCAN is not set CONFIG_CAN_DEV=y CONFIG_CAN_CALC_BITTIMING=y -# CONFIG_CAN_LEDS is not set +# CONFIG_CAN_FLEXCAN is not set # CONFIG_CAN_GRCAN is not set +# CONFIG_CAN_KVASER_PCIEFD is not set # CONFIG_CAN_XILINXCAN is not set +# CONFIG_CAN_C_CAN is not set +# CONFIG_CAN_CC770 is not set +# CONFIG_CAN_CTUCANFD_PCI is not set +# CONFIG_CAN_CTUCANFD_PLATFORM is not set +# CONFIG_CAN_IFI_CANFD is not set +# CONFIG_CAN_M_CAN is not set +# CONFIG_CAN_PEAK_PCIEFD is not set CONFIG_CAN_SJA1000=y +# CONFIG_CAN_EMS_PCI is not set +# CONFIG_CAN_EMS_PCMCIA is not set +# CONFIG_CAN_F81601 is not set +# CONFIG_CAN_KVASER_PCI is not set +# CONFIG_CAN_PEAK_PCI is not set +# CONFIG_CAN_PEAK_PCMCIA is not set +CONFIG_CAN_PLX_PCI=y # CONFIG_CAN_SJA1000_ISA is not set # CONFIG_CAN_SJA1000_PLATFORM is not set -# CONFIG_CAN_EMS_PCMCIA is not set -# CONFIG_CAN_EMS_PCI is not set -# CONFIG_CAN_PEAK_PCMCIA is not set -# CONFIG_CAN_PEAK_PCI is not set -# CONFIG_CAN_KVASER_PCI is not set -CONFIG_CAN_PLX_PCI=y -# CONFIG_CAN_C_CAN is not set -# CONFIG_CAN_M_CAN is not set -# CONFIG_CAN_CC770 is not set +# CONFIG_CAN_SOFTING is not set # # CAN SPI interfaces # +# CONFIG_CAN_HI311X is not set # CONFIG_CAN_MCP251X is not set +# CONFIG_CAN_MCP251XFD is not set +# end of CAN SPI interfaces # # CAN USB interfaces # +# CONFIG_CAN_8DEV_USB is not set # CONFIG_CAN_EMS_USB is not set # CONFIG_CAN_ESD_USB2 is not set +# CONFIG_CAN_ETAS_ES58X is not set # CONFIG_CAN_GS_USB is not set # CONFIG_CAN_KVASER_USB is not set +# CONFIG_CAN_MCBA_USB is not set # CONFIG_CAN_PEAK_USB is not set -# CONFIG_CAN_8DEV_USB is not set -# CONFIG_CAN_SOFTING is not set +# CONFIG_CAN_UCAN is not set +# end of CAN USB interfaces + # CONFIG_CAN_DEBUG_DEVICES is not set -# CONFIG_IRDA is not set +# end of CAN Device Drivers + CONFIG_BT=y CONFIG_BT_BREDR=y CONFIG_BT_RFCOMM=y # CONFIG_BT_RFCOMM_TTY is not set # CONFIG_BT_BNEP is not set +# CONFIG_BT_CMTP is not set CONFIG_BT_HIDP=y CONFIG_BT_HS=y CONFIG_BT_LE=y -# CONFIG_BT_SELFTEST is not set +# CONFIG_BT_LEDS is not set +# CONFIG_BT_MSFTEXT is not set +# CONFIG_BT_AOSPEXT is not set CONFIG_BT_DEBUGFS=y +# CONFIG_BT_SELFTEST is not set # # Bluetooth device drivers @@ -1191,46 +1451,57 @@ CONFIG_BT_DEBUGFS=y CONFIG_BT_INTEL=y CONFIG_BT_BCM=y CONFIG_BT_RTL=y -CONFIG_BT_RTKBTUSB=y CONFIG_BT_HCIBTUSB=y +# CONFIG_BT_HCIBTUSB_AUTOSUSPEND is not set CONFIG_BT_HCIBTUSB_BCM=y +# CONFIG_BT_HCIBTUSB_MTK is not set CONFIG_BT_HCIBTUSB_RTL=y # CONFIG_BT_HCIBTSDIO is not set CONFIG_BT_HCIUART=y +CONFIG_BT_HCIUART_SERDEV=y CONFIG_BT_HCIUART_H4=y +# CONFIG_BT_HCIUART_NOKIA is not set # CONFIG_BT_HCIUART_BCSP is not set CONFIG_BT_HCIUART_ATH3K=y +# CONFIG_BT_HCIUART_LL is not set # CONFIG_BT_HCIUART_3WIRE is not set # CONFIG_BT_HCIUART_INTEL is not set +# CONFIG_BT_HCIUART_BCM is not set +# CONFIG_BT_HCIUART_RTL is not set # CONFIG_BT_HCIUART_QCA is not set +# CONFIG_BT_HCIUART_AG6XX is not set +# CONFIG_BT_HCIUART_MRVL is not set # CONFIG_BT_HCIBCM203X is not set # CONFIG_BT_HCIBPA10X is not set CONFIG_BT_HCIBFUSB=y # CONFIG_BT_HCIDTL1 is not set # CONFIG_BT_HCIBT3C is not set # CONFIG_BT_HCIBLUECARD is not set -# CONFIG_BT_HCIBTUART is not set CONFIG_BT_HCIVHCI=y CONFIG_BT_MRVL=y CONFIG_BT_MRVL_SDIO=y # CONFIG_BT_ATH3K is not set -# CONFIG_BT_BCM4359 is not set +# CONFIG_BT_MTKSDIO is not set +# CONFIG_BT_MTKUART is not set +# end of Bluetooth device drivers + # CONFIG_AF_RXRPC is not set +# CONFIG_AF_KCM is not set +# CONFIG_MCTP is not set CONFIG_FIB_RULES=y CONFIG_WIRELESS=y CONFIG_WIRELESS_EXT=y CONFIG_WEXT_CORE=y CONFIG_WEXT_PROC=y CONFIG_WEXT_SPY=y -CONFIG_WEXT_PRIV=y CONFIG_CFG80211=y CONFIG_NL80211_TESTMODE=y # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set -# CONFIG_CFG80211_REG_DEBUG is not set # CONFIG_CFG80211_CERTIFICATION_ONUS is not set +CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y +CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y CONFIG_CFG80211_DEFAULT_PS=y CONFIG_CFG80211_DEBUGFS=y -CONFIG_CFG80211_INTERNAL_REGDB=y CONFIG_CFG80211_CRDA_SUPPORT=y CONFIG_CFG80211_WEXT=y CONFIG_LIB80211=y @@ -1238,8 +1509,6 @@ CONFIG_LIB80211=y CONFIG_MAC80211=y CONFIG_MAC80211_HAS_RC=y CONFIG_MAC80211_RC_MINSTREL=y -CONFIG_MAC80211_RC_MINSTREL_HT=y -CONFIG_MAC80211_RC_MINSTREL_VHT=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" # CONFIG_MAC80211_MESH is not set @@ -1258,12 +1527,9 @@ CONFIG_MAC80211_VERBOSE_DEBUG=y # CONFIG_MAC80211_TDLS_DEBUG is not set # CONFIG_MAC80211_DEBUG_COUNTERS is not set CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 -# CONFIG_WIMAX is not set CONFIG_RFKILL=y -CONFIG_RFKILL_PM=y CONFIG_RFKILL_LEDS=y # CONFIG_RFKILL_INPUT is not set -# CONFIG_RFKILL_REGULATOR is not set # CONFIG_RFKILL_GPIO is not set # CONFIG_NET_9P is not set # CONFIG_CAIF is not set @@ -1271,72 +1537,106 @@ CONFIG_CEPH_LIB=m # CONFIG_CEPH_LIB_PRETTYDEBUG is not set # CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set # CONFIG_NFC is not set +# CONFIG_PSAMPLE is not set +# CONFIG_NET_IFE is not set CONFIG_LWTUNNEL=y +CONFIG_LWTUNNEL_BPF=y CONFIG_DST_CACHE=y -CONFIG_HAVE_BPF_JIT=y -CONFIG_HAVE_EBPF_JIT=y +CONFIG_GRO_CELLS=y +CONFIG_NET_SELFTESTS=y +CONFIG_NET_SOCK_MSG=y +CONFIG_PAGE_POOL=y +# CONFIG_PAGE_POOL_STATS is not set +# CONFIG_FAILOVER is not set +# CONFIG_ETHTOOL_NETLINK is not set # # Device Drivers # CONFIG_ARM_AMBA=y -# CONFIG_TEGRA_AHB is not set +CONFIG_HAVE_PCI=y +CONFIG_PCI=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_DOMAINS_GENERIC=y +CONFIG_PCI_SYSCALL=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCIEAER=y +# CONFIG_PCIEAER_INJECT is not set +# CONFIG_PCIE_ECRC is not set +CONFIG_PCIEASPM=y +# CONFIG_PCIEASPM_DEFAULT is not set +CONFIG_PCIEASPM_POWERSAVE=y +# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set +# CONFIG_PCIEASPM_PERFORMANCE is not set +CONFIG_PCIE_PME=y +# CONFIG_PCIE_DPC is not set +# CONFIG_PCIE_PTM is not set +CONFIG_PCI_MSI=y +CONFIG_PCI_MSI_IRQ_DOMAIN=y +CONFIG_PCI_QUIRKS=y +CONFIG_PCI_DEBUG=y +# CONFIG_PCI_STUB is not set +# CONFIG_PCI_IOV is not set +# CONFIG_PCI_PRI is not set +# CONFIG_PCI_PASID is not set +# CONFIG_PCIE_BUS_TUNE_OFF is not set +CONFIG_PCIE_BUS_DEFAULT=y +# CONFIG_PCIE_BUS_SAFE is not set +# CONFIG_PCIE_BUS_PERFORMANCE is not set +# CONFIG_PCIE_BUS_PEER2PEER is not set +# CONFIG_VGA_ARB is not set +# CONFIG_HOTPLUG_PCI is not set # -# Generic Driver Options +# PCI controller drivers # -CONFIG_UEVENT_HELPER=y -CONFIG_UEVENT_HELPER_PATH="" -CONFIG_DEVTMPFS=y -CONFIG_DEVTMPFS_MOUNT=y -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=y -CONFIG_FIRMWARE_IN_KERNEL=y -CONFIG_EXTRA_FIRMWARE="" -CONFIG_FW_LOADER_USER_HELPER=y -CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y -CONFIG_WANT_DEV_COREDUMP=y -CONFIG_ALLOW_DEV_COREDUMP=y -CONFIG_DEV_COREDUMP=y -# CONFIG_DEBUG_DRIVER is not set -CONFIG_DEBUG_DEVRES=y -# CONFIG_SYS_HYPERVISOR is not set -# CONFIG_GENERIC_CPU_DEVICES is not set -CONFIG_GENERIC_CPU_AUTOPROBE=y -CONFIG_REGMAP=y -CONFIG_REGMAP_I2C=y -CONFIG_REGMAP_SPI=y -CONFIG_REGMAP_MMIO=y -CONFIG_REGMAP_IRQ=y -CONFIG_DMA_SHARED_BUFFER=y -# CONFIG_FENCE_TRACE is not set +# CONFIG_PCI_FTPCI100 is not set +# CONFIG_PCI_HOST_GENERIC is not set +# CONFIG_PCIE_XILINX is not set +# CONFIG_PCI_XGENE is not set +# CONFIG_PCIE_ALTERA is not set +# CONFIG_PCI_HOST_THUNDER_PEM is not set +# CONFIG_PCI_HOST_THUNDER_ECAM is not set +# CONFIG_PCIE_ROCKCHIP_HOST is not set +# CONFIG_PCIE_MICROCHIP_HOST is not set # -# Bus devices +# DesignWare PCI Core Support # -# CONFIG_VEXPRESS_CONFIG is not set -CONFIG_CONNECTOR=y -CONFIG_PROC_EVENTS=y -# CONFIG_MTD is not set -CONFIG_DTC=y -CONFIG_OF=y -# CONFIG_OF_UNITTEST is not set -CONFIG_OF_FLATTREE=y -CONFIG_OF_EARLY_FLATTREE=y -CONFIG_OF_DYNAMIC=y -CONFIG_OF_ADDRESS=y -CONFIG_OF_ADDRESS_PCI=y -CONFIG_OF_IRQ=y -CONFIG_OF_NET=y -CONFIG_OF_MDIO=y -CONFIG_OF_PCI=y -CONFIG_OF_PCI_IRQ=y -CONFIG_OF_RESERVED_MEM=y -CONFIG_OF_RESOLVE=y -CONFIG_OF_OVERLAY=y -CONFIG_OF_CONFIGFS=y -# CONFIG_PARPORT is not set +# CONFIG_PCIE_DW_PLAT_HOST is not set +# CONFIG_PCI_HISI is not set +# CONFIG_PCIE_ROCKCHIP_DW_HOST is not set +# CONFIG_PCIE_KIRIN is not set +# CONFIG_PCI_MESON is not set +# CONFIG_PCIE_AL is not set +# end of DesignWare PCI Core Support + +# +# Mobiveil PCIe Core Support +# +# end of Mobiveil PCIe Core Support + +# +# Cadence PCIe controllers support +# +# CONFIG_PCIE_CADENCE_PLAT_HOST is not set +# CONFIG_PCI_J721E_HOST is not set +# end of Cadence PCIe controllers support +# end of PCI controller drivers + +# +# PCI Endpoint +# +# CONFIG_PCI_ENDPOINT is not set +# end of PCI Endpoint + +# +# PCI switch controller drivers +# +# CONFIG_PCI_SW_SWITCHTEC is not set +# end of PCI switch controller drivers + +# CONFIG_CXL_BUS is not set CONFIG_PCCARD=y CONFIG_PCMCIA=y CONFIG_PCMCIA_LOAD_CIS=y @@ -1348,31 +1648,129 @@ CONFIG_CARDBUS=y # CONFIG_YENTA is not set # CONFIG_PD6729 is not set # CONFIG_I82092 is not set -CONFIG_PCMCIA_PLX9052=y -CONFIG_PNP=y -CONFIG_PNP_DEBUG_MESSAGES=y +# CONFIG_RAPIDIO is not set # -# Protocols +# Generic Driver Options # -CONFIG_PNPACPI=y +CONFIG_UEVENT_HELPER=y +CONFIG_UEVENT_HELPER_PATH="" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_DEVTMPFS_SAFE=y +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y + +# +# Firmware loader +# +CONFIG_FW_LOADER=y +CONFIG_FW_LOADER_PAGED_BUF=y +CONFIG_FW_LOADER_SYSFS=y +CONFIG_EXTRA_FIRMWARE="" +CONFIG_FW_LOADER_USER_HELPER=y +CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y +# CONFIG_FW_LOADER_COMPRESS is not set +CONFIG_FW_CACHE=y +# CONFIG_FW_UPLOAD is not set +# end of Firmware loader + +CONFIG_WANT_DEV_COREDUMP=y +# CONFIG_ALLOW_DEV_COREDUMP is not set +# CONFIG_DEBUG_DRIVER is not set +CONFIG_DEBUG_DEVRES=y +# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set +# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set +CONFIG_GENERIC_CPU_AUTOPROBE=y +CONFIG_GENERIC_CPU_VULNERABILITIES=y +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_SPI=y +CONFIG_REGMAP_MMIO=y +CONFIG_REGMAP_IRQ=y +CONFIG_DMA_SHARED_BUFFER=y +# CONFIG_DMA_FENCE_TRACE is not set +CONFIG_GENERIC_ARCH_TOPOLOGY=y +# end of Generic Driver Options + +# +# Bus devices +# +# CONFIG_BRCMSTB_GISB_ARB is not set +# CONFIG_MOXTET is not set +# CONFIG_VEXPRESS_CONFIG is not set +# CONFIG_MHI_BUS is not set +# CONFIG_MHI_BUS_EP is not set +# end of Bus devices + +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y + +# +# Firmware Drivers +# + +# +# ARM System Control and Management Interface Protocol +# +CONFIG_ARM_SCMI_PROTOCOL=y +CONFIG_ARM_SCMI_HAVE_TRANSPORT=y +CONFIG_ARM_SCMI_HAVE_SHMEM=y +CONFIG_ARM_SCMI_TRANSPORT_MAILBOX=y +CONFIG_ARM_SCMI_TRANSPORT_SMC=y +# CONFIG_ARM_SCMI_TRANSPORT_SMC_ATOMIC_ENABLE is not set +CONFIG_ARM_SCMI_POWER_DOMAIN=y +# end of ARM System Control and Management Interface Protocol + +CONFIG_ARM_SCPI_PROTOCOL=y +CONFIG_ARM_SCPI_POWER_DOMAIN=y +# CONFIG_FIRMWARE_MEMMAP is not set +# CONFIG_FW_CFG_SYSFS is not set +# CONFIG_ARM_FFA_TRANSPORT is not set +# CONFIG_GOOGLE_FIRMWARE is not set +CONFIG_ARM_PSCI_FW=y +# CONFIG_ARM_PSCI_CHECKER is not set +CONFIG_HAVE_ARM_SMCCC=y +CONFIG_HAVE_ARM_SMCCC_DISCOVERY=y +# CONFIG_ARM_SMCCC_SOC_ID is not set + +# +# Tegra firmware driver +# +# end of Tegra firmware driver +# end of Firmware Drivers + +# CONFIG_GNSS is not set +# CONFIG_MTD is not set +CONFIG_DTC=y +CONFIG_OF=y +# CONFIG_OF_UNITTEST is not set +CONFIG_OF_FLATTREE=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_KOBJ=y +CONFIG_OF_DYNAMIC=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_IRQ=y +CONFIG_OF_RESERVED_MEM=y +CONFIG_OF_RESOLVE=y +CONFIG_OF_OVERLAY=y +# CONFIG_PARPORT is not set CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_NULL_BLK is not set +CONFIG_CDROM=y # CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set CONFIG_ZRAM=y +CONFIG_ZRAM_DEF_COMP_LZORLE=y +# CONFIG_ZRAM_DEF_COMP_LZ4 is not set +# CONFIG_ZRAM_DEF_COMP_LZO is not set +CONFIG_ZRAM_DEF_COMP="lzo-rle" # CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZRAM_MEMORY_TRACKING is not set -# CONFIG_BLK_CPQ_CISS_DA is not set -# CONFIG_BLK_DEV_DAC960 is not set -# CONFIG_BLK_DEV_UMEM is not set -# CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 -# CONFIG_BLK_DEV_CRYPTOLOOP is not set CONFIG_BLK_DEV_DRBD=m # CONFIG_DRBD_FAULT_INJECTION is not set CONFIG_BLK_DEV_NBD=m -# CONFIG_BLK_DEV_SKD is not set # CONFIG_BLK_DEV_SX8 is not set CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=1 @@ -1380,18 +1778,26 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 # CONFIG_CDROM_PKTCDVD is not set CONFIG_ATA_OVER_ETH=m CONFIG_BLK_DEV_RBD=m -# CONFIG_BLK_DEV_RSXX is not set + +# +# NVME Support +# +CONFIG_NVME_CORE=m CONFIG_BLK_DEV_NVME=m +# CONFIG_NVME_MULTIPATH is not set +# CONFIG_NVME_VERBOSE_ERRORS is not set +# CONFIG_NVME_HWMON is not set +# CONFIG_NVME_FC is not set +# CONFIG_NVME_TCP is not set +# CONFIG_NVME_TARGET is not set +# end of NVME Support # # Misc devices # -CONFIG_ROCKCHIP_SCR=y -# CONFIG_SENSORS_LIS3LV02D is not set # CONFIG_AD525X_DPOT is not set # CONFIG_DUMMY_IRQ is not set # CONFIG_PHANTOM is not set -# CONFIG_SGI_IOC4 is not set # CONFIG_TIFM_CORE is not set # CONFIG_ICS932S401 is not set # CONFIG_ENCLOSURE_SERVICES is not set @@ -1400,21 +1806,17 @@ CONFIG_ROCKCHIP_SCR=y # CONFIG_ISL29003 is not set # CONFIG_ISL29020 is not set # CONFIG_SENSORS_TSL2550 is not set -# CONFIG_SENSORS_BH1780 is not set # CONFIG_SENSORS_BH1770 is not set # CONFIG_SENSORS_APDS990X is not set # CONFIG_HMC6352 is not set # CONFIG_DS1682 is not set -# CONFIG_TI_DAC7512 is not set -# CONFIG_BMP085_I2C is not set -# CONFIG_BMP085_SPI is not set -# CONFIG_USB_SWITCH_FSA9480 is not set # CONFIG_LATTICE_ECP3_CONFIG is not set CONFIG_SRAM=y -# CONFIG_MEMORY_STATE_TIME is not set -# CONFIG_USB_CAM_GPIO is not set -# CONFIG_GPIO_DET is not set -CONFIG_ROCKPI_MCU=y +# CONFIG_DW_XDATA_PCIE is not set +# CONFIG_PCI_ENDPOINT_TEST is not set +# CONFIG_XILINX_SDFEC is not set +# CONFIG_HISI_HIKEY_USB is not set +# CONFIG_OPEN_DICE is not set # CONFIG_C2PORT is not set # @@ -1426,57 +1828,41 @@ CONFIG_ROCKPI_MCU=y # CONFIG_EEPROM_MAX6875 is not set CONFIG_EEPROM_93CX6=y # CONFIG_EEPROM_93XX46 is not set +# CONFIG_EEPROM_IDT_89HPESX is not set +# CONFIG_EEPROM_EE1004 is not set +# end of EEPROM support + # CONFIG_CB710_CORE is not set # # Texas Instruments shared transport line discipline # # CONFIG_TI_ST is not set +# end of Texas Instruments shared transport line discipline + +# CONFIG_SENSORS_LIS3_SPI is not set # CONFIG_SENSORS_LIS3_I2C is not set - -# -# Altera FPGA firmware download module -# # CONFIG_ALTERA_STAPL is not set - -# -# Intel MIC Bus Driver -# - -# -# SCIF Bus Driver -# - -# -# Intel MIC Host Driver -# - -# -# Intel MIC Card Driver -# - -# -# SCIF Driver -# - -# -# Intel MIC Coprocessor State Management (COSM) Drivers -# +# CONFIG_VMWARE_VMCI is not set # CONFIG_GENWQE is not set # CONFIG_ECHO is not set -# CONFIG_CXL_BASE is not set -# CONFIG_CXL_KERNEL_API is not set -# CONFIG_CXL_EEH is not set +# CONFIG_BCM_VK is not set +# CONFIG_MISC_ALCOR_PCI is not set +# CONFIG_MISC_RTSX_PCI is not set +# CONFIG_MISC_RTSX_USB is not set +# CONFIG_HABANA_AI is not set +# CONFIG_UACCE is not set +# CONFIG_PVPANIC is not set +# end of Misc devices # # SCSI device support # CONFIG_SCSI_MOD=y CONFIG_RAID_ATTRS=m +CONFIG_SCSI_COMMON=y CONFIG_SCSI=y CONFIG_SCSI_DMA=y -# CONFIG_SCSI_NETLINK is not set -# CONFIG_SCSI_MQ_DEFAULT is not set CONFIG_SCSI_PROC_FS=y # @@ -1484,10 +1870,9 @@ CONFIG_SCSI_PROC_FS=y # CONFIG_BLK_DEV_SD=y # CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set CONFIG_BLK_DEV_SR=y -# CONFIG_BLK_DEV_SR_VENDOR is not set # CONFIG_CHR_DEV_SG is not set +CONFIG_BLK_DEV_BSG=y # CONFIG_CHR_DEV_SCH is not set # CONFIG_SCSI_CONSTANTS is not set # CONFIG_SCSI_LOGGING is not set @@ -1502,6 +1887,8 @@ CONFIG_SCSI_SPI_ATTRS=y CONFIG_SCSI_SAS_ATTRS=m # CONFIG_SCSI_SAS_LIBSAS is not set # CONFIG_SCSI_SRP_ATTRS is not set +# end of SCSI Transports + CONFIG_SCSI_LOWLEVEL=y # CONFIG_ISCSI_TCP is not set # CONFIG_ISCSI_BOOT_SYSFS is not set @@ -1518,6 +1905,7 @@ CONFIG_SCSI_LOWLEVEL=y # CONFIG_SCSI_AIC7XXX is not set # CONFIG_SCSI_AIC79XX is not set # CONFIG_SCSI_AIC94XX is not set +# CONFIG_SCSI_HISI_SAS is not set # CONFIG_SCSI_MVSAS is not set # CONFIG_SCSI_MVUMI is not set # CONFIG_SCSI_ADVANSYS is not set @@ -1530,11 +1918,14 @@ CONFIG_SCSI_MPT3SAS=m CONFIG_SCSI_MPT2SAS_MAX_SGE=128 CONFIG_SCSI_MPT3SAS_MAX_SGE=128 CONFIG_SCSI_MPT2SAS=m -# CONFIG_SCSI_UFSHCD is not set +# CONFIG_SCSI_MPI3MR is not set +# CONFIG_SCSI_SMARTPQI is not set # CONFIG_SCSI_HPTIOP is not set +# CONFIG_SCSI_MYRB is not set +# CONFIG_SCSI_MYRS is not set # CONFIG_SCSI_SNIC is not set # CONFIG_SCSI_DMX3191D is not set -# CONFIG_SCSI_FUTURE_DOMAIN is not set +# CONFIG_SCSI_FDOMAIN_PCI is not set # CONFIG_SCSI_IPS is not set # CONFIG_SCSI_INITIO is not set # CONFIG_SCSI_INIA100 is not set @@ -1551,19 +1942,20 @@ CONFIG_SCSI_MPT2SAS=m # CONFIG_SCSI_PM8001 is not set # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set # CONFIG_SCSI_DH is not set -# CONFIG_SCSI_OSD_INITIATOR is not set +# end of SCSI device support + CONFIG_HAVE_PATA_PLATFORM=y CONFIG_ATA=y -# CONFIG_ATA_NONSTANDARD is not set +CONFIG_SATA_HOST=y CONFIG_ATA_VERBOSE_ERROR=y -CONFIG_ATA_ACPI=y -# CONFIG_SATA_ZPODD is not set +CONFIG_ATA_FORCE=y CONFIG_SATA_PMP=y # # Controllers with non-SFF native interface # CONFIG_SATA_AHCI=y +CONFIG_SATA_MOBILE_LPM_POLICY=0 CONFIG_SATA_AHCI_PLATFORM=y # CONFIG_AHCI_CEVA is not set # CONFIG_AHCI_QORIQ is not set @@ -1584,6 +1976,7 @@ CONFIG_ATA_BMDMA=y # SATA SFF controllers with BMDMA # # CONFIG_ATA_PIIX is not set +# CONFIG_SATA_DWC is not set CONFIG_SATA_MV=m CONFIG_SATA_NV=m CONFIG_SATA_PROMISE=m @@ -1645,7 +2038,6 @@ CONFIG_SATA_SIL=m # # Generic fallback / legacy drivers # -# CONFIG_PATA_ACPI is not set # CONFIG_ATA_GENERIC is not set # CONFIG_PATA_LEGACY is not set CONFIG_MD=y @@ -1661,25 +2053,32 @@ CONFIG_MD_RAID456=y CONFIG_BCACHE=m # CONFIG_BCACHE_DEBUG is not set # CONFIG_BCACHE_CLOSURES_DEBUG is not set +# CONFIG_BCACHE_ASYNC_REGISTRATION is not set CONFIG_BLK_DEV_DM_BUILTIN=y CONFIG_BLK_DEV_DM=y -# CONFIG_DM_MQ_DEFAULT is not set # CONFIG_DM_DEBUG is not set +# CONFIG_DM_UNSTRIPED is not set CONFIG_DM_CRYPT=m # CONFIG_DM_SNAPSHOT is not set # CONFIG_DM_THIN_PROVISIONING is not set # CONFIG_DM_CACHE is not set +# CONFIG_DM_WRITECACHE is not set +# CONFIG_DM_EBS is not set # CONFIG_DM_ERA is not set +# CONFIG_DM_CLONE is not set # CONFIG_DM_MIRROR is not set CONFIG_DM_RAID=y # CONFIG_DM_ZERO is not set # CONFIG_DM_MULTIPATH is not set # CONFIG_DM_DELAY is not set +# CONFIG_DM_DUST is not set +# CONFIG_DM_INIT is not set # CONFIG_DM_UEVENT is not set # CONFIG_DM_FLAKEY is not set # CONFIG_DM_VERITY is not set # CONFIG_DM_SWITCH is not set # CONFIG_DM_LOG_WRITES is not set +# CONFIG_DM_INTEGRITY is not set # CONFIG_TARGET_CORE is not set # CONFIG_FUSION is not set @@ -1688,64 +2087,80 @@ CONFIG_DM_RAID=y # # CONFIG_FIREWIRE is not set # CONFIG_FIREWIRE_NOSY is not set +# end of IEEE 1394 (FireWire) support + CONFIG_NETDEVICES=y CONFIG_MII=y CONFIG_NET_CORE=y # CONFIG_BONDING is not set # CONFIG_DUMMY is not set +# CONFIG_WIREGUARD is not set # CONFIG_EQUALIZER is not set # CONFIG_NET_FC is not set # CONFIG_NET_TEAM is not set CONFIG_MACVLAN=y # CONFIG_MACVTAP is not set +CONFIG_IPVLAN_L3S=y CONFIG_IPVLAN=y +# CONFIG_IPVTAP is not set CONFIG_VXLAN=m # CONFIG_GENEVE is not set +# CONFIG_BAREUDP is not set +# CONFIG_GTP is not set +# CONFIG_AMT is not set +# CONFIG_MACSEC is not set # CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set CONFIG_TUN=m # CONFIG_TUN_VNET_CROSS_LE is not set CONFIG_VETH=y # CONFIG_NLMON is not set +# CONFIG_NET_VRF is not set # CONFIG_ARCNET is not set - -# -# CAIF transport drivers -# - -# -# Distributed Switch Architecture drivers -# -# CONFIG_NET_DSA_MV88E6XXX is not set -# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not set CONFIG_ETHERNET=y CONFIG_MDIO=y # CONFIG_NET_VENDOR_3COM is not set # CONFIG_NET_VENDOR_ADAPTEC is not set # CONFIG_NET_VENDOR_AGERE is not set +CONFIG_NET_VENDOR_ALACRITECH=y +# CONFIG_SLICOSS is not set # CONFIG_NET_VENDOR_ALTEON is not set # CONFIG_ALTERA_TSE is not set +CONFIG_NET_VENDOR_AMAZON=y +# CONFIG_ENA_ETHERNET is not set # CONFIG_NET_VENDOR_AMD is not set +CONFIG_NET_VENDOR_AQUANTIA=y +# CONFIG_AQTION is not set # CONFIG_NET_VENDOR_ARC is not set +CONFIG_NET_VENDOR_ASIX=y +# CONFIG_SPI_AX88796C is not set # CONFIG_NET_VENDOR_ATHEROS is not set -# CONFIG_NET_VENDOR_AURORA is not set -# CONFIG_NET_CADENCE is not set # CONFIG_NET_VENDOR_BROADCOM is not set -# CONFIG_NET_VENDOR_BROCADE is not set +CONFIG_NET_VENDOR_CADENCE=y +# CONFIG_MACB is not set # CONFIG_NET_VENDOR_CAVIUM is not set # CONFIG_NET_VENDOR_CHELSIO is not set # CONFIG_NET_VENDOR_CISCO is not set +CONFIG_NET_VENDOR_CORTINA=y +# CONFIG_GEMINI_ETHERNET is not set +CONFIG_NET_VENDOR_DAVICOM=y +# CONFIG_DM9051 is not set # CONFIG_DNET is not set # CONFIG_NET_VENDOR_DEC is not set # CONFIG_NET_VENDOR_DLINK is not set # CONFIG_NET_VENDOR_EMULEX is not set +CONFIG_NET_VENDOR_ENGLEDER=y +# CONFIG_TSNEP is not set # CONFIG_NET_VENDOR_EZCHIP is not set -# CONFIG_NET_VENDOR_EXAR is not set CONFIG_NET_VENDOR_FUJITSU=y # CONFIG_PCMCIA_FMVJ18X is not set +CONFIG_NET_VENDOR_FUNGIBLE=y +# CONFIG_FUN_ETH is not set +CONFIG_NET_VENDOR_GOOGLE=y +# CONFIG_GVE is not set # CONFIG_NET_VENDOR_HISILICON is not set -# CONFIG_NET_VENDOR_HP is not set +CONFIG_NET_VENDOR_HUAWEI=y +# CONFIG_HINIC is not set +CONFIG_NET_VENDOR_I825XX=y CONFIG_NET_VENDOR_INTEL=y CONFIG_E100=y CONFIG_E1000=y @@ -1759,92 +2174,164 @@ CONFIG_IXGBE_HWMON=y # CONFIG_IXGBEVF is not set # CONFIG_I40E is not set # CONFIG_I40EVF is not set +# CONFIG_ICE is not set # CONFIG_FM10K is not set -CONFIG_NET_VENDOR_I825XX=y +# CONFIG_IGC is not set # CONFIG_JME is not set +CONFIG_NET_VENDOR_LITEX=y +# CONFIG_LITEX_LITEETH is not set # CONFIG_NET_VENDOR_MARVELL is not set # CONFIG_NET_VENDOR_MELLANOX is not set # CONFIG_NET_VENDOR_MICREL is not set # CONFIG_NET_VENDOR_MICROCHIP is not set +CONFIG_NET_VENDOR_MICROSEMI=y +CONFIG_NET_VENDOR_MICROSOFT=y # CONFIG_NET_VENDOR_MYRI is not set # CONFIG_FEALNX is not set +CONFIG_NET_VENDOR_NI=y +# CONFIG_NI_XGE_MANAGEMENT_ENET is not set # CONFIG_NET_VENDOR_NATSEMI is not set +CONFIG_NET_VENDOR_NETERION=y +# CONFIG_S2IO is not set +# CONFIG_VXGE is not set +CONFIG_NET_VENDOR_NETRONOME=y +# CONFIG_NFP is not set # CONFIG_NET_VENDOR_NVIDIA is not set # CONFIG_NET_VENDOR_OKI is not set # CONFIG_ETHOC is not set -# CONFIG_NET_PACKET_ENGINE is not set +CONFIG_NET_VENDOR_PACKET_ENGINES=y +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set +CONFIG_NET_VENDOR_PENSANDO=y +# CONFIG_IONIC is not set # CONFIG_NET_VENDOR_QLOGIC is not set +# CONFIG_NET_VENDOR_BROCADE is not set # CONFIG_NET_VENDOR_QUALCOMM is not set +# CONFIG_NET_VENDOR_RDC is not set # CONFIG_NET_VENDOR_REALTEK is not set # CONFIG_NET_VENDOR_RENESAS is not set -# CONFIG_NET_VENDOR_RDC is not set # CONFIG_NET_VENDOR_ROCKER is not set # CONFIG_NET_VENDOR_SAMSUNG is not set # CONFIG_NET_VENDOR_SEEQ is not set # CONFIG_NET_VENDOR_SILAN is not set # CONFIG_NET_VENDOR_SIS is not set +CONFIG_NET_VENDOR_SOLARFLARE=y # CONFIG_SFC is not set +# CONFIG_SFC_FALCON is not set +# CONFIG_SFC_SIENA is not set # CONFIG_NET_VENDOR_SMSC is not set +CONFIG_NET_VENDOR_SOCIONEXT=y CONFIG_NET_VENDOR_STMICRO=y CONFIG_STMMAC_ETH=y +# CONFIG_STMMAC_SELFTESTS is not set CONFIG_STMMAC_PLATFORM=y +# CONFIG_DWMAC_DWC_QOS_ETH is not set CONFIG_DWMAC_GENERIC=y -# CONFIG_DWMAC_IPQ806X is not set -# CONFIG_DWMAC_LPC18XX is not set -# CONFIG_DWMAC_MESON is not set CONFIG_DWMAC_ROCKCHIP=y -# CONFIG_DWMAC_RK_AUTO_DELAYLINE is not set -# CONFIG_DWMAC_SOCFPGA is not set -# CONFIG_DWMAC_STI is not set -# CONFIG_DWMAC_SUNXI is not set +# CONFIG_DWMAC_INTEL_PLAT is not set +# CONFIG_DWMAC_LOONGSON is not set # CONFIG_STMMAC_PCI is not set # CONFIG_NET_VENDOR_SUN is not set # CONFIG_NET_VENDOR_SYNOPSYS is not set # CONFIG_NET_VENDOR_TEHUTI is not set # CONFIG_NET_VENDOR_TI is not set +CONFIG_NET_VENDOR_VERTEXCOM=y +# CONFIG_MSE102X is not set # CONFIG_NET_VENDOR_VIA is not set # CONFIG_NET_VENDOR_WIZNET is not set +CONFIG_NET_VENDOR_XILINX=y +# CONFIG_XILINX_EMACLITE is not set +# CONFIG_XILINX_AXI_EMAC is not set +# CONFIG_XILINX_LL_TEMAC is not set CONFIG_NET_VENDOR_XIRCOM=y # CONFIG_PCMCIA_XIRC2PS is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set -# CONFIG_NET_SB1000 is not set +CONFIG_PHYLINK=y CONFIG_PHYLIB=y +CONFIG_SWPHY=y +# CONFIG_LED_TRIGGER_PHY is not set +CONFIG_FIXED_PHY=y +# CONFIG_SFP is not set # # MII PHY device drivers # -# CONFIG_AQUANTIA_PHY is not set -# CONFIG_AT803X_PHY is not set # CONFIG_AMD_PHY is not set -# CONFIG_MARVELL_PHY is not set -# CONFIG_DAVICOM_PHY is not set -# CONFIG_QSEMI_PHY is not set -# CONFIG_LXT_PHY is not set +# CONFIG_ADIN_PHY is not set +# CONFIG_ADIN1100_PHY is not set +# CONFIG_AQUANTIA_PHY is not set +CONFIG_AX88796B_PHY=y +# CONFIG_BROADCOM_PHY is not set +# CONFIG_BCM54140_PHY is not set +# CONFIG_BCM7XXX_PHY is not set +# CONFIG_BCM84881_PHY is not set +# CONFIG_BCM87XX_PHY is not set # CONFIG_CICADA_PHY is not set -# CONFIG_VITESSE_PHY is not set -# CONFIG_TERANETICS_PHY is not set +# CONFIG_CORTINA_PHY is not set +# CONFIG_DAVICOM_PHY is not set +# CONFIG_ICPLUS_PHY is not set +# CONFIG_LXT_PHY is not set +# CONFIG_INTEL_XWAY_PHY is not set +# CONFIG_LSI_ET1011C_PHY is not set +# CONFIG_MARVELL_PHY is not set +# CONFIG_MARVELL_10G_PHY is not set +# CONFIG_MARVELL_88X2222_PHY is not set +# CONFIG_MAXLINEAR_GPHY is not set +# CONFIG_MEDIATEK_GE_PHY is not set +# CONFIG_MICREL_PHY is not set +# CONFIG_MICROCHIP_PHY is not set +# CONFIG_MICROCHIP_T1_PHY is not set +# CONFIG_MICROSEMI_PHY is not set +# CONFIG_MOTORCOMM_PHY is not set +# CONFIG_NATIONAL_PHY is not set +# CONFIG_NXP_C45_TJA11XX_PHY is not set +# CONFIG_NXP_TJA11XX_PHY is not set +# CONFIG_AT803X_PHY is not set +# CONFIG_QSEMI_PHY is not set +# CONFIG_REALTEK_PHY is not set +# CONFIG_RENESAS_PHY is not set CONFIG_ROCKCHIP_PHY=y # CONFIG_SMSC_PHY is not set -# CONFIG_BROADCOM_PHY is not set -# CONFIG_BCM7XXX_PHY is not set -# CONFIG_BCM87XX_PHY is not set -# CONFIG_ICPLUS_PHY is not set -# CONFIG_REALTEK_PHY is not set -# CONFIG_NATIONAL_PHY is not set # CONFIG_STE10XP is not set -# CONFIG_LSI_ET1011C_PHY is not set -# CONFIG_MICREL_PHY is not set +# CONFIG_TERANETICS_PHY is not set +# CONFIG_DP83822_PHY is not set +# CONFIG_DP83TC811_PHY is not set # CONFIG_DP83848_PHY is not set # CONFIG_DP83867_PHY is not set -# CONFIG_MICROCHIP_PHY is not set -# CONFIG_FIXED_PHY is not set -# CONFIG_MDIO_BITBANG is not set -# CONFIG_MDIO_OCTEON is not set -# CONFIG_MDIO_BUS_MUX_GPIO is not set -# CONFIG_MDIO_BUS_MUX_MMIOREG is not set -# CONFIG_MDIO_BCM_UNIMAC is not set +# CONFIG_DP83869_PHY is not set +# CONFIG_DP83TD510_PHY is not set +# CONFIG_VITESSE_PHY is not set +# CONFIG_XILINX_GMII2RGMII is not set # CONFIG_MICREL_KS8995MA is not set +CONFIG_MDIO_DEVICE=y +CONFIG_MDIO_BUS=y +CONFIG_FWNODE_MDIO=y +CONFIG_OF_MDIO=y +CONFIG_MDIO_DEVRES=y +# CONFIG_MDIO_BITBANG is not set +# CONFIG_MDIO_BCM_UNIMAC is not set +# CONFIG_MDIO_HISI_FEMAC is not set +# CONFIG_MDIO_MVUSB is not set +# CONFIG_MDIO_MSCC_MIIM is not set +# CONFIG_MDIO_OCTEON is not set +# CONFIG_MDIO_IPQ4019 is not set +# CONFIG_MDIO_IPQ8064 is not set +# CONFIG_MDIO_THUNDER is not set + +# +# MDIO Multiplexers +# +# CONFIG_MDIO_BUS_MUX_GPIO is not set +# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set +# CONFIG_MDIO_BUS_MUX_MMIOREG is not set + +# +# PCS device drivers +# +CONFIG_PCS_XPCS=y +# end of PCS device drivers + CONFIG_PPP=m CONFIG_PPP_BSDCOMP=m CONFIG_PPP_DEFLATE=m @@ -1853,8 +2340,6 @@ CONFIG_PPP_DEFLATE=m # CONFIG_PPP_MULTILINK is not set CONFIG_PPPOE=m # CONFIG_PPTP is not set -CONFIG_PPPOLAC=m -CONFIG_PPPOPNS=m CONFIG_PPP_ASYNC=m CONFIG_PPP_SYNC_TTY=m # CONFIG_SLIP is not set @@ -1895,31 +2380,16 @@ CONFIG_USB_NET_RNDIS_HOST=y # CONFIG_USB_SIERRA_NET is not set # CONFIG_USB_VL600 is not set # CONFIG_USB_NET_CH9200 is not set +# CONFIG_USB_NET_AQC111 is not set +# CONFIG_USB_RTL8153_ECM is not set CONFIG_WLAN=y -# CONFIG_PCMCIA_RAYCS is not set -CONFIG_LIBERTAS_THINFIRM=y -# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set -# CONFIG_LIBERTAS_THINFIRM_USB is not set -# CONFIG_ATMEL is not set -CONFIG_AT76C50X_USB=y -# CONFIG_AIRO_CS is not set -# CONFIG_PCMCIA_WL3501 is not set -# CONFIG_PRISM54 is not set -# CONFIG_USB_ZD1201 is not set -CONFIG_USB_NET_RNDIS_WLAN=y +CONFIG_WLAN_VENDOR_ADMTEK=y # CONFIG_ADM8211 is not set -CONFIG_RTL8180=m -CONFIG_RTL8187=y -CONFIG_RTL8187_LEDS=y -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_VIRT_WIFI is not set -# CONFIG_MWL8K is not set CONFIG_ATH_COMMON=y -CONFIG_ATH_CARDS=y +CONFIG_WLAN_VENDOR_ATH=y # CONFIG_ATH_DEBUG is not set CONFIG_ATH5K=y # CONFIG_ATH5K_DEBUG is not set -# CONFIG_ATH5K_TRACER is not set CONFIG_ATH5K_PCI=y CONFIG_ATH9K_HW=y CONFIG_ATH9K_COMMON=y @@ -1933,22 +2403,29 @@ CONFIG_ATH9K_PCI=y CONFIG_ATH9K_RFKILL=y # CONFIG_ATH9K_CHANNEL_CONTEXT is not set CONFIG_ATH9K_PCOEM=y +# CONFIG_ATH9K_PCI_NO_EEPROM is not set # CONFIG_ATH9K_HTC is not set +# CONFIG_ATH9K_HWRNG is not set # CONFIG_CARL9170 is not set CONFIG_ATH6KL=y # CONFIG_ATH6KL_SDIO is not set CONFIG_ATH6KL_USB=y # CONFIG_ATH6KL_DEBUG is not set -# CONFIG_ATH6KL_TRACING is not set CONFIG_AR5523=y # CONFIG_WIL6210 is not set CONFIG_ATH10K=y +CONFIG_ATH10K_CE=y # CONFIG_ATH10K_PCI is not set +# CONFIG_ATH10K_SDIO is not set +# CONFIG_ATH10K_USB is not set # CONFIG_ATH10K_DEBUG is not set # CONFIG_ATH10K_DEBUGFS is not set -# CONFIG_ATH10K_TRACING is not set CONFIG_WCN36XX=y # CONFIG_WCN36XX_DEBUGFS is not set +CONFIG_WLAN_VENDOR_ATMEL=y +# CONFIG_ATMEL is not set +CONFIG_AT76C50X_USB=y +CONFIG_WLAN_VENDOR_BROADCOM=y CONFIG_B43=y CONFIG_B43_BCMA=y CONFIG_B43_SSB=y @@ -1978,12 +2455,19 @@ CONFIG_BRCMFMAC_USB=y CONFIG_BRCMFMAC_PCIE=y # CONFIG_BRCM_TRACING is not set # CONFIG_BRCMDBG is not set -# CONFIG_HOSTAP is not set +CONFIG_WLAN_VENDOR_CISCO=y +# CONFIG_AIRO_CS is not set +CONFIG_WLAN_VENDOR_INTEL=y # CONFIG_IPW2100 is not set # CONFIG_IPW2200 is not set -# CONFIG_IWLWIFI is not set # CONFIG_IWL4965 is not set # CONFIG_IWL3945 is not set +# CONFIG_IWLWIFI is not set +CONFIG_WLAN_VENDOR_INTERSIL=y +# CONFIG_HOSTAP is not set +# CONFIG_HERMES is not set +# CONFIG_P54_COMMON is not set +CONFIG_WLAN_VENDOR_MARVELL=y CONFIG_LIBERTAS=y CONFIG_LIBERTAS_USB=y # CONFIG_LIBERTAS_CS is not set @@ -1991,8 +2475,34 @@ CONFIG_LIBERTAS_USB=y # CONFIG_LIBERTAS_SPI is not set # CONFIG_LIBERTAS_DEBUG is not set # CONFIG_LIBERTAS_MESH is not set -# CONFIG_HERMES is not set -# CONFIG_P54_COMMON is not set +CONFIG_LIBERTAS_THINFIRM=y +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +# CONFIG_LIBERTAS_THINFIRM_USB is not set +CONFIG_MWIFIEX=y +CONFIG_MWIFIEX_SDIO=y +# CONFIG_MWIFIEX_PCIE is not set +CONFIG_MWIFIEX_USB=y +# CONFIG_MWL8K is not set +CONFIG_WLAN_VENDOR_MEDIATEK=y +CONFIG_MT7601U=y +# CONFIG_MT76x0U is not set +# CONFIG_MT76x0E is not set +# CONFIG_MT76x2E is not set +# CONFIG_MT76x2U is not set +# CONFIG_MT7603E is not set +# CONFIG_MT7615E is not set +# CONFIG_MT7663U is not set +# CONFIG_MT7663S is not set +# CONFIG_MT7915E is not set +# CONFIG_MT7921E is not set +# CONFIG_MT7921S is not set +# CONFIG_MT7921U is not set +CONFIG_WLAN_VENDOR_MICROCHIP=y +# CONFIG_WILC1000_SDIO is not set +# CONFIG_WILC1000_SPI is not set +CONFIG_WLAN_VENDOR_PURELIFI=y +# CONFIG_PLFXLC is not set +CONFIG_WLAN_VENDOR_RALINK=y CONFIG_RT2X00=y # CONFIG_RT2400PCI is not set # CONFIG_RT2500PCI is not set @@ -2015,14 +2525,10 @@ CONFIG_RT2X00_LIB_CRYPTO=y CONFIG_RT2X00_LIB_LEDS=y # CONFIG_RT2X00_LIB_DEBUGFS is not set # CONFIG_RT2X00_DEBUG is not set -CONFIG_WL_MEDIATEK=y -CONFIG_MT7601U=y -# CONFIG_MT76x0U is not set -# CONFIG_MT76x0E is not set -# CONFIG_MT76x2E is not set -# CONFIG_MT76x2U is not set -# CONFIG_MT7603E is not set CONFIG_WLAN_VENDOR_REALTEK=y +CONFIG_RTL8180=m +CONFIG_RTL8187=y +CONFIG_RTL8187_LEDS=y CONFIG_RTL_CARDS=y CONFIG_RTL8192CE=m CONFIG_RTL8192SE=m @@ -2043,149 +2549,43 @@ CONFIG_RTLBTCOEXIST=m CONFIG_RTL8XXXU=y CONFIG_RTL8XXXU_UNTESTED=y # CONFIG_RTW88 is not set -# CONFIG_RTL8812AU is not set -# CONFIG_RTL8188EU is not set -CONFIG_RTL8188FU=m -CONFIG_RTL8192DU=m -CONFIG_RTL8723AU=m -CONFIG_RTL8723BU=m -# CONFIG_RTL8821CU is not set -CONFIG_WL_ROCKCHIP=y -# CONFIG_WIFI_BUILD_MODULE is not set -CONFIG_WIFI_LOAD_DRIVER_WHEN_KERNEL_BOOTUP=y -# CONFIG_WIFI_GENERATE_RANDOM_MAC_ADDR is not set -# CONFIG_BCMDHD is not set -# CONFIG_CYW_BCMDHD is not set -# CONFIG_ESP8089 is not set -CONFIG_MVL88W8977=m -CONFIG_RTL8189ES=m -CONFIG_RTL8189FS=m -CONFIG_RTL8723BS=m -CONFIG_RTL8723CS=m -CONFIG_RTL8723DS=m -CONFIG_RTL8822BE=m -# CONFIG_RTL8822BS is not set - -# -# SouthSV 6XXX WLAN support -# -# CONFIG_SSV6051 is not set -# CONFIG_WL_TI is not set +# CONFIG_RTW89 is not set +CONFIG_WLAN_VENDOR_RSI=y +# CONFIG_RSI_91X is not set +CONFIG_WLAN_VENDOR_SILABS=y +# CONFIG_WFX is not set +CONFIG_WLAN_VENDOR_ST=y +# CONFIG_CW1200 is not set +CONFIG_WLAN_VENDOR_TI=y +# CONFIG_WL1251 is not set +# CONFIG_WL12XX is not set +# CONFIG_WL18XX is not set +# CONFIG_WLCORE is not set +CONFIG_WLAN_VENDOR_ZYDAS=y +# CONFIG_USB_ZD1201 is not set CONFIG_ZD1211RW=y # CONFIG_ZD1211RW_DEBUG is not set -CONFIG_MWIFIEX=y -CONFIG_MWIFIEX_SDIO=y -# CONFIG_MWIFIEX_PCIE is not set -CONFIG_MWIFIEX_USB=y -# CONFIG_CW1200 is not set -# CONFIG_RSI_91X is not set - -# -# Enable WiMAX (Networking options) to see the WiMAX drivers -# +CONFIG_WLAN_VENDOR_QUANTENNA=y +# CONFIG_QTNFMAC_PCIE is not set +# CONFIG_PCMCIA_RAYCS is not set +# CONFIG_PCMCIA_WL3501 is not set +# CONFIG_MAC80211_HWSIM is not set +CONFIG_USB_NET_RNDIS_WLAN=y +# CONFIG_VIRT_WIFI is not set # CONFIG_WAN is not set + +# +# Wireless WAN +# +# CONFIG_WWAN is not set +# end of Wireless WAN + # CONFIG_VMXNET3 is not set -# CONFIG_FUJITSU_ES is not set -# CONFIG_LTE is not set +# CONFIG_NETDEVSIM is not set +# CONFIG_NET_FAILOVER is not set CONFIG_ISDN=y -CONFIG_ISDN_I4L=y -# CONFIG_ISDN_PPP is not set -# CONFIG_ISDN_AUDIO is not set - -# -# ISDN feature submodules -# -# CONFIG_ISDN_DIVERSION is not set - -# -# ISDN4Linux hardware drivers -# - -# -# Passive cards -# -CONFIG_ISDN_DRV_HISAX=y - -# -# D-channel protocol features -# -CONFIG_HISAX_EURO=y -CONFIG_DE_AOC=y -# CONFIG_HISAX_NO_SENDCOMPLETE is not set -# CONFIG_HISAX_NO_LLC is not set -# CONFIG_HISAX_NO_KEYPAD is not set -CONFIG_HISAX_1TR6=y -CONFIG_HISAX_NI1=y -CONFIG_HISAX_MAX_CARDS=8 - -# -# HiSax supported cards -# -CONFIG_HISAX_16_3=y -CONFIG_HISAX_TELESPCI=y -CONFIG_HISAX_S0BOX=y -CONFIG_HISAX_FRITZPCI=y -CONFIG_HISAX_AVM_A1_PCMCIA=y -CONFIG_HISAX_ELSA=y -CONFIG_HISAX_DIEHLDIVA=y -CONFIG_HISAX_SEDLBAUER=y -CONFIG_HISAX_NICCY=y -CONFIG_HISAX_BKM_A4T=y -CONFIG_HISAX_SCT_QUADRO=y -CONFIG_HISAX_GAZEL=y -CONFIG_HISAX_HFC_PCI=y -CONFIG_HISAX_W6692=y -CONFIG_HISAX_HFC_SX=y -CONFIG_HISAX_DEBUG=y - -# -# HiSax PCMCIA card service modules -# -CONFIG_HISAX_SEDLBAUER_CS=y -CONFIG_HISAX_ELSA_CS=y -CONFIG_HISAX_AVM_A1_CS=y -CONFIG_HISAX_TELES_CS=y - -# -# HiSax sub driver modules -# -CONFIG_HISAX_ST5481=y -CONFIG_HISAX_HFCUSB=y -CONFIG_HISAX_HFC4S8S=y -CONFIG_HISAX_FRITZ_PCIPNP=y - -# -# Active cards -# -# CONFIG_ISDN_CAPI is not set -# CONFIG_ISDN_DRV_GIGASET is not set - -# -# Passive cards -# - -# -# D-channel protocol features -# - -# -# HiSax supported cards -# - -# -# HiSax PCMCIA card service modules -# - -# -# HiSax sub driver modules -# -# CONFIG_HYSDN is not set +CONFIG_ISDN_CAPI=y # CONFIG_MISDN is not set -CONFIG_ISDN_HDLC=y -CONFIG_NVM=y -# CONFIG_NVM_DEBUG is not set -# CONFIG_NVM_GENNVM is not set -# CONFIG_NVM_RRPC is not set # # Input device support @@ -2204,9 +2604,10 @@ CONFIG_INPUT_MATRIXKMAP=y CONFIG_INPUT_JOYDEV=y CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set -# CONFIG_INPUT_KEYRESET is not set -# CONFIG_INPUT_KEYCOMBO is not set +# +# Input Device Drivers +# # # Input Device Drivers # @@ -2214,7 +2615,7 @@ CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_ADC=y # CONFIG_KEYBOARD_ADP5588 is not set # CONFIG_KEYBOARD_ADP5589 is not set -# CONFIG_KEYBOARD_ATKBD is not set +CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_QT1070 is not set # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_LKKBD is not set @@ -2249,12 +2650,13 @@ CONFIG_MOUSE_ELAN_I2C=y CONFIG_MOUSE_ELAN_I2C_I2C=y # CONFIG_MOUSE_ELAN_I2C_SMBUS is not set # CONFIG_MOUSE_VSXXXAA is not set -# CONFIG_MOUSE_GPIO is not set +CONFIG_MOUSE_GPIO=y # CONFIG_MOUSE_SYNAPTICS_I2C is not set # CONFIG_MOUSE_SYNAPTICS_USB is not set CONFIG_INPUT_JOYSTICK=y CONFIG_JOYSTICK_ANALOG=y CONFIG_JOYSTICK_A3D=y +CONFIG_JOYSTICK_ADC=y CONFIG_JOYSTICK_ADI=y CONFIG_JOYSTICK_COBRA=y CONFIG_JOYSTICK_GF2K=y @@ -2279,25 +2681,32 @@ CONFIG_JOYSTICK_JOYDUMP=y CONFIG_JOYSTICK_XPAD=y CONFIG_JOYSTICK_XPAD_FF=y # CONFIG_JOYSTICK_XPAD_LEDS is not set +# CONFIG_JOYSTICK_PSXPAD_SPI is not set +# CONFIG_JOYSTICK_PXRC is not set +# CONFIG_JOYSTICK_QWIIC is not set +# CONFIG_JOYSTICK_FSIA6B is not set CONFIG_JOYSTICK_SINGLEADCJOY=y +# CONFIG_JOYSTICK_SENSEHAT is not set CONFIG_INPUT_TABLET=y # CONFIG_TABLET_USB_ACECAD is not set # CONFIG_TABLET_USB_AIPTEK is not set -# CONFIG_TABLET_USB_GTCO is not set # CONFIG_TABLET_USB_HANWANG is not set # CONFIG_TABLET_USB_KBTAB is not set +# CONFIG_TABLET_USB_PEGASUS is not set # CONFIG_TABLET_SERIAL_WACOM4 is not set CONFIG_INPUT_TOUCHSCREEN=y -CONFIG_TOUCHSCREEN_PROPERTIES=y # CONFIG_TOUCHSCREEN_ADS7846 is not set # CONFIG_TOUCHSCREEN_AD7877 is not set # CONFIG_TOUCHSCREEN_AD7879 is not set +# CONFIG_TOUCHSCREEN_ADC is not set # CONFIG_TOUCHSCREEN_AR1021_I2C is not set CONFIG_TOUCHSCREEN_ATMEL_MXT=y +# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set # CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set # CONFIG_TOUCHSCREEN_BU21013 is not set +# CONFIG_TOUCHSCREEN_BU21029 is not set # CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set -# CONFIG_TOUCHSCREEN_CY8C40XX is not set +# CONFIG_TOUCHSCREEN_CY8CTMA140 is not set # CONFIG_TOUCHSCREEN_CY8CTMG110 is not set # CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set # CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set @@ -2305,20 +2714,17 @@ CONFIG_TOUCHSCREEN_ATMEL_MXT=y # CONFIG_TOUCHSCREEN_HAMPSHIRE is not set # CONFIG_TOUCHSCREEN_EETI is not set # CONFIG_TOUCHSCREEN_EGALAX is not set -# CONFIG_TOUCHSCREEN_FT6236 is not set +# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set +# CONFIG_TOUCHSCREEN_EXC3000 is not set # CONFIG_TOUCHSCREEN_FUJITSU is not set -# CONFIG_TOUCHSCREEN_GOODIX is not set -# CONFIG_TOUCHSCREEN_GSLX6801 is not set -# CONFIG_TOUCHSCREEN_GSLX680A is not set -# CONFIG_TOUCHSCREEN_GSLX680_D708 is not set -# CONFIG_TOUCHSCREEN_GSLX680_PAD is not set -# CONFIG_TOUCHSCREEN_GSLX680_VR is not set -# CONFIG_TOUCHSCREEN_GSLX680_FIREFLY is not set -# CONFIG_TOUCHSCREEN_GSL3673 is not set -# CONFIG_TOUCHSCREEN_GSL3673_800X1280 is not set -# CONFIG_TOUCHSCREEN_GT9XX is not set +CONFIG_TOUCHSCREEN_GOODIX=y +# CONFIG_TOUCHSCREEN_HIDEEP is not set +# CONFIG_TOUCHSCREEN_HYCON_HY46XX is not set # CONFIG_TOUCHSCREEN_ILI210X is not set +# CONFIG_TOUCHSCREEN_ILITEK is not set +# CONFIG_TOUCHSCREEN_S6SY761 is not set # CONFIG_TOUCHSCREEN_GUNZE is not set +# CONFIG_TOUCHSCREEN_EKTF2127 is not set # CONFIG_TOUCHSCREEN_ELAN is not set # CONFIG_TOUCHSCREEN_ELO is not set # CONFIG_TOUCHSCREEN_WACOM_W8001 is not set @@ -2326,7 +2732,10 @@ CONFIG_TOUCHSCREEN_ATMEL_MXT=y # CONFIG_TOUCHSCREEN_MAX11801 is not set # CONFIG_TOUCHSCREEN_MCS5000 is not set # CONFIG_TOUCHSCREEN_MMS114 is not set +# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set +# CONFIG_TOUCHSCREEN_MSG2638 is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set +# CONFIG_TOUCHSCREEN_IMAGIS is not set # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_MK712 is not set @@ -2360,101 +2769,66 @@ CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y # CONFIG_TOUCHSCREEN_TSC2004 is not set # CONFIG_TOUCHSCREEN_TSC2005 is not set # CONFIG_TOUCHSCREEN_TSC2007 is not set +# CONFIG_TOUCHSCREEN_RM_TS is not set +# CONFIG_TOUCHSCREEN_SILEAD is not set +# CONFIG_TOUCHSCREEN_SIS_I2C is not set # CONFIG_TOUCHSCREEN_ST1232 is not set +# CONFIG_TOUCHSCREEN_STMFTS is not set # CONFIG_TOUCHSCREEN_SUR40 is not set +# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set # CONFIG_TOUCHSCREEN_SX8654 is not set # CONFIG_TOUCHSCREEN_TPS6507X is not set +# CONFIG_TOUCHSCREEN_ZET6223 is not set # CONFIG_TOUCHSCREEN_ZFORCE is not set # CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set -# CONFIG_TOUCHSCREEN_VTL_CT36X is not set -# CONFIG_TOUCHSCREEN_GT1X is not set -# CONFIG_TOUCHSCREEN_ROCKPI_FT5406 is not set -# CONFIG_TOUCHSCREEN_CST1XXX is not set -# CONFIG_TOUCHSCREEN_HYNITRON_TS is not set -CONFIG_ROCKCHIP_REMOTECTL=y -CONFIG_ROCKCHIP_REMOTECTL_PWM=y - -# -# handle all sensors -# -CONFIG_SENSOR_DEVICE=y -# CONFIG_ANGLE_DEVICE is not set -CONFIG_GSENSOR_DEVICE=y -CONFIG_GS_MMA8452=y -# CONFIG_STK8BAXX_ACC is not set -CONFIG_MPU6880_ACC=y -CONFIG_MPU6500_ACC=y -# CONFIG_GS_KXTIK is not set -# CONFIG_GS_KXTJ9 is not set -CONFIG_GS_LIS3DH=y -CONFIG_GS_MMA7660=y -# CONFIG_GS_MC3230 is not set -# CONFIG_GS_MXC6225 is not set -# CONFIG_GS_MXC6655XA is not set -# CONFIG_GS_DMT10 is not set -CONFIG_GS_LSM303D=y -# CONFIG_GS_BMA023 is not set -CONFIG_LSM330_ACC=y -# CONFIG_BMA2XX_ACC is not set -CONFIG_COMPASS_DEVICE=y -CONFIG_COMPASS_AK8975=y -CONFIG_COMPASS_AK8963=y -# CONFIG_COMPASS_AK09911 is not set -# CONFIG_COMPASS_MMC328X is not set -CONFIG_GYROSCOPE_DEVICE=y -CONFIG_GYRO_L3G4200D=y -# CONFIG_GYRO_K3G is not set -CONFIG_GYRO_L3G20D=y -CONFIG_GYRO_EWTSA=y -# CONFIG_GYRO_MPU6500 is not set -CONFIG_GYRO_MPU6880=y -CONFIG_GYRO_LSM330=y -CONFIG_LIGHT_DEVICE=y -CONFIG_LS_CM3217=y -CONFIG_LS_CM3218=y -# CONFIG_LS_CM3232 is not set -# CONFIG_LS_AL3006 is not set -# CONFIG_LS_STK3171 is not set -# CONFIG_LS_ISL29023 is not set -# CONFIG_LS_AP321XX is not set -# CONFIG_LS_US5152 is not set -# CONFIG_LS_STK3410 is not set -# CONFIG_PROXIMITY_DEVICE is not set -# CONFIG_TEMPERATURE_DEVICE is not set -# CONFIG_PRESSURE_DEVICE is not set -CONFIG_HALL_DEVICE=y -# CONFIG_HS_OCH165T is not set -CONFIG_HS_MH248=y +# CONFIG_TOUCHSCREEN_IQS5XX is not set +# CONFIG_TOUCHSCREEN_ZINITIX is not set CONFIG_INPUT_MISC=y # CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_ATMEL_CAPTOUCH is not set # CONFIG_INPUT_BMA150 is not set # CONFIG_INPUT_E3X0_BUTTON is not set # CONFIG_INPUT_MMA8450 is not set -# CONFIG_INPUT_MPU3050 is not set -# CONFIG_INPUT_GP2A is not set # CONFIG_INPUT_GPIO_BEEPER is not set -# CONFIG_INPUT_GPIO_TILT_POLLED is not set +# CONFIG_INPUT_GPIO_DECODER is not set +# CONFIG_INPUT_GPIO_VIBRA is not set # CONFIG_INPUT_ATI_REMOTE2 is not set -# CONFIG_INPUT_KEYCHORD is not set # CONFIG_INPUT_KEYSPAN_REMOTE is not set # CONFIG_INPUT_KXTJ9 is not set # CONFIG_INPUT_POWERMATE is not set # CONFIG_INPUT_YEALINK is not set # CONFIG_INPUT_CM109 is not set # CONFIG_INPUT_REGULATOR_HAPTIC is not set -CONFIG_INPUT_RK8XX_PWRKEY=y CONFIG_INPUT_UINPUT=y -CONFIG_INPUT_GPIO=y # CONFIG_INPUT_PCF8574 is not set # CONFIG_INPUT_PWM_BEEPER is not set +CONFIG_INPUT_PWM_VIBRA=y +CONFIG_INPUT_RK805_PWRKEY=y # CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set +# CONFIG_INPUT_DA7280_HAPTICS is not set # CONFIG_INPUT_ADXL34X is not set # CONFIG_INPUT_IMS_PCU is not set +# CONFIG_INPUT_IQS269A is not set +# CONFIG_INPUT_IQS626A is not set +# CONFIG_INPUT_IQS7222 is not set # CONFIG_INPUT_CMA3000 is not set -# CONFIG_INPUT_SOC_BUTTON_ARRAY is not set # CONFIG_INPUT_DRV260X_HAPTICS is not set # CONFIG_INPUT_DRV2665_HAPTICS is not set # CONFIG_INPUT_DRV2667_HAPTICS is not set +CONFIG_RMI4_CORE=y +# CONFIG_RMI4_I2C is not set +# CONFIG_RMI4_SPI is not set +# CONFIG_RMI4_SMB is not set +CONFIG_RMI4_F03=y +CONFIG_RMI4_F03_SERIO=y +CONFIG_RMI4_2D_SENSOR=y +CONFIG_RMI4_F11=y +CONFIG_RMI4_F12=y +CONFIG_RMI4_F30=y +# CONFIG_RMI4_F34 is not set +# CONFIG_RMI4_F3A is not set +# CONFIG_RMI4_F54 is not set +# CONFIG_RMI4_F55 is not set # # Hardware I/O ports @@ -2469,33 +2843,29 @@ CONFIG_SERIO_SERPORT=m # CONFIG_SERIO_PS2MULT is not set # CONFIG_SERIO_ARC_PS2 is not set # CONFIG_SERIO_APBPS2 is not set +# CONFIG_SERIO_GPIO_PS2 is not set # CONFIG_USERIO is not set CONFIG_GAMEPORT=y # CONFIG_GAMEPORT_NS558 is not set # CONFIG_GAMEPORT_L4 is not set # CONFIG_GAMEPORT_EMU10K1 is not set # CONFIG_GAMEPORT_FM801 is not set +# end of Hardware I/O ports +# end of Input device support # # Character devices # CONFIG_TTY=y CONFIG_VT=y -CONFIG_CONSOLE_TRANSLATIONS=y +# CONFIG_CONSOLE_TRANSLATIONS is not set CONFIG_VT_CONSOLE=y CONFIG_VT_CONSOLE_SLEEP=y CONFIG_HW_CONSOLE=y CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_UNIX98_PTYS=y -CONFIG_DEVPTS_MULTIPLE_INSTANCES=y # CONFIG_LEGACY_PTYS is not set -# CONFIG_SERIAL_NONSTANDARD is not set -# CONFIG_NOZOMI is not set -# CONFIG_N_GSM is not set -# CONFIG_TRACE_SINK is not set CONFIG_LDISC_AUTOLOAD=y -CONFIG_DEVMEM=y -# CONFIG_DEVKMEM is not set # # Serial drivers @@ -2503,26 +2873,33 @@ CONFIG_DEVMEM=y CONFIG_SERIAL_EARLYCON=y CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y -CONFIG_SERIAL_8250_PNP=y +CONFIG_SERIAL_8250_16550A_VARIANTS=y +# CONFIG_SERIAL_8250_FINTEK is not set CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_DMA=y # CONFIG_SERIAL_8250_PCI is not set # CONFIG_SERIAL_8250_CS is not set CONFIG_SERIAL_8250_NR_UARTS=5 CONFIG_SERIAL_8250_RUNTIME_UARTS=5 -# CONFIG_SERIAL_8250_EXTENDED is not set +CONFIG_SERIAL_8250_EXTENDED=y +# CONFIG_SERIAL_8250_MANY_PORTS is not set +# CONFIG_SERIAL_8250_ASPEED_VUART is not set +CONFIG_SERIAL_8250_SHARE_IRQ=y +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +# CONFIG_SERIAL_8250_RSA is not set +CONFIG_SERIAL_8250_DWLIB=y CONFIG_SERIAL_8250_FSL=y CONFIG_SERIAL_8250_DW=y # CONFIG_SERIAL_8250_RT288X is not set -# CONFIG_SERIAL_8250_FINTEK is not set -# CONFIG_SERIAL_8250_INGENIC is not set -# CONFIG_SERIAL_8250_MID is not set +CONFIG_SERIAL_8250_PERICOM=y +CONFIG_SERIAL_OF_PLATFORM=y # # Non-8250 serial port support # # CONFIG_SERIAL_AMBA_PL010 is not set -# CONFIG_SERIAL_AMBA_PL011 is not set +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y # CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST is not set # CONFIG_SERIAL_MAX3100 is not set # CONFIG_SERIAL_MAX310X is not set @@ -2530,25 +2907,38 @@ CONFIG_SERIAL_8250_DW=y CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_SERIAL_JSM is not set -CONFIG_SERIAL_OF_PLATFORM=y +# CONFIG_SERIAL_SIFIVE is not set # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SC16IS7XX is not set # CONFIG_SERIAL_ALTERA_JTAGUART is not set # CONFIG_SERIAL_ALTERA_UART is not set -# CONFIG_SERIAL_IFX6X60 is not set # CONFIG_SERIAL_XILINX_PS_UART is not set # CONFIG_SERIAL_ARC is not set # CONFIG_SERIAL_RP2 is not set # CONFIG_SERIAL_FSL_LPUART is not set +# CONFIG_SERIAL_FSL_LINFLEXUART is not set # CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set -# CONFIG_SERIAL_DEV_BUS is not set -# CONFIG_TTY_PRINTK is not set +# CONFIG_SERIAL_SPRD is not set +# end of Serial drivers + +CONFIG_SERIAL_MCTRL_GPIO=y +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_N_GSM is not set +# CONFIG_NOZOMI is not set +# CONFIG_NULL_TTY is not set # CONFIG_HVC_DCC is not set +CONFIG_SERIAL_DEV_BUS=y +CONFIG_SERIAL_DEV_CTRL_TTYPORT=y +# CONFIG_TTY_PRINTK is not set +# CONFIG_VIRTIO_CONSOLE is not set # CONFIG_IPMI_HANDLER is not set CONFIG_HW_RANDOM=y # CONFIG_HW_RANDOM_TIMERIOMEM is not set -CONFIG_HW_RANDOM_TPM=y -# CONFIG_HW_RANDOM_ROCKCHIP is not set +# CONFIG_HW_RANDOM_BA431 is not set +# CONFIG_HW_RANDOM_CCTRNG is not set +# CONFIG_HW_RANDOM_XIPHERA is not set +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y +CONFIG_HW_RANDOM_CN10K=y # CONFIG_APPLICOM is not set # @@ -2557,26 +2947,35 @@ CONFIG_HW_RANDOM_TPM=y # CONFIG_SYNCLINK_CS is not set # CONFIG_CARDMAN_4000 is not set # CONFIG_CARDMAN_4040 is not set +# CONFIG_SCR24X is not set # CONFIG_IPWIRELESS is not set -# CONFIG_RAW_DRIVER is not set -# CONFIG_HPET is not set +# end of PCMCIA character devices + +CONFIG_DEVMEM=y +CONFIG_DEVPORT=y CONFIG_TCG_TPM=y +CONFIG_HW_RANDOM_TPM=y +# CONFIG_TCG_TIS is not set +# CONFIG_TCG_TIS_SPI is not set +# CONFIG_TCG_TIS_I2C_CR50 is not set # CONFIG_TCG_TIS_I2C_ATMEL is not set CONFIG_TCG_TIS_I2C_INFINEON=y # CONFIG_TCG_TIS_I2C_NUVOTON is not set # CONFIG_TCG_ATMEL is not set -# CONFIG_TCG_INFINEON is not set -# CONFIG_TCG_TIS_ST33ZP24 is not set -CONFIG_DEVPORT=y +# CONFIG_TCG_VTPM_PROXY is not set +# CONFIG_TCG_TIS_ST33ZP24_I2C is not set +# CONFIG_TCG_TIS_ST33ZP24_SPI is not set # CONFIG_XILLYBUS is not set +# CONFIG_XILLYUSB is not set +# CONFIG_RANDOM_TRUST_BOOTLOADER is not set +# end of Character devices # # I2C support # CONFIG_I2C=y -CONFIG_ACPI_I2C_OPREGION=y CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_COMPAT=y +# CONFIG_I2C_COMPAT is not set CONFIG_I2C_CHARDEV=y CONFIG_I2C_MUX=y @@ -2585,10 +2984,16 @@ CONFIG_I2C_MUX=y # # CONFIG_I2C_ARB_GPIO_CHALLENGE is not set # CONFIG_I2C_MUX_GPIO is not set +# CONFIG_I2C_MUX_GPMUX is not set +# CONFIG_I2C_MUX_LTC4306 is not set # CONFIG_I2C_MUX_PCA9541 is not set # CONFIG_I2C_MUX_PCA954x is not set # CONFIG_I2C_MUX_PINCTRL is not set # CONFIG_I2C_MUX_REG is not set +# CONFIG_I2C_DEMUX_PINCTRL is not set +# CONFIG_I2C_MUX_MLXCPLD is not set +# end of Multiplexer I2C Chip support + CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_ALGOBIT=y @@ -2608,39 +3013,37 @@ CONFIG_I2C_ALGOBIT=y # CONFIG_I2C_ISCH is not set # CONFIG_I2C_PIIX4 is not set # CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_NVIDIA_GPU is not set # CONFIG_I2C_SIS5595 is not set # CONFIG_I2C_SIS630 is not set # CONFIG_I2C_SIS96X is not set # CONFIG_I2C_VIA is not set # CONFIG_I2C_VIAPRO is not set -# -# ACPI drivers -# -# CONFIG_I2C_SCMI is not set - # # I2C system bus drivers (mostly embedded / system-on-chip) # # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set -# CONFIG_I2C_DESIGNWARE_PLATFORM is not set +CONFIG_I2C_DESIGNWARE_CORE=y +# CONFIG_I2C_DESIGNWARE_SLAVE is not set +CONFIG_I2C_DESIGNWARE_PLATFORM=y # CONFIG_I2C_DESIGNWARE_PCI is not set # CONFIG_I2C_EMEV2 is not set # CONFIG_I2C_GPIO is not set # CONFIG_I2C_NOMADIK is not set # CONFIG_I2C_OCORES is not set # CONFIG_I2C_PCA_PLATFORM is not set -# CONFIG_I2C_PXA_PCI is not set CONFIG_I2C_RK3X=y # CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_THUNDERX is not set # CONFIG_I2C_XILINX is not set # # External I2C/SMBus adapter drivers # # CONFIG_I2C_DIOLAN_U2C is not set -# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_CP2615 is not set # CONFIG_I2C_ROBOTFUZZ_OSIF is not set # CONFIG_I2C_TAOS_EVM is not set # CONFIG_I2C_TINY_USB is not set @@ -2648,47 +3051,63 @@ CONFIG_I2C_RK3X=y # # Other I2C/SMBus bus drivers # -CONFIG_I2C_CROS_EC_TUNNEL=y +# CONFIG_I2C_VIRTIO is not set +# end of I2C Hardware Bus support + # CONFIG_I2C_STUB is not set # CONFIG_I2C_SLAVE is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set +# end of I2C support + +# CONFIG_I3C is not set CONFIG_SPI=y # CONFIG_SPI_DEBUG is not set CONFIG_SPI_MASTER=y +# CONFIG_SPI_MEM is not set # # SPI Master Controller Drivers # # CONFIG_SPI_ALTERA is not set +# CONFIG_SPI_AXI_SPI_ENGINE is not set CONFIG_SPI_BITBANG=y # CONFIG_SPI_CADENCE is not set +# CONFIG_SPI_CADENCE_QUADSPI is not set +# CONFIG_SPI_DESIGNWARE is not set +# CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_GPIO is not set # CONFIG_SPI_FSL_SPI is not set # CONFIG_SPI_OC_TINY is not set # CONFIG_SPI_PL022 is not set # CONFIG_SPI_PXA2XX is not set -# CONFIG_SPI_PXA2XX_PCI is not set CONFIG_SPI_ROCKCHIP=y +# CONFIG_SPI_ROCKCHIP_SFC is not set # CONFIG_SPI_SC18IS602 is not set +# CONFIG_SPI_SIFIVE is not set +# CONFIG_SPI_MXIC is not set +# CONFIG_SPI_THUNDERX is not set # CONFIG_SPI_XCOMM is not set # CONFIG_SPI_XILINX is not set # CONFIG_SPI_ZYNQMP_GQSPI is not set -# CONFIG_SPI_DESIGNWARE is not set +# CONFIG_SPI_AMD is not set + +# +# SPI Multiplexer support +# +# CONFIG_SPI_MUX is not set # # SPI Protocol Masters # CONFIG_SPI_SPIDEV=y +# CONFIG_SPI_LOOPBACK_TEST is not set # CONFIG_SPI_TLE62X0 is not set +# CONFIG_SPI_SLAVE is not set CONFIG_SPI_DYNAMIC=y # CONFIG_SPMI is not set # CONFIG_HSI is not set - -# -# PPS support -# CONFIG_PPS=y # CONFIG_PPS_DEBUG is not set @@ -2707,35 +3126,45 @@ CONFIG_PPS=y # PTP clock support # CONFIG_PTP_1588_CLOCK=y +CONFIG_PTP_1588_CLOCK_OPTIONAL=y # # Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. # -CONFIG_PINCTRL=y +CONFIG_PTP_1588_CLOCK_KVM=y +# CONFIG_PTP_1588_CLOCK_IDT82P33 is not set +# CONFIG_PTP_1588_CLOCK_IDTCM is not set +# end of PTP clock support -# -# Pin controllers -# +CONFIG_PINCTRL=y +CONFIG_GENERIC_PINCTRL_GROUPS=y CONFIG_PINMUX=y +CONFIG_GENERIC_PINMUX_FUNCTIONS=y CONFIG_PINCONF=y CONFIG_GENERIC_PINCONF=y # CONFIG_DEBUG_PINCTRL is not set -# CONFIG_PINCTRL_AMD is not set -CONFIG_PINCTRL_ROCKCHIP=y -# CONFIG_PINCTRL_SINGLE is not set +# CONFIG_PINCTRL_MCP23S08 is not set +# CONFIG_PINCTRL_MICROCHIP_SGPIO is not set +# CONFIG_PINCTRL_OCELOT is not set CONFIG_PINCTRL_RK805=y -# CONFIG_PINCTRL_BAYTRAIL is not set -# CONFIG_PINCTRL_CHERRYVIEW is not set -# CONFIG_PINCTRL_BROXTON is not set -# CONFIG_PINCTRL_SUNRISEPOINT is not set -CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y -CONFIG_ARCH_REQUIRE_GPIOLIB=y +CONFIG_PINCTRL_ROCKCHIP=y +CONFIG_PINCTRL_SINGLE=y +# CONFIG_PINCTRL_STMFX is not set +# CONFIG_PINCTRL_SX150X is not set + +# +# Renesas pinctrl drivers +# +# end of Renesas pinctrl drivers + CONFIG_GPIOLIB=y -CONFIG_GPIO_DEVRES=y +CONFIG_GPIOLIB_FASTPATH_LIMIT=512 CONFIG_OF_GPIO=y -CONFIG_GPIO_ACPI=y +CONFIG_GPIOLIB_IRQCHIP=y CONFIG_DEBUG_GPIO=y CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_CDEV=y +CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_GENERIC=y # @@ -2743,67 +3172,107 @@ CONFIG_GPIO_GENERIC=y # # CONFIG_GPIO_74XX_MMIO is not set # CONFIG_GPIO_ALTERA is not set -# CONFIG_GPIO_AMDPT is not set -# CONFIG_GPIO_DWAPB is not set +# CONFIG_GPIO_CADENCE is not set +CONFIG_GPIO_DWAPB=y +# CONFIG_GPIO_FTGPIO010 is not set CONFIG_GPIO_GENERIC_PLATFORM=y # CONFIG_GPIO_GRGPIO is not set +# CONFIG_GPIO_HLWD is not set +# CONFIG_GPIO_LOGICVC is not set +# CONFIG_GPIO_MB86S7X is not set # CONFIG_GPIO_PL061 is not set +CONFIG_GPIO_ROCKCHIP=y +# CONFIG_GPIO_SAMA5D2_PIOBU is not set +# CONFIG_GPIO_SIFIVE is not set # CONFIG_GPIO_SYSCON is not set -# CONFIG_GPIO_VX855 is not set # CONFIG_GPIO_XGENE is not set # CONFIG_GPIO_XILINX is not set -# CONFIG_GPIO_ZX is not set +# CONFIG_GPIO_AMD_FCH is not set +# end of Memory mapped GPIO drivers # # I2C GPIO expanders # # CONFIG_GPIO_ADP5588 is not set # CONFIG_GPIO_ADNP is not set +# CONFIG_GPIO_GW_PLD is not set # CONFIG_GPIO_MAX7300 is not set # CONFIG_GPIO_MAX732X is not set # CONFIG_GPIO_PCA953X is not set +# CONFIG_GPIO_PCA9570 is not set # CONFIG_GPIO_PCF857X is not set -# CONFIG_GPIO_SX150X is not set +# CONFIG_GPIO_TPIC2810 is not set +# end of I2C GPIO expanders # # MFD GPIO expanders # -CONFIG_GPIO_RK8XX=y # CONFIG_GPIO_TPS6586X is not set +# end of MFD GPIO expanders # # PCI GPIO expanders # -# CONFIG_GPIO_AMD8111 is not set # CONFIG_GPIO_BT8XX is not set -# CONFIG_GPIO_ML_IOH is not set +# CONFIG_GPIO_PCI_IDIO_16 is not set +# CONFIG_GPIO_PCIE_IDIO_24 is not set # CONFIG_GPIO_RDC321X is not set +# end of PCI GPIO expanders # # SPI GPIO expanders # # CONFIG_GPIO_74X164 is not set +# CONFIG_GPIO_MAX3191X is not set # CONFIG_GPIO_MAX7301 is not set # CONFIG_GPIO_MC33880 is not set - -# -# SPI or I2C GPIO expanders -# -# CONFIG_GPIO_MCP23S08 is not set +# CONFIG_GPIO_PISOSR is not set +# CONFIG_GPIO_XRA1403 is not set +# end of SPI GPIO expanders # # USB GPIO expanders # +# end of USB GPIO expanders + +# +# Virtual GPIO drivers +# +# CONFIG_GPIO_AGGREGATOR is not set +# CONFIG_GPIO_MOCKUP is not set +# CONFIG_GPIO_SIM is not set +# end of Virtual GPIO drivers + # CONFIG_W1 is not set +CONFIG_POWER_RESET=y +# CONFIG_POWER_RESET_BRCMSTB is not set +CONFIG_POWER_RESET_GPIO=y +CONFIG_POWER_RESET_GPIO_RESTART=y +# CONFIG_POWER_RESET_LTC2952 is not set +# CONFIG_POWER_RESET_REGULATOR is not set +# CONFIG_POWER_RESET_RESTART is not set +# CONFIG_POWER_RESET_XGENE is not set +CONFIG_POWER_RESET_SYSCON=y +CONFIG_POWER_RESET_SYSCON_POWEROFF=y +CONFIG_REBOOT_MODE=y +CONFIG_SYSCON_REBOOT_MODE=y +# CONFIG_NVMEM_REBOOT_MODE is not set CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set +CONFIG_POWER_SUPPLY_HWMON=y # CONFIG_PDA_POWER is not set # CONFIG_GENERIC_ADC_BATTERY is not set +# CONFIG_IP5XXX_POWER is not set # CONFIG_TEST_POWER is not set +# CONFIG_CHARGER_ADP5061 is not set +CONFIG_BATTERY_CW2015=y # CONFIG_BATTERY_DS2780 is not set # CONFIG_BATTERY_DS2781 is not set # CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_SAMSUNG_SDI is not set CONFIG_BATTERY_SBS=y +# CONFIG_CHARGER_SBS is not set +# CONFIG_MANAGER_SBS is not set # CONFIG_BATTERY_BQ27XXX is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set @@ -2812,39 +3281,28 @@ CONFIG_BATTERY_SBS=y # CONFIG_CHARGER_LP8727 is not set CONFIG_CHARGER_GPIO=y # CONFIG_CHARGER_MANAGER is not set +# CONFIG_CHARGER_LT3651 is not set +# CONFIG_CHARGER_LTC4162L is not set +# CONFIG_CHARGER_DETECTOR_MAX14656 is not set +# CONFIG_CHARGER_MAX77976 is not set # CONFIG_CHARGER_BQ2415X is not set # CONFIG_CHARGER_BQ24190 is not set # CONFIG_CHARGER_BQ24257 is not set CONFIG_CHARGER_BQ24735=y -# CONFIG_CHARGER_BQ25700 is not set +# CONFIG_CHARGER_BQ2515X is not set # CONFIG_CHARGER_BQ25890 is not set -# CONFIG_CHARGER_SMB347 is not set -# CONFIG_CHARGER_SY6982C is not set -CONFIG_CHARGER_UNIVERSAL=y -# CONFIG_BATTERY_GAUGE_LTC2941 is not set -# CONFIG_BATTERY_EC is not set -# CONFIG_BATTERY_CW2015 is not set -CONFIG_CW2015_FUEL_GAUGE=y -# CONFIG_BATTERY_RK816 is not set -CONFIG_BATTERY_RK817=y +# CONFIG_CHARGER_BQ25980 is not set +# CONFIG_CHARGER_BQ256XX is not set CONFIG_CHARGER_RK817=y -# CONFIG_BATTERY_RK818 is not set -# CONFIG_CHARGER_RK818 is not set +# CONFIG_CHARGER_SMB347 is not set +# CONFIG_BATTERY_GAUGE_LTC2941 is not set +# CONFIG_BATTERY_GOLDFISH is not set +# CONFIG_BATTERY_RT5033 is not set # CONFIG_CHARGER_RT9455 is not set -CONFIG_POWER_RESET=y -CONFIG_POWER_RESET_GPIO=y -CONFIG_POWER_RESET_GPIO_RESTART=y -# CONFIG_POWER_RESET_LTC2952 is not set -# CONFIG_POWER_RESET_RESTART is not set -# CONFIG_POWER_RESET_XGENE is not set -# CONFIG_POWER_RESET_SYSCON is not set -# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set -CONFIG_REBOOT_MODE=y -CONFIG_SYSCON_REBOOT_MODE=y -CONFIG_POWER_AVS=y -CONFIG_ROCKCHIP_IODOMAIN=y +# CONFIG_CHARGER_UCS1002 is not set +# CONFIG_CHARGER_BD99954 is not set +# CONFIG_BATTERY_UG3105 is not set CONFIG_HWMON=y -# CONFIG_HWMON_VID is not set # CONFIG_HWMON_DEBUG_CHIP is not set # @@ -2858,6 +3316,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_ADM1026 is not set # CONFIG_SENSORS_ADM1029 is not set # CONFIG_SENSORS_ADM1031 is not set +# CONFIG_SENSORS_ADM1177 is not set # CONFIG_SENSORS_ADM9240 is not set # CONFIG_SENSORS_ADT7310 is not set # CONFIG_SENSORS_ADT7410 is not set @@ -2865,14 +3324,25 @@ CONFIG_HWMON=y # CONFIG_SENSORS_ADT7462 is not set # CONFIG_SENSORS_ADT7470 is not set # CONFIG_SENSORS_ADT7475 is not set +# CONFIG_SENSORS_AHT10 is not set +# CONFIG_SENSORS_AQUACOMPUTER_D5NEXT is not set +# CONFIG_SENSORS_AS370 is not set # CONFIG_SENSORS_ASC7621 is not set +# CONFIG_SENSORS_AXI_FAN_CONTROL is not set +# CONFIG_SENSORS_ARM_SCMI is not set +# CONFIG_SENSORS_ARM_SCPI is not set +# CONFIG_SENSORS_ASPEED is not set # CONFIG_SENSORS_ATXP1 is not set +# CONFIG_SENSORS_CORSAIR_CPRO is not set +# CONFIG_SENSORS_CORSAIR_PSU is not set +# CONFIG_SENSORS_DRIVETEMP is not set # CONFIG_SENSORS_DS620 is not set # CONFIG_SENSORS_DS1621 is not set # CONFIG_SENSORS_I5K_AMB is not set # CONFIG_SENSORS_F71805F is not set # CONFIG_SENSORS_F71882FG is not set # CONFIG_SENSORS_F75375S is not set +# CONFIG_SENSORS_FTSTEUTATES is not set # CONFIG_SENSORS_GL518SM is not set # CONFIG_SENSORS_GL520SM is not set # CONFIG_SENSORS_G760A is not set @@ -2885,6 +3355,10 @@ CONFIG_HWMON=y # CONFIG_SENSORS_POWR1220 is not set # CONFIG_SENSORS_LINEAGE is not set # CONFIG_SENSORS_LTC2945 is not set +# CONFIG_SENSORS_LTC2947_I2C is not set +# CONFIG_SENSORS_LTC2947_SPI is not set +# CONFIG_SENSORS_LTC2990 is not set +# CONFIG_SENSORS_LTC2992 is not set # CONFIG_SENSORS_LTC4151 is not set # CONFIG_SENSORS_LTC4215 is not set # CONFIG_SENSORS_LTC4222 is not set @@ -2892,17 +3366,24 @@ CONFIG_HWMON=y # CONFIG_SENSORS_LTC4260 is not set # CONFIG_SENSORS_LTC4261 is not set # CONFIG_SENSORS_MAX1111 is not set +# CONFIG_SENSORS_MAX127 is not set # CONFIG_SENSORS_MAX16065 is not set # CONFIG_SENSORS_MAX1619 is not set # CONFIG_SENSORS_MAX1668 is not set # CONFIG_SENSORS_MAX197 is not set +# CONFIG_SENSORS_MAX31722 is not set +# CONFIG_SENSORS_MAX31730 is not set +# CONFIG_SENSORS_MAX6620 is not set +# CONFIG_SENSORS_MAX6621 is not set # CONFIG_SENSORS_MAX6639 is not set # CONFIG_SENSORS_MAX6642 is not set # CONFIG_SENSORS_MAX6650 is not set # CONFIG_SENSORS_MAX6697 is not set # CONFIG_SENSORS_MAX31790 is not set -# CONFIG_SENSORS_HTU21 is not set # CONFIG_SENSORS_MCP3021 is not set +# CONFIG_SENSORS_TC654 is not set +# CONFIG_SENSORS_TPS23861 is not set +# CONFIG_SENSORS_MR75203 is not set # CONFIG_SENSORS_ADCXX is not set # CONFIG_SENSORS_LM63 is not set # CONFIG_SENSORS_LM70 is not set @@ -2925,15 +3406,25 @@ CONFIG_HWMON=y # CONFIG_SENSORS_NTC_THERMISTOR is not set # CONFIG_SENSORS_NCT6683 is not set # CONFIG_SENSORS_NCT6775 is not set +# CONFIG_SENSORS_NCT6775_I2C is not set # CONFIG_SENSORS_NCT7802 is not set # CONFIG_SENSORS_NCT7904 is not set +# CONFIG_SENSORS_NPCM7XX is not set +# CONFIG_SENSORS_NZXT_KRAKEN2 is not set +# CONFIG_SENSORS_NZXT_SMART2 is not set +# CONFIG_SENSORS_OCC_P8_I2C is not set # CONFIG_SENSORS_PCF8591 is not set # CONFIG_PMBUS is not set CONFIG_SENSORS_PWM_FAN=y +# CONFIG_SENSORS_SBTSI is not set +# CONFIG_SENSORS_SBRMI is not set # CONFIG_SENSORS_SHT15 is not set # CONFIG_SENSORS_SHT21 is not set +# CONFIG_SENSORS_SHT3x is not set +# CONFIG_SENSORS_SHT4x is not set # CONFIG_SENSORS_SHTC1 is not set # CONFIG_SENSORS_SIS5595 is not set +# CONFIG_SENSORS_SY7636A is not set # CONFIG_SENSORS_DME1737 is not set # CONFIG_SENSORS_EMC1403 is not set # CONFIG_SENSORS_EMC2103 is not set @@ -2941,26 +3432,31 @@ CONFIG_SENSORS_PWM_FAN=y # CONFIG_SENSORS_SMSC47M1 is not set # CONFIG_SENSORS_SMSC47M192 is not set # CONFIG_SENSORS_SMSC47B397 is not set -# CONFIG_SENSORS_SCH56XX_COMMON is not set # CONFIG_SENSORS_SCH5627 is not set # CONFIG_SENSORS_SCH5636 is not set +# CONFIG_SENSORS_STTS751 is not set # CONFIG_SENSORS_SMM665 is not set # CONFIG_SENSORS_ADC128D818 is not set -# CONFIG_SENSORS_ADS1015 is not set # CONFIG_SENSORS_ADS7828 is not set # CONFIG_SENSORS_ADS7871 is not set # CONFIG_SENSORS_AMC6821 is not set # CONFIG_SENSORS_INA209 is not set # CONFIG_SENSORS_INA2XX is not set +# CONFIG_SENSORS_INA238 is not set +# CONFIG_SENSORS_INA3221 is not set # CONFIG_SENSORS_TC74 is not set # CONFIG_SENSORS_THMC50 is not set # CONFIG_SENSORS_TMP102 is not set # CONFIG_SENSORS_TMP103 is not set +# CONFIG_SENSORS_TMP108 is not set # CONFIG_SENSORS_TMP401 is not set # CONFIG_SENSORS_TMP421 is not set +# CONFIG_SENSORS_TMP464 is not set +# CONFIG_SENSORS_TMP513 is not set # CONFIG_SENSORS_VIA686A is not set # CONFIG_SENSORS_VT1211 is not set # CONFIG_SENSORS_VT8231 is not set +# CONFIG_SENSORS_W83773G is not set # CONFIG_SENSORS_W83781D is not set # CONFIG_SENSORS_W83791D is not set # CONFIG_SENSORS_W83792D is not set @@ -2970,12 +3466,10 @@ CONFIG_SENSORS_PWM_FAN=y # CONFIG_SENSORS_W83L786NG is not set # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set - -# -# ACPI drivers -# -# CONFIG_SENSORS_ACPI_POWER is not set CONFIG_THERMAL=y +# CONFIG_THERMAL_NETLINK is not set +# CONFIG_THERMAL_STATISTICS is not set +CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 CONFIG_THERMAL_HWMON=y CONFIG_THERMAL_OF=y CONFIG_THERMAL_WRITABLE_TRIPS=y @@ -2989,16 +3483,24 @@ CONFIG_THERMAL_GOV_STEP_WISE=y # CONFIG_THERMAL_GOV_USER_SPACE is not set CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y CONFIG_CPU_THERMAL=y -# CONFIG_CLOCK_THERMAL is not set +CONFIG_CPU_FREQ_THERMAL=y CONFIG_DEVFREQ_THERMAL=y # CONFIG_THERMAL_EMULATION is not set -# CONFIG_IMX_THERMAL is not set +# CONFIG_THERMAL_MMIO is not set CONFIG_ROCKCHIP_THERMAL=y -# CONFIG_RK_VIRTUAL_THERMAL is not set -# CONFIG_RK3368_THERMAL is not set +# CONFIG_GENERIC_ADC_THERMAL is not set CONFIG_WATCHDOG=y -# CONFIG_WATCHDOG_CORE is not set +CONFIG_WATCHDOG_CORE=y # CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y +CONFIG_WATCHDOG_OPEN_TIMEOUT=0 +# CONFIG_WATCHDOG_SYSFS is not set +# CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT is not set + +# +# Watchdog Pretimeout Governors +# +# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set # # Watchdog Device Drivers @@ -3006,13 +3508,15 @@ CONFIG_WATCHDOG=y # CONFIG_SOFT_WATCHDOG is not set # CONFIG_GPIO_WATCHDOG is not set # CONFIG_XILINX_WATCHDOG is not set +# CONFIG_ZIIRAVE_WATCHDOG is not set # CONFIG_ARM_SP805_WATCHDOG is not set +# CONFIG_ARM_SBSA_WATCHDOG is not set # CONFIG_CADENCE_WATCHDOG is not set CONFIG_DW_WATCHDOG=y # CONFIG_MAX63XX_WATCHDOG is not set +# CONFIG_ARM_SMC_WATCHDOG is not set # CONFIG_ALIM7101_WDT is not set # CONFIG_I6300ESB_WDT is not set -# CONFIG_BCM7038_WDT is not set # CONFIG_MEN_A21_WDT is not set # @@ -3026,10 +3530,6 @@ CONFIG_DW_WATCHDOG=y # # CONFIG_USBPCWATCHDOG is not set CONFIG_SSB_POSSIBLE=y - -# -# Sonics Silicon Backplane -# CONFIG_SSB=y CONFIG_SSB_SPROM=y CONFIG_SSB_BLOCKIO=y @@ -3040,17 +3540,10 @@ CONFIG_SSB_PCMCIAHOST_POSSIBLE=y # CONFIG_SSB_PCMCIAHOST is not set CONFIG_SSB_SDIOHOST_POSSIBLE=y # CONFIG_SSB_SDIOHOST is not set -# CONFIG_SSB_HOST_SOC is not set -# CONFIG_SSB_SILENT is not set -# CONFIG_SSB_DEBUG is not set CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y CONFIG_SSB_DRIVER_PCICORE=y # CONFIG_SSB_DRIVER_GPIO is not set CONFIG_BCMA_POSSIBLE=y - -# -# Broadcom specific AMBA -# CONFIG_BCMA=y CONFIG_BCMA_BLOCKIO=y CONFIG_BCMA_HOST_PCI_POSSIBLE=y @@ -3065,6 +3558,7 @@ CONFIG_BCMA_DRIVER_PCI=y # Multifunction device drivers # CONFIG_MFD_CORE=y +# CONFIG_MFD_ACT8945A is not set # CONFIG_MFD_AS3711 is not set # CONFIG_MFD_AS3722 is not set # CONFIG_PMIC_ADP5520 is not set @@ -3072,10 +3566,9 @@ CONFIG_MFD_CORE=y # CONFIG_MFD_ATMEL_FLEXCOM is not set # CONFIG_MFD_ATMEL_HLCDC is not set # CONFIG_MFD_BCM590XX is not set -# CONFIG_MFD_AXP20X is not set -CONFIG_MFD_CROS_EC=y -# CONFIG_MFD_CROS_EC_I2C is not set -CONFIG_MFD_CROS_EC_SPI=y +# CONFIG_MFD_BD9571MWV is not set +# CONFIG_MFD_AXP20X_I2C is not set +# CONFIG_MFD_MADERA is not set # CONFIG_PMIC_DA903X is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9052_I2C is not set @@ -3084,211 +3577,302 @@ CONFIG_MFD_CROS_EC_SPI=y # CONFIG_MFD_DA9063 is not set # CONFIG_MFD_DA9150 is not set # CONFIG_MFD_DLN2 is not set +# CONFIG_MFD_GATEWORKS_GSC is not set # CONFIG_MFD_MC13XXX_SPI is not set # CONFIG_MFD_MC13XXX_I2C is not set +# CONFIG_MFD_MP2629 is not set # CONFIG_MFD_HI6421_PMIC is not set # CONFIG_HTC_PASIC3 is not set # CONFIG_HTC_I2CPLD is not set # CONFIG_LPC_ICH is not set # CONFIG_LPC_SCH is not set -# CONFIG_INTEL_SOC_PMIC is not set +# CONFIG_MFD_IQS62X is not set # CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_88PM800 is not set # CONFIG_MFD_88PM805 is not set # CONFIG_MFD_88PM860X is not set # CONFIG_MFD_MAX14577 is not set +# CONFIG_MFD_MAX77620 is not set +# CONFIG_MFD_MAX77650 is not set # CONFIG_MFD_MAX77686 is not set # CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX77714 is not set # CONFIG_MFD_MAX77843 is not set # CONFIG_MFD_MAX8907 is not set # CONFIG_MFD_MAX8925 is not set # CONFIG_MFD_MAX8997 is not set # CONFIG_MFD_MAX8998 is not set +# CONFIG_MFD_MT6360 is not set # CONFIG_MFD_MT6397 is not set # CONFIG_MFD_MENF21BMC is not set # CONFIG_EZX_PCAP is not set +# CONFIG_MFD_CPCAP is not set # CONFIG_MFD_VIPERBOARD is not set +# CONFIG_MFD_NTXEC is not set # CONFIG_MFD_RETU is not set # CONFIG_MFD_PCF50633 is not set # CONFIG_MFD_RDC321X is not set -# CONFIG_MFD_RTSX_PCI is not set +# CONFIG_MFD_RT4831 is not set # CONFIG_MFD_RT5033 is not set -# CONFIG_MFD_RTSX_USB is not set # CONFIG_MFD_RC5T583 is not set -# CONFIG_MFD_RK618 is not set CONFIG_MFD_RK808=y # CONFIG_MFD_RN5T618 is not set # CONFIG_MFD_SEC_CORE is not set # CONFIG_MFD_SI476X_CORE is not set +# CONFIG_MFD_SIMPLE_MFD_I2C is not set # CONFIG_MFD_SM501 is not set # CONFIG_MFD_SKY81452 is not set -# CONFIG_MFD_SMSC is not set -# CONFIG_ABX500_CORE is not set # CONFIG_MFD_STMPE is not set CONFIG_MFD_SYSCON=y # CONFIG_MFD_TI_AM335X_TSCADC is not set # CONFIG_MFD_LP3943 is not set # CONFIG_MFD_LP8788 is not set +# CONFIG_MFD_TI_LMU is not set # CONFIG_MFD_PALMAS is not set # CONFIG_TPS6105X is not set # CONFIG_TPS65010 is not set # CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65086 is not set # CONFIG_MFD_TPS65090 is not set # CONFIG_MFD_TPS65217 is not set +# CONFIG_MFD_TI_LP873X is not set +# CONFIG_MFD_TI_LP87565 is not set # CONFIG_MFD_TPS65218 is not set CONFIG_MFD_TPS6586X=y # CONFIG_MFD_TPS65910 is not set -# CONFIG_MFD_TPS65912 is not set # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912_SPI is not set -# CONFIG_MFD_TPS80031 is not set # CONFIG_TWL4030_CORE is not set # CONFIG_TWL6040_CORE is not set # CONFIG_MFD_WL1273_CORE is not set # CONFIG_MFD_LM3533 is not set # CONFIG_MFD_TC3589X is not set -# CONFIG_MFD_TMIO is not set +# CONFIG_MFD_TQMX86 is not set # CONFIG_MFD_VX855 is not set +# CONFIG_MFD_LOCHNAGAR is not set # CONFIG_MFD_ARIZONA_I2C is not set # CONFIG_MFD_ARIZONA_SPI is not set # CONFIG_MFD_WM8400 is not set # CONFIG_MFD_WM831X_I2C is not set # CONFIG_MFD_WM831X_SPI is not set -# CONFIG_MFD_RK1000 is not set # CONFIG_MFD_WM8350_I2C is not set # CONFIG_MFD_WM8994 is not set -CONFIG_FUSB_30X=y +# CONFIG_MFD_ROHM_BD718XX is not set +# CONFIG_MFD_ROHM_BD71828 is not set +# CONFIG_MFD_ROHM_BD957XMUF is not set +# CONFIG_MFD_STPMIC1 is not set +# CONFIG_MFD_STMFX is not set +# CONFIG_MFD_ATC260X_I2C is not set +# CONFIG_MFD_KHADAS_MCU is not set +# CONFIG_MFD_QCOM_PM8008 is not set +# CONFIG_RAVE_SP_CORE is not set +# CONFIG_MFD_INTEL_M10_BMC is not set +# CONFIG_MFD_RSMU_I2C is not set +# CONFIG_MFD_RSMU_SPI is not set +# end of Multifunction device drivers + CONFIG_REGULATOR=y CONFIG_REGULATOR_DEBUG=y CONFIG_REGULATOR_FIXED_VOLTAGE=y # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +# CONFIG_REGULATOR_88PG86X is not set CONFIG_REGULATOR_ACT8865=y # CONFIG_REGULATOR_AD5398 is not set -# CONFIG_REGULATOR_ANATOP is not set +# CONFIG_REGULATOR_ARM_SCMI is not set +# CONFIG_REGULATOR_DA9121 is not set # CONFIG_REGULATOR_DA9210 is not set # CONFIG_REGULATOR_DA9211 is not set CONFIG_REGULATOR_FAN53555=y +# CONFIG_REGULATOR_FAN53880 is not set CONFIG_REGULATOR_GPIO=y # CONFIG_REGULATOR_ISL9305 is not set # CONFIG_REGULATOR_ISL6271A is not set # CONFIG_REGULATOR_LP3971 is not set # CONFIG_REGULATOR_LP3972 is not set # CONFIG_REGULATOR_LP872X is not set -CONFIG_REGULATOR_LP8752=y # CONFIG_REGULATOR_LP8755 is not set # CONFIG_REGULATOR_LTC3589 is not set +# CONFIG_REGULATOR_LTC3676 is not set # CONFIG_REGULATOR_MAX1586 is not set # CONFIG_REGULATOR_MAX8649 is not set # CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8893 is not set # CONFIG_REGULATOR_MAX8952 is not set # CONFIG_REGULATOR_MAX8973 is not set -CONFIG_REGULATOR_MP8865=y +# CONFIG_REGULATOR_MAX20086 is not set +# CONFIG_REGULATOR_MAX77826 is not set +# CONFIG_REGULATOR_MCP16502 is not set +# CONFIG_REGULATOR_MP5416 is not set +# CONFIG_REGULATOR_MP8859 is not set +# CONFIG_REGULATOR_MP886X is not set +# CONFIG_REGULATOR_MPQ7920 is not set # CONFIG_REGULATOR_MT6311 is not set +# CONFIG_REGULATOR_PCA9450 is not set +# CONFIG_REGULATOR_PF8X00 is not set # CONFIG_REGULATOR_PFUZE100 is not set +# CONFIG_REGULATOR_PV88060 is not set +# CONFIG_REGULATOR_PV88080 is not set +# CONFIG_REGULATOR_PV88090 is not set CONFIG_REGULATOR_PWM=y +# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set CONFIG_REGULATOR_RK808=y -CONFIG_REGULATOR_RK818=y -# CONFIG_REGULATOR_SYR82X is not set +# CONFIG_REGULATOR_RT4801 is not set +# CONFIG_REGULATOR_RT5190A is not set +# CONFIG_REGULATOR_RT5759 is not set +# CONFIG_REGULATOR_RT6160 is not set +# CONFIG_REGULATOR_RT6245 is not set +# CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTMV20 is not set +# CONFIG_REGULATOR_RTQ6752 is not set +# CONFIG_REGULATOR_SLG51000 is not set +# CONFIG_REGULATOR_SY7636A is not set +# CONFIG_REGULATOR_SY8106A is not set +# CONFIG_REGULATOR_SY8824X is not set +# CONFIG_REGULATOR_SY8827N is not set # CONFIG_REGULATOR_TPS51632 is not set -# CONFIG_REGULATOR_TPS549B22 is not set # CONFIG_REGULATOR_TPS62360 is not set +# CONFIG_REGULATOR_TPS6286X is not set # CONFIG_REGULATOR_TPS65023 is not set # CONFIG_REGULATOR_TPS6507X is not set # CONFIG_REGULATOR_TPS65132 is not set # CONFIG_REGULATOR_TPS6524X is not set CONFIG_REGULATOR_TPS6586X=y -CONFIG_REGULATOR_XZ3216=y +CONFIG_REGULATOR_VCTRL=y +CONFIG_RC_CORE=y +# CONFIG_BPF_LIRC_MODE2 is not set +CONFIG_LIRC=y +CONFIG_RC_MAP=y +CONFIG_RC_DECODERS=y +# CONFIG_IR_IMON_DECODER is not set +CONFIG_IR_JVC_DECODER=y +CONFIG_IR_MCE_KBD_DECODER=y +CONFIG_IR_NEC_DECODER=y +CONFIG_IR_RC5_DECODER=y +CONFIG_IR_RC6_DECODER=y +# CONFIG_IR_RCMM_DECODER is not set +CONFIG_IR_SANYO_DECODER=y +CONFIG_IR_SHARP_DECODER=y +CONFIG_IR_SONY_DECODER=y +CONFIG_IR_XMP_DECODER=y +CONFIG_RC_DEVICES=y +CONFIG_IR_GPIO_CIR=y +# CONFIG_IR_GPIO_TX is not set +# CONFIG_IR_HIX5HD2 is not set +# CONFIG_IR_IGORPLUGUSB is not set +# CONFIG_IR_IGUANA is not set +# CONFIG_IR_IMON is not set +# CONFIG_IR_IMON_RAW is not set +# CONFIG_IR_MCEUSB is not set +# CONFIG_IR_PWM_TX is not set +# CONFIG_IR_REDRAT3 is not set +# CONFIG_IR_SERIAL is not set +# CONFIG_IR_SPI is not set +# CONFIG_IR_STREAMZAP is not set +# CONFIG_IR_TOY is not set +# CONFIG_IR_TTUSBIR is not set +# CONFIG_RC_ATI_REMOTE is not set +# CONFIG_RC_LOOPBACK is not set +# CONFIG_RC_XBOX_DVD is not set CONFIG_CEC_CORE=y CONFIG_CEC_NOTIFIER=y -CONFIG_MEDIA_SUPPORT=y # -# Multimedia core support +# CEC support +# +CONFIG_MEDIA_CEC_RC=y +CONFIG_MEDIA_CEC_SUPPORT=y +# CONFIG_CEC_CH7322 is not set +# CONFIG_CEC_GPIO is not set +CONFIG_USB_PULSE8_CEC=m +CONFIG_USB_RAINSHADOW_CEC=m +# end of CEC support + +CONFIG_MEDIA_SUPPORT=y +# CONFIG_MEDIA_SUPPORT_FILTER is not set +# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set + +# +# Media device types # CONFIG_MEDIA_CAMERA_SUPPORT=y -# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y -# CONFIG_MEDIA_RADIO_SUPPORT is not set +CONFIG_MEDIA_RADIO_SUPPORT=y CONFIG_MEDIA_SDR_SUPPORT=y -CONFIG_MEDIA_RC_SUPPORT=y -CONFIG_MEDIA_CEC_SUPPORT=y -CONFIG_MEDIA_CEC_RC=y -CONFIG_MEDIA_CONTROLLER=y +CONFIG_MEDIA_PLATFORM_SUPPORT=y +CONFIG_MEDIA_TEST_SUPPORT=y +# end of Media device types + +# +# Media core support +# CONFIG_VIDEO_DEV=y +CONFIG_MEDIA_CONTROLLER=y +CONFIG_DVB_CORE=y +# end of Media core support + +# +# Video4Linux options +# +CONFIG_VIDEO_V4L2_I2C=y CONFIG_VIDEO_V4L2_SUBDEV_API=y -CONFIG_VIDEO_V4L2=y # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set CONFIG_VIDEO_TUNER=m CONFIG_V4L2_FWNODE=y -CONFIG_VIDEOBUF_GEN=y +CONFIG_V4L2_ASYNC=y +CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_VMALLOC=m -CONFIG_VIDEOBUF_DVB=m -CONFIG_VIDEOBUF2_CORE=y -CONFIG_VIDEOBUF2_MEMOPS=y -CONFIG_VIDEOBUF2_DMA_CONTIG=y -CONFIG_VIDEOBUF2_VMALLOC=y -CONFIG_VIDEOBUF2_DMA_SG=m -CONFIG_VIDEOBUF2_DVB=m -CONFIG_DVB_CORE=y +# end of Video4Linux options + +# +# Media controller options +# +CONFIG_MEDIA_CONTROLLER_DVB=y +# end of Media controller options + +# +# Digital TV options +# +# CONFIG_DVB_MMAP is not set CONFIG_DVB_NET=y -CONFIG_TTPCI_EEPROM=m CONFIG_DVB_MAX_ADAPTERS=8 # CONFIG_DVB_DYNAMIC_MINORS is not set +# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set +# CONFIG_DVB_ULE_DEBUG is not set +# end of Digital TV options + +# +# Media drivers +# # # Media drivers # -CONFIG_RC_CORE=y -CONFIG_RC_MAP=y -CONFIG_LIRC=y -CONFIG_RC_DECODERS=y -CONFIG_IR_NEC_DECODER=y -CONFIG_IR_RC5_DECODER=y -CONFIG_IR_RC6_DECODER=y -CONFIG_IR_JVC_DECODER=y -CONFIG_IR_SONY_DECODER=y -CONFIG_IR_SANYO_DECODER=y -CONFIG_IR_SHARP_DECODER=y -CONFIG_IR_MCE_KBD_DECODER=y -CONFIG_IR_XMP_DECODER=y -# CONFIG_IR_IMON_DECODER is not set -CONFIG_RC_DEVICES=y -# CONFIG_RC_ATI_REMOTE is not set -# CONFIG_IR_ENE is not set -# CONFIG_IR_HIX5HD2 is not set -# CONFIG_IR_IMON is not set -# CONFIG_IR_MCEUSB is not set -# CONFIG_IR_ITE_CIR is not set -# CONFIG_IR_FINTEK is not set -# CONFIG_IR_NUVOTON is not set -# CONFIG_IR_REDRAT3 is not set -# CONFIG_IR_STREAMZAP is not set -# CONFIG_IR_IGORPLUGUSB is not set -# CONFIG_IR_IGUANA is not set -# CONFIG_IR_TTUSBIR is not set -# CONFIG_RC_LOOPBACK is not set -CONFIG_IR_GPIO_CIR=y -# CONFIG_IR_GPIO_TX is not set -# CONFIG_IR_PWM_TX is not set -# CONFIG_IR_SERIAL is not set CONFIG_MEDIA_USB_SUPPORT=y # # Webcam devices # -CONFIG_USB_VIDEO_CLASS=y -# CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV is not set +# CONFIG_VIDEO_CPIA2 is not set # CONFIG_USB_GSPCA is not set # CONFIG_USB_PWC is not set -# CONFIG_VIDEO_CPIA2 is not set -# CONFIG_USB_ZR364XX is not set -# CONFIG_USB_STKWEBCAM is not set # CONFIG_USB_S2255 is not set +# CONFIG_USB_STKWEBCAM is not set CONFIG_VIDEO_USBTV=m -# CONFIG_NPU_USB_ACM is not set +CONFIG_USB_VIDEO_CLASS=y +# CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV is not set +# CONFIG_USB_ZR364XX is not set + +# +# Analog TV USB devices +# +# CONFIG_VIDEO_GO7007 is not set +# CONFIG_VIDEO_HDPVR is not set +# CONFIG_VIDEO_PVRUSB2 is not set +# CONFIG_VIDEO_STK1160_COMMON is not set # # Analog/digital TV USB devices @@ -3307,33 +3891,9 @@ CONFIG_VIDEO_TM6000_DVB=m # # Digital TV USB devices # -CONFIG_DVB_USB=y -# CONFIG_DVB_USB_DEBUG is not set -CONFIG_DVB_USB_A800=m -CONFIG_DVB_USB_DIBUSB_MB=m -# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set -CONFIG_DVB_USB_DIBUSB_MC=m -CONFIG_DVB_USB_DIB0700=m -CONFIG_DVB_USB_UMT_010=m -CONFIG_DVB_USB_CXUSB=m -CONFIG_DVB_USB_M920X=m -CONFIG_DVB_USB_DIGITV=m -CONFIG_DVB_USB_VP7045=m -CONFIG_DVB_USB_VP702X=m -CONFIG_DVB_USB_GP8PSK=m -CONFIG_DVB_USB_NOVA_T_USB2=m -CONFIG_DVB_USB_TTUSB2=m -CONFIG_DVB_USB_DTT200U=m -CONFIG_DVB_USB_OPERA1=m -CONFIG_DVB_USB_AF9005=m -CONFIG_DVB_USB_AF9005_REMOTE=m -CONFIG_DVB_USB_PCTV452E=m -CONFIG_DVB_USB_DW2102=m -CONFIG_DVB_USB_CINERGY_T2=m -CONFIG_DVB_USB_DTV5100=m -CONFIG_DVB_USB_FRIIO=m -CONFIG_DVB_USB_AZ6027=m -CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_AS102=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set CONFIG_DVB_USB_V2=m CONFIG_DVB_USB_AF9015=m CONFIG_DVB_USB_AF9035=m @@ -3341,18 +3901,44 @@ CONFIG_DVB_USB_ANYSEE=m CONFIG_DVB_USB_AU6610=m CONFIG_DVB_USB_AZ6007=m CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_DVBSKY=m CONFIG_DVB_USB_EC168=m CONFIG_DVB_USB_GL861=m CONFIG_DVB_USB_LME2510=m CONFIG_DVB_USB_MXL111SF=m CONFIG_DVB_USB_RTL28XXU=m -CONFIG_DVB_USB_DVBSKY=m +# CONFIG_DVB_USB_ZD1301 is not set +CONFIG_DVB_USB=y +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_CXUSB=m +# CONFIG_DVB_USB_CXUSB_ANALOG is not set +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_DIB3000MC=m +CONFIG_DVB_USB_DIBUSB_MB=m +# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_PCTV452E=m +CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_VP7045=m +# CONFIG_SMS_USB_DRV is not set CONFIG_DVB_TTUSB_BUDGET=m CONFIG_DVB_TTUSB_DEC=m -# CONFIG_SMS_USB_DRV is not set -CONFIG_DVB_B2C2_FLEXCOP_USB=m -# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set -CONFIG_DVB_AS102=m # # Webcam, TV (analog/digital) USB devices @@ -3369,23 +3955,29 @@ CONFIG_VIDEO_EM28XX_RC=m CONFIG_USB_AIRSPY=m CONFIG_USB_HACKRF=m CONFIG_USB_MSI2500=m - -# -# USB HDMI CEC adapters -# -CONFIG_USB_PULSE8_CEC=m -CONFIG_USB_RAINSHADOW_CEC=m CONFIG_MEDIA_PCI_SUPPORT=y # # Media capture support # # CONFIG_VIDEO_SOLO6X10 is not set +# CONFIG_VIDEO_TW5864 is not set # CONFIG_VIDEO_TW68 is not set +# CONFIG_VIDEO_TW686X is not set + +# +# Media capture/analog TV support +# +# CONFIG_VIDEO_DT3155 is not set +# CONFIG_VIDEO_IVTV is not set +# CONFIG_VIDEO_HEXIUM_GEMINI is not set +# CONFIG_VIDEO_HEXIUM_ORION is not set +# CONFIG_VIDEO_MXB is not set # # Media capture/analog/hybrid TV support # +# CONFIG_VIDEO_BT848 is not set # CONFIG_VIDEO_CX18 is not set CONFIG_VIDEO_CX23885=m # CONFIG_MEDIA_ALTERA_CI is not set @@ -3398,100 +3990,297 @@ CONFIG_VIDEO_CX25821=m # # Media digital TV PCI Adapters # -# CONFIG_DVB_AV7110 is not set -# CONFIG_DVB_BUDGET_CORE is not set # CONFIG_DVB_B2C2_FLEXCOP_PCI is not set -# CONFIG_DVB_PLUTO2 is not set +# CONFIG_DVB_DDBRIDGE is not set # CONFIG_DVB_DM1105 is not set +# CONFIG_MANTIS_CORE is not set +# CONFIG_DVB_NETUP_UNIDVB is not set +# CONFIG_DVB_NGENE is not set +# CONFIG_DVB_PLUTO2 is not set # CONFIG_DVB_PT1 is not set # CONFIG_DVB_PT3 is not set -# CONFIG_MANTIS_CORE is not set -# CONFIG_DVB_NGENE is not set -# CONFIG_DVB_DDBRIDGE is not set # CONFIG_DVB_SMIPCIE is not set -# CONFIG_DVB_NETUP_UNIDVB is not set +# CONFIG_DVB_BUDGET_CORE is not set +CONFIG_RADIO_ADAPTERS=y +# CONFIG_RADIO_MAXIRADIO is not set +# CONFIG_RADIO_SAA7706H is not set +# CONFIG_RADIO_SHARK is not set +# CONFIG_RADIO_SHARK2 is not set +# CONFIG_RADIO_SI4713 is not set +# CONFIG_RADIO_TEA5764 is not set +# CONFIG_RADIO_TEF6862 is not set +# CONFIG_RADIO_WL1273 is not set +# CONFIG_USB_DSBR is not set +# CONFIG_USB_KEENE is not set +# CONFIG_USB_MA901 is not set +# CONFIG_USB_MR800 is not set +# CONFIG_USB_RAREMONO is not set +# CONFIG_RADIO_SI470X is not set +CONFIG_MEDIA_PLATFORM_DRIVERS=y CONFIG_V4L_PLATFORM_DRIVERS=y -# CONFIG_VIDEO_CAFE_CCIC is not set -CONFIG_SOC_CAMERA=y -# CONFIG_SOC_CAMERA_PLATFORM is not set -# CONFIG_VIDEO_XILINX is not set -# CONFIG_VIDEO_RK_CIF_ISP10 is not set -# CONFIG_VIDEO_ROCKCHIP_CIF is not set -CONFIG_VIDEO_ROCKCHIP_ISP1=y +# CONFIG_SDR_PLATFORM_DRIVERS is not set +CONFIG_DVB_PLATFORM_DRIVERS=y CONFIG_V4L_MEM2MEM_DRIVERS=y # CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set -# CONFIG_VIDEO_SH_VEU is not set -# CONFIG_VIDEO_ROCKCHIP_RGA is not set -# CONFIG_VIDEO_ROCKCHIP_VPU is not set -# CONFIG_V4L_TEST_DRIVERS is not set -CONFIG_DVB_PLATFORM_DRIVERS=y -# CONFIG_ROCKCHIP_TSP is not set +# CONFIG_VIDEO_MUX is not set # -# Supported MMC/SDIO adapters +# Allegro DVT media platform drivers +# + +# +# Amlogic media platform drivers +# + +# +# Amphion drivers +# + +# +# Aspeed media platform drivers +# +# CONFIG_VIDEO_ASPEED is not set + +# +# Atmel media platform drivers +# + +# +# Cadence media platform drivers +# +# CONFIG_VIDEO_CADENCE_CSI2RX is not set +# CONFIG_VIDEO_CADENCE_CSI2TX is not set + +# +# Chips&Media media platform drivers +# + +# +# Intel media platform drivers +# + +# +# Marvell media platform drivers +# +# CONFIG_VIDEO_CAFE_CCIC is not set + +# +# Mediatek media platform drivers +# + +# +# NVidia media platform drivers +# + +# +# NXP media platform drivers +# + +# +# Qualcomm media platform drivers +# + +# +# Renesas media platform drivers +# + +# +# Rockchip media platform drivers +# +# CONFIG_VIDEO_ROCKCHIP_RGA is not set +CONFIG_VIDEO_ROCKCHIP_ISP1=y + +# +# Samsung media platform drivers +# + +# +# STMicroelectronics media platform drivers +# + +# +# Sunxi media platform drivers +# + +# +# Texas Instruments drivers +# + +# +# VIA media platform drivers +# + +# +# Xilinx media platform drivers +# +# CONFIG_VIDEO_XILINX is not set + +# +# MMC/SDIO DVB adapters # # CONFIG_SMS_SDIO_DRV is not set +# CONFIG_V4L_TEST_DRIVERS is not set +# CONFIG_DVB_TEST_DRIVERS is not set +CONFIG_CYPRESS_FIRMWARE=y +CONFIG_TTPCI_EEPROM=m CONFIG_VIDEO_CX2341X=m CONFIG_VIDEO_TVEEPROM=m -CONFIG_CYPRESS_FIRMWARE=m CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_VIDEOBUF2_CORE=y +CONFIG_VIDEOBUF2_V4L2=y +CONFIG_VIDEOBUF2_MEMOPS=y +CONFIG_VIDEOBUF2_DMA_CONTIG=y +CONFIG_VIDEOBUF2_VMALLOC=y +CONFIG_VIDEOBUF2_DMA_SG=m +CONFIG_VIDEOBUF2_DVB=m +# end of Media drivers # -# Media ancillary drivers (tuners, sensors, i2c, spi, frontends) +# Media ancillary drivers # -# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set CONFIG_MEDIA_ATTACH=y # CONFIG_VIDEO_IR_I2C is not set # -# I2C Encoders, decoders, sensors and other helper chips +# Camera sensor devices # +# CONFIG_VIDEO_HI556 is not set +# CONFIG_VIDEO_HI846 is not set +# CONFIG_VIDEO_HI847 is not set +# CONFIG_VIDEO_IMX208 is not set +# CONFIG_VIDEO_IMX214 is not set +CONFIG_VIDEO_IMX219=y +# CONFIG_VIDEO_IMX258 is not set +# CONFIG_VIDEO_IMX274 is not set +# CONFIG_VIDEO_IMX290 is not set +# CONFIG_VIDEO_IMX319 is not set +# CONFIG_VIDEO_IMX334 is not set +# CONFIG_VIDEO_IMX335 is not set +# CONFIG_VIDEO_IMX355 is not set +# CONFIG_VIDEO_IMX412 is not set +# CONFIG_VIDEO_MT9M001 is not set +# CONFIG_VIDEO_MT9M032 is not set +# CONFIG_VIDEO_MT9M111 is not set +# CONFIG_VIDEO_MT9P031 is not set +# CONFIG_VIDEO_MT9T001 is not set +# CONFIG_VIDEO_MT9T112 is not set +# CONFIG_VIDEO_MT9V011 is not set +# CONFIG_VIDEO_MT9V032 is not set +# CONFIG_VIDEO_MT9V111 is not set +# CONFIG_VIDEO_NOON010PC30 is not set +# CONFIG_VIDEO_OG01A1B is not set +# CONFIG_VIDEO_OV02A10 is not set +# CONFIG_VIDEO_OV08D10 is not set +# CONFIG_VIDEO_OV13858 is not set +# CONFIG_VIDEO_OV13B10 is not set +# CONFIG_VIDEO_OV2640 is not set +# CONFIG_VIDEO_OV2659 is not set +# CONFIG_VIDEO_OV2680 is not set +# CONFIG_VIDEO_OV2685 is not set +# CONFIG_VIDEO_OV5640 is not set +CONFIG_VIDEO_OV5645=y +# CONFIG_VIDEO_OV5647 is not set +# CONFIG_VIDEO_OV5648 is not set +# CONFIG_VIDEO_OV5670 is not set +# CONFIG_VIDEO_OV5675 is not set +# CONFIG_VIDEO_OV5693 is not set +# CONFIG_VIDEO_OV5695 is not set +# CONFIG_VIDEO_OV6650 is not set +# CONFIG_VIDEO_OV7251 is not set +# CONFIG_VIDEO_OV7640 is not set +# CONFIG_VIDEO_OV7670 is not set +# CONFIG_VIDEO_OV772X is not set +# CONFIG_VIDEO_OV7740 is not set +# CONFIG_VIDEO_OV8856 is not set +# CONFIG_VIDEO_OV8865 is not set +# CONFIG_VIDEO_OV9282 is not set +# CONFIG_VIDEO_OV9640 is not set +# CONFIG_VIDEO_OV9650 is not set +# CONFIG_VIDEO_RDACM20 is not set +# CONFIG_VIDEO_RDACM21 is not set +# CONFIG_VIDEO_RJ54N1 is not set +# CONFIG_VIDEO_S5C73M3 is not set +# CONFIG_VIDEO_S5K4ECGX is not set +# CONFIG_VIDEO_S5K5BAF is not set +# CONFIG_VIDEO_S5K6A3 is not set +# CONFIG_VIDEO_S5K6AA is not set +# CONFIG_VIDEO_SR030PC30 is not set +# CONFIG_VIDEO_VS6624 is not set +# CONFIG_VIDEO_CCS is not set +# CONFIG_VIDEO_ET8EK8 is not set +# CONFIG_VIDEO_M5MOLS is not set +# end of Camera sensor devices + +# +# Lens drivers +# +# CONFIG_VIDEO_AD5820 is not set +# CONFIG_VIDEO_AK7375 is not set +# CONFIG_VIDEO_DW9714 is not set +# CONFIG_VIDEO_DW9768 is not set +# CONFIG_VIDEO_DW9807_VCM is not set +# end of Lens drivers + +# +# Flash devices +# +# CONFIG_VIDEO_ADP1653 is not set +# CONFIG_VIDEO_LM3560 is not set +# CONFIG_VIDEO_LM3646 is not set +# end of Flash devices # # Audio decoders, processors and mixers # -# CONFIG_VIDEO_TVAUDIO is not set +CONFIG_VIDEO_CS3308=m +# CONFIG_VIDEO_CS5345 is not set +# CONFIG_VIDEO_CS53L32A is not set +# CONFIG_VIDEO_MSP3400 is not set +# CONFIG_VIDEO_SONY_BTF_MPX is not set +# CONFIG_VIDEO_TDA1997X is not set # CONFIG_VIDEO_TDA7432 is not set # CONFIG_VIDEO_TDA9840 is not set # CONFIG_VIDEO_TEA6415C is not set # CONFIG_VIDEO_TEA6420 is not set -# CONFIG_VIDEO_MSP3400 is not set -# CONFIG_VIDEO_CS5345 is not set -# CONFIG_VIDEO_CS53L32A is not set # CONFIG_VIDEO_TLV320AIC23B is not set +# CONFIG_VIDEO_TVAUDIO is not set # CONFIG_VIDEO_UDA1342 is not set -# CONFIG_VIDEO_WM8775 is not set -# CONFIG_VIDEO_WM8739 is not set # CONFIG_VIDEO_VP27SMPX is not set -# CONFIG_VIDEO_SONY_BTF_MPX is not set +# CONFIG_VIDEO_WM8739 is not set +# CONFIG_VIDEO_WM8775 is not set +# end of Audio decoders, processors and mixers # # RDS decoders # # CONFIG_VIDEO_SAA6588 is not set +# end of RDS decoders # # Video decoders # # CONFIG_VIDEO_ADV7180 is not set -# CONFIG_VIDEO_ADV7181D is not set # CONFIG_VIDEO_ADV7183 is not set +# CONFIG_VIDEO_ADV748X is not set # CONFIG_VIDEO_ADV7604 is not set # CONFIG_VIDEO_ADV7842 is not set # CONFIG_VIDEO_BT819 is not set # CONFIG_VIDEO_BT856 is not set # CONFIG_VIDEO_BT866 is not set +# CONFIG_VIDEO_ISL7998X is not set # CONFIG_VIDEO_KS0127 is not set +# CONFIG_VIDEO_MAX9286 is not set # CONFIG_VIDEO_ML86V7667 is not set # CONFIG_VIDEO_SAA7110 is not set # CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_TC35874X is not set +# CONFIG_VIDEO_TC358743 is not set # CONFIG_VIDEO_TVP514X is not set # CONFIG_VIDEO_TVP5150 is not set # CONFIG_VIDEO_TVP7002 is not set # CONFIG_VIDEO_TW2804 is not set # CONFIG_VIDEO_TW9903 is not set # CONFIG_VIDEO_TW9906 is not set +# CONFIG_VIDEO_TW9910 is not set # CONFIG_VIDEO_VPX3220 is not set # @@ -3499,198 +4288,101 @@ CONFIG_MEDIA_ATTACH=y # # CONFIG_VIDEO_SAA717X is not set CONFIG_VIDEO_CX25840=m +# end of Video decoders # # Video encoders # -# CONFIG_VIDEO_SAA7127 is not set -# CONFIG_VIDEO_SAA7185 is not set +# CONFIG_VIDEO_AD9389B is not set # CONFIG_VIDEO_ADV7170 is not set # CONFIG_VIDEO_ADV7175 is not set # CONFIG_VIDEO_ADV7343 is not set # CONFIG_VIDEO_ADV7393 is not set # CONFIG_VIDEO_ADV7511 is not set -# CONFIG_VIDEO_AD9389B is not set # CONFIG_VIDEO_AK881X is not set +# CONFIG_VIDEO_SAA7127 is not set +# CONFIG_VIDEO_SAA7185 is not set # CONFIG_VIDEO_THS8200 is not set - -# -# Camera sensor devices -# -# CONFIG_VIDEO_IMX214 is not set -CONFIG_VIDEO_IMX219=y -# CONFIG_VIDEO_IMX258 is not set -# CONFIG_VIDEO_IMX291 is not set -# CONFIG_VIDEO_IMX307 is not set -# CONFIG_VIDEO_IMX317 is not set -# CONFIG_VIDEO_IMX323 is not set -# CONFIG_VIDEO_IMX327 is not set -# CONFIG_VIDEO_VIRT_CAMERA is not set -# CONFIG_VIDEO_OV2659 is not set -# CONFIG_VIDEO_OV2680 is not set -# CONFIG_VIDEO_OV2685 is not set -# CONFIG_VIDEO_OV2718 is not set -# CONFIG_VIDEO_OV2735 is not set -CONFIG_VIDEO_OV4689=m -# CONFIG_VIDEO_OV5640 is not set -CONFIG_VIDEO_OV5645=y -# CONFIG_VIDEO_OV5647 is not set -# CONFIG_VIDEO_OV5648 is not set -# CONFIG_VIDEO_OV5670 is not set -# CONFIG_VIDEO_OV5695 is not set -# CONFIG_VIDEO_OV7251 is not set -# CONFIG_VIDEO_OV7640 is not set -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_OV7725 is not set -# CONFIG_VIDEO_OV7750 is not set -# CONFIG_VIDEO_OV8858 is not set -# CONFIG_VIDEO_OV9281 is not set -# CONFIG_VIDEO_OV9650 is not set -# CONFIG_VIDEO_OV9750 is not set -CONFIG_VIDEO_OV13850=m -# CONFIG_VIDEO_VS6624 is not set -# CONFIG_VIDEO_MT9M032 is not set -# CONFIG_VIDEO_MT9P031 is not set -# CONFIG_VIDEO_MT9T001 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_MT9V032 is not set -# CONFIG_VIDEO_AR0144 is not set -# CONFIG_VIDEO_AR0230 is not set -# CONFIG_VIDEO_AR0330 is not set -# CONFIG_VIDEO_SR030PC30 is not set -# CONFIG_VIDEO_NOON010PC30 is not set -# CONFIG_VIDEO_M5MOLS is not set -# CONFIG_VIDEO_S5K4H8 is not set -# CONFIG_VIDEO_S5K6AA is not set -# CONFIG_VIDEO_S5K6A3 is not set -# CONFIG_VIDEO_S5K4ECGX is not set -# CONFIG_VIDEO_S5K5BAF is not set -# CONFIG_VIDEO_SMIAPP is not set -# CONFIG_VIDEO_S5C73M3 is not set -# CONFIG_VIDEO_GC0403 is not set -# CONFIG_VIDEO_GC2155 is not set -# CONFIG_VIDEO_GC0312 is not set -# CONFIG_VIDEO_GC2053 is not set -# CONFIG_VIDEO_GC2145 is not set -CONFIG_VIDEO_GC2355=y -# CONFIG_VIDEO_GC2385 is not set -# CONFIG_VIDEO_GC5025 is not set -# CONFIG_VIDEO_GC5035 is not set -# CONFIG_VIDEO_GC8034 is not set -CONFIG_VIDEO_SC031GS=y -# CONFIG_VIDEO_SC132GS is not set -# CONFIG_VIDEO_GC0329 is not set -# CONFIG_VIDEO_GC2035 is not set -# CONFIG_VIDEO_BF20A2 is not set -# CONFIG_VIDEO_BF3925 is not set -# CONFIG_VIDEO_JX_H65 is not set -# CONFIG_VIDEO_XC7080_XC530 is not set -# CONFIG_VIDEO_PS5268 is not set -# CONFIG_VIDEO_HM2056 is not set -# CONFIG_VIDEO_PREISP_DUMMY_SENSOR is not set - -# -# Flash devices -# -# CONFIG_VIDEO_ADP1653 is not set -# CONFIG_VIDEO_AS3645A is not set -# CONFIG_VIDEO_LM3560 is not set -# CONFIG_VIDEO_LM3646 is not set -# CONFIG_VIDEO_SGM3784 is not set +# end of Video encoders # # Video improvement chips # # CONFIG_VIDEO_UPD64031A is not set # CONFIG_VIDEO_UPD64083 is not set - -# -# Camera lens devices -# -# CONFIG_VIDEO_VM149C is not set -# CONFIG_VIDEO_DW9714 is not set -# CONFIG_VIDEO_FP5510 is not set +# end of Video improvement chips # # Audio/Video compression chips # # CONFIG_VIDEO_SAA6752HS is not set +# end of Audio/Video compression chips + +# +# SDR tuner chips +# +# CONFIG_SDR_MAX2175 is not set +# end of SDR tuner chips # # Miscellaneous helper chips # -# CONFIG_VIDEO_THS7303 is not set +# CONFIG_VIDEO_I2C is not set # CONFIG_VIDEO_M52790 is not set -# CONFIG_VIDEO_NVP6324 is not set +# CONFIG_VIDEO_ST_MIPID02 is not set +# CONFIG_VIDEO_THS7303 is not set +# end of Miscellaneous helper chips # -# Sensors used on soc_camera driver -# - -# -# soc_camera sensor drivers -# -# CONFIG_SOC_CAMERA_IMX074 is not set -# CONFIG_SOC_CAMERA_MT9M001 is not set -# CONFIG_SOC_CAMERA_MT9M111 is not set -# CONFIG_SOC_CAMERA_MT9T031 is not set -# CONFIG_SOC_CAMERA_MT9T112 is not set -# CONFIG_SOC_CAMERA_MT9V022 is not set -# CONFIG_SOC_CAMERA_OV2640 is not set -# CONFIG_SOC_CAMERA_OV5642 is not set -# CONFIG_SOC_CAMERA_OV6650 is not set -# CONFIG_SOC_CAMERA_OV772X is not set -# CONFIG_SOC_CAMERA_OV9640 is not set -# CONFIG_SOC_CAMERA_OV9740 is not set -# CONFIG_SOC_CAMERA_RJ54N1 is not set -# CONFIG_SOC_CAMERA_TW9910 is not set - -# -# SPI helper chips +# Media SPI Adapters # +CONFIG_CXD2880_SPI_DRV=m # CONFIG_VIDEO_GS1662 is not set -# CONFIG_VIDEO_IMX327_SPI is not set -# CONFIG_VIDEO_ROCKCHIP_PREISP is not set +# end of Media SPI Adapters + CONFIG_MEDIA_TUNER=y # # Customize TV tuners # -CONFIG_MEDIA_TUNER_SIMPLE=m -CONFIG_MEDIA_TUNER_TDA8290=m -CONFIG_MEDIA_TUNER_TDA827X=m -CONFIG_MEDIA_TUNER_TDA18271=m -CONFIG_MEDIA_TUNER_TDA9887=m -CONFIG_MEDIA_TUNER_TEA5761=m -CONFIG_MEDIA_TUNER_TEA5767=m -CONFIG_MEDIA_TUNER_MSI001=m -CONFIG_MEDIA_TUNER_MT20XX=m -CONFIG_MEDIA_TUNER_MT2060=m -CONFIG_MEDIA_TUNER_MT2063=m -CONFIG_MEDIA_TUNER_MT2266=m -CONFIG_MEDIA_TUNER_MT2131=m -CONFIG_MEDIA_TUNER_QT1010=m -CONFIG_MEDIA_TUNER_XC2028=m -CONFIG_MEDIA_TUNER_XC5000=m -CONFIG_MEDIA_TUNER_XC4000=m -CONFIG_MEDIA_TUNER_MXL5005S=m -CONFIG_MEDIA_TUNER_MXL5007T=m -CONFIG_MEDIA_TUNER_MC44S803=m -CONFIG_MEDIA_TUNER_MAX2165=m -CONFIG_MEDIA_TUNER_TDA18218=m +CONFIG_MEDIA_TUNER_E4000=m CONFIG_MEDIA_TUNER_FC0011=m CONFIG_MEDIA_TUNER_FC0012=m CONFIG_MEDIA_TUNER_FC0013=m -CONFIG_MEDIA_TUNER_TDA18212=m -CONFIG_MEDIA_TUNER_E4000=m CONFIG_MEDIA_TUNER_FC2580=m -CONFIG_MEDIA_TUNER_M88RS6000T=m -CONFIG_MEDIA_TUNER_TUA9001=m -CONFIG_MEDIA_TUNER_SI2157=m CONFIG_MEDIA_TUNER_IT913X=m -CONFIG_MEDIA_TUNER_R820T=m +CONFIG_MEDIA_TUNER_M88RS6000T=m +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_MEDIA_TUNER_MSI001=m +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2063=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_MT2131=m +CONFIG_MEDIA_TUNER_MT2266=m CONFIG_MEDIA_TUNER_MXL301RF=m +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_QM1D1B0004=m CONFIG_MEDIA_TUNER_QM1D1C0042=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_R820T=m +CONFIG_MEDIA_TUNER_SI2157=m +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA18212=m +CONFIG_MEDIA_TUNER_TDA18218=m +CONFIG_MEDIA_TUNER_TDA18250=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_TUA9001=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC4000=m +CONFIG_MEDIA_TUNER_XC5000=m +# end of Customize TV tuners # # Customise DVB Frontends @@ -3699,117 +4391,125 @@ CONFIG_MEDIA_TUNER_QM1D1C0042=m # # Multistandard (satellite) frontends # +CONFIG_DVB_M88DS3103=m +CONFIG_DVB_MXL5XX=m CONFIG_DVB_STB0899=m CONFIG_DVB_STB6100=m CONFIG_DVB_STV090x=m +CONFIG_DVB_STV0910=m CONFIG_DVB_STV6110x=m -CONFIG_DVB_M88DS3103=m +CONFIG_DVB_STV6111=m # # Multistandard (cable + terrestrial) frontends # CONFIG_DVB_DRXK=m -CONFIG_DVB_TDA18271C2DD=m +CONFIG_DVB_MN88472=m +CONFIG_DVB_MN88473=m CONFIG_DVB_SI2165=m +CONFIG_DVB_TDA18271C2DD=m # # DVB-S (satellite) frontends # CONFIG_DVB_CX24110=m -CONFIG_DVB_CX24123=m -CONFIG_DVB_MT312=m -CONFIG_DVB_ZL10036=m -CONFIG_DVB_ZL10039=m -CONFIG_DVB_S5H1420=m -CONFIG_DVB_STV0288=m -CONFIG_DVB_STB6000=m -CONFIG_DVB_STV0299=m -CONFIG_DVB_STV6110=m -CONFIG_DVB_STV0900=m -CONFIG_DVB_TDA8083=m -CONFIG_DVB_TDA10086=m -CONFIG_DVB_TDA8261=m -CONFIG_DVB_VES1X93=m -CONFIG_DVB_TUNER_ITD1000=m -CONFIG_DVB_TUNER_CX24113=m -CONFIG_DVB_TDA826X=m -CONFIG_DVB_TUA6100=m CONFIG_DVB_CX24116=m CONFIG_DVB_CX24117=m CONFIG_DVB_CX24120=m -CONFIG_DVB_SI21XX=m -CONFIG_DVB_TS2020=m +CONFIG_DVB_CX24123=m CONFIG_DVB_DS3000=m CONFIG_DVB_MB86A16=m +CONFIG_DVB_MT312=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_SI21XX=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV0900=m +CONFIG_DVB_STV6110=m CONFIG_DVB_TDA10071=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TDA8261=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TS2020=m +CONFIG_DVB_TUA6100=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_ZL10036=m +CONFIG_DVB_ZL10039=m # # DVB-T (terrestrial) frontends # -CONFIG_DVB_SP8870=m -CONFIG_DVB_SP887X=m +CONFIG_DVB_AF9013=m +CONFIG_DVB_AS102_FE=m CONFIG_DVB_CX22700=m CONFIG_DVB_CX22702=m -CONFIG_DVB_S5H1432=m -CONFIG_DVB_DRXD=m -CONFIG_DVB_L64781=m -CONFIG_DVB_TDA1004X=m -CONFIG_DVB_NXT6000=m -CONFIG_DVB_MT352=m -CONFIG_DVB_ZL10353=m +CONFIG_DVB_CXD2820R=m +CONFIG_DVB_CXD2841ER=m CONFIG_DVB_DIB3000MB=m CONFIG_DVB_DIB3000MC=m CONFIG_DVB_DIB7000M=m CONFIG_DVB_DIB7000P=m CONFIG_DVB_DIB9000=m -CONFIG_DVB_TDA10048=m -CONFIG_DVB_AF9013=m +CONFIG_DVB_DRXD=m CONFIG_DVB_EC100=m -CONFIG_DVB_HD29L2=m -CONFIG_DVB_STV0367=m -CONFIG_DVB_CXD2820R=m -CONFIG_DVB_CXD2841ER=m +CONFIG_DVB_GP8PSK_FE=m +CONFIG_DVB_L64781=m +CONFIG_DVB_MT352=m +CONFIG_DVB_NXT6000=m CONFIG_DVB_RTL2830=m CONFIG_DVB_RTL2832=m CONFIG_DVB_RTL2832_SDR=m +CONFIG_DVB_S5H1432=m CONFIG_DVB_SI2168=m -CONFIG_DVB_AS102_FE=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_STV0367=m +CONFIG_DVB_TDA10048=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_ZD1301_DEMOD=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_CXD2880=m # # DVB-C (cable) frontends # -CONFIG_DVB_VES1820=m +CONFIG_DVB_STV0297=m CONFIG_DVB_TDA10021=m CONFIG_DVB_TDA10023=m -CONFIG_DVB_STV0297=m +CONFIG_DVB_VES1820=m # # ATSC (North American/Korean Terrestrial/Cable DTV) frontends # -CONFIG_DVB_NXT200X=m -CONFIG_DVB_OR51211=m -CONFIG_DVB_OR51132=m -CONFIG_DVB_BCM3510=m -CONFIG_DVB_LGDT330X=m -CONFIG_DVB_LGDT3305=m -CONFIG_DVB_LGDT3306A=m -CONFIG_DVB_LG2160=m -CONFIG_DVB_S5H1409=m CONFIG_DVB_AU8522=m CONFIG_DVB_AU8522_DTV=m # CONFIG_DVB_AU8522_V4L is not set +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LG2160=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_LGDT3306A=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_MXL692=m +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_S5H1409=m CONFIG_DVB_S5H1411=m # # ISDB-T (terrestrial) frontends # -CONFIG_DVB_S921=m CONFIG_DVB_DIB8000=m CONFIG_DVB_MB86A20S=m +CONFIG_DVB_S921=m # # ISDB-S (satellite) & ISDB-T (terrestrial) frontends # +CONFIG_DVB_MN88443X=m CONFIG_DVB_TC90522=m # @@ -3822,176 +4522,281 @@ CONFIG_DVB_PLL=m # # SEC control devices for DVB-S # -CONFIG_DVB_DRX39XYJ=m -CONFIG_DVB_LNBH25=m -CONFIG_DVB_LNBP21=m -CONFIG_DVB_LNBP22=m +CONFIG_DVB_A8293=m +CONFIG_DVB_AF9033=m +CONFIG_DVB_ASCOT2E=m +CONFIG_DVB_ATBM8830=m +CONFIG_DVB_HELENE=m +CONFIG_DVB_HORUS3A=m CONFIG_DVB_ISL6405=m CONFIG_DVB_ISL6421=m CONFIG_DVB_ISL6423=m -CONFIG_DVB_A8293=m -CONFIG_DVB_SP2=m +CONFIG_DVB_IX2505V=m CONFIG_DVB_LGS8GL5=m CONFIG_DVB_LGS8GXX=m -CONFIG_DVB_ATBM8830=m -CONFIG_DVB_TDA665x=m -CONFIG_DVB_IX2505V=m +CONFIG_DVB_LNBH25=m +CONFIG_DVB_LNBH29=m +CONFIG_DVB_LNBP21=m +CONFIG_DVB_LNBP22=m CONFIG_DVB_M88RS2000=m -CONFIG_DVB_AF9033=m -CONFIG_DVB_HORUS3A=m -CONFIG_DVB_ASCOT2E=m +CONFIG_DVB_TDA665x=m +CONFIG_DVB_DRX39XYJ=m + +# +# Common Interface (EN50221) controller drivers +# +CONFIG_DVB_CXD2099=m +CONFIG_DVB_SP2=m +# end of Customise DVB Frontends # # Tools to develop new frontends # # CONFIG_DVB_DUMMY_FE is not set -# CONFIG_CAMSYS_DRV is not set -# CONFIG_ROCK_CHIP_SOC_CAMERA is not set - -# -# RockChip preisp driver -# -# CONFIG_RKPREISP_DRV is not set +# end of Media ancillary drivers # # Graphics support # -# CONFIG_VGA_ARB is not set CONFIG_DRM=y -CONFIG_DRM_IGNORE_IOTCL_PERMIT=y CONFIG_DRM_MIPI_DSI=y +# CONFIG_DRM_DEBUG_MM is not set +# CONFIG_DRM_DEBUG_SELFTEST is not set CONFIG_DRM_KMS_HELPER=y -CONFIG_DRM_KMS_FB_HELPER=y -CONFIG_DRM_GEM_CMA_HELPER=y -CONFIG_DRM_KMS_HELPER=y +# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set +# CONFIG_DRM_DEBUG_MODESET_LOCK is not set CONFIG_DRM_FBDEV_EMULATION=y +CONFIG_DRM_FBDEV_OVERALLOC=100 +# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set CONFIG_DRM_LOAD_EDID_FIRMWARE=y +CONFIG_DRM_DISPLAY_HELPER=y +CONFIG_DRM_DISPLAY_DP_HELPER=y +CONFIG_DRM_DISPLAY_HDMI_HELPER=y +# CONFIG_DRM_DP_AUX_CHARDEV is not set # CONFIG_DRM_DP_CEC is not set CONFIG_DRM_TTM=m -# CONFIG_DRM_SCDC_HELPER is not set -CONFIG_DRM_DMA_SYNC=y +CONFIG_DRM_VRAM_HELPER=m +CONFIG_DRM_TTM_HELPER=m +CONFIG_DRM_GEM_CMA_HELPER=y +CONFIG_DRM_GEM_SHMEM_HELPER=y +CONFIG_DRM_SCHED=y # # I2C encoder or helper chips # -# CONFIG_DRM_I2C_ADV7511 is not set # CONFIG_DRM_I2C_CH7006 is not set # CONFIG_DRM_I2C_SIL164 is not set # CONFIG_DRM_I2C_NXP_TDA998X is not set -# CONFIG_DRM_TDFX is not set -# CONFIG_DRM_R128 is not set +# CONFIG_DRM_I2C_NXP_TDA9950 is not set +# end of I2C encoder or helper chips + +# +# ARM devices +# +# CONFIG_DRM_HDLCD is not set +# CONFIG_DRM_MALI_DISPLAY is not set +# CONFIG_DRM_KOMEDA is not set +# end of ARM devices + # CONFIG_DRM_RADEON is not set # CONFIG_DRM_AMDGPU is not set # CONFIG_DRM_NOUVEAU is not set -# CONFIG_DRM_MGA is not set -# CONFIG_DRM_VIA is not set -# CONFIG_DRM_SAVAGE is not set # CONFIG_DRM_VGEM is not set +# CONFIG_DRM_VKMS is not set CONFIG_DRM_ROCKCHIP=y -# CONFIG_ROCKCHIP_DRM_DEBUG is not set -# CONFIG_ROCKCHIP_DRM_RGA is not set +CONFIG_ROCKCHIP_VOP=y +# CONFIG_ROCKCHIP_VOP2 is not set +CONFIG_ROCKCHIP_ANALOGIX_DP=y CONFIG_ROCKCHIP_CDN_DP=y CONFIG_ROCKCHIP_DW_HDMI=y CONFIG_ROCKCHIP_DW_MIPI_DSI=y -# CONFIG_ROCKCHIP_MIPI_CSI_TX is not set -CONFIG_ROCKCHIP_ANALOGIX_DP=y CONFIG_ROCKCHIP_INNO_HDMI=y CONFIG_ROCKCHIP_LVDS=y -CONFIG_ROCKCHIP_DRM_TVE=y CONFIG_ROCKCHIP_RGB=y -CONFIG_ROCKCHIP_DRM_BACKLIGHT=y -# CONFIG_ROCKCHIP_RK3066_HDMI is not set +CONFIG_ROCKCHIP_RK3066_HDMI=y +# CONFIG_DRM_VMWGFX is not set CONFIG_DRM_UDL=y CONFIG_DRM_AST=m # CONFIG_DRM_MGAG200 is not set -# CONFIG_DRM_CIRRUS_QEMU is not set +# CONFIG_DRM_RCAR_DW_HDMI is not set +# CONFIG_DRM_RCAR_USE_LVDS is not set +# CONFIG_DRM_RCAR_MIPI_DSI is not set # CONFIG_DRM_QXL is not set -# CONFIG_DRM_BOCHS is not set CONFIG_DRM_PANEL=y # # Display Panels # +# CONFIG_DRM_PANEL_ABT_Y030XX067A is not set +# CONFIG_DRM_PANEL_ARM_VERSATILE is not set +# CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 is not set +# CONFIG_DRM_PANEL_BOE_BF060Y8M_AJ0 is not set +# CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set +# CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 is not set +# CONFIG_DRM_PANEL_DSI_CM is not set +# CONFIG_DRM_PANEL_LVDS is not set CONFIG_DRM_PANEL_SIMPLE=y +# CONFIG_DRM_PANEL_EDP is not set +CONFIG_DRM_PANEL_ELIDA_KD35T133=y +# CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 is not set +# CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set +# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set +# CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set +# CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set +# CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set +# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set +# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set +# CONFIG_DRM_PANEL_JDI_R63452 is not set +# CONFIG_DRM_PANEL_KHADAS_TS050 is not set +# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set +# CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W is not set +# CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829 is not set # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set +# CONFIG_DRM_PANEL_LG_LB035Q02 is not set # CONFIG_DRM_PANEL_LG_LG4573 is not set +# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set +# CONFIG_DRM_PANEL_NEWVISION_NV3052C is not set +# CONFIG_DRM_PANEL_NOVATEK_NT35510 is not set +# CONFIG_DRM_PANEL_NOVATEK_NT35560 is not set +# CONFIG_DRM_PANEL_NOVATEK_NT35950 is not set +# CONFIG_DRM_PANEL_NOVATEK_NT36672A is not set +# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set +# CONFIG_DRM_PANEL_MANTIX_MLAF057WE51 is not set +# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set +# CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set +# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set +# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set +# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set +# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set +# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set +# CONFIG_DRM_PANEL_RONBO_RB070D30 is not set +# CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set +# CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set +# CONFIG_DRM_PANEL_SAMSUNG_SOFEF00 is not set +# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set # CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set -CONFIG_DRM_PANEL_TOSHIBA_TC358762=y +# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set +# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set +CONFIG_DRM_PANEL_SHARP_LS054B3SX01=y +# CONFIG_DRM_PANEL_SHARP_LS060T1SX01 is not set +CONFIG_DRM_PANEL_SITRONIX_ST7701=y +# CONFIG_DRM_PANEL_SITRONIX_ST7703 is not set +# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set +# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set +# CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521 is not set +# CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set +# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set +# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set +# CONFIG_DRM_PANEL_TPO_TPG110 is not set +# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set +# CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set +# CONFIG_DRM_PANEL_WIDECHIPS_WS2401 is not set +# CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set +# end of Display Panels + CONFIG_DRM_BRIDGE=y +CONFIG_DRM_PANEL_BRIDGE=y # # Display Interface Bridges # +# CONFIG_DRM_CDNS_DSI is not set +# CONFIG_DRM_CHIPONE_ICN6211 is not set +# CONFIG_DRM_CHRONTEL_CH7033 is not set +CONFIG_DRM_DISPLAY_CONNECTOR=y +# CONFIG_DRM_FSL_LDB is not set +# CONFIG_DRM_ITE_IT6505 is not set +# CONFIG_DRM_LONTIUM_LT8912B is not set +# CONFIG_DRM_LONTIUM_LT9211 is not set +# CONFIG_DRM_LONTIUM_LT9611 is not set +# CONFIG_DRM_LONTIUM_LT9611UXC is not set +# CONFIG_DRM_ITE_IT66121 is not set +# CONFIG_DRM_LVDS_CODEC is not set +# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set +# CONFIG_DRM_NWL_MIPI_DSI is not set # CONFIG_DRM_NXP_PTN3460 is not set # CONFIG_DRM_PARADE_PS8622 is not set -# CONFIG_DRM_RK1000 is not set -# CONFIG_DRM_DUMB_VGA_DAC is not set -# CONFIG_DRM_LONTIUM_LT8912 is not set -# CONFIG_DRM_CHIPONE_ICN6211 is not set -CONFIG_DRM_ANALOGIX_DP=y -# CONFIG_DRM_ANALOGIX_ANX78XX is not set +# CONFIG_DRM_PARADE_PS8640 is not set +# CONFIG_DRM_SIL_SII8620 is not set +# CONFIG_DRM_SII902X is not set +# CONFIG_DRM_SII9234 is not set +# CONFIG_DRM_SIMPLE_BRIDGE is not set +# CONFIG_DRM_THINE_THC63LVD1024 is not set +# CONFIG_DRM_TOSHIBA_TC358762 is not set +# CONFIG_DRM_TOSHIBA_TC358764 is not set +# CONFIG_DRM_TOSHIBA_TC358767 is not set +# CONFIG_DRM_TOSHIBA_TC358768 is not set +# CONFIG_DRM_TOSHIBA_TC358775 is not set +# CONFIG_DRM_TI_TFP410 is not set +# CONFIG_DRM_TI_SN65DSI83 is not set +# CONFIG_DRM_TI_SN65DSI86 is not set +# CONFIG_DRM_TI_TPD12S015 is not set # CONFIG_DRM_ANALOGIX_ANX6345 is not set +# CONFIG_DRM_ANALOGIX_ANX78XX is not set +CONFIG_DRM_ANALOGIX_DP=y +# CONFIG_DRM_ANALOGIX_ANX7625 is not set +# CONFIG_DRM_I2C_ADV7511 is not set +# CONFIG_DRM_CDNS_MHDP8546 is not set CONFIG_DRM_DW_HDMI=y # CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set CONFIG_DRM_DW_HDMI_I2S_AUDIO=m +# CONFIG_DRM_DW_HDMI_GP_AUDIO is not set CONFIG_DRM_DW_HDMI_CEC=y -# CONFIG_POWERVR_ROGUE_M is not set -CONFIG_MALI400=y -CONFIG_MALI450=y -# CONFIG_MALI470 is not set -# CONFIG_MALI400_DEBUG is not set -# CONFIG_MALI400_PROFILING is not set -# CONFIG_MALI400_UMP is not set -CONFIG_MALI_DMA_BUF_MAP_ON_ATTACH=y -CONFIG_MALI_SHARED_INTERRUPTS=y -# CONFIG_MALI_PMU_PARALLEL_POWER_UP is not set -CONFIG_MALI_DT=y -CONFIG_MALI_DEVFREQ=y -# CONFIG_MALI_QUIET is not set -CONFIG_MALI_MIDGARD=y -CONFIG_MALI_MIDGARD_R18=y -# CONFIG_MALI_MIDGARD_R14 is not set -# CONFIG_MALI_GATOR_SUPPORT is not set -# CONFIG_MALI_MIDGARD_ENABLE_TRACE is not set -CONFIG_MALI_DMA_FENCE=y -CONFIG_MALI_EXPERT=y -# CONFIG_MALI_CORESTACK is not set -# CONFIG_MALI_PRFCNT_SET_SECONDARY is not set -# CONFIG_MALI_PLATFORM_FAKE is not set -# CONFIG_MALI_PLATFORM_DEVICETREE is not set -CONFIG_MALI_PLATFORM_THIRDPARTY=y -CONFIG_MALI_PLATFORM_THIRDPARTY_NAME="rk" -CONFIG_MALI_DEBUG=y -# CONFIG_MALI_NO_MALI is not set -# CONFIG_MALI_TRACE_TIMELINE is not set -# CONFIG_MALI_SYSTEM_TRACE is not set -# CONFIG_MALI_GPU_MMU_AARCH64 is not set -CONFIG_MALI_PWRSOFT_765=y -# CONFIG_MALI_KUTF is not set -# CONFIG_MALI_BIFROST is not set +CONFIG_DRM_DW_MIPI_DSI=y +# end of Display Interface Bridges + +# CONFIG_DRM_ETNAVIV is not set +# CONFIG_DRM_HISI_HIBMC is not set +# CONFIG_DRM_HISI_KIRIN is not set +# CONFIG_DRM_MXSFB is not set +# CONFIG_DRM_ARCPGU is not set +# CONFIG_DRM_BOCHS is not set +# CONFIG_DRM_CIRRUS_QEMU is not set +# CONFIG_DRM_GM12U320 is not set +# CONFIG_DRM_PANEL_MIPI_DBI is not set +# CONFIG_DRM_SIMPLEDRM is not set +# CONFIG_TINYDRM_HX8357D is not set +# CONFIG_TINYDRM_ILI9163 is not set +# CONFIG_TINYDRM_ILI9225 is not set +# CONFIG_TINYDRM_ILI9341 is not set +# CONFIG_TINYDRM_ILI9486 is not set +# CONFIG_TINYDRM_MI0283QT is not set +# CONFIG_TINYDRM_REPAPER is not set +# CONFIG_TINYDRM_ST7586 is not set +# CONFIG_TINYDRM_ST7735R is not set +# CONFIG_DRM_PL111 is not set +# CONFIG_DRM_LIMA is not set +CONFIG_DRM_PANFROST=y +# CONFIG_DRM_TIDSS is not set +# CONFIG_DRM_GUD is not set +# CONFIG_DRM_SSD130X is not set +# CONFIG_DRM_LEGACY is not set +CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y +CONFIG_DRM_NOMODESET=y # # Frame buffer Devices # +CONFIG_FB_CMDLINE=y +CONFIG_FB_NOTIFY=y CONFIG_FB=y # CONFIG_FIRMWARE_EDID is not set -CONFIG_FB_CMDLINE=y -# CONFIG_FB_DDC is not set -# CONFIG_FB_BOOT_VESA_SUPPORT is not set CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y -# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set CONFIG_FB_SYS_FILLRECT=y CONFIG_FB_SYS_COPYAREA=y CONFIG_FB_SYS_IMAGEBLIT=y # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=y CONFIG_FB_DEFERRED_IO=y -# CONFIG_FB_SVGALIB is not set -# CONFIG_FB_MACMODES is not set -# CONFIG_FB_BACKLIGHT is not set # CONFIG_FB_MODE_HELPERS is not set # CONFIG_FB_TILEBLITTING is not set @@ -4032,17 +4837,19 @@ CONFIG_FB_DEFERRED_IO=y # CONFIG_FB_VIRTUAL is not set # CONFIG_FB_METRONOME is not set # CONFIG_FB_MB862XX is not set -# CONFIG_FB_BROADSHEET is not set -# CONFIG_FB_AUO_K190X is not set # CONFIG_FB_SIMPLE is not set # CONFIG_FB_SSD1307 is not set # CONFIG_FB_SM712 is not set -CONFIG_BACKLIGHT_LCD_SUPPORT=y +# end of Frame buffer Devices + +# +# Backlight & LCD device support +# # CONFIG_LCD_CLASS_DEVICE is not set CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=y +# CONFIG_BACKLIGHT_KTD253 is not set CONFIG_BACKLIGHT_PWM=y -# CONFIG_BACKLIGHT_PM8941_WLED is not set +# CONFIG_BACKLIGHT_QCOM_WLED is not set # CONFIG_BACKLIGHT_ADP8860 is not set # CONFIG_BACKLIGHT_ADP8870 is not set # CONFIG_BACKLIGHT_LM3630A is not set @@ -4051,51 +4858,12 @@ CONFIG_BACKLIGHT_PWM=y # CONFIG_BACKLIGHT_GPIO is not set # CONFIG_BACKLIGHT_LV5207LP is not set # CONFIG_BACKLIGHT_BD6107 is not set +# CONFIG_BACKLIGHT_ARCXCNN is not set +# CONFIG_BACKLIGHT_LED is not set +# end of Backlight & LCD device support -# -# Rockchip Misc Video driver -# -# CONFIG_FB_ROCKCHIP is not set -# CONFIG_LCDC_RK3368 is not set -CONFIG_LCD_GENERAL=y -# CONFIG_LCD_MIPI is not set -# CONFIG_RK_TRSM is not set -# CONFIG_RK_HDMI is not set - -# -# RGA -# -# CONFIG_ROCKCHIP_RGA is not set - -# -# RGA2 -# -CONFIG_ROCKCHIP_RGA2=y - -# -# VCODEC -# -CONFIG_RK_VCODEC=y - -# -# IEP -# -# CONFIG_IEP is not set -# CONFIG_IEP_MMU is not set - -# -# DP -# - -# -# ROCKCHIP_MPP -# -CONFIG_ROCKCHIP_MPP_SERVICE=y -CONFIG_ROCKCHIP_MPP_DEVICE=y -# CONFIG_VGASTATE is not set CONFIG_VIDEOMODE_HELPERS=y CONFIG_HDMI=y -CONFIG_HDMI_NOTIFIERS=y # # Console display driver support @@ -4104,75 +4872,65 @@ CONFIG_DUMMY_CONSOLE=y CONFIG_DUMMY_CONSOLE_COLUMNS=80 CONFIG_DUMMY_CONSOLE_ROWS=25 CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set +# end of Console display driver support + CONFIG_LOGO=y CONFIG_LOGO_LINUX_MONO=y CONFIG_LOGO_LINUX_VGA16=y CONFIG_LOGO_LINUX_CLUT224=y +# end of Graphics support + CONFIG_SOUND=y -CONFIG_SOUND_OSS_CORE=y -CONFIG_SOUND_OSS_CORE_PRECLAIM=y CONFIG_SND=y CONFIG_SND_TIMER=y CONFIG_SND_PCM=y CONFIG_SND_PCM_ELD=y CONFIG_SND_PCM_IEC958=y CONFIG_SND_DMAENGINE_PCM=y -CONFIG_SND_HWDEP=y +CONFIG_SND_SEQ_DEVICE=y CONFIG_SND_RAWMIDI=y CONFIG_SND_JACK=y -CONFIG_SND_SEQUENCER=y -CONFIG_SND_SEQ_DUMMY=y -# CONFIG_SND_MIXER_OSS is not set -# CONFIG_SND_PCM_OSS is not set +CONFIG_SND_JACK_INPUT_DEV=y +# CONFIG_SND_OSSEMUL is not set CONFIG_SND_PCM_TIMER=y -# CONFIG_SND_SEQUENCER_OSS is not set CONFIG_SND_HRTIMER=y -CONFIG_SND_SEQ_HRTIMER_DEFAULT=y CONFIG_SND_DYNAMIC_MINORS=y CONFIG_SND_MAX_CARDS=32 # CONFIG_SND_SUPPORT_OLD_API is not set CONFIG_SND_PROC_FS=y -CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_VERBOSE_PROCFS is not set +CONFIG_SND_VERBOSE_PRINTK=y # CONFIG_SND_DEBUG is not set -CONFIG_SND_RAWMIDI_SEQ=y -# CONFIG_SND_OPL3_LIB_SEQ is not set -# CONFIG_SND_OPL4_LIB_SEQ is not set -# CONFIG_SND_SBAWE_SEQ is not set -# CONFIG_SND_EMU10K1_SEQ is not set -CONFIG_SND_DRIVERS=y -# CONFIG_SND_DUMMY is not set -# CONFIG_SND_ALOOP is not set -# CONFIG_SND_VIRMIDI is not set -# CONFIG_SND_MTPAV is not set -# CONFIG_SND_SERIAL_U16550 is not set -# CONFIG_SND_MPU401 is not set +CONFIG_SND_SEQUENCER=y +CONFIG_SND_SEQ_DUMMY=y +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_SEQ_MIDI_EVENT=y +CONFIG_SND_SEQ_MIDI=y +# CONFIG_SND_DRIVERS is not set # CONFIG_SND_PCI is not set # # HD-Audio # +# end of HD-Audio + CONFIG_SND_HDA_PREALLOC_SIZE=64 # CONFIG_SND_SPI is not set -CONFIG_SND_USB=y -CONFIG_SND_USB_AUDIO=y -# CONFIG_SND_USB_UA101 is not set -# CONFIG_SND_USB_CAIAQ is not set -# CONFIG_SND_USB_6FIRE is not set -# CONFIG_SND_USB_HIFACE is not set -# CONFIG_SND_BCD2000 is not set -# CONFIG_SND_USB_POD is not set -# CONFIG_SND_USB_PODHD is not set -# CONFIG_SND_USB_TONEPORT is not set -# CONFIG_SND_USB_VARIAX is not set +# CONFIG_SND_USB is not set CONFIG_SND_PCMCIA=y # CONFIG_SND_VXPOCKET is not set # CONFIG_SND_PDAUDIOCF is not set CONFIG_SND_SOC=y CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y +# CONFIG_SND_SOC_ADI is not set +# CONFIG_SND_SOC_AMD_ACP is not set +# CONFIG_SND_AMD_ACP_CONFIG is not set # CONFIG_SND_ATMEL_SOC is not set +# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set # CONFIG_SND_DESIGNWARE_I2S is not set # @@ -4183,33 +4941,39 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y # Common SoC Audio options for Freescale CPUs: # # CONFIG_SND_SOC_FSL_ASRC is not set -# CONFIG_SND_SOC_FSL_SAI is not set +CONFIG_SND_SOC_FSL_SAI=y +# CONFIG_SND_SOC_FSL_MQS is not set +# CONFIG_SND_SOC_FSL_AUDMIX is not set # CONFIG_SND_SOC_FSL_SSI is not set # CONFIG_SND_SOC_FSL_SPDIF is not set # CONFIG_SND_SOC_FSL_ESAI is not set +# CONFIG_SND_SOC_FSL_MICFIL is not set +# CONFIG_SND_SOC_FSL_XCVR is not set # CONFIG_SND_SOC_IMX_AUDMUX is not set +# end of SoC Audio for Freescale CPUs + +# CONFIG_SND_I2S_HI6210_I2S is not set +# CONFIG_SND_SOC_IMG is not set +# CONFIG_SND_SOC_MTK_BTCVSD is not set CONFIG_SND_SOC_ROCKCHIP=y -# CONFIG_SND_SOC_ROCKCHIP_FORCE_SRAM is not set CONFIG_SND_SOC_ROCKCHIP_I2S=y CONFIG_SND_SOC_ROCKCHIP_I2S_TDM=y -# CONFIG_SND_SOC_ROCKCHIP_MULTI_DAIS is not set CONFIG_SND_SOC_ROCKCHIP_PDM=y CONFIG_SND_SOC_ROCKCHIP_SPDIF=y -# CONFIG_SND_SOC_ROCKCHIP_SPDIFRX is not set -# CONFIG_SND_SOC_ROCKCHIP_VAD is not set -# CONFIG_SND_SOC_ROCKCHIP_DA7219 is not set -CONFIG_SND_SOC_ROCKCHIP_HDMI_ANALOG=y -CONFIG_SND_SOC_ROCKCHIP_HDMI_DP=y CONFIG_SND_SOC_ROCKCHIP_MAX98090=y -CONFIG_SND_SOC_ROCKCHIP_MULTICODECS=y CONFIG_SND_SOC_ROCKCHIP_RT5645=y -# CONFIG_SND_SOC_ROCKCHIP_RT5651_TC358749 is not set -CONFIG_SND_SOC_ROCKCHIP_CDNDP=y +# CONFIG_SND_SOC_RK3288_HDMI_ANALOG is not set +# CONFIG_SND_SOC_RK3399_GRU_SOUND is not set +# CONFIG_SND_SOC_SOF_TOPLEVEL is not set # -# Allwinner SoC Audio support +# STMicroelectronics STM32 SOC audio support # -# CONFIG_SND_SUN4I_CODEC is not set +# end of STMicroelectronics STM32 SOC audio support + +# CONFIG_SND_SOC_XILINX_I2S is not set +# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set +# CONFIG_SND_SOC_XILINX_SPDIF is not set # CONFIG_SND_SOC_XTFPGA_I2S is not set CONFIG_SND_SOC_I2C_AND_SPI=y @@ -4217,57 +4981,103 @@ CONFIG_SND_SOC_I2C_AND_SPI=y # CODEC drivers # # CONFIG_SND_SOC_AC97_CODEC is not set +# CONFIG_SND_SOC_ADAU1372_I2C is not set +# CONFIG_SND_SOC_ADAU1372_SPI is not set # CONFIG_SND_SOC_ADAU1701 is not set +# CONFIG_SND_SOC_ADAU1761_I2C is not set +# CONFIG_SND_SOC_ADAU1761_SPI is not set +# CONFIG_SND_SOC_ADAU7002 is not set +# CONFIG_SND_SOC_ADAU7118_HW is not set +# CONFIG_SND_SOC_ADAU7118_I2C is not set # CONFIG_SND_SOC_AK4104 is not set +# CONFIG_SND_SOC_AK4118 is not set +# CONFIG_SND_SOC_AK4375 is not set +# CONFIG_SND_SOC_AK4458 is not set # CONFIG_SND_SOC_AK4554 is not set # CONFIG_SND_SOC_AK4613 is not set # CONFIG_SND_SOC_AK4642 is not set # CONFIG_SND_SOC_AK5386 is not set +# CONFIG_SND_SOC_AK5558 is not set # CONFIG_SND_SOC_ALC5623 is not set +# CONFIG_SND_SOC_AW8738 is not set +# CONFIG_SND_SOC_BD28623 is not set +# CONFIG_SND_SOC_BT_SCO is not set # CONFIG_SND_SOC_CS35L32 is not set +# CONFIG_SND_SOC_CS35L33 is not set +# CONFIG_SND_SOC_CS35L34 is not set +# CONFIG_SND_SOC_CS35L35 is not set +# CONFIG_SND_SOC_CS35L36 is not set +# CONFIG_SND_SOC_CS35L41_SPI is not set +# CONFIG_SND_SOC_CS35L41_I2C is not set +# CONFIG_SND_SOC_CS35L45_SPI is not set +# CONFIG_SND_SOC_CS35L45_I2C is not set +# CONFIG_SND_SOC_CS42L42 is not set # CONFIG_SND_SOC_CS42L51_I2C is not set # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set +# CONFIG_SND_SOC_CS4234 is not set # CONFIG_SND_SOC_CS4265 is not set # CONFIG_SND_SOC_CS4270 is not set # CONFIG_SND_SOC_CS4271_I2C is not set # CONFIG_SND_SOC_CS4271_SPI is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set +# CONFIG_SND_SOC_CS43130 is not set +# CONFIG_SND_SOC_CS4341 is not set # CONFIG_SND_SOC_CS4349 is not set +# CONFIG_SND_SOC_CS53L30 is not set # CONFIG_SND_SOC_CX2072X is not set -# CONFIG_SND_SOC_CX20810 is not set -# CONFIG_SND_SOC_DUMMY_CODEC is not set -# CONFIG_SND_SOC_BT_SCO is not set -CONFIG_SND_SOC_ES8316=m -# CONFIG_SND_SOC_ES8323 is not set +# CONFIG_SND_SOC_DA7213 is not set +# CONFIG_SND_SOC_DMIC is not set CONFIG_SND_SOC_HDMI_CODEC=y -# CONFIG_SND_SOC_ES8328 is not set +# CONFIG_SND_SOC_ES7134 is not set +# CONFIG_SND_SOC_ES7241 is not set +CONFIG_SND_SOC_ES8316=y # CONFIG_SND_SOC_ES8328_I2C is not set -# CONFIG_SND_SOC_ES8396 is not set +# CONFIG_SND_SOC_ES8328_SPI is not set # CONFIG_SND_SOC_GTM601 is not set -# CONFIG_SND_SOC_GVA_CODEC is not set -# CONFIG_SND_SOC_FM1288 is not set +# CONFIG_SND_SOC_ICS43432 is not set +# CONFIG_SND_SOC_INNO_RK3036 is not set +# CONFIG_SND_SOC_MAX98088 is not set CONFIG_SND_SOC_MAX98090=y +# CONFIG_SND_SOC_MAX98357A is not set +# CONFIG_SND_SOC_MAX98504 is not set +# CONFIG_SND_SOC_MAX9867 is not set +# CONFIG_SND_SOC_MAX98927 is not set +# CONFIG_SND_SOC_MAX98520 is not set +# CONFIG_SND_SOC_MAX98373_I2C is not set +# CONFIG_SND_SOC_MAX98390 is not set +# CONFIG_SND_SOC_MAX98396 is not set +# CONFIG_SND_SOC_MAX9860 is not set +# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set # CONFIG_SND_SOC_PCM1681 is not set -# CONFIG_SND_SOC_PCM1792A is not set +# CONFIG_SND_SOC_PCM1789_I2C is not set +# CONFIG_SND_SOC_PCM179X_I2C is not set +# CONFIG_SND_SOC_PCM179X_SPI is not set +# CONFIG_SND_SOC_PCM186X_I2C is not set +# CONFIG_SND_SOC_PCM186X_SPI is not set +# CONFIG_SND_SOC_PCM3060_I2C is not set +# CONFIG_SND_SOC_PCM3060_SPI is not set +# CONFIG_SND_SOC_PCM3168A_I2C is not set +# CONFIG_SND_SOC_PCM3168A_SPI is not set +# CONFIG_SND_SOC_PCM5102A is not set # CONFIG_SND_SOC_PCM512x_I2C is not set # CONFIG_SND_SOC_PCM512x_SPI is not set -# CONFIG_SND_SOC_RK312X is not set -# CONFIG_SND_SOC_RK3228 is not set -# CONFIG_SND_SOC_RK3308 is not set # CONFIG_SND_SOC_RK3328 is not set -# CONFIG_SND_SOC_RK817 is not set +CONFIG_SND_SOC_RK817=y CONFIG_SND_SOC_RL6231=y # CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5631 is not set # CONFIG_SND_SOC_RT5640 is not set CONFIG_SND_SOC_RT5645=y -# CONFIG_SND_SOC_RT5651 is not set -# CONFIG_SND_SOC_RT5677_SPI is not set +# CONFIG_SND_SOC_RT5659 is not set +# CONFIG_SND_SOC_RT9120 is not set # CONFIG_SND_SOC_SGTL5000 is not set -# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set +CONFIG_SND_SOC_SIMPLE_AMPLIFIER=y +# CONFIG_SND_SOC_SIMPLE_MUX is not set CONFIG_SND_SOC_SPDIF=y +# CONFIG_SND_SOC_SSM2305 is not set +# CONFIG_SND_SOC_SSM2518 is not set # CONFIG_SND_SOC_SSM2602_SPI is not set # CONFIG_SND_SOC_SSM2602_I2C is not set # CONFIG_SND_SOC_SSM4567 is not set @@ -4275,35 +5085,79 @@ CONFIG_SND_SOC_SPDIF=y # CONFIG_SND_SOC_STA350 is not set # CONFIG_SND_SOC_STI_SAS is not set # CONFIG_SND_SOC_TAS2552 is not set +# CONFIG_SND_SOC_TAS2562 is not set +# CONFIG_SND_SOC_TAS2764 is not set +# CONFIG_SND_SOC_TAS2770 is not set # CONFIG_SND_SOC_TAS5086 is not set # CONFIG_SND_SOC_TAS571X is not set -# CONFIG_SND_SOC_TC358749X is not set +# CONFIG_SND_SOC_TAS5720 is not set +# CONFIG_SND_SOC_TAS5805M is not set +# CONFIG_SND_SOC_TAS6424 is not set +# CONFIG_SND_SOC_TDA7419 is not set # CONFIG_SND_SOC_TFA9879 is not set +# CONFIG_SND_SOC_TFA989X is not set +# CONFIG_SND_SOC_TLV320ADC3XXX is not set # CONFIG_SND_SOC_TLV320AIC23_I2C is not set # CONFIG_SND_SOC_TLV320AIC23_SPI is not set # CONFIG_SND_SOC_TLV320AIC31XX is not set -# CONFIG_SND_SOC_TLV320AIC3X is not set +# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set +# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set +# CONFIG_SND_SOC_TLV320AIC3X_I2C is not set +# CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +# CONFIG_SND_SOC_TLV320ADCX140 is not set CONFIG_SND_SOC_TS3A227E=y +# CONFIG_SND_SOC_TSCS42XX is not set +# CONFIG_SND_SOC_TSCS454 is not set +# CONFIG_SND_SOC_UDA1334 is not set # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set +# CONFIG_SND_SOC_WM8524 is not set # CONFIG_SND_SOC_WM8580 is not set # CONFIG_SND_SOC_WM8711 is not set # CONFIG_SND_SOC_WM8728 is not set -# CONFIG_SND_SOC_WM8731 is not set +# CONFIG_SND_SOC_WM8731_I2C is not set +# CONFIG_SND_SOC_WM8731_SPI is not set # CONFIG_SND_SOC_WM8737 is not set # CONFIG_SND_SOC_WM8741 is not set # CONFIG_SND_SOC_WM8750 is not set # CONFIG_SND_SOC_WM8753 is not set # CONFIG_SND_SOC_WM8770 is not set # CONFIG_SND_SOC_WM8776 is not set +# CONFIG_SND_SOC_WM8782 is not set # CONFIG_SND_SOC_WM8804_I2C is not set # CONFIG_SND_SOC_WM8804_SPI is not set # CONFIG_SND_SOC_WM8903 is not set +# CONFIG_SND_SOC_WM8904 is not set +# CONFIG_SND_SOC_WM8940 is not set +# CONFIG_SND_SOC_WM8960 is not set # CONFIG_SND_SOC_WM8962 is not set +# CONFIG_SND_SOC_WM8974 is not set # CONFIG_SND_SOC_WM8978 is not set +# CONFIG_SND_SOC_WM8985 is not set +# CONFIG_SND_SOC_ZL38060 is not set +# CONFIG_SND_SOC_MAX9759 is not set +# CONFIG_SND_SOC_MT6351 is not set +# CONFIG_SND_SOC_MT6358 is not set +# CONFIG_SND_SOC_MT6660 is not set +# CONFIG_SND_SOC_NAU8315 is not set +# CONFIG_SND_SOC_NAU8540 is not set +# CONFIG_SND_SOC_NAU8810 is not set +# CONFIG_SND_SOC_NAU8821 is not set +# CONFIG_SND_SOC_NAU8822 is not set +# CONFIG_SND_SOC_NAU8824 is not set # CONFIG_SND_SOC_TPA6130A2 is not set +# CONFIG_SND_SOC_LPASS_WSA_MACRO is not set +# CONFIG_SND_SOC_LPASS_VA_MACRO is not set +# CONFIG_SND_SOC_LPASS_RX_MACRO is not set +# CONFIG_SND_SOC_LPASS_TX_MACRO is not set +# end of CODEC drivers + +CONFIG_SND_SIMPLE_CARD_UTILS=y CONFIG_SND_SIMPLE_CARD=y -CONFIG_SOUND_PRIME=y +CONFIG_SND_AUDIO_GRAPH_CARD=y +CONFIG_SND_AUDIO_GRAPH_CARD2=y +CONFIG_SND_AUDIO_GRAPH_CARD2_CUSTOM_SAMPLE=y +CONFIG_SND_TEST_COMPONENT=y # # HID support @@ -4318,40 +5172,57 @@ CONFIG_HID_GENERIC=y # Special HID drivers # CONFIG_HID_A4TECH=y +# CONFIG_HID_ACCUTOUCH is not set CONFIG_HID_ACRUX=y # CONFIG_HID_ACRUX_FF is not set CONFIG_HID_APPLE=y CONFIG_HID_APPLEIR=y +# CONFIG_HID_ASUS is not set CONFIG_HID_AUREAL=y CONFIG_HID_BELKIN=y CONFIG_HID_BETOP_FF=y +# CONFIG_HID_BIGBEN_FF is not set CONFIG_HID_CHERRY=y CONFIG_HID_CHICONY=y CONFIG_HID_CORSAIR=y +# CONFIG_HID_COUGAR is not set +# CONFIG_HID_MACALLY is not set CONFIG_HID_PRODIKEYS=y +# CONFIG_HID_CMEDIA is not set CONFIG_HID_CP2112=y +# CONFIG_HID_CREATIVE_SB0540 is not set CONFIG_HID_CYPRESS=y CONFIG_HID_DRAGONRISE=y CONFIG_DRAGONRISE_FF=y CONFIG_HID_EMS_FF=y +# CONFIG_HID_ELAN is not set CONFIG_HID_ELECOM=y CONFIG_HID_ELO=y CONFIG_HID_EZKEY=y +# CONFIG_HID_FT260 is not set CONFIG_HID_GEMBIRD=y CONFIG_HID_GFRM=y +# CONFIG_HID_GLORIOUS is not set CONFIG_HID_HOLTEK=y CONFIG_HOLTEK_FF=y +# CONFIG_HID_VIVALDI is not set CONFIG_HID_GT683R=y CONFIG_HID_KEYTOUCH=y CONFIG_HID_KYE=y CONFIG_HID_UCLOGIC=y CONFIG_HID_WALTOP=y +# CONFIG_HID_VIEWSONIC is not set +# CONFIG_HID_XIAOMI is not set CONFIG_HID_GYRATION=y CONFIG_HID_ICADE=y +# CONFIG_HID_ITE is not set +# CONFIG_HID_JABRA is not set CONFIG_HID_TWINHAN=y CONFIG_HID_KENSINGTON=y CONFIG_HID_LCPOWER=y +CONFIG_HID_LED=y CONFIG_HID_LENOVO=y +# CONFIG_HID_LETSKETCH is not set CONFIG_HID_LOGITECH=y CONFIG_HID_LOGITECH_DJ=y CONFIG_HID_LOGITECH_HIDPP=y @@ -4360,9 +5231,15 @@ CONFIG_LOGIRUMBLEPAD2_FF=y CONFIG_LOGIG940_FF=y CONFIG_LOGIWHEELS_FF=y CONFIG_HID_MAGICMOUSE=y +# CONFIG_HID_MALTRON is not set +# CONFIG_HID_MAYFLASH is not set +# CONFIG_HID_MEGAWORLD_FF is not set +# CONFIG_HID_REDRAGON is not set CONFIG_HID_MICROSOFT=y CONFIG_HID_MONTEREY=y CONFIG_HID_MULTITOUCH=y +# CONFIG_HID_NINTENDO is not set +# CONFIG_HID_NTI is not set CONFIG_HID_NTRIG=y CONFIG_HID_ORTEK=y CONFIG_HID_PANTHERLORD=y @@ -4371,10 +5248,14 @@ CONFIG_HID_PENMOUNT=y CONFIG_HID_PETALYNX=y # CONFIG_HID_PICOLCD is not set CONFIG_HID_PLANTRONICS=y +# CONFIG_HID_RAZER is not set CONFIG_HID_PRIMAX=y +# CONFIG_HID_RETRODE is not set CONFIG_HID_ROCCAT=y CONFIG_HID_SAITEK=y CONFIG_HID_SAMSUNG=y +# CONFIG_HID_SEMITEK is not set +# CONFIG_HID_SIGMAMICRO is not set CONFIG_HID_SONY=y # CONFIG_SONY_FF is not set CONFIG_HID_SPEEDLINK=y @@ -4391,17 +5272,19 @@ CONFIG_HID_TOPSEED=y CONFIG_HID_THINGM=y CONFIG_HID_THRUSTMASTER=y CONFIG_THRUSTMASTER_FF=y +# CONFIG_HID_UDRAW_PS3 is not set +# CONFIG_HID_U2FZERO is not set CONFIG_HID_WACOM=y CONFIG_HID_WIIMOTE=y -# CONFIG_HID_NINTENDO is not set CONFIG_HID_XINMO=y CONFIG_HID_ZEROPLUS=y CONFIG_ZEROPLUS_FF=y CONFIG_HID_ZYDACRON=y CONFIG_HID_SENSOR_HUB=y CONFIG_HID_SENSOR_CUSTOM_SENSOR=y -CONFIG_HID_RKVR=y CONFIG_HID_ALPS=y +# CONFIG_HID_MCP2221 is not set +# end of Special HID drivers # # USB HID support @@ -4409,46 +5292,61 @@ CONFIG_HID_ALPS=y CONFIG_USB_HID=y # CONFIG_HID_PID is not set CONFIG_USB_HIDDEV=y +CONFIG_HID_LOGITECH=y +# end of USB HID support # # I2C HID support # -CONFIG_I2C_HID=y +# CONFIG_I2C_HID_OF is not set +CONFIG_I2C_HID_OF_GOODIX=y +# end of I2C HID support + +CONFIG_I2C_HID_CORE=y +# end of HID support + CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_SUPPORT=y CONFIG_USB_COMMON=y +# CONFIG_USB_LED_TRIG is not set +# CONFIG_USB_ULPI_BUS is not set +# CONFIG_USB_CONN_GPIO is not set CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y +CONFIG_USB_PCI=y CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # # Miscellaneous USB options # # CONFIG_USB_DEFAULT_PERSIST is not set +# CONFIG_USB_FEW_INIT_RETRIES is not set # CONFIG_USB_DYNAMIC_MINORS is not set CONFIG_USB_OTG=y -# CONFIG_USB_OTG_WHITELIST is not set -# CONFIG_USB_OTG_BLACKLIST_HUB is not set -# CONFIG_USB_OTG_FSM is not set -# CONFIG_USB_ULPI_BUS is not set +CONFIG_USB_OTG_PRODUCTLIST=y +# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set +CONFIG_USB_OTG_FSM=y +CONFIG_USB_LEDS_TRIGGER_USBPORT=y +CONFIG_USB_AUTOSUSPEND_DELAY=2 CONFIG_USB_MON=y -# CONFIG_USB_WUSB_CBAF is not set # # USB Host Controller Drivers # # CONFIG_USB_C67X00_HCD is not set CONFIG_USB_XHCI_HCD=y +# CONFIG_USB_XHCI_DBGCAP is not set CONFIG_USB_XHCI_PCI=y +# CONFIG_USB_XHCI_PCI_RENESAS is not set CONFIG_USB_XHCI_PLATFORM=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_EHCI_PCI=y +# CONFIG_USB_EHCI_FSL is not set CONFIG_USB_EHCI_HCD_PLATFORM=y # CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_ISP116X_HCD is not set -# CONFIG_USB_ISP1362_HCD is not set # CONFIG_USB_FOTG210_HCD is not set # CONFIG_USB_MAX3421_HCD is not set CONFIG_USB_OHCI_HCD=y @@ -4501,6 +5399,7 @@ CONFIG_USB_UAS=y # CONFIG_USB_MDC800 is not set # CONFIG_USB_MICROTEK is not set # CONFIG_USBIP_CORE is not set +# CONFIG_USB_CDNS_SUPPORT is not set # CONFIG_USB_MUSB_HDRC is not set CONFIG_USB_DWC3=y # CONFIG_USB_DWC3_HOST is not set @@ -4510,10 +5409,8 @@ CONFIG_USB_DWC3_DUAL_ROLE=y # # Platform Glue Driver Support # -# CONFIG_USB_DWC3_PCI is not set +CONFIG_USB_DWC3_HAPS=y CONFIG_USB_DWC3_OF_SIMPLE=y -CONFIG_USB_DWC3_ROCKCHIP=y -CONFIG_USB_DWC3_ROCKCHIP_INNO=y CONFIG_USB_DWC2=y # CONFIG_USB_DWC2_HOST is not set @@ -4551,23 +5448,12 @@ CONFIG_USB_SERIAL_FTDI_SIO=y # CONFIG_USB_SERIAL_EDGEPORT is not set # CONFIG_USB_SERIAL_EDGEPORT_TI is not set # CONFIG_USB_SERIAL_F81232 is not set +# CONFIG_USB_SERIAL_F8153X is not set # CONFIG_USB_SERIAL_GARMIN is not set # CONFIG_USB_SERIAL_IPW is not set # CONFIG_USB_SERIAL_IUU is not set # CONFIG_USB_SERIAL_KEYSPAN_PDA is not set CONFIG_USB_SERIAL_KEYSPAN=y -# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set # CONFIG_USB_SERIAL_KLSI is not set # CONFIG_USB_SERIAL_KOBIL_SCT is not set # CONFIG_USB_SERIAL_MCT_U232 is not set @@ -4586,7 +5472,6 @@ CONFIG_USB_SERIAL_SIERRAWIRELESS=y # CONFIG_USB_SERIAL_SYMBOL is not set # CONFIG_USB_SERIAL_TI is not set # CONFIG_USB_SERIAL_CYBERJACK is not set -# CONFIG_USB_SERIAL_XIRCOM is not set CONFIG_USB_SERIAL_WWAN=y CONFIG_USB_SERIAL_OPTION=y # CONFIG_USB_SERIAL_OMNINET is not set @@ -4595,6 +5480,8 @@ CONFIG_USB_SERIAL_OPTION=y # CONFIG_USB_SERIAL_WISHBONE is not set # CONFIG_USB_SERIAL_SSU100 is not set # CONFIG_USB_SERIAL_QT2 is not set +# CONFIG_USB_SERIAL_UPD78F0730 is not set +# CONFIG_USB_SERIAL_XR is not set # CONFIG_USB_SERIAL_DEBUG is not set # @@ -4606,12 +5493,12 @@ CONFIG_USB_SERIAL_OPTION=y # CONFIG_USB_SEVSEG is not set # CONFIG_USB_LEGOTOWER is not set # CONFIG_USB_LCD is not set -CONFIG_USB_LED=m # CONFIG_USB_CYPRESS_CY7C63 is not set # CONFIG_USB_CYTHERM is not set # CONFIG_USB_IDMOUSE is not set # CONFIG_USB_FTDI_ELAN is not set # CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_APPLE_MFI_FASTCHARGE is not set # CONFIG_USB_SISUSBVGA is not set # CONFIG_USB_LD is not set # CONFIG_USB_TRANCEVIBRATOR is not set @@ -4621,7 +5508,9 @@ CONFIG_USB_LED=m # CONFIG_USB_ISIGHTFW is not set # CONFIG_USB_YUREX is not set CONFIG_USB_EZUSB_FX2=y +# CONFIG_USB_HUB_USB251XB is not set # CONFIG_USB_HSIC_USB3503 is not set +# CONFIG_USB_HSIC_USB4604 is not set # CONFIG_USB_LINK_LAYER_TEST is not set # CONFIG_USB_CHAOSKEY is not set @@ -4629,18 +5518,19 @@ CONFIG_USB_EZUSB_FX2=y # USB Physical Layer drivers # CONFIG_USB_PHY=y -# CONFIG_USB_OTG_WAKELOCK is not set -# CONFIG_NOP_USB_XCEIV is not set +CONFIG_NOP_USB_XCEIV=y # CONFIG_USB_GPIO_VBUS is not set # CONFIG_USB_ISP1301 is not set # CONFIG_USB_ULPI is not set -# CONFIG_DUAL_ROLE_USB_INTF is not set +# end of USB Physical Layer drivers + CONFIG_USB_GADGET=y # CONFIG_USB_GADGET_DEBUG is not set CONFIG_USB_GADGET_DEBUG_FILES=y # CONFIG_USB_GADGET_DEBUG_FS is not set CONFIG_USB_GADGET_VBUS_DRAW=500 CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 +CONFIG_U_SERIAL_CONSOLE=y # # USB Peripheral Controller @@ -4651,6 +5541,7 @@ CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 # CONFIG_USB_PXA27X is not set # CONFIG_USB_MV_UDC is not set # CONFIG_USB_MV_U3D is not set +# CONFIG_USB_SNP_UDC_PLAT is not set # CONFIG_USB_M66592 is not set # CONFIG_USB_BDC_UDC is not set # CONFIG_USB_AMD5536UDC is not set @@ -4659,10 +5550,15 @@ CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 # CONFIG_USB_GOKU is not set # CONFIG_USB_EG20T is not set # CONFIG_USB_GADGET_XILINX is not set +# CONFIG_USB_MAX3420_UDC is not set # CONFIG_USB_DUMMY_HCD is not set +# end of USB Peripheral Controller + CONFIG_USB_LIBCOMPOSITE=y CONFIG_USB_F_ACM=y CONFIG_USB_U_SERIAL=y +CONFIG_USB_F_SERIAL=y +CONFIG_USB_F_OBEX=y CONFIG_USB_F_MASS_STORAGE=y CONFIG_USB_F_FS=y CONFIG_USB_CONFIGFS=y @@ -4677,9 +5573,6 @@ CONFIG_USB_CONFIGFS_ACM=y CONFIG_USB_CONFIGFS_MASS_STORAGE=y # CONFIG_USB_CONFIGFS_F_LB_SS is not set CONFIG_USB_CONFIGFS_F_FS=y -# CONFIG_USB_CONFIGFS_F_MTP is not set -# CONFIG_USB_CONFIGFS_F_ACC is not set -CONFIG_USB_CONFIGFS_UEVENT=y # CONFIG_USB_CONFIGFS_F_UAC1 is not set # CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set # CONFIG_USB_CONFIGFS_F_UAC2 is not set @@ -4687,6 +5580,10 @@ CONFIG_USB_CONFIGFS_UEVENT=y # CONFIG_USB_CONFIGFS_F_HID is not set # CONFIG_USB_CONFIGFS_F_UVC is not set # CONFIG_USB_CONFIGFS_F_PRINTER is not set + +# +# USB Gadget precomposed configurations +# # CONFIG_USB_ZERO is not set # CONFIG_USB_AUDIO is not set # CONFIG_USB_ETH is not set @@ -4694,7 +5591,7 @@ CONFIG_USB_CONFIGFS_UEVENT=y # CONFIG_USB_GADGETFS is not set # CONFIG_USB_FUNCTIONFS is not set # CONFIG_USB_MASS_STORAGE is not set -# CONFIG_USB_G_SERIAL is not set +CONFIG_USB_G_SERIAL=y # CONFIG_USB_MIDI_GADGET is not set # CONFIG_USB_G_PRINTER is not set # CONFIG_USB_CDC_COMPOSITE is not set @@ -4703,42 +5600,59 @@ CONFIG_USB_CONFIGFS_UEVENT=y # CONFIG_USB_G_HID is not set # CONFIG_USB_G_DBGP is not set # CONFIG_USB_G_WEBCAM is not set +# CONFIG_USB_RAW_GADGET is not set +# end of USB Gadget precomposed configurations + +CONFIG_TYPEC=y +CONFIG_TYPEC_TCPM=y +# CONFIG_TYPEC_TCPCI is not set +CONFIG_TYPEC_FUSB302=y +# CONFIG_TYPEC_UCSI is not set +# CONFIG_TYPEC_TPS6598X is not set +# CONFIG_TYPEC_RT1719 is not set +# CONFIG_TYPEC_HD3SS3220 is not set +# CONFIG_TYPEC_STUSB160X is not set +# CONFIG_TYPEC_WUSB3801 is not set # -# ROCKCHIP USB Support +# USB Type-C Multiplexer/DeMultiplexer Switch support # -# CONFIG_USB20_HOST is not set -# CONFIG_USB20_OTG is not set -# CONFIG_USB_LED_TRIG is not set -# CONFIG_UWB is not set +# CONFIG_TYPEC_MUX_FSA4480 is not set +# CONFIG_TYPEC_MUX_PI3USB30532 is not set +# end of USB Type-C Multiplexer/DeMultiplexer Switch support + +# +# USB Type-C Alternate Mode drivers +# +CONFIG_TYPEC_DP_ALTMODE=y +# CONFIG_TYPEC_NVIDIA_ALTMODE is not set +# end of USB Type-C Alternate Mode drivers + +CONFIG_USB_ROLE_SWITCH=y CONFIG_MMC=y -# CONFIG_MMC_DEBUG is not set -# CONFIG_MMC_EMBEDDED_SDIO is not set -# CONFIG_MMC_PARANOID_SD_INIT is not set CONFIG_PWRSEQ_EMMC=y +# CONFIG_PWRSEQ_SD8787 is not set CONFIG_PWRSEQ_SIMPLE=y - -# -# MMC/SD/SDIO Card Drivers -# CONFIG_MMC_BLOCK=y CONFIG_MMC_BLOCK_MINORS=32 -CONFIG_MMC_BLOCK_BOUNCE=y # CONFIG_SDIO_UART is not set CONFIG_MMC_TEST=y -# CONFIG_MMC_SIMULATE_MAX_SPEED is not set # # MMC/SD/SDIO Host Controller Drivers # +# CONFIG_MMC_DEBUG is not set # CONFIG_MMC_ARMMMCI is not set CONFIG_MMC_SDHCI=y # CONFIG_MMC_SDHCI_PCI is not set -# CONFIG_MMC_SDHCI_ACPI is not set CONFIG_MMC_SDHCI_PLTFM=y CONFIG_MMC_SDHCI_OF_ARASAN=y +# CONFIG_MMC_SDHCI_OF_ASPEED is not set # CONFIG_MMC_SDHCI_OF_AT91 is not set +# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set +# CONFIG_MMC_SDHCI_CADENCE is not set # CONFIG_MMC_SDHCI_F_SDH30 is not set +# CONFIG_MMC_SDHCI_MILBEAUT is not set # CONFIG_MMC_TIFM_SD is not set # CONFIG_MMC_SPI is not set # CONFIG_MMC_SDRICOH_CS is not set @@ -4746,52 +5660,80 @@ CONFIG_MMC_SDHCI_OF_ARASAN=y # CONFIG_MMC_VIA_SDMMC is not set CONFIG_MMC_DW=y CONFIG_MMC_DW_PLTFM=y +# CONFIG_MMC_DW_BLUEFIELD is not set # CONFIG_MMC_DW_EXYNOS is not set +# CONFIG_MMC_DW_HI3798CV200 is not set # CONFIG_MMC_DW_K3 is not set # CONFIG_MMC_DW_PCI is not set CONFIG_MMC_DW_ROCKCHIP=y # CONFIG_MMC_VUB300 is not set # CONFIG_MMC_USHC is not set # CONFIG_MMC_USDHI6ROL0 is not set +CONFIG_MMC_CQHCI=y +# CONFIG_MMC_HSQ is not set # CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_MTK is not set +# CONFIG_MMC_SDHCI_XENON is not set +# CONFIG_MMC_SDHCI_OMAP is not set +# CONFIG_MMC_SDHCI_AM654 is not set +# CONFIG_SCSI_UFSHCD is not set # CONFIG_MEMSTICK is not set CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y # CONFIG_LEDS_CLASS_FLASH is not set +# CONFIG_LEDS_CLASS_MULTICOLOR is not set +# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set # # LED drivers # +# CONFIG_LEDS_AN30259A is not set +# CONFIG_LEDS_AW2013 is not set # CONFIG_LEDS_BCM6328 is not set # CONFIG_LEDS_BCM6358 is not set +# CONFIG_LEDS_CR0014114 is not set +# CONFIG_LEDS_EL15203000 is not set # CONFIG_LEDS_LM3530 is not set +# CONFIG_LEDS_LM3532 is not set # CONFIG_LEDS_LM3642 is not set +# CONFIG_LEDS_LM3692X is not set # CONFIG_LEDS_PCA9532 is not set CONFIG_LEDS_GPIO=y # CONFIG_LEDS_LP3944 is not set -# CONFIG_LEDS_LP5521 is not set -# CONFIG_LEDS_LP5523 is not set -# CONFIG_LEDS_LP5562 is not set -# CONFIG_LEDS_LP8501 is not set +# CONFIG_LEDS_LP3952 is not set +# CONFIG_LEDS_LP50XX is not set +# CONFIG_LEDS_LP55XX_COMMON is not set # CONFIG_LEDS_LP8860 is not set # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set # CONFIG_LEDS_DAC124S085 is not set -# CONFIG_LEDS_PWM is not set +CONFIG_LEDS_PWM=y # CONFIG_LEDS_REGULATOR is not set # CONFIG_LEDS_BD2802 is not set # CONFIG_LEDS_LT3593 is not set # CONFIG_LEDS_TCA6507 is not set # CONFIG_LEDS_TLC591XX is not set # CONFIG_LEDS_LM355x is not set +# CONFIG_LEDS_IS31FL319X is not set CONFIG_LEDS_IS31FL32XX=y # # LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) # # CONFIG_LEDS_BLINKM is not set -# CONFIG_LEDS_SYSCON is not set +CONFIG_LEDS_SYSCON=y +# CONFIG_LEDS_MLXREG is not set +# CONFIG_LEDS_USER is not set +# CONFIG_LEDS_SPI_BYTE is not set +# CONFIG_LEDS_TI_LMU_COMMON is not set + +# +# Flash and Torch LED drivers +# + +# +# RGB LED drivers +# # # LED Triggers @@ -4803,6 +5745,7 @@ CONFIG_LEDS_TRIGGER_DISK=y CONFIG_LEDS_TRIGGER_HEARTBEAT=y CONFIG_LEDS_TRIGGER_BACKLIGHT=y CONFIG_LEDS_TRIGGER_CPU=y +# CONFIG_LEDS_TRIGGER_ACTIVITY is not set CONFIG_LEDS_TRIGGER_GPIO=y CONFIG_LEDS_TRIGGER_DEFAULT_ON=y @@ -4811,9 +5754,15 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=y # # CONFIG_LEDS_TRIGGER_TRANSIENT is not set # CONFIG_LEDS_TRIGGER_CAMERA is not set -# CONFIG_LEDS_TRIGGER_MULTI_CTRL is not set -CONFIG_SWITCH=m -CONFIG_SWITCH_GPIO=m +# CONFIG_LEDS_TRIGGER_PANIC is not set +# CONFIG_LEDS_TRIGGER_NETDEV is not set +# CONFIG_LEDS_TRIGGER_PATTERN is not set +# CONFIG_LEDS_TRIGGER_AUDIO is not set +# CONFIG_LEDS_TRIGGER_TTY is not set + +# +# Simple LED drivers +# # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set CONFIG_EDAC_SUPPORT=y @@ -4822,70 +5771,80 @@ CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y CONFIG_RTC_HCTOSYS_DEVICE="rtc0" -CONFIG_RTC_SYSTOHC=y -CONFIG_RTC_SYSTOHC_DEVICE="rtc0" +# CONFIG_RTC_SYSTOHC is not set # CONFIG_RTC_DEBUG is not set +CONFIG_RTC_NVMEM=y # # RTC interfaces # CONFIG_RTC_INTF_SYSFS=y -CONFIG_RTC_INTF_PROC=y -CONFIG_RTC_INTF_DEV=y -# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_INTF_PROC is not set +# CONFIG_RTC_INTF_DEV is not set # CONFIG_RTC_DRV_TEST is not set # # I2C RTC drivers # # CONFIG_RTC_DRV_ABB5ZES3 is not set +# CONFIG_RTC_DRV_ABEOZ9 is not set # CONFIG_RTC_DRV_ABX80X is not set # CONFIG_RTC_DRV_DS1307 is not set # CONFIG_RTC_DRV_DS1374 is not set # CONFIG_RTC_DRV_DS1672 is not set -# CONFIG_RTC_DRV_DS3232 is not set -# CONFIG_RTC_DRV_FAKE is not set CONFIG_RTC_DRV_HYM8563=y # CONFIG_RTC_DRV_MAX6900 is not set CONFIG_RTC_DRV_RK808=y -# CONFIG_RTC_DRV_RK_TIMER is not set # CONFIG_RTC_DRV_RS5C372 is not set # CONFIG_RTC_DRV_ISL1208 is not set # CONFIG_RTC_DRV_ISL12022 is not set -# CONFIG_RTC_DRV_ISL12057 is not set +# CONFIG_RTC_DRV_ISL12026 is not set # CONFIG_RTC_DRV_X1205 is not set -# CONFIG_RTC_DRV_PCF2127 is not set # CONFIG_RTC_DRV_PCF8523 is not set -# CONFIG_RTC_DRV_PCF8563 is not set # CONFIG_RTC_DRV_PCF85063 is not set +# CONFIG_RTC_DRV_PCF85363 is not set +# CONFIG_RTC_DRV_PCF8563 is not set # CONFIG_RTC_DRV_PCF8583 is not set # CONFIG_RTC_DRV_M41T80 is not set # CONFIG_RTC_DRV_BQ32K is not set # CONFIG_RTC_DRV_TPS6586X is not set # CONFIG_RTC_DRV_S35390A is not set # CONFIG_RTC_DRV_FM3130 is not set +# CONFIG_RTC_DRV_RX8010 is not set # CONFIG_RTC_DRV_RX8581 is not set # CONFIG_RTC_DRV_RX8025 is not set # CONFIG_RTC_DRV_EM3027 is not set -# CONFIG_RTC_DRV_RV3029C2 is not set +# CONFIG_RTC_DRV_RV3028 is not set +# CONFIG_RTC_DRV_RV3032 is not set # CONFIG_RTC_DRV_RV8803 is not set +# CONFIG_RTC_DRV_SD3078 is not set # # SPI RTC drivers # # CONFIG_RTC_DRV_M41T93 is not set # CONFIG_RTC_DRV_M41T94 is not set +# CONFIG_RTC_DRV_DS1302 is not set # CONFIG_RTC_DRV_DS1305 is not set # CONFIG_RTC_DRV_DS1343 is not set # CONFIG_RTC_DRV_DS1347 is not set # CONFIG_RTC_DRV_DS1390 is not set -# CONFIG_RTC_DRV_MAX6902 is not set +# CONFIG_RTC_DRV_MAX6916 is not set # CONFIG_RTC_DRV_R9701 is not set -# CONFIG_RTC_DRV_RS5C348 is not set -# CONFIG_RTC_DRV_DS3234 is not set -# CONFIG_RTC_DRV_PCF2123 is not set # CONFIG_RTC_DRV_RX4581 is not set +# CONFIG_RTC_DRV_RS5C348 is not set +# CONFIG_RTC_DRV_MAX6902 is not set +# CONFIG_RTC_DRV_PCF2123 is not set # CONFIG_RTC_DRV_MCP795 is not set +CONFIG_RTC_I2C_AND_SPI=y + +# +# SPI and I2C RTC drivers +# +# CONFIG_RTC_DRV_DS3232 is not set +# CONFIG_RTC_DRV_PCF2127 is not set +# CONFIG_RTC_DRV_RV3029C2 is not set +# CONFIG_RTC_DRV_RX6110 is not set # # Platform RTC drivers @@ -4911,12 +5870,15 @@ CONFIG_RTC_DRV_RK808=y # # CONFIG_RTC_DRV_PL030 is not set # CONFIG_RTC_DRV_PL031 is not set -# CONFIG_RTC_DRV_SNVS is not set +# CONFIG_RTC_DRV_CADENCE is not set +# CONFIG_RTC_DRV_FTRTC010 is not set +# CONFIG_RTC_DRV_R7301 is not set # # HID Sensor RTC drivers # # CONFIG_RTC_DRV_HID_SENSOR_TIME is not set +# CONFIG_RTC_DRV_GOLDFISH is not set CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set @@ -4924,42 +5886,70 @@ CONFIG_DMADEVICES=y # DMA Devices # CONFIG_DMA_ENGINE=y -CONFIG_DMA_ACPI=y CONFIG_DMA_OF=y +# CONFIG_ALTERA_MSGDMA is not set # CONFIG_AMBA_PL08X is not set +# CONFIG_BCM_SBA_RAID is not set +# CONFIG_DW_AXI_DMAC is not set # CONFIG_FSL_EDMA is not set +# CONFIG_FSL_QDMA is not set +# CONFIG_HISI_DMA is not set # CONFIG_INTEL_IDMA64 is not set +# CONFIG_MV_XOR_V2 is not set CONFIG_PL330_DMA=y +# CONFIG_PLX_DMA is not set +# CONFIG_XILINX_DMA is not set +# CONFIG_XILINX_ZYNQMP_DMA is not set +# CONFIG_XILINX_ZYNQMP_DPDMA is not set +# CONFIG_QCOM_HIDMA_MGMT is not set +# CONFIG_QCOM_HIDMA is not set # CONFIG_DW_DMAC is not set # CONFIG_DW_DMAC_PCI is not set +# CONFIG_DW_EDMA is not set +# CONFIG_DW_EDMA_PCIE is not set +# CONFIG_SF_PDMA is not set # # DMA Clients # # CONFIG_ASYNC_TX_DMA is not set # CONFIG_DMATEST is not set + +# +# DMABUF options +# +CONFIG_SYNC_FILE=y +# CONFIG_SW_SYNC is not set +# CONFIG_UDMABUF is not set +# CONFIG_DMABUF_MOVE_NOTIFY is not set +# CONFIG_DMABUF_DEBUG is not set +# CONFIG_DMABUF_SELFTESTS is not set +# CONFIG_DMABUF_HEAPS is not set +# CONFIG_DMABUF_SYSFS_STATS is not set +# end of DMABUF options + # CONFIG_AUXDISPLAY is not set # CONFIG_UIO is not set # CONFIG_VFIO is not set # CONFIG_VIRT_DRIVERS is not set - -# -# Virtio drivers -# -# CONFIG_VIRTIO_PCI is not set -# CONFIG_VIRTIO_MMIO is not set +# CONFIG_VIRTIO_MENU is not set +# CONFIG_VDPA is not set +# CONFIG_VHOST_MENU is not set # # Microsoft Hyper-V guest support # +# end of Microsoft Hyper-V guest support + +# CONFIG_GREYBUS is not set +# CONFIG_COMEDI is not set CONFIG_STAGING=y # CONFIG_PRISM2_USB is not set -# CONFIG_COMEDI is not set # CONFIG_RTL8192U is not set # CONFIG_RTLLIB is not set +CONFIG_RTL8723BS=m # CONFIG_R8712U is not set # CONFIG_R8188EU is not set -# CONFIG_R8723AU is not set # CONFIG_RTS5208 is not set # CONFIG_VT6655 is not set # CONFIG_VT6656 is not set @@ -4971,361 +5961,501 @@ CONFIG_STAGING=y # # Accelerometers # -# CONFIG_ADIS16201 is not set # CONFIG_ADIS16203 is not set -# CONFIG_ADIS16204 is not set -# CONFIG_ADIS16209 is not set -# CONFIG_ADIS16220 is not set # CONFIG_ADIS16240 is not set -# CONFIG_LIS3L02DQ is not set -# CONFIG_SCA3000 is not set +# end of Accelerometers # # Analog to digital converters # -# CONFIG_AD7606 is not set -# CONFIG_AD7780 is not set # CONFIG_AD7816 is not set -# CONFIG_AD7192 is not set -# CONFIG_AD7280 is not set +# end of Analog to digital converters # # Analog digital bi-direction converters # # CONFIG_ADT7316 is not set +# end of Analog digital bi-direction converters # # Capacitance to digital converters # -# CONFIG_AD7150 is not set -# CONFIG_AD7152 is not set # CONFIG_AD7746 is not set +# end of Capacitance to digital converters # # Direct Digital Synthesis # # CONFIG_AD9832 is not set # CONFIG_AD9834 is not set - -# -# Digital gyroscope sensors -# -# CONFIG_ADIS16060 is not set +# end of Direct Digital Synthesis # # Network Analyzer, Impedance Converters # # CONFIG_AD5933 is not set -# CONFIG_INV_MPU_IIO is not set - -# -# Light sensors -# -CONFIG_SENSORS_ISL29018=y -# CONFIG_SENSORS_ISL29028 is not set -CONFIG_TSL2583=y -# CONFIG_TSL2x7x is not set - -# -# Magnetometer sensors -# -# CONFIG_SENSORS_HMC5843_I2C is not set -# CONFIG_SENSORS_HMC5843_SPI is not set +# end of Network Analyzer, Impedance Converters # # Active energy metering IC # -# CONFIG_ADE7753 is not set -# CONFIG_ADE7754 is not set -# CONFIG_ADE7758 is not set -# CONFIG_ADE7759 is not set # CONFIG_ADE7854 is not set +# end of Active energy metering IC # # Resolver to digital converters # -# CONFIG_AD2S90 is not set -# CONFIG_AD2S1200 is not set # CONFIG_AD2S1210 is not set +# end of Resolver to digital converters +# end of IIO staging drivers -# -# Triggers - standalone -# -# CONFIG_IIO_PERIODIC_RTC_TRIGGER is not set -# CONFIG_IIO_SIMPLE_DUMMY is not set # CONFIG_FB_SM750 is not set -# CONFIG_FB_XGI is not set - -# -# Speakup console speech -# -# CONFIG_SPEAKUP is not set -# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set # CONFIG_STAGING_MEDIA is not set - -# -# Android -# -# CONFIG_ASHMEM is not set -# CONFIG_ANDROID_TIMED_OUTPUT is not set -# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set -# CONFIG_SYNC is not set -# CONFIG_ANDROID_VSOC is not set -# CONFIG_ION is not set -# CONFIG_FIQ_DEBUGGER is not set -# CONFIG_FIQ_WATCHDOG is not set -# CONFIG_RK_CONSOLE_THREAD is not set # CONFIG_STAGING_BOARD is not set -# CONFIG_WIMAX_GDM72XX is not set # CONFIG_LTE_GDM724X is not set -# CONFIG_LUSTRE_FS is not set -# CONFIG_DGNC is not set -# CONFIG_DGAP is not set -# CONFIG_GS_FPGABOOT is not set # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set # CONFIG_FB_TFT is not set -# CONFIG_FSL_MC_BUS is not set -# CONFIG_WILC1000_DRIVER is not set -# CONFIG_MOST is not set -# CONFIG_POWERVR_ROGUE_N is not set +# CONFIG_KS7010 is not set +# CONFIG_PI433 is not set +# CONFIG_XIL_AXIS_FIFO is not set +# CONFIG_FIELDBUS_DEV is not set +# CONFIG_QLGE is not set + +# +# VME Device Drivers +# # CONFIG_GOLDFISH is not set CONFIG_CHROME_PLATFORMS=y -# CONFIG_CROS_EC_CHARDEV is not set -CONFIG_CROS_EC_PROTO=y -CONFIG_CLKDEV_LOOKUP=y +# CONFIG_CROS_EC is not set +# CONFIG_MELLANOX_PLATFORM is not set +# CONFIG_SURFACE_PLATFORMS is not set +CONFIG_HAVE_CLK=y CONFIG_HAVE_CLK_PREPARE=y CONFIG_COMMON_CLK=y # -# Common Clock Framework +# Clock driver for ARM Reference designs # -CONFIG_COMMON_CLK_DEBUGFS=y -# CONFIG_COMMON_CLK_VERSATILE is not set +# CONFIG_CLK_ICST is not set +# CONFIG_CLK_SP810 is not set +# end of Clock driver for ARM Reference designs + +# CONFIG_LMK04832 is not set +# CONFIG_COMMON_CLK_MAX9485 is not set CONFIG_COMMON_CLK_RK808=y +# CONFIG_COMMON_CLK_SCMI is not set +# CONFIG_COMMON_CLK_SCPI is not set +# CONFIG_COMMON_CLK_SI5341 is not set # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI514 is not set +# CONFIG_COMMON_CLK_SI544 is not set # CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_CDCE706 is not set # CONFIG_COMMON_CLK_CDCE925 is not set -# CONFIG_CLK_QORIQ is not set +# CONFIG_COMMON_CLK_CS2000_CP is not set +# CONFIG_COMMON_CLK_AXI_CLKGEN is not set CONFIG_COMMON_CLK_XGENE=y # CONFIG_COMMON_CLK_PWM is not set -# CONFIG_COMMON_CLK_PXA is not set -# CONFIG_COMMON_CLK_CDCE706 is not set - -# -# Hardware Spinlock drivers -# -# CONFIG_HWSPINLOCK_ROCKCHIP is not set +# CONFIG_COMMON_CLK_RS9_PCIE is not set +# CONFIG_COMMON_CLK_VC5 is not set +# CONFIG_COMMON_CLK_FIXED_MMIO is not set +CONFIG_COMMON_CLK_ROCKCHIP=y +CONFIG_CLK_PX30=y +# CONFIG_CLK_RK3308 is not set +# CONFIG_CLK_RK3328 is not set +# CONFIG_CLK_RK3368 is not set +CONFIG_CLK_RK3399=y +# CONFIG_CLK_RK3568 is not set +# CONFIG_XILINX_VCU is not set +# CONFIG_HWSPINLOCK is not set # # Clock Source drivers # -CONFIG_CLKSRC_OF=y -CONFIG_CLKSRC_ACPI=y -CONFIG_CLKSRC_PROBE=y +CONFIG_TIMER_OF=y +CONFIG_TIMER_PROBE=y +CONFIG_CLKSRC_MMIO=y CONFIG_ROCKCHIP_TIMER=y CONFIG_ARM_ARCH_TIMER=y CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y -# CONFIG_ARM_ARCH_TIMER_VCT_ACCESS is not set -# CONFIG_ARM_TIMER_SP804 is not set -# CONFIG_ATMEL_PIT is not set -# CONFIG_SH_TIMER_CMT is not set -# CONFIG_SH_TIMER_MTU2 is not set -# CONFIG_SH_TIMER_TMU is not set -# CONFIG_EM_TIMER_STI is not set +# CONFIG_FSL_ERRATUM_A008585 is not set +# CONFIG_HISILICON_ERRATUM_161010101 is not set +# CONFIG_ARM64_ERRATUM_858921 is not set +# CONFIG_MICROCHIP_PIT64B is not set +# end of Clock Source drivers + CONFIG_MAILBOX=y -# CONFIG_ARM_MHU is not set +CONFIG_ARM_MHU=y +# CONFIG_ARM_MHU_V2 is not set +CONFIG_PLATFORM_MHU=y # CONFIG_PL320_MBOX is not set -# CONFIG_PCC is not set +CONFIG_ROCKCHIP_MBOX=y # CONFIG_ALTERA_MBOX is not set # CONFIG_MAILBOX_TEST is not set -# CONFIG_RK3368_MBOX is not set +CONFIG_IOMMU_IOVA=y CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y # # Generic IOMMU Pagetable Support # -# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set -CONFIG_IOMMU_IOVA=y +CONFIG_IOMMU_IO_PGTABLE=y +CONFIG_IOMMU_IO_PGTABLE_LPAE=y +# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set +# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set +# end of Generic IOMMU Pagetable Support + +# CONFIG_IOMMU_DEBUGFS is not set +CONFIG_IOMMU_DEFAULT_DMA_STRICT=y +# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set +# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set CONFIG_OF_IOMMU=y CONFIG_IOMMU_DMA=y CONFIG_ROCKCHIP_IOMMU=y -CONFIG_RK_IOMMU=y -CONFIG_RK_IOVMM=y -# CONFIG_RK_IOMMU_DEBUG is not set -# CONFIG_ARM_SMMU is not set -# CONFIG_ARM_SMMU_V3 is not set +CONFIG_ARM_SMMU=y +# CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set +CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT=y +CONFIG_ARM_SMMU_V3=y +# CONFIG_ARM_SMMU_V3_SVA is not set # # Remoteproc drivers # -# CONFIG_STE_MODEM_RPROC is not set +# CONFIG_REMOTEPROC is not set +# end of Remoteproc drivers # # Rpmsg drivers # +# CONFIG_RPMSG_QCOM_GLINK_RPM is not set +# CONFIG_RPMSG_VIRTIO is not set +# end of Rpmsg drivers + +# CONFIG_SOUNDWIRE is not set # # SOC (System On Chip) specific Drivers # # -# Rockchip CPU selection +# Amlogic SoC drivers # -# CONFIG_CPU_PX30 is not set -# CONFIG_CPU_RK1808 is not set -# CONFIG_CPU_RK3308 is not set -# CONFIG_CPU_RK3328 is not set -# CONFIG_CPU_RK3366 is not set -# CONFIG_CPU_RK3368 is not set -CONFIG_CPU_RK3399=y -CONFIG_ANDROID_VERSION=0x07010000 -CONFIG_ROCKCHIP_CPUINFO=y -# CONFIG_ROCKCHIP_DEVICEINFO is not set -CONFIG_ROCKCHIP_IPA=y -CONFIG_ROCKCHIP_OPP=y -# CONFIG_ROCKCHIP_PM_TEST is not set +# end of Amlogic SoC drivers + +# +# Broadcom SoC drivers +# +# CONFIG_SOC_BRCMSTB is not set +# end of Broadcom SoC drivers + +# +# NXP/Freescale QorIQ SoC drivers +# +# CONFIG_QUICC_ENGINE is not set +# CONFIG_FSL_RCPM is not set +# end of NXP/Freescale QorIQ SoC drivers + +# +# i.MX SoC drivers +# +# end of i.MX SoC drivers + +# +# Enable LiteX SoC Builder specific drivers +# +# CONFIG_LITEX_SOC_CONTROLLER is not set +# end of Enable LiteX SoC Builder specific drivers + +# +# Qualcomm SoC drivers +# +# end of Qualcomm SoC drivers + CONFIG_ROCKCHIP_GRF=y +CONFIG_ROCKCHIP_IODOMAIN=y CONFIG_ROCKCHIP_PM_DOMAINS=y -# CONFIG_ROCKCHIP_PVTM is not set -CONFIG_ROCKCHIP_SUSPEND_MODE=y -# CONFIG_STATE_NOTIFIER is not set -CONFIG_ROCKCHIP_SYSTEM_MONITOR=y -# CONFIG_ROCKCHIP_VENDOR_STORAGE_UPDATE_LOADER is not set -CONFIG_ROCKCHIP_SCHED_PERFORMANCE_BIAS=y -# CONFIG_SUNXI_SRAM is not set # CONFIG_SOC_TI is not set + +# +# Xilinx SoC drivers +# +# end of Xilinx SoC drivers +# end of SOC (System On Chip) specific Drivers + CONFIG_PM_DEVFREQ=y # # DEVFREQ Governors # CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y -# CONFIG_DEVFREQ_GOV_MRFIXEDFREQ5 is not set -# CONFIG_DEVFREQ_GOV_MRFIXEDFREQ6 is not set -# CONFIG_DEVFREQ_GOV_MRFIXEDFREQ7 is not set -# CONFIG_DEVFREQ_GOV_MRFIXEDFREQ8 is not set CONFIG_DEVFREQ_GOV_PERFORMANCE=y CONFIG_DEVFREQ_GOV_POWERSAVE=y CONFIG_DEVFREQ_GOV_USERSPACE=y -# CONFIG_MALI_FREQ_DEFAULT_GOV_SIMPLE_ONDEMAND is not set -CONFIG_MALI_FREQ_DEFAULT_GOV_PERFORMANCE=y -# CONFIG_MALI_FREQ_DEFAULT_GOV_POWERSAVE is not set -# CONFIG_MALI_FREQ_DEFAULT_GOV_MRFIXEDFREQ5 is not set -# CONFIG_MALI_FREQ_DEFAULT_GOV_MRFIXEDFREQ6 is not set -# CONFIG_MALI_FREQ_DEFAULT_GOV_MRFIXEDFREQ7 is not set -# CONFIG_MALI_FREQ_DEFAULT_GOV_MRFIXEDFREQ8 is not set +# CONFIG_DEVFREQ_GOV_PASSIVE is not set # # DEVFREQ Drivers # -# CONFIG_ARM_ROCKCHIP_BUS_DEVFREQ is not set -CONFIG_ARM_ROCKCHIP_DMC_DEVFREQ=y +# CONFIG_ARM_RK3399_DMC_DEVFREQ is not set CONFIG_PM_DEVFREQ_EVENT=y CONFIG_DEVFREQ_EVENT_ROCKCHIP_DFI=y -# CONFIG_DEVFREQ_EVENT_ROCKCHIP_NOCP is not set CONFIG_EXTCON=y # # Extcon Device Drivers # # CONFIG_EXTCON_ADC_JACK is not set +# CONFIG_EXTCON_FSA9480 is not set # CONFIG_EXTCON_GPIO is not set +# CONFIG_EXTCON_MAX3355 is not set +# CONFIG_EXTCON_PTN5150 is not set # CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_SM5502 is not set # CONFIG_EXTCON_USB_GPIO is not set +# CONFIG_EXTCON_USBC_TUSB320 is not set CONFIG_MEMORY=y # CONFIG_ARM_PL172_MPMC is not set CONFIG_IIO=y CONFIG_IIO_BUFFER=y -# CONFIG_IIO_BUFFER_CB is not set +CONFIG_IIO_BUFFER_CB=y +# CONFIG_IIO_BUFFER_DMA is not set +# CONFIG_IIO_BUFFER_DMAENGINE is not set +# CONFIG_IIO_BUFFER_HW_CONSUMER is not set CONFIG_IIO_KFIFO_BUF=y +CONFIG_IIO_TRIGGERED_BUFFER=y +CONFIG_IIO_CONFIGFS=y CONFIG_IIO_TRIGGER=y CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 +# CONFIG_IIO_SW_DEVICE is not set +CONFIG_IIO_SW_TRIGGER=y +CONFIG_IIO_TRIGGERED_EVENT=y # # Accelerometers # +# CONFIG_ADIS16201 is not set +# CONFIG_ADIS16209 is not set +# CONFIG_ADXL313_I2C is not set +# CONFIG_ADXL313_SPI is not set +# CONFIG_ADXL345_I2C is not set +# CONFIG_ADXL345_SPI is not set +# CONFIG_ADXL355_I2C is not set +# CONFIG_ADXL355_SPI is not set +# CONFIG_ADXL367_SPI is not set +# CONFIG_ADXL367_I2C is not set +# CONFIG_ADXL372_SPI is not set +# CONFIG_ADXL372_I2C is not set # CONFIG_BMA180 is not set +# CONFIG_BMA220 is not set +# CONFIG_BMA400 is not set # CONFIG_BMC150_ACCEL is not set +# CONFIG_BMI088_ACCEL is not set +# CONFIG_DA280 is not set +# CONFIG_DA311 is not set +# CONFIG_DMARD06 is not set +# CONFIG_DMARD09 is not set +# CONFIG_DMARD10 is not set +# CONFIG_FXLS8962AF_I2C is not set +# CONFIG_FXLS8962AF_SPI is not set # CONFIG_HID_SENSOR_ACCEL_3D is not set # CONFIG_IIO_ST_ACCEL_3AXIS is not set # CONFIG_KXSD9 is not set # CONFIG_KXCJK1013 is not set +# CONFIG_MC3230 is not set +# CONFIG_MMA7455_I2C is not set +# CONFIG_MMA7455_SPI is not set +# CONFIG_MMA7660 is not set # CONFIG_MMA8452 is not set # CONFIG_MMA9551 is not set # CONFIG_MMA9553 is not set # CONFIG_MXC4005 is not set +# CONFIG_MXC6255 is not set +# CONFIG_SCA3000 is not set +# CONFIG_SCA3300 is not set # CONFIG_STK8312 is not set # CONFIG_STK8BA50 is not set +# end of Accelerometers # # Analog to digital converters # +# CONFIG_AD7091R5 is not set +# CONFIG_AD7124 is not set +# CONFIG_AD7192 is not set # CONFIG_AD7266 is not set +# CONFIG_AD7280 is not set # CONFIG_AD7291 is not set +# CONFIG_AD7292 is not set # CONFIG_AD7298 is not set # CONFIG_AD7476 is not set +# CONFIG_AD7606_IFACE_PARALLEL is not set +# CONFIG_AD7606_IFACE_SPI is not set +# CONFIG_AD7766 is not set +# CONFIG_AD7768_1 is not set +# CONFIG_AD7780 is not set # CONFIG_AD7791 is not set # CONFIG_AD7793 is not set # CONFIG_AD7887 is not set # CONFIG_AD7923 is not set +# CONFIG_AD7949 is not set # CONFIG_AD799X is not set +# CONFIG_ADI_AXI_ADC is not set # CONFIG_CC10001_ADC is not set -# CONFIG_GPIO_MUXADC is not set +# CONFIG_ENVELOPE_DETECTOR is not set # CONFIG_HI8435 is not set +# CONFIG_HX711 is not set +# CONFIG_INA2XX_ADC is not set +# CONFIG_LTC2471 is not set +# CONFIG_LTC2485 is not set +# CONFIG_LTC2496 is not set +# CONFIG_LTC2497 is not set # CONFIG_MAX1027 is not set +# CONFIG_MAX11100 is not set +# CONFIG_MAX1118 is not set +# CONFIG_MAX1241 is not set # CONFIG_MAX1363 is not set +# CONFIG_MAX9611 is not set # CONFIG_MCP320X is not set # CONFIG_MCP3422 is not set +# CONFIG_MCP3911 is not set # CONFIG_NAU7802 is not set CONFIG_ROCKCHIP_SARADC=y +# CONFIG_SD_ADC_MODULATOR is not set # CONFIG_TI_ADC081C is not set +# CONFIG_TI_ADC0832 is not set +# CONFIG_TI_ADC084S021 is not set +# CONFIG_TI_ADC12138 is not set +# CONFIG_TI_ADC108S102 is not set # CONFIG_TI_ADC128S052 is not set +# CONFIG_TI_ADC161S626 is not set +# CONFIG_TI_ADS1015 is not set +# CONFIG_TI_ADS7950 is not set +# CONFIG_TI_ADS8344 is not set +# CONFIG_TI_ADS8688 is not set +# CONFIG_TI_ADS124S08 is not set +# CONFIG_TI_ADS131E08 is not set +# CONFIG_TI_TLC4541 is not set +# CONFIG_TI_TSC2046 is not set # CONFIG_VF610_ADC is not set +# CONFIG_XILINX_XADC is not set +# end of Analog to digital converters + +# +# Analog to digital and digital to analog converters +# +# CONFIG_AD74413R is not set +# end of Analog to digital and digital to analog converters + +# +# Analog Front Ends +# +# CONFIG_IIO_RESCALE is not set +# end of Analog Front Ends # # Amplifiers # # CONFIG_AD8366 is not set +# CONFIG_ADA4250 is not set +# CONFIG_HMC425 is not set +# end of Amplifiers + +# +# Capacitance to digital converters +# +# CONFIG_AD7150 is not set +# end of Capacitance to digital converters # # Chemical Sensors # +# CONFIG_ATLAS_PH_SENSOR is not set +# CONFIG_ATLAS_EZO_SENSOR is not set +# CONFIG_BME680 is not set +# CONFIG_CCS811 is not set +# CONFIG_IAQCORE is not set +# CONFIG_PMS7003 is not set +# CONFIG_SCD30_CORE is not set +# CONFIG_SCD4X is not set +# CONFIG_SENSIRION_SGP30 is not set +# CONFIG_SENSIRION_SGP40 is not set +# CONFIG_SPS30_I2C is not set +# CONFIG_SPS30_SERIAL is not set +# CONFIG_SENSEAIR_SUNRISE_CO2 is not set # CONFIG_VZ89X is not set +# end of Chemical Sensors # # Hid Sensor IIO Common # # CONFIG_HID_SENSOR_IIO_COMMON is not set +# end of Hid Sensor IIO Common + +# +# IIO SCMI Sensors +# +# CONFIG_IIO_SCMI is not set +# end of IIO SCMI Sensors # # SSP Sensor Common # # CONFIG_IIO_SSP_SENSORHUB is not set +# end of SSP Sensor Common # # Digital to analog converters # +# CONFIG_AD3552R is not set # CONFIG_AD5064 is not set # CONFIG_AD5360 is not set # CONFIG_AD5380 is not set # CONFIG_AD5421 is not set # CONFIG_AD5446 is not set # CONFIG_AD5449 is not set +# CONFIG_AD5592R is not set +# CONFIG_AD5593R is not set # CONFIG_AD5504 is not set # CONFIG_AD5624R_SPI is not set -# CONFIG_AD5686 is not set +# CONFIG_LTC2688 is not set +# CONFIG_AD5686_SPI is not set +# CONFIG_AD5696_I2C is not set # CONFIG_AD5755 is not set +# CONFIG_AD5758 is not set +# CONFIG_AD5761 is not set # CONFIG_AD5764 is not set +# CONFIG_AD5766 is not set +# CONFIG_AD5770R is not set # CONFIG_AD5791 is not set +# CONFIG_AD7293 is not set # CONFIG_AD7303 is not set +# CONFIG_AD8801 is not set +# CONFIG_DPOT_DAC is not set +# CONFIG_DS4424 is not set +# CONFIG_LTC1660 is not set +# CONFIG_LTC2632 is not set # CONFIG_M62332 is not set # CONFIG_MAX517 is not set # CONFIG_MAX5821 is not set # CONFIG_MCP4725 is not set # CONFIG_MCP4922 is not set +# CONFIG_TI_DAC082S085 is not set +# CONFIG_TI_DAC5571 is not set +# CONFIG_TI_DAC7311 is not set +# CONFIG_TI_DAC7612 is not set +# CONFIG_VF610_DAC is not set +# end of Digital to analog converters + +# +# IIO dummy driver +# +# end of IIO dummy driver + +# +# Filters +# +# CONFIG_ADMV8818 is not set +# end of Filters # # Frequency Synthesizers DDS/PLL @@ -5335,11 +6465,19 @@ CONFIG_ROCKCHIP_SARADC=y # Clock Generator/Distribution # # CONFIG_AD9523 is not set +# end of Clock Generator/Distribution # # Phase-Locked Loop (PLL) frequency synthesizers # # CONFIG_ADF4350 is not set +# CONFIG_ADF4371 is not set +# CONFIG_ADMV1013 is not set +# CONFIG_ADMV1014 is not set +# CONFIG_ADMV4420 is not set +# CONFIG_ADRF6780 is not set +# end of Phase-Locked Loop (PLL) frequency synthesizers +# end of Frequency Synthesizers DDS/PLL # # Digital gyroscope sensors @@ -5348,236 +6486,390 @@ CONFIG_ROCKCHIP_SARADC=y # CONFIG_ADIS16130 is not set # CONFIG_ADIS16136 is not set # CONFIG_ADIS16260 is not set +# CONFIG_ADXRS290 is not set # CONFIG_ADXRS450 is not set # CONFIG_BMG160 is not set +# CONFIG_FXAS21002C is not set # CONFIG_HID_SENSOR_GYRO_3D is not set +# CONFIG_MPU3050_I2C is not set # CONFIG_IIO_ST_GYRO_3AXIS is not set # CONFIG_ITG3200 is not set +# end of Digital gyroscope sensors + +# +# Health Sensors +# + +# +# Heart Rate Monitors +# +# CONFIG_AFE4403 is not set +# CONFIG_AFE4404 is not set +# CONFIG_MAX30100 is not set +# CONFIG_MAX30102 is not set +# end of Heart Rate Monitors +# end of Health Sensors # # Humidity sensors # +# CONFIG_AM2315 is not set # CONFIG_DHT11 is not set # CONFIG_HDC100X is not set +# CONFIG_HDC2010 is not set +# CONFIG_HID_SENSOR_HUMIDITY is not set +# CONFIG_HTS221 is not set # CONFIG_HTU21 is not set # CONFIG_SI7005 is not set # CONFIG_SI7020 is not set +# end of Humidity sensors # # Inertial measurement units # # CONFIG_ADIS16400 is not set +# CONFIG_ADIS16460 is not set +# CONFIG_ADIS16475 is not set # CONFIG_ADIS16480 is not set +# CONFIG_BMI160_I2C is not set +# CONFIG_BMI160_SPI is not set +# CONFIG_FXOS8700_I2C is not set +# CONFIG_FXOS8700_SPI is not set # CONFIG_KMX61 is not set -# CONFIG_INV_MPU6050_IIO is not set +# CONFIG_INV_ICM42600_I2C is not set +# CONFIG_INV_ICM42600_SPI is not set +# CONFIG_INV_MPU6050_I2C is not set +# CONFIG_INV_MPU6050_SPI is not set +# CONFIG_IIO_ST_LSM6DSX is not set +# CONFIG_IIO_ST_LSM9DS0 is not set +# end of Inertial measurement units # # Light sensors # -# CONFIG_ACPI_ALS is not set # CONFIG_ADJD_S311 is not set +# CONFIG_ADUX1020 is not set +# CONFIG_AL3010 is not set # CONFIG_AL3320A is not set # CONFIG_APDS9300 is not set # CONFIG_APDS9960 is not set +# CONFIG_AS73211 is not set # CONFIG_BH1750 is not set +# CONFIG_BH1780 is not set # CONFIG_CM32181 is not set # CONFIG_CM3232 is not set # CONFIG_CM3323 is not set +# CONFIG_CM3605 is not set # CONFIG_CM36651 is not set +# CONFIG_GP2AP002 is not set # CONFIG_GP2AP020A00F is not set +CONFIG_SENSORS_ISL29018=y +# CONFIG_SENSORS_ISL29028 is not set # CONFIG_ISL29125 is not set # CONFIG_HID_SENSOR_ALS is not set # CONFIG_HID_SENSOR_PROX is not set # CONFIG_JSA1212 is not set # CONFIG_RPR0521 is not set # CONFIG_LTR501 is not set +# CONFIG_LV0104CS is not set +# CONFIG_MAX44000 is not set +# CONFIG_MAX44009 is not set +# CONFIG_NOA1305 is not set # CONFIG_OPT3001 is not set # CONFIG_PA12203001 is not set +# CONFIG_SI1133 is not set +# CONFIG_SI1145 is not set # CONFIG_STK3310 is not set +# CONFIG_ST_UVIS25 is not set # CONFIG_TCS3414 is not set # CONFIG_TCS3472 is not set CONFIG_SENSORS_TSL2563=y +CONFIG_TSL2583=y +# CONFIG_TSL2591 is not set +# CONFIG_TSL2772 is not set # CONFIG_TSL4531 is not set # CONFIG_US5182D is not set # CONFIG_VCNL4000 is not set +# CONFIG_VCNL4035 is not set +# CONFIG_VEML6030 is not set +# CONFIG_VEML6070 is not set # CONFIG_VL6180 is not set +# CONFIG_ZOPT2201 is not set +# end of Light sensors # # Magnetometer sensors # +# CONFIG_AK8974 is not set # CONFIG_AK8975 is not set # CONFIG_AK09911 is not set -# CONFIG_BMC150_MAGN is not set +# CONFIG_BMC150_MAGN_I2C is not set +# CONFIG_BMC150_MAGN_SPI is not set # CONFIG_MAG3110 is not set # CONFIG_HID_SENSOR_MAGNETOMETER_3D is not set # CONFIG_MMC35240 is not set # CONFIG_IIO_ST_MAGN_3AXIS is not set +# CONFIG_SENSORS_HMC5843_I2C is not set +# CONFIG_SENSORS_HMC5843_SPI is not set +# CONFIG_SENSORS_RM3100_I2C is not set +# CONFIG_SENSORS_RM3100_SPI is not set +# CONFIG_YAMAHA_YAS530 is not set +# end of Magnetometer sensors + +# +# Multiplexers +# +CONFIG_IIO_MUX=y +# end of Multiplexers # # Inclinometer sensors # # CONFIG_HID_SENSOR_INCLINOMETER_3D is not set # CONFIG_HID_SENSOR_DEVICE_ROTATION is not set +# end of Inclinometer sensors # # Triggers - standalone # +CONFIG_IIO_HRTIMER_TRIGGER=y # CONFIG_IIO_INTERRUPT_TRIGGER is not set +# CONFIG_IIO_TIGHTLOOP_TRIGGER is not set CONFIG_IIO_SYSFS_TRIGGER=y +# end of Triggers - standalone + +# +# Linear and angular position sensors +# +# CONFIG_HID_SENSOR_CUSTOM_INTEL_HINGE is not set +# end of Linear and angular position sensors # # Digital potentiometers # +# CONFIG_AD5110 is not set +# CONFIG_AD5272 is not set +# CONFIG_DS1803 is not set +# CONFIG_MAX5432 is not set +# CONFIG_MAX5481 is not set +# CONFIG_MAX5487 is not set +# CONFIG_MCP4018 is not set +# CONFIG_MCP4131 is not set # CONFIG_MCP4531 is not set +# CONFIG_MCP41010 is not set +# CONFIG_TPL0102 is not set +# end of Digital potentiometers + +# +# Digital potentiostats +# +# CONFIG_LMP91000 is not set +# end of Digital potentiostats # # Pressure sensors # +# CONFIG_ABP060MG is not set # CONFIG_BMP280 is not set +# CONFIG_DLHL60D is not set +# CONFIG_DPS310 is not set # CONFIG_HID_SENSOR_PRESS is not set -# CONFIG_MPL115 is not set +# CONFIG_HP03 is not set +# CONFIG_ICP10100 is not set +# CONFIG_MPL115_I2C is not set +# CONFIG_MPL115_SPI is not set # CONFIG_MPL3115 is not set # CONFIG_MS5611 is not set # CONFIG_MS5637 is not set # CONFIG_IIO_ST_PRESS is not set # CONFIG_T5403 is not set +# CONFIG_HP206C is not set +# CONFIG_ZPA2326 is not set +# end of Pressure sensors # # Lightning sensors # # CONFIG_AS3935 is not set +# end of Lightning sensors # -# Proximity sensors +# Proximity and distance sensors # +# CONFIG_ISL29501 is not set # CONFIG_LIDAR_LITE_V2 is not set +# CONFIG_MB1232 is not set +# CONFIG_PING is not set +# CONFIG_RFD77402 is not set # CONFIG_SRF04 is not set +# CONFIG_SX9310 is not set +# CONFIG_SX9324 is not set +# CONFIG_SX9360 is not set # CONFIG_SX9500 is not set +# CONFIG_SRF08 is not set +# CONFIG_VCNL3020 is not set +# CONFIG_VL53L0X_I2C is not set +# end of Proximity and distance sensors + +# +# Resolver to digital converters +# +# CONFIG_AD2S90 is not set +# CONFIG_AD2S1200 is not set +# end of Resolver to digital converters # # Temperature sensors # +# CONFIG_LTC2983 is not set +# CONFIG_MAXIM_THERMOCOUPLE is not set +# CONFIG_HID_SENSOR_TEMP is not set # CONFIG_MLX90614 is not set +# CONFIG_MLX90632 is not set # CONFIG_TMP006 is not set +# CONFIG_TMP007 is not set +# CONFIG_TMP117 is not set # CONFIG_TSYS01 is not set # CONFIG_TSYS02D is not set +# CONFIG_MAX31856 is not set +# CONFIG_MAX31865 is not set +# end of Temperature sensors + # CONFIG_NTB is not set # CONFIG_VME_BUS is not set CONFIG_PWM=y CONFIG_PWM_SYSFS=y -# CONFIG_PWM_CROS_EC is not set +# CONFIG_PWM_DEBUG is not set +# CONFIG_PWM_ATMEL_TCB is not set +# CONFIG_PWM_DWC is not set # CONFIG_PWM_FSL_FTM is not set -# CONFIG_PWM_GPIO is not set # CONFIG_PWM_PCA9685 is not set CONFIG_PWM_ROCKCHIP=y -# CONFIG_PWM_ROCKCHIP_I2S is not set +# CONFIG_PWM_XILINX is not set + +# +# IRQ chip support +# CONFIG_IRQCHIP=y CONFIG_ARM_GIC=y +CONFIG_ARM_GIC_MAX_NR=1 CONFIG_ARM_GIC_V2M=y CONFIG_ARM_GIC_V3=y CONFIG_ARM_GIC_V3_ITS=y +CONFIG_ARM_GIC_V3_ITS_PCI=y +# CONFIG_AL_FIC is not set +# CONFIG_XILINX_INTC is not set CONFIG_PARTITION_PERCPU=y +# end of IRQ chip support + # CONFIG_IPACK_BUS is not set CONFIG_ARCH_HAS_RESET_CONTROLLER=y CONFIG_RESET_CONTROLLER=y -# CONFIG_FMC is not set +CONFIG_RESET_SCMI=y +# CONFIG_RESET_TI_SYSCON is not set # # PHY Subsystem # CONFIG_GENERIC_PHY=y -# CONFIG_PHY_PXA_28NM_HSIC is not set -# CONFIG_PHY_PXA_28NM_USB2 is not set -# CONFIG_BCM_KONA_USB2_PHY is not set -# CONFIG_PHY_SAMSUNG_USB2 is not set +CONFIG_GENERIC_PHY_MIPI_DPHY=y # CONFIG_PHY_XGENE is not set -CONFIG_PHY_ROCKCHIP_USB=y -# CONFIG_PHY_ROCKCHIP_INNO_COMBPHY is not set -CONFIG_PHY_ROCKCHIP_INNO_USB2=y -CONFIG_PHY_ROCKCHIP_INNO_USB3=y -CONFIG_PHY_ROCKCHIP_EMMC=y -CONFIG_PHY_ROCKCHIP_DP=y -CONFIG_PHY_ROCKCHIP_MIPI_RX=y -CONFIG_PHY_ROCKCHIP_INNO_MIPI_DPHY=y -CONFIG_PHY_ROCKCHIP_INNO_HDMI_PHY=y -# CONFIG_PHY_ROCKCHIP_INNO_VIDEO_PHY is not set -# CONFIG_PHY_ROCKCHIP_INNO_VIDEO_COMBO_PHY is not set -CONFIG_PHY_ROCKCHIP_TYPEC=y -CONFIG_PHY_ROCKCHIP_PCIE=m -# CONFIG_POWERCAP is not set -# CONFIG_MCB is not set +# CONFIG_PHY_CAN_TRANSCEIVER is not set # -# Performance monitor support +# PHY drivers for Broadcom platforms # +# CONFIG_BCM_KONA_USB2_PHY is not set +# end of PHY drivers for Broadcom platforms + +# CONFIG_PHY_CADENCE_TORRENT is not set +# CONFIG_PHY_CADENCE_DPHY is not set +# CONFIG_PHY_CADENCE_DPHY_RX is not set +# CONFIG_PHY_CADENCE_SIERRA is not set +# CONFIG_PHY_CADENCE_SALVO is not set +# CONFIG_PHY_PXA_28NM_HSIC is not set +# CONFIG_PHY_PXA_28NM_USB2 is not set +# CONFIG_PHY_LAN966X_SERDES is not set +# CONFIG_PHY_CPCAP_USB is not set +# CONFIG_PHY_MAPPHONE_MDM6600 is not set +# CONFIG_PHY_OCELOT_SERDES is not set +CONFIG_PHY_ROCKCHIP_DP=y +CONFIG_PHY_ROCKCHIP_DPHY_RX0=y +CONFIG_PHY_ROCKCHIP_EMMC=y +CONFIG_PHY_ROCKCHIP_INNO_HDMI=y +CONFIG_PHY_ROCKCHIP_INNO_USB2=y +CONFIG_PHY_ROCKCHIP_INNO_CSIDPHY=y +CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY=y +# CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY is not set +CONFIG_PHY_ROCKCHIP_PCIE=y +CONFIG_PHY_ROCKCHIP_TYPEC=y +CONFIG_PHY_ROCKCHIP_USB=y +# CONFIG_PHY_SAMSUNG_USB2 is not set +# end of PHY Subsystem + +# CONFIG_POWERCAP is not set +# CONFIG_MCB is not set CONFIG_RAS=y -# CONFIG_THUNDERBOLT is not set +# CONFIG_USB4 is not set # # Android # CONFIG_ANDROID=y # CONFIG_ANDROID_BINDER_IPC is not set +# end of Android + # CONFIG_LIBNVDIMM is not set +# CONFIG_DAX is not set CONFIG_NVMEM=y -# CONFIG_RK628_EFUSE is not set +CONFIG_NVMEM_SYSFS=y CONFIG_ROCKCHIP_EFUSE=y -# CONFIG_ROCKCHIP_OTP is not set +CONFIG_ROCKCHIP_OTP=y +# CONFIG_NVMEM_RMEM is not set + +# +# HW tracing support +# # CONFIG_STM is not set # CONFIG_INTEL_TH is not set +# end of HW tracing support -# -# FPGA Configuration Support -# # CONFIG_FPGA is not set +# CONFIG_FSI is not set # CONFIG_TEE is not set -# CONFIG_RK_FLASH is not set -# CONFIG_RK_NAND is not set +CONFIG_MULTIPLEXER=y # -# Headset device support +# Multiplexer drivers # -# CONFIG_RK_HEADSET is not set +# CONFIG_MUX_ADG792A is not set +# CONFIG_MUX_ADGS1408 is not set +CONFIG_MUX_GPIO=y +CONFIG_MUX_MMIO=y +# end of Multiplexer drivers -# -# Firmware Drivers -# -CONFIG_ARM_PSCI_FW=y -# CONFIG_FIRMWARE_MEMMAP is not set -# CONFIG_ISCSI_IBFT is not set -CONFIG_HAVE_ARM_SMCCC=y -CONFIG_ROCKCHIP_SIP=y -CONFIG_ACPI=y -CONFIG_ACPI_GENERIC_GSI=y -CONFIG_ACPI_CCA_REQUIRED=y -# CONFIG_ACPI_DEBUGGER is not set -# CONFIG_ACPI_EC_DEBUGFS is not set -CONFIG_ACPI_BUTTON=y -CONFIG_ACPI_FAN=y -# CONFIG_ACPI_DOCK is not set -CONFIG_ACPI_PROCESSOR=y -CONFIG_ACPI_HOTPLUG_CPU=y -CONFIG_ACPI_THERMAL=y -# CONFIG_ACPI_CUSTOM_DSDT is not set -# CONFIG_ACPI_DEBUG is not set -# CONFIG_ACPI_PCI_SLOT is not set -CONFIG_ACPI_CONTAINER=y -# CONFIG_ACPI_HED is not set -# CONFIG_ACPI_CUSTOM_METHOD is not set -CONFIG_ACPI_REDUCED_HARDWARE_ONLY=y -# CONFIG_PMIC_OPREGION is not set +CONFIG_PM_OPP=y +# CONFIG_SIOX is not set +# CONFIG_SLIMBUS is not set +# CONFIG_INTERCONNECT is not set +# CONFIG_COUNTER is not set +# CONFIG_MOST is not set +# CONFIG_PECI is not set +# CONFIG_HTE is not set +# end of Device Drivers # # File systems # CONFIG_DCACHE_WORD_ACCESS=y +# CONFIG_VALIDATE_FS_PARSER is not set +CONFIG_FS_IOMAP=y # CONFIG_EXT2_FS is not set # CONFIG_EXT3_FS is not set CONFIG_EXT4_FS=y -CONFIG_EXT4_USE_FOR_EXT2=y +# CONFIG_EXT4_USE_FOR_EXT2 is not set CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y -# CONFIG_EXT4_ENCRYPTION is not set # CONFIG_EXT4_DEBUG is not set CONFIG_JBD2=y # CONFIG_JBD2_DEBUG is not set @@ -5585,9 +6877,11 @@ CONFIG_FS_MBCACHE=y # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set CONFIG_XFS_FS=y +CONFIG_XFS_SUPPORT_V4=y # CONFIG_XFS_QUOTA is not set # CONFIG_XFS_POSIX_ACL is not set # CONFIG_XFS_RT is not set +# CONFIG_XFS_ONLINE_SCRUB is not set # CONFIG_XFS_WARN is not set # CONFIG_XFS_DEBUG is not set # CONFIG_GFS2_FS is not set @@ -5595,31 +6889,39 @@ CONFIG_XFS_FS=y # CONFIG_BTRFS_FS is not set # CONFIG_NILFS2_FS is not set # CONFIG_F2FS_FS is not set -# CONFIG_FS_DAX is not set CONFIG_FS_POSIX_ACL=y CONFIG_EXPORTFS=y +# CONFIG_EXPORTFS_BLOCK_OPS is not set CONFIG_FILE_LOCKING=y # CONFIG_FS_ENCRYPTION is not set +# CONFIG_FS_VERITY is not set CONFIG_FSNOTIFY=y # CONFIG_DNOTIFY is not set CONFIG_INOTIFY_USER=y # CONFIG_FANOTIFY is not set # CONFIG_QUOTA is not set -# CONFIG_QUOTACTL is not set # CONFIG_AUTOFS4_FS is not set +# CONFIG_AUTOFS_FS is not set CONFIG_FUSE_FS=y # CONFIG_CUSE is not set +# CONFIG_VIRTIO_FS is not set CONFIG_OVERLAY_FS=y +# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set +CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y +# CONFIG_OVERLAY_FS_INDEX is not set +# CONFIG_OVERLAY_FS_XINO_AUTO is not set +# CONFIG_OVERLAY_FS_METACOPY is not set # # Caches # +CONFIG_NETFS_SUPPORT=y +# CONFIG_NETFS_STATS is not set CONFIG_FSCACHE=y # CONFIG_FSCACHE_STATS is not set -# CONFIG_FSCACHE_HISTOGRAM is not set # CONFIG_FSCACHE_DEBUG is not set -# CONFIG_FSCACHE_OBJECT_LIST is not set # CONFIG_CACHEFILES is not set +# end of Caches # # CD-ROM/DVD Filesystems @@ -5628,23 +6930,22 @@ CONFIG_ISO9660_FS=y CONFIG_JOLIET=y CONFIG_ZISOFS=y # CONFIG_UDF_FS is not set +# end of CD-ROM/DVD Filesystems # -# DOS/FAT/NT Filesystems +# DOS/FAT/EXFAT/NT Filesystems # CONFIG_FAT_FS=y # CONFIG_MSDOS_FS is not set CONFIG_VFAT_FS=y CONFIG_FAT_DEFAULT_CODEPAGE=936 CONFIG_FAT_DEFAULT_IOCHARSET="utf8" +# CONFIG_FAT_DEFAULT_UTF8 is not set CONFIG_EXFAT_FS=y -CONFIG_EXFAT_DEFAULT_CODEPAGE=437 CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" -CONFIG_EXFAT_VIRTUAL_XATTR=y -CONFIG_EXFAT_VIRTUAL_XATTR_SELINUX_LABEL="u:object_r:exfat:s0" -# CONFIG_EXFAT_DEBUG is not set -# CONFIG_EXFAT_UEVENT is not set # CONFIG_NTFS_FS is not set +# CONFIG_NTFS3_FS is not set +# end of DOS/FAT/EXFAT/NT Filesystems # # Pseudo filesystems @@ -5654,37 +6955,43 @@ CONFIG_PROC_FS=y CONFIG_PROC_SYSCTL=y CONFIG_PROC_PAGE_MONITOR=y # CONFIG_PROC_CHILDREN is not set -CONFIG_PROC_UID=y CONFIG_KERNFS=y CONFIG_SYSFS=y CONFIG_TMPFS=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_TMPFS_XATTR=y +# CONFIG_TMPFS_INODE64 is not set +CONFIG_ARCH_SUPPORTS_HUGETLBFS=y # CONFIG_HUGETLBFS is not set -# CONFIG_HUGETLB_PAGE is not set +CONFIG_ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y +CONFIG_MEMFD_CREATE=y +CONFIG_ARCH_HAS_GIGANTIC_PAGE=y CONFIG_CONFIGFS_FS=y +# end of Pseudo filesystems + CONFIG_MISC_FILESYSTEMS=y +# CONFIG_ORANGEFS_FS is not set # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set # CONFIG_ECRYPT_FS is not set -# CONFIG_SDCARD_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -# CONFIG_LOGFS is not set # CONFIG_CRAMFS is not set CONFIG_SQUASHFS=y -CONFIG_SQUASHFS_DECOMP_SINGLE=y +CONFIG_SQUASHFS_FILE_CACHE=y +# CONFIG_SQUASHFS_FILE_DIRECT is not set +# CONFIG_SQUASHFS_DECOMP_SINGLE is not set # CONFIG_SQUASHFS_DECOMP_MULTI is not set -# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set +CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y # CONFIG_SQUASHFS_XATTR is not set CONFIG_SQUASHFS_ZLIB=y CONFIG_SQUASHFS_LZ4=y CONFIG_SQUASHFS_LZO=y CONFIG_SQUASHFS_XZ=y -# CONFIG_SQUASHFS_ZSTD is not set +CONFIG_SQUASHFS_ZSTD=y # CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set # CONFIG_SQUASHFS_EMBEDDED is not set CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 @@ -5696,82 +7003,70 @@ CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 # CONFIG_QNX6FS_FS is not set # CONFIG_ROMFS_FS is not set CONFIG_PSTORE=y -CONFIG_PSTORE_CONSOLE=y +CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 +CONFIG_PSTORE_DEFLATE_COMPRESS=y +# CONFIG_PSTORE_LZO_COMPRESS is not set +# CONFIG_PSTORE_LZ4_COMPRESS is not set +# CONFIG_PSTORE_LZ4HC_COMPRESS is not set +# CONFIG_PSTORE_842_COMPRESS is not set +# CONFIG_PSTORE_ZSTD_COMPRESS is not set +CONFIG_PSTORE_COMPRESS=y +CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y +CONFIG_PSTORE_COMPRESS_DEFAULT="deflate" +# CONFIG_PSTORE_CONSOLE is not set # CONFIG_PSTORE_PMSG is not set -# CONFIG_PSTORE_FTRACE is not set -CONFIG_PSTORE_RAM=y +# CONFIG_PSTORE_RAM is not set +# CONFIG_PSTORE_BLK is not set # CONFIG_SYSV_FS is not set # CONFIG_UFS_FS is not set -CONFIG_AUFS_FS=y -CONFIG_AUFS_BRANCH_MAX_127=y -# CONFIG_AUFS_BRANCH_MAX_511 is not set -# CONFIG_AUFS_BRANCH_MAX_1023 is not set -# CONFIG_AUFS_BRANCH_MAX_32767 is not set -CONFIG_AUFS_SBILIST=y -# CONFIG_AUFS_HNOTIFY is not set -# CONFIG_AUFS_EXPORT is not set -# CONFIG_AUFS_XATTR is not set -# CONFIG_AUFS_FHSM is not set -# CONFIG_AUFS_RDU is not set -# CONFIG_AUFS_SHWH is not set -# CONFIG_AUFS_BR_RAMFS is not set -# CONFIG_AUFS_BR_FUSE is not set -CONFIG_AUFS_BDEV_LOOP=y -# CONFIG_AUFS_DEBUG is not set +# CONFIG_EROFS_FS is not set CONFIG_NETWORK_FILESYSTEMS=y # CONFIG_NFS_FS is not set -CONFIG_NFSD=y -# CONFIG_NFSD_V3 is not set -# CONFIG_NFSD_V4 is not set -CONFIG_GRACE_PERIOD=y -CONFIG_LOCKD=y -CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=y -# CONFIG_SUNRPC_DEBUG is not set +# CONFIG_NFSD is not set # CONFIG_CEPH_FS is not set # CONFIG_CIFS is not set -# CONFIG_NCP_FS is not set +# CONFIG_SMB_SERVER is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set CONFIG_NLS=y CONFIG_NLS_DEFAULT="utf8" CONFIG_NLS_CODEPAGE_437=y -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -# CONFIG_NLS_CODEPAGE_850 is not set -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set +CONFIG_NLS_CODEPAGE_737=y +CONFIG_NLS_CODEPAGE_775=y +CONFIG_NLS_CODEPAGE_850=y +CONFIG_NLS_CODEPAGE_852=y +CONFIG_NLS_CODEPAGE_855=y +CONFIG_NLS_CODEPAGE_857=y +CONFIG_NLS_CODEPAGE_860=y +CONFIG_NLS_CODEPAGE_861=y +CONFIG_NLS_CODEPAGE_862=y +CONFIG_NLS_CODEPAGE_863=y +CONFIG_NLS_CODEPAGE_864=y +CONFIG_NLS_CODEPAGE_865=y +CONFIG_NLS_CODEPAGE_866=y +CONFIG_NLS_CODEPAGE_869=y CONFIG_NLS_CODEPAGE_936=y -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set +CONFIG_NLS_CODEPAGE_950=y +CONFIG_NLS_CODEPAGE_932=y +CONFIG_NLS_CODEPAGE_949=y +CONFIG_NLS_CODEPAGE_874=y +CONFIG_NLS_ISO8859_8=y +CONFIG_NLS_CODEPAGE_1250=y +CONFIG_NLS_CODEPAGE_1251=y CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=y -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set +CONFIG_NLS_ISO8859_2=y +CONFIG_NLS_ISO8859_3=y +CONFIG_NLS_ISO8859_4=y +CONFIG_NLS_ISO8859_5=y +CONFIG_NLS_ISO8859_6=y +CONFIG_NLS_ISO8859_7=y +CONFIG_NLS_ISO8859_9=y +CONFIG_NLS_ISO8859_13=y +CONFIG_NLS_ISO8859_14=y +CONFIG_NLS_ISO8859_15=y +CONFIG_NLS_KOI8_R=y +CONFIG_NLS_KOI8_U=y # CONFIG_NLS_MAC_ROMAN is not set # CONFIG_NLS_MAC_CELTIC is not set # CONFIG_NLS_MAC_CENTEURO is not set @@ -5785,233 +7080,53 @@ CONFIG_NLS_ISO8859_1=y # CONFIG_NLS_MAC_TURKISH is not set CONFIG_NLS_UTF8=y # CONFIG_DLM is not set -CONFIG_HAVE_KVM_IRQFD=y -CONFIG_HAVE_KVM_EVENTFD=y -CONFIG_KVM_MMIO=y -CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y -CONFIG_KVM_VFIO=y -CONFIG_HAVE_KVM_ARCH_TLB_FLUSH_ALL=y -CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y -CONFIG_KVM_COMPAT=y -CONFIG_VIRTUALIZATION=y -CONFIG_KVM_ARM_VGIC_V3=y -CONFIG_KVM=y -CONFIG_KVM_ARM_HOST=y -# CONFIG_VHOST_NET is not set -# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set - -# -# Kernel hacking -# - -# -# printk and dmesg options -# -CONFIG_PRINTK_TIME=y -# CONFIG_PRINTK_PROCESS is not set -CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 -# CONFIG_BOOT_PRINTK_DELAY is not set -CONFIG_DYNAMIC_DEBUG=y - -# -# Compile-time checks and compiler options -# -CONFIG_DEBUG_INFO=y -# CONFIG_DEBUG_INFO_REDUCED is not set -# CONFIG_DEBUG_INFO_SPLIT is not set -# CONFIG_DEBUG_INFO_DWARF4 is not set -# CONFIG_GDB_SCRIPTS is not set -CONFIG_ENABLE_WARN_DEPRECATED=y -CONFIG_ENABLE_MUST_CHECK=y -CONFIG_FRAME_WARN=2048 -# CONFIG_STRIP_ASM_SYMS is not set -# CONFIG_READABLE_ASM is not set -# CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_PAGE_OWNER is not set -CONFIG_DEBUG_FS=y -# CONFIG_HEADERS_CHECK is not set -# CONFIG_DEBUG_SECTION_MISMATCH is not set -CONFIG_SECTION_MISMATCH_WARN_ONLY=y -CONFIG_ARCH_WANT_FRAME_POINTERS=y -CONFIG_FRAME_POINTER=y -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set -CONFIG_MAGIC_SYSRQ=y -CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0 -CONFIG_DEBUG_KERNEL=y - -# -# Memory Debugging -# -# CONFIG_PAGE_EXTENSION is not set -# CONFIG_DEBUG_PAGEALLOC is not set -# CONFIG_DEBUG_OBJECTS is not set -# CONFIG_SLUB_DEBUG_ON is not set -# CONFIG_SLUB_STATS is not set -CONFIG_HAVE_DEBUG_KMEMLEAK=y -# CONFIG_DEBUG_KMEMLEAK is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_DEBUG_VM is not set -# CONFIG_DEBUG_MEMORY_INIT is not set -# CONFIG_DEBUG_PER_CPU_MAPS is not set -CONFIG_HAVE_ARCH_KASAN=y -# CONFIG_KASAN is not set -# CONFIG_DEBUG_SHIRQ is not set - -# -# Debug Lockups and Hangs -# -CONFIG_LOCKUP_DETECTOR=y -CONFIG_HARDLOCKUP_DETECTOR_OTHER_CPU=y -CONFIG_HARDLOCKUP_DETECTOR=y -# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set -CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0 -CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y -CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=1 -CONFIG_DETECT_HUNG_TASK=y -CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 -CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y -CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=1 -# CONFIG_PANIC_ON_OOPS is not set -CONFIG_PANIC_ON_OOPS_VALUE=0 -CONFIG_PANIC_TIMEOUT=0 -CONFIG_SCHED_DEBUG=y -CONFIG_SCHED_INFO=y -# CONFIG_PANIC_ON_RT_THROTTLING is not set -CONFIG_SCHEDSTATS=y -# CONFIG_SCHED_STACK_END_CHECK is not set -# CONFIG_DEBUG_TIMEKEEPING is not set -CONFIG_TIMER_STATS=y - -# -# Lock Debugging (spinlocks, mutexes, etc...) -# -# CONFIG_DEBUG_RT_MUTEXES is not set -CONFIG_DEBUG_SPINLOCK=y -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_ATOMIC_SLEEP is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_LOCK_TORTURE_TEST is not set -CONFIG_STACKTRACE=y -# CONFIG_DEBUG_KOBJECT is not set -CONFIG_HAVE_DEBUG_BUGVERBOSE=y -CONFIG_DEBUG_BUGVERBOSE=y -# CONFIG_DEBUG_LIST is not set -# CONFIG_DEBUG_PI_LIST is not set -# CONFIG_DEBUG_SG is not set -# CONFIG_DEBUG_NOTIFIERS is not set -CONFIG_DEBUG_CREDENTIALS=y - -# -# RCU Debugging -# -# CONFIG_PROVE_RCU is not set -# CONFIG_SPARSE_RCU_POINTER is not set -# CONFIG_TORTURE_TEST is not set -# CONFIG_RCU_TORTURE_TEST is not set -CONFIG_RCU_CPU_STALL_TIMEOUT=60 -# CONFIG_RCU_TRACE is not set -# CONFIG_RCU_EQS_DEBUG is not set -# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set -# CONFIG_NOTIFIER_ERROR_INJECTION is not set -# CONFIG_FAULT_INJECTION is not set -CONFIG_NOP_TRACER=y -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_HAVE_SYSCALL_TRACEPOINTS=y -CONFIG_HAVE_C_RECORDMCOUNT=y -CONFIG_TRACE_CLOCK=y -CONFIG_RING_BUFFER=y -CONFIG_EVENT_TRACING=y -CONFIG_GPU_TRACEPOINTS=y -CONFIG_CONTEXT_SWITCH_TRACER=y -CONFIG_TRACING=y -CONFIG_GENERIC_TRACER=y -CONFIG_TRACING_SUPPORT=y -CONFIG_FTRACE=y -CONFIG_FUNCTION_TRACER=y -CONFIG_FUNCTION_GRAPH_TRACER=y -# CONFIG_PREEMPTIRQ_EVENTS is not set -# CONFIG_IRQSOFF_TRACER is not set -# CONFIG_SCHED_TRACER is not set -# CONFIG_FTRACE_SYSCALLS is not set -# CONFIG_TRACER_SNAPSHOT is not set -CONFIG_BRANCH_PROFILE_NONE=y -# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set -# CONFIG_PROFILE_ALL_BRANCHES is not set -# CONFIG_STACK_TRACER is not set -CONFIG_BLK_DEV_IO_TRACE=y -# CONFIG_PROBE_EVENTS is not set -CONFIG_DYNAMIC_FTRACE=y -# CONFIG_FUNCTION_PROFILER is not set -CONFIG_FTRACE_MCOUNT_RECORD=y -# CONFIG_FTRACE_STARTUP_TEST is not set -# CONFIG_TRACEPOINT_BENCHMARK is not set -# CONFIG_RING_BUFFER_BENCHMARK is not set -# CONFIG_RING_BUFFER_STARTUP_TEST is not set -# CONFIG_TRACE_ENUM_MAP_FILE is not set -CONFIG_TRACING_EVENTS_GPIO=y - -# -# Runtime Testing -# -CONFIG_LKDTM=y -# CONFIG_TEST_LIST_SORT is not set -# CONFIG_BACKTRACE_SELF_TEST is not set -# CONFIG_RBTREE_TEST is not set -# CONFIG_INTERVAL_TREE_TEST is not set -# CONFIG_PERCPU_TEST is not set -# CONFIG_ATOMIC64_SELFTEST is not set -# CONFIG_ASYNC_RAID6_TEST is not set -# CONFIG_TEST_HEXDUMP is not set -# CONFIG_TEST_STRING_HELPERS is not set -# CONFIG_TEST_KSTRTOX is not set -# CONFIG_TEST_PRINTF is not set -# CONFIG_TEST_RHASHTABLE is not set -# CONFIG_TEST_HASH is not set -# CONFIG_DMA_API_DEBUG is not set -# CONFIG_TEST_LKM is not set -# CONFIG_TEST_USER_COPY is not set -# CONFIG_TEST_BPF is not set -# CONFIG_TEST_FIRMWARE is not set -# CONFIG_TEST_UDELAY is not set -# CONFIG_MEMTEST is not set -# CONFIG_TEST_STATIC_KEYS is not set -# CONFIG_BUG_ON_DATA_CORRUPTION is not set -# CONFIG_SAMPLES is not set -CONFIG_HAVE_ARCH_KGDB=y -# CONFIG_KGDB is not set -# CONFIG_ARM64_PTDUMP is not set -CONFIG_STRICT_DEVMEM=y -# CONFIG_PID_IN_CONTEXTIDR is not set -# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set -CONFIG_DEBUG_SET_MODULE_RONX=y -CONFIG_DEBUG_RODATA=y -# CONFIG_DEBUG_ALIGN_RODATA is not set -# CONFIG_CORESIGHT is not set +# CONFIG_UNICODE is not set +CONFIG_IO_WQ=y +# end of File systems # # Security options # CONFIG_KEYS=y +# CONFIG_KEYS_REQUEST_CACHE is not set # CONFIG_PERSISTENT_KEYRINGS is not set -# CONFIG_BIG_KEYS is not set # CONFIG_TRUSTED_KEYS is not set CONFIG_ENCRYPTED_KEYS=y +# CONFIG_USER_DECRYPTED_DATA is not set +# CONFIG_KEY_DH_OPERATIONS is not set +# CONFIG_KEY_NOTIFICATIONS is not set # CONFIG_SECURITY_DMESG_RESTRICT is not set # CONFIG_SECURITY is not set CONFIG_SECURITYFS=y CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y -CONFIG_HAVE_ARCH_HARDENED_USERCOPY=y # CONFIG_HARDENED_USERCOPY is not set -# CONFIG_TEE_SUPPORT is not set +# CONFIG_FORTIFY_SOURCE is not set +# CONFIG_STATIC_USERMODEHELPER is not set CONFIG_DEFAULT_SECURITY_DAC=y -CONFIG_DEFAULT_SECURITY="" +CONFIG_LSM="lockdown,yama,loadpin,safesetid,integrity,bpf" + +# +# Kernel hardening options +# + +# +# Memory initialization +# +CONFIG_INIT_STACK_NONE=y +# CONFIG_GCC_PLUGIN_STRUCTLEAK_USER is not set +# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF is not set +# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL is not set +# CONFIG_GCC_PLUGIN_STACKLEAK is not set +# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set +# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set +# end of Memory initialization + +CONFIG_RANDSTRUCT_NONE=y +# CONFIG_RANDSTRUCT_FULL is not set +# CONFIG_RANDSTRUCT_PERFORMANCE is not set +# end of Kernel hardening options +# end of Security options + CONFIG_XOR_BLOCKS=y CONFIG_ASYNC_CORE=y CONFIG_ASYNC_MEMCPY=y @@ -6027,31 +7142,42 @@ CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_BLKCIPHER=y -CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_SKCIPHER=y +CONFIG_CRYPTO_SKCIPHER2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_RNG_DEFAULT=y -CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_AKCIPHER2=y CONFIG_CRYPTO_AKCIPHER=y -# CONFIG_CRYPTO_RSA is not set +CONFIG_CRYPTO_KPP2=y +CONFIG_CRYPTO_KPP=y +CONFIG_CRYPTO_ACOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y # CONFIG_CRYPTO_USER is not set -CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set +# CONFIG_CRYPTO_MANAGER_EXTRA_TESTS is not set CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y # CONFIG_CRYPTO_PCRYPT is not set -CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CRYPTD=y -# CONFIG_CRYPTO_MCRYPTD is not set CONFIG_CRYPTO_AUTHENC=y # CONFIG_CRYPTO_TEST is not set -CONFIG_CRYPTO_ABLK_HELPER=y + +# +# Public-key cryptography +# +CONFIG_CRYPTO_RSA=y +# CONFIG_CRYPTO_DH is not set +CONFIG_CRYPTO_ECC=y +CONFIG_CRYPTO_ECDH=y +# CONFIG_CRYPTO_ECDSA is not set +# CONFIG_CRYPTO_ECRDSA is not set +# CONFIG_CRYPTO_SM2 is not set +# CONFIG_CRYPTO_CURVE25519 is not set # # Authenticated Encryption with Associated Data @@ -6059,6 +7185,7 @@ CONFIG_CRYPTO_ABLK_HELPER=y CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_GCM=y # CONFIG_CRYPTO_CHACHA20POLY1305 is not set +# CONFIG_CRYPTO_AEGIS128 is not set CONFIG_CRYPTO_SEQIV=y CONFIG_CRYPTO_ECHAINIV=y @@ -6066,14 +7193,17 @@ CONFIG_CRYPTO_ECHAINIV=y # Block modes # CONFIG_CRYPTO_CBC=y -# CONFIG_CRYPTO_HEH is not set +# CONFIG_CRYPTO_CFB is not set CONFIG_CRYPTO_CTR=y # CONFIG_CRYPTO_CTS is not set CONFIG_CRYPTO_ECB=y # CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_OFB is not set # CONFIG_CRYPTO_PCBC is not set # CONFIG_CRYPTO_XTS is not set # CONFIG_CRYPTO_KEYWRAP is not set +# CONFIG_CRYPTO_ADIANTUM is not set +CONFIG_CRYPTO_ESSIV=m # # Hash modes @@ -6088,26 +7218,30 @@ CONFIG_CRYPTO_HMAC=y # CONFIG_CRYPTO_CRC32C=y CONFIG_CRYPTO_CRC32=y +# CONFIG_CRYPTO_XXHASH is not set +# CONFIG_CRYPTO_BLAKE2B is not set +# CONFIG_CRYPTO_BLAKE2S is not set CONFIG_CRYPTO_CRCT10DIF=y +# CONFIG_CRYPTO_CRC64_ROCKSOFT is not set CONFIG_CRYPTO_GHASH=y # CONFIG_CRYPTO_POLY1305 is not set CONFIG_CRYPTO_MD4=y CONFIG_CRYPTO_MD5=y # CONFIG_CRYPTO_MICHAEL_MIC is not set -# CONFIG_CRYPTO_RMD128 is not set # CONFIG_CRYPTO_RMD160 is not set -# CONFIG_CRYPTO_RMD256 is not set -# CONFIG_CRYPTO_RMD320 is not set CONFIG_CRYPTO_SHA1=y CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=y -# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_SHA3 is not set +# CONFIG_CRYPTO_SM3_GENERIC is not set +# CONFIG_CRYPTO_STREEBOG is not set # CONFIG_CRYPTO_WP512 is not set # # Ciphers # CONFIG_CRYPTO_AES=y +# CONFIG_CRYPTO_AES_TI is not set # CONFIG_CRYPTO_ANUBIS is not set CONFIG_CRYPTO_ARC4=y # CONFIG_CRYPTO_BLOWFISH is not set @@ -6117,10 +7251,10 @@ CONFIG_CRYPTO_ARC4=y CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_FCRYPT is not set # CONFIG_CRYPTO_KHAZAD is not set -# CONFIG_CRYPTO_SALSA20 is not set # CONFIG_CRYPTO_CHACHA20 is not set # CONFIG_CRYPTO_SEED is not set # CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_SM4_GENERIC is not set # CONFIG_CRYPTO_TEA is not set CONFIG_CRYPTO_TWOFISH=y CONFIG_CRYPTO_TWOFISH_COMMON=y @@ -6129,7 +7263,6 @@ CONFIG_CRYPTO_TWOFISH_COMMON=y # Compression # CONFIG_CRYPTO_DEFLATE=y -# CONFIG_CRYPTO_ZLIB is not set CONFIG_CRYPTO_LZO=y # CONFIG_CRYPTO_842 is not set CONFIG_CRYPTO_LZ4=y @@ -6151,51 +7284,71 @@ CONFIG_CRYPTO_USER_API_HASH=y CONFIG_CRYPTO_USER_API_SKCIPHER=y # CONFIG_CRYPTO_USER_API_RNG is not set # CONFIG_CRYPTO_USER_API_AEAD is not set +CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y CONFIG_CRYPTO_HASH_INFO=y -CONFIG_CRYPTO_HW=y -# CONFIG_CRYPTO_DEV_CCP is not set -# CONFIG_CRYPTO_DEV_ROCKCHIP is not set +# CONFIG_CRYPTO_HW is not set CONFIG_ASYMMETRIC_KEY_TYPE=y CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y -CONFIG_PUBLIC_KEY_ALGO_RSA=y CONFIG_X509_CERTIFICATE_PARSER=y +# CONFIG_PKCS8_PRIVATE_KEY_PARSER is not set CONFIG_PKCS7_MESSAGE_PARSER=y # CONFIG_PKCS7_TEST_KEY is not set # CONFIG_SIGNED_PE_FILE_VERIFICATION is not set +# CONFIG_FIPS_SIGNATURE_SELFTEST is not set # # Certificates for signature checking # CONFIG_SYSTEM_TRUSTED_KEYRING=y CONFIG_SYSTEM_TRUSTED_KEYS="" -CONFIG_ARM64_CRYPTO=y -CONFIG_CRYPTO_SHA1_ARM64_CE=y -CONFIG_CRYPTO_SHA2_ARM64_CE=y -CONFIG_CRYPTO_GHASH_ARM64_CE=y -CONFIG_CRYPTO_POLY_HASH_ARM64_CE=y -CONFIG_CRYPTO_AES_ARM64_CE=y -CONFIG_CRYPTO_AES_ARM64_CE_CCM=y -CONFIG_CRYPTO_AES_ARM64_CE_BLK=y -# CONFIG_CRYPTO_AES_ARM64_NEON_BLK is not set -CONFIG_CRYPTO_CRC32_ARM64=y +# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set +# CONFIG_SECONDARY_TRUSTED_KEYRING is not set +# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set +# end of Certificates for signature checking + CONFIG_BINARY_PRINTF=y # # Library routines # CONFIG_RAID6_PQ=y +CONFIG_RAID6_PQ_BENCHMARK=y +CONFIG_LINEAR_RANGES=y +# CONFIG_PACKING is not set CONFIG_BITREVERSE=y CONFIG_HAVE_ARCH_BITREVERSE=y -CONFIG_RATIONAL=y CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_NET_UTILS=y +CONFIG_CORDIC=y +# CONFIG_PRIME_NUMBERS is not set +CONFIG_RATIONAL=y CONFIG_GENERIC_PCI_IOMAP=y -CONFIG_GENERIC_IO=y CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +CONFIG_ARCH_HAS_FAST_MULTIPLIER=y +CONFIG_ARCH_USE_SYM_ANNOTATIONS=y +# CONFIG_INDIRECT_PIO is not set + +# +# Crypto library routines +# +CONFIG_CRYPTO_LIB_AES=y +CONFIG_CRYPTO_LIB_ARC4=y +CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y +# CONFIG_CRYPTO_LIB_CHACHA is not set +# CONFIG_CRYPTO_LIB_CURVE25519 is not set +CONFIG_CRYPTO_LIB_DES=y +CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9 +# CONFIG_CRYPTO_LIB_POLY1305 is not set +# CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set +CONFIG_CRYPTO_LIB_SHA256=y +# end of Crypto library routines + +CONFIG_LIB_MEMNEQ=y CONFIG_CRC_CCITT=y CONFIG_CRC16=y CONFIG_CRC_T10DIF=y +# CONFIG_CRC64_ROCKSOFT is not set CONFIG_CRC_ITU_T=y CONFIG_CRC32=y # CONFIG_CRC32_SELFTEST is not set @@ -6203,9 +7356,12 @@ CONFIG_CRC32_SLICEBY8=y # CONFIG_CRC32_SLICEBY4 is not set # CONFIG_CRC32_SARWATE is not set # CONFIG_CRC32_BIT is not set +CONFIG_CRC64=m +# CONFIG_CRC4 is not set CONFIG_CRC7=y CONFIG_LIBCRC32C=y # CONFIG_CRC8 is not set +CONFIG_XXHASH=y CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y # CONFIG_RANDOM32_SELFTEST is not set CONFIG_ZLIB_INFLATE=y @@ -6214,6 +7370,7 @@ CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_LZ4_COMPRESS=y CONFIG_LZ4_DECOMPRESS=y +CONFIG_ZSTD_DECOMPRESS=y CONFIG_XZ_DEC=y # CONFIG_XZ_DEC_X86 is not set # CONFIG_XZ_DEC_POWERPC is not set @@ -6221,6 +7378,7 @@ CONFIG_XZ_DEC=y CONFIG_XZ_DEC_ARM=y CONFIG_XZ_DEC_ARMTHUMB=y # CONFIG_XZ_DEC_SPARC is not set +# CONFIG_XZ_DEC_MICROLZMA is not set CONFIG_XZ_DEC_BCJ=y # CONFIG_XZ_DEC_TEST is not set CONFIG_DECOMPRESS_GZIP=y @@ -6229,34 +7387,273 @@ CONFIG_DECOMPRESS_LZMA=y CONFIG_DECOMPRESS_XZ=y CONFIG_DECOMPRESS_LZO=y CONFIG_DECOMPRESS_LZ4=y +CONFIG_DECOMPRESS_ZSTD=y CONFIG_GENERIC_ALLOCATOR=y -CONFIG_REED_SOLOMON=y -CONFIG_REED_SOLOMON_ENC8=y -CONFIG_REED_SOLOMON_DEC8=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m CONFIG_TEXTSEARCH_FSM=m +CONFIG_INTERVAL_TREE=y CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y +CONFIG_DMA_OPS=y +CONFIG_NEED_SG_DMA_LENGTH=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_DMA_DECLARE_COHERENT=y +CONFIG_ARCH_HAS_SETUP_DMA_OPS=y +CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y +CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y +CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y +CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y +CONFIG_SWIOTLB=y +# CONFIG_DMA_RESTRICTED_POOL is not set +CONFIG_DMA_NONCOHERENT_MMAP=y +CONFIG_DMA_COHERENT_POOL=y +CONFIG_DMA_DIRECT_REMAP=y +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_SGL_ALLOC=y CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_GLOB=y # CONFIG_GLOB_SELFTEST is not set CONFIG_NLATTR=y -CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y CONFIG_LRU_CACHE=m CONFIG_CLZ_TAB=y -# CONFIG_CORDIC is not set -# CONFIG_DDR is not set +CONFIG_IRQ_POLL=y CONFIG_MPILIB=y CONFIG_LIBFDT=y CONFIG_OID_REGISTRY=y +CONFIG_HAVE_GENERIC_VDSO=y +CONFIG_GENERIC_GETTIMEOFDAY=y +CONFIG_GENERIC_VDSO_TIME_NS=y CONFIG_FONT_SUPPORT=y # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y -# CONFIG_SG_SPLIT is not set -CONFIG_ARCH_HAS_SG_CHAIN=y +CONFIG_SG_POOL=y +CONFIG_ARCH_STACKWALK=y +CONFIG_SBITMAP=y +# end of Library routines + +CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y + +# +# Kernel hacking +# + +# +# printk and dmesg options +# +CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_CALLER is not set +# CONFIG_STACKTRACE_BUILD_ID is not set +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 +CONFIG_CONSOLE_LOGLEVEL_QUIET=4 +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=7 +# CONFIG_BOOT_PRINTK_DELAY is not set +CONFIG_DYNAMIC_DEBUG=y +CONFIG_DYNAMIC_DEBUG_CORE=y +# CONFIG_SYMBOLIC_ERRNAME is not set +# end of printk and dmesg options + +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_MISC is not set + +# +# Compile-time checks and compiler options +# +CONFIG_DEBUG_INFO_NONE=y +# CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is not set +# CONFIG_DEBUG_INFO_DWARF4 is not set +# CONFIG_DEBUG_INFO_DWARF5 is not set +CONFIG_FRAME_WARN=2048 +# CONFIG_STRIP_ASM_SYMS is not set +# CONFIG_READABLE_ASM is not set +# CONFIG_HEADERS_INSTALL is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_SECTION_MISMATCH_WARN_ONLY=y +# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B is not set +CONFIG_ARCH_WANT_FRAME_POINTERS=y +CONFIG_FRAME_POINTER=y +# CONFIG_VMLINUX_MAP is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# end of Compile-time checks and compiler options + +# +# Generic Kernel Debugging Instruments +# +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0 +CONFIG_MAGIC_SYSRQ_SERIAL=y +CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" +CONFIG_DEBUG_FS=y +CONFIG_DEBUG_FS_ALLOW_ALL=y +# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set +# CONFIG_DEBUG_FS_ALLOW_NONE is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y +# CONFIG_UBSAN is not set +CONFIG_HAVE_ARCH_KCSAN=y +# end of Generic Kernel Debugging Instruments + +# +# Networking Debugging +# +# CONFIG_NET_DEV_REFCNT_TRACKER is not set +# CONFIG_NET_NS_REFCNT_TRACKER is not set +# CONFIG_DEBUG_NET is not set +# end of Networking Debugging + +# +# Memory Debugging +# +# CONFIG_PAGE_EXTENSION is not set +# CONFIG_DEBUG_PAGEALLOC is not set +# CONFIG_SLUB_DEBUG is not set +# CONFIG_PAGE_OWNER is not set +# CONFIG_PAGE_TABLE_CHECK is not set +# CONFIG_PAGE_POISONING is not set +# CONFIG_DEBUG_RODATA_TEST is not set +CONFIG_ARCH_HAS_DEBUG_WX=y +# CONFIG_DEBUG_WX is not set +CONFIG_GENERIC_PTDUMP=y +# CONFIG_PTDUMP_DEBUGFS is not set +# CONFIG_DEBUG_OBJECTS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_SCHED_STACK_END_CHECK is not set +CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_VM_PGTABLE is not set +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y +# CONFIG_DEBUG_VIRTUAL is not set +# CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +CONFIG_HAVE_ARCH_KASAN=y +CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y +CONFIG_HAVE_ARCH_KASAN_VMALLOC=y +CONFIG_CC_HAS_KASAN_GENERIC=y +CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y +# CONFIG_KASAN is not set +CONFIG_HAVE_ARCH_KFENCE=y +# CONFIG_KFENCE is not set +# end of Memory Debugging + +# CONFIG_DEBUG_SHIRQ is not set + +# +# Debug Oops, Lockups and Hangs +# +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +CONFIG_PANIC_TIMEOUT=1 +# CONFIG_SOFTLOCKUP_DETECTOR is not set +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 +CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y +# CONFIG_WQ_WATCHDOG is not set +# CONFIG_TEST_LOCKUP is not set +# end of Debug Oops, Lockups and Hangs + +# +# Scheduler Debugging +# +# CONFIG_SCHED_DEBUG is not set +CONFIG_SCHED_INFO=y +CONFIG_SCHEDSTATS=y +# end of Scheduler Debugging + +# CONFIG_DEBUG_TIMEKEEPING is not set +# CONFIG_DEBUG_PREEMPT is not set + +# +# Lock Debugging (spinlocks, mutexes, etc...) +# +CONFIG_LOCK_DEBUGGING_SUPPORT=y +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +CONFIG_DEBUG_SPINLOCK=y +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +# CONFIG_DEBUG_RWSEMS is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_LOCK_TORTURE_TEST is not set +# CONFIG_WW_MUTEX_SELFTEST is not set +# CONFIG_SCF_TORTURE_TEST is not set +# CONFIG_CSD_LOCK_WAIT_DEBUG is not set +# end of Lock Debugging (spinlocks, mutexes, etc...) + +# CONFIG_DEBUG_IRQFLAGS is not set +CONFIG_STACKTRACE=y +# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set +# CONFIG_DEBUG_KOBJECT is not set + +# +# Debug kernel data structures +# +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_PLIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_BUG_ON_DATA_CORRUPTION is not set +# end of Debug kernel data structures + +CONFIG_DEBUG_CREDENTIALS=y + +# +# RCU Debugging +# +# CONFIG_RCU_SCALE_TEST is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_RCU_REF_SCALE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=60 +CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=20 +# CONFIG_RCU_TRACE is not set +# CONFIG_RCU_EQS_DEBUG is not set +# end of RCU Debugging + +# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set +# CONFIG_LATENCYTOP is not set +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACING_SUPPORT=y +# CONFIG_FTRACE is not set +# CONFIG_SAMPLES is not set +# CONFIG_STRICT_DEVMEM is not set + +# +# arm64 Debugging +# +# CONFIG_PID_IN_CONTEXTIDR is not set +# CONFIG_ARM64_RELOC_TEST is not set +# CONFIG_CORESIGHT is not set +# end of arm64 Debugging + +# +# Kernel Testing and Coverage +# +# CONFIG_KUNIT is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set +# CONFIG_FAULT_INJECTION is not set +CONFIG_ARCH_HAS_KCOV=y +CONFIG_CC_HAS_SANCOV_TRACE_PC=y +# CONFIG_RUNTIME_TESTING_MENU is not set +CONFIG_ARCH_USE_MEMTEST=y +# CONFIG_MEMTEST is not set +# end of Kernel Testing and Coverage +# end of Kernel hacking diff --git a/projects/Rockchip/devices/RG552/options b/projects/Rockchip/devices/RG552/options index 94b213e14..8c89fbfba 100644 --- a/projects/Rockchip/devices/RG552/options +++ b/projects/Rockchip/devices/RG552/options @@ -50,16 +50,26 @@ SPLASH_RESOLUTION="1152x1920" # Mali GPU family - MALI_FAMILY="midgard-t86x" - MALI_VERSION="r18p0" - OPENGLES="libmali" - GRAPHIC_DRIVERS="" + MALI_FAMILY="t860" + GRAPHIC_DRIVERS="panfrost" + # OpenGL(X) implementation to use (mesa / no) + OPENGL="mesa" + + # OpenGL-ES implementation to use (mesa / no) + OPENGLES="mesa" + + # Displayserver to use (weston / x11 / no) + DISPLAYSERVER="wl" + + # Windowmanager to use (fluxbox / weston / no) + WINDOWMANAGER="weston" + # kernel serial console - EXTRA_CMDLINE="quiet video=DSI-1:1152x1920p60 fbcon=rotate:3 ssh consoleblank=0 systemd.show_status=0 loglevel=0 panic=20" + EXTRA_CMDLINE="quiet console=tty0 video=DSI-1:1152x1920p60 fbcon=rotate:3 ssh consoleblank=0 systemd.show_status=0 loglevel=0 panic=20" # additional packages to install - #ADDITIONAL_PACKAGES="" + ADDITIONAL_PACKAGES=" emulators gamesupport 351files" # additional Firmware to use (dvb-firmware, misc-firmware, wlan-firmware) # Space separated list is supported, @@ -70,7 +80,7 @@ # for a list of additional drivers see packages/linux-drivers # Space separated list is supported, # e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2" - ADDITIONAL_DRIVERS="RTL8812AU RTL8814AU RTL8821AU RTL8821CU RTL88x2BU" + ADDITIONAL_DRIVERS="RTL8188FU RTL8812AU RTL8821AU RTL8821CU RTL88x2BU" # build and install driver addons (yes / no) DRIVER_ADDONS_SUPPORT="no" diff --git a/projects/Rockchip/packages/linux/package.mk b/projects/Rockchip/packages/linux/package.mk index b493841e8..d719e7087 100644 --- a/projects/Rockchip/packages/linux/package.mk +++ b/projects/Rockchip/packages/linux/package.mk @@ -3,12 +3,13 @@ # Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv) # Copyright (C) 2021-present 351ELEC (https://github.com/351ELEC) # Copyright (C) 2022-present Fewtarius +# Copyright (C) 2022-present Brooksytech PKG_NAME="linux" PKG_LICENSE="GPL" PKG_SITE="https://github.com/JustEnoughLinuxOS" -PKG_DEPENDS_HOST="ccache:host openssl:host" -PKG_DEPENDS_TARGET="toolchain linux:host cpio:host kmod:host xz:host wireless-regdb keyutils util-linux binutils ${KERNEL_EXTRA_DEPENDS_TARGET}" +PKG_DEPENDS_HOST="ccache:host rsync:host openssl:host" +PKG_DEPENDS_TARGET="toolchain linux:host cpio:host kmod:host xz:host wireless-regdb keyutils util-linux binutils ncurses openssl:host ${KERNEL_EXTRA_DEPENDS_TARGET}" PKG_DEPENDS_INIT="toolchain" PKG_NEED_UNPACK="${LINUX_DEPENDS} $(get_pkg_directory busybox)" PKG_LONGDESC="This package builds the kernel for Rockchip devices" @@ -24,8 +25,9 @@ case ${DEVICE} in PKG_VERSION="a19b4df7c" ;; RG552) - PKG_URL="${PKG_SITE}/rk3399-kernel.git" - PKG_VERSION="cb0d79995" + PKG_URL="https://github.com/brooksytech/rk3399-kernel-5.19.git" + PKG_VERSION="0c47c2cd85cc4e631ca9b00f135382dd8bd1efb5" + PKG_GIT_CLONE_BRANCH="dev" ;; RG353P|RG503) PKG_URL="${PKG_SITE}/rk356x-kernel.git" diff --git a/projects/Rockchip/packages/u-boot/package.mk b/projects/Rockchip/packages/u-boot/package.mk index 1bf9a81d7..adb41799a 100644 --- a/projects/Rockchip/packages/u-boot/package.mk +++ b/projects/Rockchip/packages/u-boot/package.mk @@ -19,7 +19,7 @@ case ${DEVICE} in ;; RG552) PKG_URL="${PKG_SITE}/rk3399-uboot.git" - PKG_VERSION="23f4a5d" + PKG_VERSION="b2b3fa8268" ;; RG353P|RG503) PKG_URL="${PKG_SITE}/rk356x-uboot.git" diff --git a/scripts/build b/scripts/build index 5d5c9dfb9..2ed336c95 100755 --- a/scripts/build +++ b/scripts/build @@ -223,6 +223,21 @@ if [ -f "${PKG_CONFIGURE_SCRIPT}" -o -f "${PKG_CMAKE_SCRIPT}" -o -f "${PKG_MESON MESON_CONF="${PKG_REAL_BUILD}/meson.conf" fi +# configure +if [ -n "${PKG_DEPENDS_CONFIG}" -a -n "${PKG_INSTALL}" ]; then + for pkg in ${PKG_DEPENDS_CONFIG}; do + for dir in "$(get_install_dir ${pkg})"/{usr/local/,usr/,}{lib/,share/}pkgconfig; do + if [ -d "${dir}" ]; then + build_msg "CLR_TOOLCHAIN" "PKG_CONFIG_PATH" "${dir}" + [ -n "${PKG_CONFIG_PATH}" ] && PKG_CONFIG_PATH+=":" + PKG_CONFIG_PATH+="${dir}" + fi + done + done + + export PKG_CONFIG_PATH +fi + # configure pkg_call_exists pre_configure && pkg_call pre_configure pkg_call_exists pre_configure_${TARGET} && pkg_call pre_configure_${TARGET} diff --git a/scripts/build_distro b/scripts/build_distro index 8a9561081..844f54720 100755 --- a/scripts/build_distro +++ b/scripts/build_distro @@ -62,17 +62,20 @@ fi PKG_CLEAN="${PKG_CLEAN} system-utils plymouth-lite initramfs busybox linux grub u-boot SDL2 modules \ emulationstation retroarch lib32 splash jelos" -if [ -d "build.${DISTRO}-${DEVICE_ROOT}.${ARCH}/initramfs" ] +if [ ! -n "${DIRTY}" ] then - rm -rf build.${DISTRO}-${DEVICE_ROOT}.${ARCH}/initramfs -fi + if [ -d "build.${DISTRO}-${DEVICE_ROOT}.${ARCH}/initramfs" ] + then + rm -rf build.${DISTRO}-${DEVICE_ROOT}.${ARCH}/initramfs + fi -# Clean a few packages to ensure the build date and version are updated -for package in ${PKG_CLEAN} -do - echo "Clean: ${package}" - ./scripts/clean ${package} -done + # Clean a few packages to ensure the build date and version are updated + for package in ${PKG_CLEAN} + do + echo "Clean: ${package}" + ./scripts/clean ${package} + done +fi # Clean out old builds before starting the new one. echo "Prune old releases: ${DISTRO}-${DEVICE}.${ARCH}-*" diff --git a/scripts/extract b/scripts/extract index 927d9a7e0..f84c5a049 100755 --- a/scripts/extract +++ b/scripts/extract @@ -68,6 +68,11 @@ case ${PKG_SOURCE_NAME} in *.rar) unrar x ${FULL_SOURCE_PATH} ${2} ;; + *.AppImage) + FULL_DEST_PATH="${2}/${PKG_NAME}-${PKG_VERSION}" + mkdir ${FULL_DEST_PATH} + cp -f ${FULL_SOURCE_PATH} ${FULL_DEST_PATH} + ;; *) FULL_DEST_PATH="${2}/${PKG_NAME}-${PKG_VERSION}" mkdir ${FULL_DEST_PATH} diff --git a/scripts/mkimage b/scripts/mkimage index 5196bdb31..2aac2eb48 100755 --- a/scripts/mkimage +++ b/scripts/mkimage @@ -115,15 +115,14 @@ if [ "${BOOTLOADER}" = "syslinux" ]; then # create bootloader configuration echo "image: creating bootloader configuration..." cat << EOF > "${LE_TMP}/syslinux.cfg" -SAY Wait for installer mode to start automatically in 5 seconds... +SAY ${DISTRO} - Boot options... SAY -SAY Options -SAY ======= -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 installer: permanently installs ${DISTRO} to HDD/SSD +SAY run: boots ${DISTRO} from this device (default) SAY -DEFAULT installer +SAY Booting in "run" mode in 5 seconds... +SAY +DEFAULT run TIMEOUT 50 PROMPT 1 @@ -131,10 +130,6 @@ LABEL installer KERNEL /${KERNEL_NAME} APPEND boot=UUID=${UUID_SYSTEM} installer systemd.debug_shell vga=current ${EXTRA_CMDLINE} -LABEL live - KERNEL /${KERNEL_NAME} - APPEND boot=UUID=${UUID_SYSTEM} live vga=current ${EXTRA_CMDLINE} - LABEL run KERNEL /${KERNEL_NAME} APPEND boot=UUID=${UUID_SYSTEM} disk=UUID=${UUID_STORAGE} portable ${EXTRA_CMDLINE} @@ -142,18 +137,14 @@ 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 -} -menuentry "Live" { - search --set -f /KERNEL - linux /KERNEL boot=UUID=${UUID_SYSTEM} grub_live quiet vga=current + linux /KERNEL boot=UUID=${UUID_SYSTEM} installer systemd.debug_shell vga=current ${EXTRA_CMDLINE} } menuentry "Run" { search --set -f /KERNEL - linux /KERNEL boot=UUID=${UUID_SYSTEM} disk=UUID=${UUID_STORAGE} grub_portable quiet + linux /KERNEL boot=UUID=${UUID_SYSTEM} disk=UUID=${UUID_STORAGE} grub_portable ${EXTRA_CMDLINE} } EOF @@ -323,6 +314,13 @@ fi sha256sum $(basename "${DISK}").gz > $(basename "${DISK}").gz.sha256 ) +if [ -n "${JELOS_SSH_KEYS_FILE}" ] || \ + [ -n "${JELOS_WIFI_SSID}" ] || \ + [ -n "${JELOS_WIFI_KEY}" ] +then + echo "image: CONTAINS SENSITIVE DATA, DO NOT DISTRIBUTE." +fi + # cleanup cleanup exit