仍然不能忍受你自己的塔洛斯II,甚至是一只小小的黑鸟的标签冲击吗?为什么不为我们可以拥有的机器做我们所有人都做的事情,而不是效仿一台呢?(然后决定你很喜欢它,然后省下你的便士?)。QEMU 5.0.0为裸机PowerNV配置文件提供了一种机器模型,Raptor系统和其他针对Linux的OpenPOWER POWER8和POWER9设计(即,不是PowerVM机器)属于该模型。使用Talos II固件映像(主要是:需要提到的一个障碍),您可以在QEMU中引导机器,并从那里调出模拟中的操作系统。在这篇文章中,我们将通过为Power带来void Linux来证明它的工作(嗨,丹尼尔!)。配置多种多样。这样的设置可能足以测试您的软件或开放源码包是否在OpenPower上构建和运行,即使您还没有这样的软件或开源包。在未来的一篇文章中,我们将讨论如何在金属上引导您自己的代码,这样您就可以移植您最喜欢的操作系统或构建一个单内核。(出于本文的目的,我将假定读者不像我们通常的读者那样熟悉OpenPOWER术语。(请迁就我。)。无论是在真实的猛禽家族系统上还是在一台令人讨厌的PC上,仿真都是不完美的。虽然QEMU可以模拟AST2500(即,基于ARM的底板管理控制器,它充当服务处理器并提供视频帧缓冲器),并且QEMU也可以模拟PowerNV系统,但它不能同时执行这两种操作。这意味着这里实际上模拟的是最低级别--例如,你不能观看Raptor的漂亮主机启动显示,而且只有BMC的最基本功能被模拟到足以允许调出,而不包括帧缓冲器。事实上,我们在这里使用的硬件配置文件通常也与真正的Raptor系统不匹配:我们实际上只是在插入PCI设备,这些设备可以为我们提供必要的功能,当然Raptor系统中的外围设备都不是Raptor专有的。最后,即使我用KVM标记了这个条目,KVM目前在QEMU PowerNV机器型号上也不能正常工作,尽管我非常确定它在技术上应该是可行的。可悲的是,我尝试这样做是徒劳的,永远不能让KVM-HV高兴,结果是内核使用KVM-PR使机器惊慌失措。看看你能不能在我失败的地方取得胜利。同时,当然你也可以在T2或Blackbird上做任何事情,因为这就是我写这篇文章的方式,但现在这些系统还没有特别的加速。对于任何仿真器,第一个事务顺序是第一个事务顺序:获取ROM。幸运的是,没有人会因为你盗版一套这些东西而逮捕你,因为我们是一个开放的平台,记得吗?所需的两个部分是Skiboot和Petitboot,它们都位于系统的PNOR闪存中。Skiboot包含Opal,即OpenPOWER抽象层。它是在BMC打开主电源并启动Power CPU自引导引擎之后进入的,然后IPL(#34;初始程序加载)Hostboot进入第二阶段开机序列。(#34;Initial Program Load";)Hostboot(#34;Initial Program Load&34;)Hostboot for the Second Power On Sequence(第二阶段开机序列)。当Hostboot完成时,它链接到Skiboot,Skiboot初始化PCIe主机总线控制器(PHB),并提供客户内核支持平台所需的所有基本硬件调用。你可以把它想象成一个杂草丛生的BIOS。这是QEMU当前支持仿真的OpenPOWER系统的最低固件级别。Skiboot只为一个内核提供服务,所以它会立即启动一个内核。这个初始有效负载是Petitboot的引导加载程序,它也存储在固件中。Petitboot有一个很小的Linux根目录(Skiroot),它充当引导菜单,在连接的设备上或通过网络查找可引导卷。找到一个(或者您选择一个)之后,它会链接到其中以启动主操作系统,从那时起,Skiboot将通过Opal为最终的来宾提供平台服务,直到系统关闭或重新启动。因为它位于固件中,所以Petitboot始终可用,当您尝试进行系统恢复时,它会非常有用。第一种,也是最好的,也是最专心的方法是自己构建Skiboot和Petitboot。它们是开放源码的,并且该过程有相对良好的文档记录和自动化,如果您拥有一台OpenPOWER机器,您应该知道如何做到这一点。如果你不是在一台真正的OpenPower机器上做这件事,你将需要一个交叉编译器,但是现在大多数Linux发行版都提供了这样的包。请记住,如果看起来您正在构建一个很小的Linux发行版,那么,那是因为这正是您正在做的事情。这里的优势是您可以随意摆弄固件,但它需要在磁盘空间和时间上进行一些投资。第二种方式假设你有一个更随意的兴趣,并且更喜欢预制的东西。如果你(或者,你知道,