我正在尝试构建 u-boot 加载程序的最新副本,以与我的旧 google-samsung ARM chromebook Snow 一起使用。到目前为止,我一直使用 virtualopensystems 公司创建的副本,位于此处:
http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook/
你可以在这里阅读他们的说法:
为了能够在 ARM 平台上运行 KVM,内核必须以虚拟机管理程序模式启动。由于这个相对较新的要求(由于虚拟化扩展的引入),到目前为止,所有引导方法都将以标准 Supervisor 模式引导内核。对于 ARM Chromebook,默认启动程序不允许我们在虚拟机管理程序模式下启动。虽然笔记本电脑的启动机制是基于常用的 u-boot,但二进制文件位于 RO 内存中。幸运的是,可以使用链式 u-boot 机制(即在原始 u-boot 之后启动另一个 u-boot)。然后,我们可以从 u-boot 的自定义迭代进入虚拟机管理程序模式,然后加载我们的内核和用户空间。检查所需的 u-boot 代码:
$ git clone git://github.com/virtualopensystems/u-boot.git
$ cd u-boot
$ ./scripts/build.sh
他们于 2013 年撰写了该指南!很久以前。今天已经不好了。至少对于我想要实现的目标来说是这样。事实上,在指南中他们使用了内核 3.13。我现在想做的是重新编译一个更新的内核(我认为 5.4 是更好的内核),以便在我的 ARM chromebook 上再次启用 KVM。经过大量实验后,我得出的结论是,我遇到的错误可能是由旧的 u-boot 文件引起的,我想使用相同的新版本。所以,这就是我所做的:
git clone https://github.com/u-boot/u-boot
make smdk5250_defconfig
Makefile:40: *** missing operator. Stop.
我现在不知道该怎么办。此外,在该网站中:
在某个时候,我读到:
为了能够访问虚拟化扩展,我们需要将 Chromebook 启动到所谓的 Hyp 模式(有关 Hyp 模式的更多信息,请参阅 Cortex-A 系列程序员指南的第 27 章)。为了能够进入 Hyp 模式,我们需要使用辅助引导加载程序,因为 Chromebook 的引导加载程序不支持进入此更高特权的运行级别。为此,我们将构建一个 u-boot 版本,而不是使用上游的 u-boot 源代码树。系统树,因为它们集成了完全支持 Hyp 模式所需的许多修复程序,并且还具有用于构建 u-boot 的易于使用的脚本。
我很想知道他正在谈论哪种修复,因为我怀疑如果我编译一个新的 u-boot 文件,我将需要修补它才能进入 Hyp 模式。我需要知道如何修补它。感谢大家的帮助。