Amlogic-ng.arm-20 build failed- FAILURE: scripts/install avahi:target has failed!

Hi there,

I have used CE on my X96 MP 4+64 (dtb sm1_s905x3_4g_1gbit currently on Matrix 19.3) for more than 2 years now, used it as an NAS+docker host, 7x24 hours non-stopping, surprisingly stable! Thanks for your amazing coding and development!

Since I run the box as docker host, one issue arises recently, that I noticed the default kernel cgroup does not support CPUQuota, aka in Linux kernel it has:

# CONFIG_CFS_BANDWIDTH is not set

So I cannot use proper slice in systemd to limit some “bad-behaved” docker programs from occupying 100% CPU and causing system unstable. Now I use CPUset to limit the container on 2 cores, but of course this is not economy as it bumps CPU frequency to max with only 2 cores running.

I’m not quite a programmer myself but I found in Libreelec the source has this one default to y:
source in LibreELEC

But I do not want to change to Libreelec, so I believe the only solution is to compile one myself?
I checked some articles on the forum, downloaded the source code, installed all dependencies (debian 10 x64 on VMware, I built openwrt on this machine several times):

sudo apt install texinfo xfonts-utils default-jdk gcc make git unzip wget xz-utils bc gperf zip unzip g++

Tried stable 19.3 branch, but can never download some dependencies, googled for a while and seems it’s a repo relocation and corrected in late Dec, so I have no choice but switching to .20 and compiled using:

PROJECT=Amlogic-ce DEVICE=Amlogic-ng ARCH=arm tools/download-tool  

Everything downloaded this time with master 20 branch, then I updated kernel config in

/projects/Amlogic-ce/devices/Amlogic-ng/linux/linux.aarch64.conf

Then started compile with:

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

But stuck at errors below:

FAILURE: scripts/install u-boot-LePotato:target has failed!

So I think this uboot is not for my model, then I go ahead and comment it out in /mnt/Lienol/Coreelec/projects/Amlogic-ce/devices/Amlogic-ng as:

#    SUBDEVICES="Odroid_N2 Odroid_C4 Odroid_HC4 LePotato LaFrite Radxa_Zero"

But later another error prompted out:

<<< avahi:target seq 203 <<<
BUILD      avahi (target)
    TOOLCHAIN      configure
/mnt/Lienol/Coreelec/packages/network/avahi/package.mk: line 59: ./autogen.sh: No such file or directory
FAILURE: scripts/build avahi:target during pre_configure_target (package.mk)
*********** FAILED COMMAND ***********
NOCONFIGURE=1 ./autogen.sh
**************************************
*********** FAILED COMMAND ***********
${SCRIPTS}/build "${1}" "${PARENT_PKG}"
**************************************
FAILURE: scripts/install avahi:target has failed!

The following log for this failure is available:
  /mnt/Lienol/Coreelec/build.CoreELEC-Amlogic-ng.arm-20/.threads/logs/203.log

>>> avahi:target seq 203 >>>
[200/338] [FAIL] install avahi:target

The following log for this failure is available:
  /mnt/Lienol/Coreelec/build.CoreELEC-Amlogic-ng.arm-20/.threads/logs/203.log


Tried several times with same result. Logs attached:
203.log (565 Bytes)

Can you tell me what to do? I just want a build with that kernel option enabled. Thank you in advance.

I think you need to setup your build environment:

I just tried completely fresh build for 19.3 and works fine. All the sources were downloaded and build. Host is Ubuntu 20.04.3 LTS.

git clone git@github.com:CoreELEC/CoreELEC.git -b coreelec-19
cd CoreELEC
make image

All right, then I will try setup an Ubuntu VM and run 19 source codes again.
But if I use 19.3 and build an update tar, will my currently install “recognize” this file as an update? Or I need to reflash using TF card?

Update works with .tar or with .img.gz file.

Turned out I had some connection issue to certain source suuuuper slow servers, managed to manually download and put them in the source folder. Compile succeeded.
Now I can finally tame this little evil in the docker :grinning_face_with_smiling_eyes:


Thanks four your help man!

I understand my demand is a niche one, and am not asking you to change it for default. Just for curiosity, that why turn it off in the first place? Is it because the overhead/performance impact? But I think for at least -ng devices the negate effect of this kernel option could be minimum no?
Or should I expect some stability issue if turned it on?

About | FAQ | Terms of Service | Privacy Policy | Legal Notice