备注:本文章内 PowerPC 架构若无特别说明均指 ppc64le。
我曾偶然间知晓了用于模拟 PowerPC 架构 macOS 的 Pear PC 模拟器。经过一段时间的研究,我成功运行了 macOS 8.1。后来我注意到 CentOS 也支持 PowerPC 架构,于是打算装一个玩一玩。然而 ppc64 和 ppc64le 两种架构的安装映像都无法在 Pear PC 上正常启动,于是索性将该计划搁置。
一年后,因为一个完全不同的设想(体验 Windows XP 64-Bit Edition 的 Alpha 架构测试版),我在电脑上安装了 QEMU。在这个设想失败之后,我决定重新尝试安装 PowerPC 架构系统。
因为我选择了 NetInstall 映像,所以要安装 QEMU 联网所必须的 TAP 驱动。安装的方法是从文末给出的地址下载 dist.win7.zip,解压后在 amd64 文件夹内以管理员权限运行 tapinstall install OemVista.inf tap0901
。
然后在网络和共享中心里打开“更改适配器设置”,给你的 TAP 网卡修改一个好记的名字,我选择称其为 tapnet。在同一个窗口里右键连接到网络的网卡后单击属性,切换到共享面板并将其修改为如下所示:
当时突发奇想,将硬盘的协议设置为 USB,然而系统引导界面中仍然显示硬盘为 SCSI 协议,万幸使用过程中一切正常。安装过程中的QEMU指令为
qemu-system-ppc64.exe -m 2G -cdrom CentOS-7-ppc64le-NetInstall-2009.iso -boot d -device VGA -smp 4,cores=4,threads=1,sockets=1 -drive file=disk.vmdk,id=disk,if=none -device usb-storage,drive=disk -netdev tap,id=tapnet,ifname=tapnet -device rtl8139,netdev=tapnet
在系统分区时候比较有意思的一点是必须创建一个 PPC PReP Boot 分区,否则无法引导系统。
同时我还在网络配置这部分踩了雷:我一直尝试让系统自动配置网络,然而一直连不上,试了好几遍才明白需要自己手动配置地址,子网掩码,网关以及 DNS 服务器。
一切配置完成之后就可以开始让系统自动进行安装了。我当时做到这一步的时候杭州亚运会开幕式刚开始不久,于是就去看了。开幕式结束时系统刚好安装完,安装完成后需要去掉 -cdrom CentOS-7-ppc64le-NetInstall-2009.iso
和 -boot d
这两项参数。
系统安装完后我突发奇想,在上面跑了一个 Minecraft: Java Edition 1.8.8 的服务端打算测试一下性能,然而服务端光是玩家进去挂机就开始掉 TPS,后面跑图的时候更是直接开始刷屏服务器无响应。
用到的所有文件下载地址:
QEMU https://qemu.weilnetz.de/w64/2023/qemu-w64-setup-20230409.exe
TAP 驱动 https://github.com/OpenVPN/tap-windows6/releases/download/9.26.0/dist.win7.zip
CentOS 7.9.2009 ppc64le 安装映像 https://mirrors.tuna.tsinghua.edu.cn/centos-altarch/7.9.2009/isos/ppc64le/CentOS-7-ppc64le-NetInstall-2009.iso
Java https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u382-b05/OpenJDK8U-jre_ppc64le_linux_hotspot_8u382b05.tar.gz
1.8.8 Spigot 端 https://cdn.getbukkit.org/spigot/spigot-1.8.8-R0.1-SNAPSHOT-latest.jar
彩蛋:在调试虚拟机的时候,还偶然出现了下图这个奇怪的渲染 bug,然而很可惜的是我没能复现这个 bug。
2023/10/25后记
顺带一提,在 rpmfind 上面没有 CentOS 7.9.2009 ppc64le 架构的 neofetch,找了半天最后发现可以用 OpenSuSE Leap 15.2 noarch 版本。