这是“让我尝试将 AArch64 系统用作桌面”系列的第 5 部分:
系列文章:
关于在非 x86 系统上运行 x86-64 程序:人们常被问到能否运行特定 x86-64 二进制文件,可通过 FEX-emu 实现。
- 软件栈:寻找在 Fedora/Arm 上运行 x86-64 应用的方法,常参考 Asahi 文档,但如果 Arm 系统运行 4K 页大小内核,可跳过大部分文档,只需 FEX-emu 及相关组件,可移除一些 QEMU 包如
dnf remove qemu-static-*
。 - 检查模拟:安装 FEX-emu 会安装 Fedora/x86-64 rootfs,可通过
uname -m
检查模拟是否工作,正常应显示 x86_64,/usr/lib/binfmt.d/目录应只有两个文件FEX-x86_64.conf
和FEX-x86.conf
。 - Geekbench 6:在模拟 CPU 上运行 Geekbench 6,结果不佳,单核心 459,多核心 4110,相当于 2021 年的 Intel Atom CPU,远不如 AMD Ryzen 5 3600。
- 可改进之处:FEX-Emu 开发者提到可利用一些 Arm CPU 特性加快模拟,如各种加密、TSO 模拟等,Ampere Altra 的 Neoverse-N1 核心支持部分特性。
- 技巧和窍门:通过减少 x86 FPU 精度和禁用 TSO 可使模拟稍快,如修改配置文件
~/.fex-emu/Config.json
。此更改使 Factorio 可见提速,但 Geekbench 结果会随机崩溃。 - Steam:安装 Steam 包(从 RPM Fusion non-free 页面获取)并安装,无需依赖,运行
FEXBash steam
,可得到 Steam 窗口,准备玩游戏。 - Factorio:作者对 Factorio 游戏在基于 Ampere Altra 的系统上的体验,未调整 FEX-Emu 配置时无法玩,调整后在有很多机器人的区域可运行 16 - 25 FPS,接近 60/60 时需靠近空旷区域,可能会尝试 100 小时内完成游戏。
- 有趣故事:@chenlin3 为 EDK2 构建系统添加 Ninja 构建解决方案,起初用 Ninja 构建 ALTRA8UD - 1L2T 固件耗时 2 分钟(72 分钟总 CPU 时间),发现是在模拟,将 x86 - 64 二进制的 Ninja 替换为 aarch64 符号链接后有明显改进,作者在拉取请求中添加 NAK。
- 软件栈:寻找在 Fedora/Arm 上运行 x86-64 应用的方法,常参考 Asahi 文档,但如果 Arm 系统运行 4K 页大小内核,可跳过大部分文档,只需 FEX-emu 及相关组件,可移除一些 QEMU 包如
- 是否值得使用:作者不打算经常使用 x86(-64)模拟,可能会尝试玩一些较老的游戏如 Torchlight II,曾运行一次后停止工作。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。