如何在cgroupv2中启用CPU、内存和IO(尝试在Android上运行Docker)

izkcnapc  于 2022-12-02  发布在  Android
关注(0)|答案(1)|浏览(622)

我试图运行Docker在Android上,使用泛指el 3a XL根,运行股票ROM,但闪存自定义内核.我需要启用CPU,cpuset,内存,io,和pid控制器在cgroupv 2.在启用它们在menuconfig和闪存内核后,脚本用于检查显示只有pid下cgroupv 2控制器可用.
除了在内核的menuconfig中启用这些选项之外,我还需要做些什么呢?我可能没有启用所有必要的选项吗?
如果我逃跑

cat /sys/fs/cgroup/cgroup.controllers

它只返回“pids”。
在当前状态下,当我运行Docker时,我会得到每个项目的警告,

WARN: Unable to find cpu controller”

error setting cgroup config for procHooks process: bpf_prog_query(BPF_CGROUP_DEVICE)

据我所知,这些选项可能是与cgroupv 1挂载,这就是为什么他们不显示?
我正在使用本指南:https://gist.github.com/FreddieOliveira/efe850df7ff3951cb62d74bd770dce27
下面是我在内核中使用menuconfig启用的选项:https://wiki.gentoo.org/wiki/Docker
从我在内核中刷新的配置中:

CONFIG_CGROUPS=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CPUSETS=y
CONFIG_CGROUP_CPUACCT=y

我通过刷新构建内核后创建的Image.lz4-dtb文件来刷新内核。
这是运行脚本检查内核选项是否都启用后的照片。我正试图将这些选项从missing更改为available/enabled。
photo

7cjasjjr

7cjasjjr1#

解决方案是运行:sudo mount -t tmpfs cgroup_root /sys/fs/cgroup
它为每个cgroup资源创建目录并允许Docker运行。
有用的是第2.1节:https://android.googlesource.com/kernel/common/+/android-trusty-3.10/Documentation/cgroups/cgroups.txt

相关问题