Giter Site home page Giter Site logo

gregoriobenatti / 351elec Goto Github PK

View Code? Open in Web Editor NEW

This project forked from amberelec/amberelec

0.0 0.0 0.0 309.59 MB

Handheld firmware optimized for the Anbernic RG351P/M/V/MP and RG552 devices.

Home Page: https://351elec.de

Shell 24.44% Makefile 36.48% Python 10.46% C 9.25% GLSL 18.66% CMake 0.35% Emacs Lisp 0.24% Dockerfile 0.10% Jinja 0.02%

351elec's Introduction

351ELEC Logo
An open source firmware for the Anbernic RG351P/M/V/MP and RG552 devices.

GitHub Release GPL-2.0 Licensed Discord

Downloads Latest Downloads Prerelease

351ELEC is a fork of EmuELEC which is based on CoreELEC, Lakka, and Batocera. It is intended for use only on the RG351P/M/V/MP and is not compatible with other devices.

We have a Website with installation instructions and a lot of information on how to get started using 351ELEC.

Visit us on our Discord! https://discord.com/invite/R9Er7hkRMe

Installation

Please visit our Website Installation page for installation instructions.

Building from Source

Building 351ELEC from source is a fairly simple process. It is recommended to have a minimum of 4 cores, 16GB of RAM, and an SSD with 200GB of free space. The build environment used to develop these steps uses Ubuntu 20.04, your mileage may vary when building on other distributions.

sudo apt update && sudo apt upgrade

sudo apt install gcc make git unzip wget xz-utils libsdl2-dev libsdl2-mixer-dev libfreeimage-dev libfreetype6-dev libcurl4-openssl-dev rapidjson-dev libasound2-dev libgl1-mesa-dev build-essential libboost-all-dev cmake fonts-droid-fallback libvlc-dev libvlccore-dev vlc-bin texinfo premake4 golang libssl-dev curl patchelf xmlstarlet patchutils gawk gperf xfonts-utils default-jre python xsltproc libjson-perl lzop libncurses5-dev device-tree-compiler u-boot-tools rsync p7zip unrar libparse-yapp-perl zip binutils-aarch64-linux-gnu dos2unix p7zip-full libvpx-dev meson

git clone https://github.com/351ELEC/351ELEC.git 351ELEC  

cd 351ELEC

make clean

make world

The make world process will build a 32bit and 64bit userland and generate a 64bit image which will be located in 351ELEC/release. Follow the installation steps to write your image to a microSD. It will build for the RG351P/M, RG351V, RG351MP and for the RG552.

To create the image for the RG351P/M just make RG351P, and just for the RG351V make RG351V, and just for the RG351MP make RG351MP, and just for the RG552 make RG552.

Building from Source - Docker

Building with Docker simplifies the build process as any dependencies, with the exception of make, are contained within the docker image - all CPU/RAM/Disk/build time requirements remain similar.

NOTE: Make can be installed with sudo apt update && sudo apt install -y make on Ubuntu-based systems.

All make commands are available via docker, by prepending docker-. make RG351V becomes make docker-RG351V and make clean becomes make docker-clean.

New docker make commands:

  • make docker-image-build - Builds the docker image based on the Dockerfile. This is not required unless changes are needed locally.
  • make docker-image-pull - Pulls docker image from dockerhub. This will update to the latest image and replace any locally built changes to the docker file.
  • make docker-shell - (advanced) Launches a shell inside the docker build container. This allows running any development commands like ./scripts/build, etc, which aren't in the Makefile.
    • NOTE: Errors like groups: cannot find name for group ID 1002 and the user being listed as I have no name! are OK and a result of mapping the host user/group into the docker container where the host user/groups may not exist.

Example building with docker:

git clone https://github.com/351ELEC/351ELEC.git 351ELEC  
cd 351ELEC
make docker-clean
make docker-world

Automated Dev Builds

Builds are automatically run on commits to main and for Pull Requests (PR's) from previous committers.

Development builds can be found looking for the green checkmarks next to commit history. Artifacts are generated for each build which can be used to update the RG351P/RG351V and are stored for 30 days by GitHub. Note that due to Github Action limitations, artifacts are zipped (.img.gz and .tar are inside the zip file).

All artifacts generated by builds should be considered 'unstable' and only used by developers or advanced users who want to test the latest code.

See: Build Overview for more information.

GitHub Actions and Forks

Builds use GitHub actions (.github/workflow) to execute. GitHub validates that changes to the .github/workflow folder require a special workflow permission.

When using Personal Access Token to push in upstream changes from 351ELEC into your fork, you may get an error similar to the following:

! [remote rejected]   main -> main (refusing to allow a Personal Access Token to create or update workflow `.github/workflows/README.md` without `workflow` scope)
error: failed to push some refs to 'https://github.com/my-351elec-fork/351ELEC.git'

To fix, edit the Personal Access Token to add workflow permissions (or create a new token with workflow permission).

Alternatively, ssh-key authentication can be used.

License

351ELEC is a fork of EmuELEC which is based on CoreELEC which in turn is licensed under the GPLv2 (and GPLv2-or-later), all original files created by the 351ELEC team are licensed as GPLv2-or-later and marked as such.

This firmware includes many non-commercial emulators/libraries/cores/binaries and as such, it cannot be sold, bundled, offered, included, or anything similar, in any commercial product/application including but not limited to: Android Devices, Smart-TVs, TV-boxes, Hand-held Devices, Computers, SBCs, or anything else that can run 351ELEC. with those emulators/libraries/cores/binaries included.

As 351ELEC includes code from many upstream projects it includes many copyright owners. 351ELEC makes NO claim of copyright on any upstream code. Patches to upstream code have the same license as the upstream project, unless specified otherwise. For a complete copyright list please checkout the source code to examine license headers. Unless expressly stated otherwise all code submitted to the 351ELEC project (in any form) is licensed under GPLv2-or-later. You are absolutely free to retain copyright. To retain copyright simply add a copyright header to each submitted code page. If you submit code that is not your own work it is your responsibility to place a header stating the copyright.

Branding

All 351ELEC related logos, videos, images and branding in general are the sole property of 351ELEC and they are all Copyrighted by the 351ELEC team and are not to be included in any commercial application whatsoever without the proper authorization! 351ELEC may not be bundled with games or distributed as donationware!

You are however granted permission to include/modify them in your forks/projects as long as they are completely open-source, freely available (as in [but not limited to] not under a bunch of "click this sponsored ad to get the link!"), and do not infringe on any copyright laws, even if you receive donations for such project (we are not against donations for honest people!), we only ask that you give us the proper credit and if possible a link to this repo.

351elec's People

Contributors

dhwz avatar cebion avatar konsumschaf avatar szalikdesigns avatar pkegg avatar yonkuma avatar anthonycaccese avatar xargonwan avatar claudiojfo avatar navy1978 avatar ravenkilit avatar rican7 avatar bebeidon avatar zulhailmie avatar acridaxid avatar kefren68 avatar stevewallin avatar redwolftech avatar codygarver avatar mtoensing avatar peterfalken avatar bkazoo avatar fdboi avatar paranat avatar mupendulum avatar a8bit avatar mephio avatar lordryst avatar jserodio avatar eriklentz avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.