External integrations unavailable on ARM SBCs without CONFIG_CFS_BANDWIDTH support (Khadas, potentially Raspberry Pi)

Hello,

I am reporting a blocking issue for any external integration on my Khadas VIM1S (Ubuntu 24.04, kernel Amlogic 7.0.0+).

Symptom — unable to start an external integration (tested with Shelly), error in the logs:

Cannot restart container XXX: ... error setting cgroup config for procHooks process: 
openat2 /sys/fs/cgroup/.../cpu.max: no such file or directory

Isolated cause, reproducible outside Gladys:

bash

docker run --rm hello-world              # OK
docker run --rm --cpus="1.0" hello-world # fails with the same error

Kernel confirmation :

bash

cat /boot/config-$(uname -r) | grep CFS_BANDWIDTH
→ CONFIG_CFS_BANDWIDTH is not set

This kernel compile flag provides cpu.max (CPU quota cgroup v2). Without it, no --cpus limit can be set on a container — so as soon as external integrations apply this limit at creation, it systematically fails, with no possible workaround on the system config side (tested: cgroup driver systemd and cgroupfs, cgroup delegation verified correct at all levels).

Potential scope : this is not isolated to my hardware. The Raspberry Pi has historically had the same issue (ticket raspberrypi/linux#3387, still open).

Suggestion : make the CPU limit optional, or switch to --cpu-shares (weighting, does not require cpu.max) rather than a strict quota — or detect the absence of cpu.max and create the container without a limit rather than failing.

I remain available to test on this hardware if needed. Thanks

Welcome to the forum, @Didier_Hilary!

Doesn’t your problem look like the one we had with Synology?

If so, we’ll turn your post into a feature request to support other devices.