commit
09e07bba62
7 changed files with 39 additions and 123 deletions
2
.github/workflows/release-dev.yaml
vendored
2
.github/workflows/release-dev.yaml
vendored
|
@ -7,7 +7,7 @@
|
|||
name: release-dev
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 21 * * *'
|
||||
- cron: '0 3 * * *'
|
||||
workflow_dispatch:
|
||||
env:
|
||||
BRANCH: dev
|
||||
|
|
26
README.md
26
README.md
|
@ -2,16 +2,6 @@
|
|||
#
|
||||
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 removable storage (slot/device #2).
|
||||
* 2.4GHz and 5GHz 802.11 A/B/G/N/AC WIFI support.
|
||||
* Online update capability for easy access to stable or development builds.
|
||||
* Support for the Anbernic WIN600, RG552, RG503, RG353P, RG353M, RG353V, RG351P, RG351M, RG351MP, RG351V, and Atari VCS.
|
||||
* Developed by a small, friendly community.
|
||||
|
||||
## Licenses
|
||||
JELOS is a Linux distribution that is made up of many open-source components. Components are provided under their respective licenses. This distribution includes components licensed for non-commercial use only.
|
||||
|
||||
|
@ -42,22 +32,8 @@ 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.
|
||||
|
||||
## 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.
|
||||
* RG353V users should use the RG353P image, and select "DEVICE IS RG353V" from the system settings menu in EmulationStation.
|
||||
|
||||
## 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.
|
||||
* Copy the update to your device over the network to your device's update share.
|
||||
* Reboot the device, and the update will begin automatically.
|
||||
* JELOS is a source based Linux distribution. To install, follow BUILDING.md and then write the resulting image to your micro sd card using your favorite image writing tool.
|
||||
|
||||
## Network Access
|
||||
* 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.
|
||||
|
|
|
@ -25,5 +25,6 @@
|
|||
TARGET_CFLAGS="-march=${TARGET_VARIANT}${TARGET_CPU_FLAGS} -mabi=lp64 -Wno-psabi -mtune=$TARGET_CPU"
|
||||
# Disable runtime checking support of ARMv8.0's optional LSE feature. Breaks gdb and mesa compile.
|
||||
TARGET_CFLAGS="${TARGET_CFLAGS} -mno-outline-atomics"
|
||||
TARGET_CPPFLAGS="${TARGET_CPPFLAGS} -mno-outline-atomics"
|
||||
TARGET_LDFLAGS="-march=${TARGET_VARIANT}${TARGET_CPU_FLAGS} -mtune=$TARGET_CPU"
|
||||
GCC_OPTS="--with-abi=lp64 --with-arch=$TARGET_VARIANT"
|
||||
|
|
|
@ -2,16 +2,18 @@
|
|||
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="valgrind"
|
||||
PKG_VERSION="3.15.0"
|
||||
PKG_SHA256="417c7a9da8f60dd05698b3a7bc6002e4ef996f14c13f0ff96679a16873e78ab1"
|
||||
PKG_VERSION="3.20.0"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://valgrind.org/"
|
||||
PKG_URL="ftp://sourceware.org/pub/valgrind/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_URL="https://sourceware.org/pub/valgrind/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_LONGDESC="A tool to help find memory-management problems in programs"
|
||||
|
||||
if [ "$TARGET_ARCH" = "arm" ]; then
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-only32bit"
|
||||
elif [ "$TARGET_ARCH" = "aarch64" -o "$TARGET_ARCH" = "x86_64" ]; then
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-only64bit"
|
||||
fi
|
||||
case ${TARGET_ARCH} in
|
||||
arm)
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-only32bit"
|
||||
;;
|
||||
*)
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-only64bit"
|
||||
;;
|
||||
esac
|
||||
|
|
|
@ -7,6 +7,6 @@ diff -Naur a/configure b/configure
|
|||
|
||||
- armv7*)
|
||||
+ armv7*|armv8*)
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok (${host_cpu})" >&5
|
||||
$as_echo "ok (${host_cpu})" >&6; }
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok (${host_cpu})" >&5
|
||||
printf "%s\n" "ok (${host_cpu})" >&6; }
|
||||
ARCH_MAX="arm"
|
||||
|
|
|
@ -1,67 +0,0 @@
|
|||
From a3262243ca01f7cfe3ae86b168d5b3a7e5d1cbc0 Mon Sep 17 00:00:00 2001
|
||||
From: Balint Reczey <balint.reczey@canonical.com>
|
||||
Date: Thu, 28 Nov 2019 19:31:12 +0100
|
||||
Subject: [PATCH] Drop MPI 1 support
|
||||
|
||||
Signed-off-by: Balint Reczey <balint.reczey@canonical.com>
|
||||
---
|
||||
mpi/libmpiwrap.c | 16 ++--------------
|
||||
1 file changed, 2 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/mpi/libmpiwrap.c b/mpi/libmpiwrap.c
|
||||
index 488bb13fd..a740ea562 100644
|
||||
--- a/mpi/libmpiwrap.c
|
||||
+++ b/mpi/libmpiwrap.c
|
||||
@@ -278,8 +278,6 @@ static void showTy ( FILE* f, MPI_Datatype ty )
|
||||
else if (ty == MPI_LONG_INT) fprintf(f,"LONG_INT");
|
||||
else if (ty == MPI_SHORT_INT) fprintf(f,"SHORT_INT");
|
||||
else if (ty == MPI_2INT) fprintf(f,"2INT");
|
||||
- else if (ty == MPI_UB) fprintf(f,"UB");
|
||||
- else if (ty == MPI_LB) fprintf(f,"LB");
|
||||
# if defined(MPI_WCHAR)
|
||||
else if (ty == MPI_WCHAR) fprintf(f,"WCHAR");
|
||||
# endif
|
||||
@@ -350,20 +348,11 @@ static void showCombiner ( FILE* f, int combiner )
|
||||
# endif
|
||||
case MPI_COMBINER_CONTIGUOUS: fprintf(f, "CONTIGUOUS"); break;
|
||||
case MPI_COMBINER_VECTOR: fprintf(f, "VECTOR"); break;
|
||||
-#if defined(MPI_COMBINER_HVECTOR_INTEGER)
|
||||
- case MPI_COMBINER_HVECTOR_INTEGER: fprintf(f, "HVECTOR_INTEGER"); break;
|
||||
-# endif
|
||||
case MPI_COMBINER_HVECTOR: fprintf(f, "HVECTOR"); break;
|
||||
case MPI_COMBINER_INDEXED: fprintf(f, "INDEXED"); break;
|
||||
-#if defined(MPI_COMBINER_HINDEXED_INTEGER)
|
||||
- case MPI_COMBINER_HINDEXED_INTEGER: fprintf(f, "HINDEXED_INTEGER"); break;
|
||||
-# endif
|
||||
case MPI_COMBINER_HINDEXED: fprintf(f, "HINDEXED"); break;
|
||||
#if defined(MPI_COMBINER_INDEXED_BLOCK)
|
||||
case MPI_COMBINER_INDEXED_BLOCK: fprintf(f, "INDEXED_BLOCK"); break;
|
||||
-# endif
|
||||
-#if defined(MPI_COMBINER_STRUCT_INTEGER)
|
||||
- case MPI_COMBINER_STRUCT_INTEGER: fprintf(f, "STRUCT_INTEGER"); break;
|
||||
# endif
|
||||
case MPI_COMBINER_STRUCT: fprintf(f, "STRUCT"); break;
|
||||
#if defined(MPI_COMBINER_SUBARRAY)
|
||||
@@ -458,8 +447,9 @@ Bool isMSI ( MPI_Status* status )
|
||||
static long extentOfTy ( MPI_Datatype ty )
|
||||
{
|
||||
int r;
|
||||
+ MPI_Aint lb;
|
||||
MPI_Aint n;
|
||||
- r = PMPI_Type_extent(ty, &n);
|
||||
+ r = MPI_Type_get_extent(ty, &lb, &n);
|
||||
assert(r == MPI_SUCCESS);
|
||||
return (long)n;
|
||||
}
|
||||
@@ -733,8 +723,6 @@ void walk_type ( void(*f)(void*,long), char* base, MPI_Datatype ty )
|
||||
f(base + offsetof(Ty,loc), sizeof(int));
|
||||
return;
|
||||
}
|
||||
- if (ty == MPI_LB || ty == MPI_UB)
|
||||
- return; /* have zero size, so nothing needs to be done */
|
||||
goto unhandled;
|
||||
/*NOTREACHED*/
|
||||
}
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
--- moonlight-orig/cmake/FindRockchip.cmake 2022-05-26 15:41:01.746182723 -0700
|
||||
+++ areascout-moonlight/cmake/FindRockchip.cmake 2022-05-26 15:39:28.741230073 -0700
|
||||
@@ -8,7 +8,13 @@
|
||||
diff --git a/cmake/FindRockchip.cmake b/cmake/FindRockchip.cmake
|
||||
index 83764dd..1ad3f93 100644
|
||||
--- a/cmake/FindRockchip.cmake
|
||||
+++ b/cmake/FindRockchip.cmake
|
||||
@@ -8,7 +8,13 @@ find_library(DRM_LIBRARY
|
||||
NAMES libdrm.so
|
||||
DOC "Path to libdrm Library"
|
||||
PATHS /usr/local/lib /usr/lib /usr/lib/aarch64-linux-gnu /usr/lib/arm-linux-gnueabihf)
|
||||
|
@ -15,28 +17,29 @@
|
|||
|
||||
find_path(ROCKCHIP_INCLUDE_DIR
|
||||
NAMES rk_mpi.h
|
||||
@@ -26,4 +32,4 @@
|
||||
@@ -26,4 +32,4 @@ include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Rockchip DEFAULT_MSG ROCKCHIP_INCLUDE_DIR ROCKCHIP_LIBRARY)
|
||||
|
||||
set(ROCKCHIP_INCLUDE_DIRS ${ROCKCHIP_INCLUDE_DIR} ${DRM_INCLUDE_DIR})
|
||||
-set(ROCKCHIP_LIBRARIES ${ROCKCHIP_LIBRARY} ${DRM_LIBRARY})
|
||||
+set(ROCKCHIP_LIBRARIES ${ROCKCHIP_LIBRARY} ${DRM_LIBRARY} ${RGA_LIBRARY})
|
||||
--- moonlight-orig/src/video/rk.c 2022-05-26 15:41:01.750182764 -0700
|
||||
+++ areascout-moonlight/src/video/rk.c 2022-05-26 15:39:28.749230155 -0700
|
||||
@@ -37,9 +37,11 @@
|
||||
diff --git a/src/video/rk.c b/src/video/rk.c
|
||||
index be355be..ad1e15e 100644
|
||||
--- a/src/video/rk.c
|
||||
+++ b/src/video/rk.c
|
||||
@@ -38,8 +38,10 @@
|
||||
#include <libdrm/drm_fourcc.h>
|
||||
|
||||
#include <rockchip/rk_mpi.h>
|
||||
+#include <rga/RgaApi.h>
|
||||
|
||||
#define READ_BUF_SIZE 0x00100000
|
||||
#define MAX_FRAMES 16
|
||||
+#define MAX_DEST_BUFFERS 3
|
||||
#define RK_H264 7
|
||||
#define RK_H265 16777220
|
||||
|
||||
@@ -50,6 +52,8 @@
|
||||
void *pkt_buf = NULL;
|
||||
@@ -51,6 +53,8 @@ void *pkt_buf = NULL;
|
||||
size_t pkt_buf_size = 0;
|
||||
int fd;
|
||||
int fb_id;
|
||||
+int fb_id_rot[MAX_DEST_BUFFERS];
|
||||
|
@ -44,7 +47,7 @@
|
|||
uint32_t plane_id, crtc_id;
|
||||
int frm_eos;
|
||||
int crtc_width;
|
||||
@@ -82,6 +86,7 @@
|
||||
@@ -83,6 +87,7 @@ struct {
|
||||
|
||||
void *display_thread(void *param) {
|
||||
|
||||
|
@ -52,7 +55,7 @@
|
|||
int ret;
|
||||
|
||||
while (!frm_eos) {
|
||||
@@ -98,8 +103,9 @@
|
||||
@@ -99,8 +104,9 @@ void *display_thread(void *param) {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
@ -63,7 +66,7 @@
|
|||
fb_id = 0;
|
||||
ret = pthread_mutex_unlock(&mutex);
|
||||
assert(!ret);
|
||||
@@ -114,10 +120,13 @@
|
||||
@@ -115,10 +121,13 @@ void *display_thread(void *param) {
|
||||
|
||||
void *frame_thread(void *param) {
|
||||
|
||||
|
@ -77,12 +80,13 @@
|
|||
|
||||
while (!frm_eos) {
|
||||
|
||||
@@ -141,7 +150,15 @@
|
||||
@@ -142,7 +151,15 @@ void *frame_thread(void *param) {
|
||||
RK_U32 ver_stride = mpp_frame_get_ver_stride(frame);
|
||||
MppFrameFormat fmt = mpp_frame_get_fmt(frame);
|
||||
assert((fmt == MPP_FMT_YUV420SP) || (fmt == MPP_FMT_YUV420SP_10BIT));
|
||||
-
|
||||
+ printf("Frame WxH=%dx%d WSxHs=%dx%d\n", frm_width, frm_height, hor_stride, ver_stride);
|
||||
|
||||
+
|
||||
+#if 1
|
||||
+ // position overlay, expand to full screen
|
||||
+ fb_x = 0;
|
||||
|
@ -93,7 +97,7 @@
|
|||
// position overlay, scale to ratio
|
||||
float crt_ratio = (float)crtc_width/crtc_height;
|
||||
float frame_ratio = (float)frm_width/frm_height;
|
||||
@@ -157,6 +174,47 @@
|
||||
@@ -158,6 +175,47 @@ void *frame_thread(void *param) {
|
||||
fb_x = 0;
|
||||
fb_y = (crtc_height-fb_height)/2;
|
||||
}
|
||||
|
@ -141,7 +145,7 @@
|
|||
|
||||
// create new external frame group and allocate (commit flow) new DRM buffers and DRM FB
|
||||
assert(!mpi_frm_grp);
|
||||
@@ -224,6 +282,15 @@
|
||||
@@ -225,6 +283,15 @@ void *frame_thread(void *param) {
|
||||
// send DRM FB to display thread
|
||||
ret = pthread_mutex_lock(&mutex);
|
||||
assert(!ret);
|
||||
|
@ -157,7 +161,7 @@
|
|||
fb_id = frame_to_drm[i].fb_id;
|
||||
ret = pthread_cond_signal(&cond);
|
||||
assert(!ret);
|
||||
@@ -363,6 +430,10 @@
|
||||
@@ -361,6 +428,10 @@ int rk_setup(int videoFormat, int width, int height, int redrawRate, void* conte
|
||||
// hide cursor by move in left lower corner
|
||||
drmModeMoveCursor(fd, crtc_id, 0, crtc_height);
|
||||
|
||||
|
@ -167,8 +171,8 @@
|
|||
+
|
||||
// MPI SETUP
|
||||
|
||||
pkt_buf = malloc(READ_BUF_SIZE);
|
||||
@@ -446,6 +517,8 @@
|
||||
ensure_buf_size(&pkt_buf, &pkt_buf_size, INITIAL_DECODER_BUFFER_SIZE);
|
||||
@@ -443,6 +514,8 @@ void rk_cleanup() {
|
||||
mpp_destroy(mpi_ctx);
|
||||
free(pkt_buf);
|
||||
|
||||
|
|
Loading…
Reference in a new issue