PowerPC 架构 Linux 初体验

备注:本文章内 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 服务器。

TAP驱动默认分配的IP地址段为192.168.137.0/24,所以最简单的方案就是配置成这样

一切配置完成之后就可以开始让系统自动进行安装了。我当时做到这一步的时候杭州亚运会开幕式刚开始不久,于是就去看了。开幕式结束时系统刚好安装完,安装完成后需要去掉 -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。

似乎和我当时用 -device cirrus_vga 替换了 -device VGA 有关?

2023/10/25后记

补一张 neofetch 截图

顺带一提,在 rpmfind 上面没有 CentOS 7.9.2009 ppc64le 架构的 neofetch,找了半天最后发现可以用 OpenSuSE Leap 15.2 noarch 版本。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注