Wiki/Doc to build CoreELEC?

For Odroid C2, should I use
PROJECT=Amlogic DEVICE=S905 ARCH=arm
or
PROJECT=Amlogic DEVICE=S905 ARCH=aarch64 ?

PROJECT=Amlogic DEVICE=S905 ARCH=arm

1 Like

Thank you!

Hi TheCoolest (remember me? you helped me get my abox a95x box working!) -

Along the lines of your answer - the selection of ARCH=arm instead of aarch64. I’ve done some reading and found that CoreElec runs a 64-bit kernel, but userspace is 32-bit. Hence the ARCH=arm instead of aarch64, I assume.

Recently, the bounty to complete an aarch64 dynarec was merged into the libretro-mupen64plus core, so I wanted to see if I could get my S905 or S912 box to try this out.

My first idea was to see if I could compile an entire CoreElec image as aarch64. Over in the LE forums, there is a user that releases aarch64 builds - https://forum.libreelec.tv/thread/12330-test-libreelec-images-with-kodi-18-for-s9xxx/ - so my gut feeling is that it could work, but it would be a lot to build, probably more than necessary if I’m just trying to use a single aarch64 libretro core.

So my next option was to compile just retroarch with Project=Amlogic Arch=aarch64, but then I ran into some errors with libhybris not supporting aarch64. I found this was a package included for the Amlogic project. Is this required if I want to compile retroarch too? If so, this library’s lack of support for aarch64 would be a roadblock to getting this to work.

If somebody could help confirm whether or not I’m chasing the impossible, it would be much appreciated, thanks!

libhybris is needed for S912 builds, without it you would have no GUI

Thanks adamg - so if I’m understanding this right, libhybris does not support aarch64, so even though we have a chipset that supports 64 bit, it is not currently possible to create any aarch64 binaries (with GUI) that would run on our S912 Amlogic boxes.

It sounds like I won’t be able to test the aarch64 dynarec on my S912 box at all - can you confirm?

Yes that is correct, libhybris is needed because we have no fbdev mali binary for the GPU inside the S912 devices, so we use libhybris to use the Android gralloc for S912 for the UI.

libhybris does support aarch64. You build it with “–enable-arch=arm64”. However, having done so, the resulting image gives me a core dump.

I suspect the issue is that the pre-built binaries from the opengl-meson-t82x package don’t come in an aarch64 flavour.

i just pulled the git from the internet and did the ‘make’ command. I thought it had two tar files as output. Are those the two tar files from the nightlies? So, one for ng and one for non-ng?

  • it’s only one tar file as output and it’s 182MB big. Could be the generic ng-arm gz file from the nightlies.

create only .tar for update of Amlogic-ng

PROJECT=Amlogic-ng make

create only .tar for update of Amlogic

PROJECT=Amlogic make

create .img for update of Amlogic-ng

PROJECT=Amlogic-ng make image

create .img for update of Amlogic

PROJECT=Amlogic make image
1 Like

it worked.

1 Like

Hi,
I am a newbie and try to build the latest version 20.1 from a s905w processor. I tried:

  • PROJECT=Amlogic DEVICE=AMLGX ARCH=arm make image
  • PROJECT=Amlogic DEVICE=AMLGX ARCH=aarch64 make image
    I got the error:

Traceback (most recent call last):
File “scripts/genbuildplan.py”, line 374, in
REQUIRED_PKGS = processPackages(args, ALL_PACKAGES)
File “scripts/genbuildplan.py”, line 303, in processPackages
raise Exception(msg)
Exception: Invalid package reference: dependency gpu-aml in package linux-drivers::PKG_DEPENDS_TARGET is not valid
Parallel build failure - see log for details. Time of failure: Sat Jun 17 08:33:36 UTC 2023
make: *** [Makefile:10: image] Error 1

Can you help me what would be the proper build command?

PROJECT=Amlogic means you are building LibreELEC.

For CoreELEC you need to use like

PROJECT=Amlogic-ce DEVICE=Amlogic-ng ARCH=arm make

Confirm it worked, thank you Peter!