在 Raspberry Pi 4 上,在 Ubuntu 19 arm64 的香草下载19.10映像上,我尝试启用 Kubernetes 所需的 cgroup 内存失败。
我创造了(因为我不太了解真实的,我认为是第4个)
/boot/cmdline.txt
/boot/firmware/cmdline.txt
/boot/firmware/btcmd.txt
(修改的)/boot/firmware/usercfg.txt
(修改的)
追加:
cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1
但徒劳无功。
如果我检查cat /proc/cgroups
cgroup 内存被禁用。
如果我检查cat /proc/cmdline
没有。
我该如何解决?
遵循@kremerol 解决方案,我能够让我的 RPI 4 与 Ubuntu 20.04 一起工作。
跑
sudo nano /boot/firmware/cmdline.txt
编辑默认文件,如下所示。
注意:这些是要添加的 3 个设置:
cgroup_enable=cpuset
cgroup_enable=memory
cgroup_memory=1
保存文件并重新启动,节点状态将变为就绪。
您可以通过运行检查状态
sudo microk8s.kubectl get nodes
在 Ubuntu 19.10 上选择新的 rpi4 后,我刚刚遇到了这个确切的问题。在快速戳...
该
/boot/firmware/README
文件似乎详细说明了更新的引导过程。该过程的第二步是加载/boot/firmware/config.txt
指定/boot/firmware/nobtcmd.txt
为 current 的cmdline
.所以修改
/boot/firmware/nobtcmd.txt
并附加:cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1
. 重新启动并cat /proc/cmdline
如果某些魔法(可能启用 BT?)将 cmdline 更改为,我不会感到惊讶,
/boot/firmware/btcmd.txt
因此也可能值得将更改添加到该文件。在 Raspbian 上,我必须添加以下内容
/boot/cmdline.txt
您必须将其添加到现有行的末尾;如果您将其添加到文件底部的新行中,则它不起作用。
在我的 Raspberry Pi 4 (
ubuntu-server-20.10
/arm64
) 上,我必须将以下行附加到/boot/firmware/cmdline.txt
:cgroup_enable=memory cgroup_memory=1
也许您正在使用带有 microsd 作为引导设备的外部 USB 磁盘?在这种情况下,必须在 microsd 分区而不是 USB 中进行更改。
在引导分区中读取指向文件
config.txt
的设置,这正是我在运行时可以看到的。在里面进行了更改,现在它可以正常工作了。cmdline
nobtcmd.txt
/proc/cmdline
在我尝试这些涉及编辑 /boot/firmware/cmdline.txt 或任何其他提到的文件的解决方案之前,我首先尝试通过 apt-get 安装 cgroup-lite。这似乎也起到了作用。
Docker:版本 Groovy Gorilla 20.10.6 Ubuntu 版本 20.10 Pi 4:8GB ARM64
这是在 Raspberry Pi OS 中启用 cgroup 支持的单行代码。请记住,运行此命令后必须重新启动。
如果您在 Windows 机器上加载 SD 卡,则会安装一些驱动器(当 Windows 提供时不要再次格式化它们)。
在标记为ubuntu-seed而不是 ubuntu-boot 的驱动器中,您会找到要附加的 cmdline.txt 文件
cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory
如果你需要自动化它
这附加
cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory
在第一行的末尾/boot/cmdline.txt