如何仅使用单个核心在 raspberry-pi 3 或 4 上运行 Unbuntu?

如何仅使用单个核心在 raspberry-pi 3 或 4 上运行 Unbuntu?

我想使用 Raspberry-Pi 3 或 4 来获得运行 Linux 但只有一个核心的 64 位 ARM 嵌入式系统的大致性能估计。(我还没有目标系统)。我正在使用 Ubuntu 来获取 64 位。

为了这个目的,我愿意只使用一个核心来运行系统。

我不确定 Ubuntu 是否使用 u-Boot 还是 Grub(/boot 似乎使用 Grub),我尝试在 GRUB_CMDLINE_LINUX_DEFAULT(然后是 update-grub)中设置 maxcpus=1,但没有成功。

RasberryPi 似乎也没有 /sys/devices/system/cpu/cpu*/online

因此“echo 0 > /sys/devices/system/cpu/cpu[1-3]/online”不能使用。

我遗漏了什么吗?还有其他方法可以做到这一点吗?

谢谢你!

====更新====

阅读 Ubuntu 维基页面(noisefloor 的答案中的链接),似乎 Ubuntu 正在使用 u-boot,这解释了为什么 Grub 更改不起作用。

现在的问题是如何使用 u-Boot 将“maxcpus=1”传递给 Linux?

答案1

根据修改后的问题进行了更新:

据我所知,与 GRUB 不同,Uboot 不支持使用启动参数来设置使用的 CPU 数量,请参阅Uboot 环境Uboot env 命令

另一种方法是安装 Canonical 的多程,可以快速轻松地设置运行 Ubuntu 的虚拟机。创建一个 Multipass 实例,可以设置Multipass使用的CPU核心数,默认只有一个核心。

在虚拟机中而不是直接在真实硬件上运行 Ubuntu 会降低性能,但对于试用目的来说,这通常已经足够了。


最初的回答是基于 Ubuntu 应该在单核 Raspberry Pi 上运行的假设:

没有支持单核 Raspberries 的 Ubuntu 版本,即 Zero / Zero W 和 1B 系列。它们有一个 ARM V6 CPU,Ubuntu 从未支持过。在 2、3 和 4 系列以及具有 ARMv7 或 ARMv8 CPU 的 Zero2 W 上,可以安装 Ubuntu,请参阅Ubuntu Wiki 页面了解更多详情。

相关内容