我想使用 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 页面了解更多详情。