Compiling CoreElec

I have tried to compile CE 19 and 20 but I always end up with this. I assume I am missing something but I can’t figure out what it is.

Can anyone help me?

Program check-filesystems.sh found: YES (/home/martin/CoreELEC/build.CoreELEC-Amlogic-ng.arm-20/build/systemd-250.3/src/basic/check-filesystems.sh)

../src/basic/meson.build:389:8: ERROR: Problem encountered: found unknown filesystem(s) defined in kernel headers:

Filesystem found in kernel header but not in filesystems-gperf.gperf: SDCARDFS_SUPER_MAGIC


A full log can be found at /home/martin/CoreELEC/build.CoreELEC-Amlogic-ng.arm-20/build/systemd-250.3/.armv8a-libreelec-linux-gnueabihf/meson-logs/meson-log.txt
FAILURE: scripts/build systemd:target during configure_target (default)
*********** FAILED COMMAND ***********
CC="${HOST_CC}" CXX="${HOST_CXX}" meson ${TARGET_MESON_OPTS} --cross-file=${MESON_CONF} ${PKG_MESON_OPTS_TARGET} ${PKG_MESON_SCRIPT%/*}
**************************************
*********** FAILED COMMAND ***********
${SCRIPTS}/build "${1}" "${PARENT_PKG}"
**************************************
FAILURE: scripts/install systemd:target has failed!

There are build instructions here.

Not clear what that adds, are you saying I am supposed to run make before make image?

Also with LE I like to pre-load tools/develop-tools can that still be run with parameters? I am have trouble with rtmpdump.git

It’s not clear what you are trying to achieve.

The build error above is something I didn’t saw. I hope you are using correct host OS.

For now a simple compile is all (except I like to cache the develop-tools since I tried to build this many times over the last few days.

lsb_release -a

No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 20.04
Codename: focal

In addition scripts/build rtmpdump isn’t working which is why I like the cache.

Change package url and run make. There is no need to download packages before build.

diff --git a/packages/multimedia/rtmpdump/package.mk b/packages/multimedia/rtmpdump/package.mk
index 4811c6e3ef..5cfef8a95a 100644
--- a/packages/multimedia/rtmpdump/package.mk
+++ b/packages/multimedia/rtmpdump/package.mk
@@ -7,7 +7,7 @@ PKG_VERSION="c5f04a58fc2aeea6296ca7c44ee4734c18401aa3"
 PKG_SHA256="fd8c21263d93fbde8bee8aa6c5f6a657789674bb0f9e74f050651504d5f43b46"
 PKG_LICENSE="GPL"
 PKG_SITE="http://rtmpdump.mplayerhq.hu/"
-PKG_URL="http://repo.or.cz/rtmpdump.git/snapshot/${PKG_VERSION}.tar.gz"
+PKG_URL="http://git.ffmpeg.org/gitweb/rtmpdump.git/snapshot/${PKG_VERSION}.tar.gz"
 PKG_DEPENDS_TARGET="toolchain zlib openssl"
 PKG_LONGDESC="rtmpdump is a toolkit for RTMP streams."
 PKG_BUILD_FLAGS="+pic"

With CE 19 and 20 and LE 10 and 11 it is nice to have a singe sources folder that I can copy in before starting the build. I did copy in the source from LE to move on. So the question remains should I be able to run make image without running make first?

To set external path for sources use file ~/.coreelec/options with

export SOURCES_DIR="/some_external_folder_for_sources"

Command make creates .tar file and command make image creates .img.gz files.

Ok thanks that will help a lot. I will continue with this and see if I have more luck today

1 Like

Patch for systemd on CE20

--- a/src/basic/check-filesystems.sh	2022-02-01 21:47:06.181142404 +0100
+++ b/src/basic/check-filesystems.sh	2022-02-01 21:45:58.760989671 +0100
@@ -23,7 +23,8 @@ for fs in $($cpp -dM $includes - </dev/n
         # STACK_END_MAGIC doesn't refer to a filesystem
         # mtd_inode was removed in 2015
         # futexfs was removed in 2018
-        if [[ "$fs" =~ ^(STACK_END_MAGIC|MTD_INODE_FS_MAGIC|FUTEXFS_SUPER_MAGIC)$ ]]; then
+        # sdcardfs is Android thing
+        if [[ "$fs" =~ ^(STACK_END_MAGIC|MTD_INODE_FS_MAGIC|FUTEXFS_SUPER_MAGIC|SDCARDFS_SUPER_MAGIC)$ ]]; then
             continue
         fi
         echo "Filesystem found in kernel header but not in $(basename "$filesystems_gperf"): $fs";
2 Likes

Thanks @vpeter that fixed make image for me this can be marked solved if this patch is added to github

repo.or.cz was also a problem for edid-decode but it appears up today.

I posted too early now I get this and I don’t know where it finds that hash.

CMake Error at dvdread-stamp/verify-dvdread.cmake:29 (message):
error: SHA512 hash of

/sources/libdvdread/libdvdread-bd6b329f0137ab6a9f779a28dd96f04713735e17.tar.gz

does not match expected value

expected: 'b3419ba0a1a2dd70f1bb6236afdfe1c6e88c9ad4264198b289e3bba9375e077cecf7f89848c7b09debaa445327f3507101f3        d157e692f7a7163b2bb52643e1e7'
  actual: 'c95d2008c831ae0e7a8c48c49aa9c249171680ed9055263573c2e9a63eb90ebe3cef6fce42d52882cfeb1a301a14bb5c3491        c4e5b40e07964c9c440cbd585ca6'

The source file indicates it is valid.

Downloading the current Kodi package for libdvdnav and libdvdread I got by this.

I don’t know wher your b3419ba0a1a2dd70f1bb6236afdfe1c6e88c9ad4264198b289e3bba9375e077cecf7f89848c7b09debaa445327f3507101f3 is coming from. Maybe you have not uptodate sources?

They come from the Kodi build

./build.CoreELEC-Amlogic-ng.arm-20/build/kodi-913ff45523c0b190a3db7f46fbcf0b8b381d6e19/.armv8a-libreelec-linux-gnueabihf/build/libdvd/src/dvdread-stamp/verify-dvdread.cmake

./build.CoreELEC-Amlogic-ng.arm-20/build/kodi-913ff45523c0b190a3db7f46fbcf0b8b381d6e19/.armv8a-libreelec-linux-gnueabihf/build/libdvd/src/dvdnav-stamp/verify-dvdnav.cmake

Yes, already working on solution for future :slight_smile:

Just replacing them with kodi source leaving the bad sha256 and url file works for now.

In 20 is there a change to how I modify the kernel configuration? Changes to linux.aarch64.conf aren’t being respected or I don’t know how to clean the kernel. This worked fine in 19

It works exactly the same way as always.

# modify projects/Amlogic-ce/devices/Amlogic-ng/linux/linux.aarch64.conf 
# clean linux
./scripts/clean linux
# build linux
./scripts/build linux
# make image
make

Actually cleaning linux is not even needed because after changing kernel config file linux package will be rebuild automatically.

Thanks when I did this in 19 I think I was modifying another conf file