Haiku OS 现可在 M1 Mac 上运行

TL;DR · AI 摘要
Haiku OS 社区开发者成功在 M1 Mac 和 ARM64 设备上启动系统,但当前版本功能有限且存在性能问题。
核心要点
- Haiku ARM64 版本可通过 QEMU 在 M1 Mac 上运行,需使用特定 EFI 文件和命令行参数
- 当前 nightly 版本缺少开发工具(如 gcc、git)且 pkgman 包管理因 openssl 不支持而失效
- UTM 虚拟化中鼠标移动卡顿,实际用户体验尚不完善
结构提纲
按章节快速跳转。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- Haiku OS ARM64 进展
- 技术实现
- 系统限制
- 性能问题
金句 / Highlights
值得收藏与分享的关键句。
最新版本(hrev59669)可在 download.haiku-os.org 运行,使用特定 qemu-system-arm64 命令成功启动
当前 nightly 版本缺少 git、gcc 等开发工具包
pkgman 无法安装任何软件包,出现“操作不支持”错误
标题:我的 Haiku arm64 进展 - 开发 / 操作系统 - Haiku 社区
URL 来源:https://discuss.haiku-os.org/t/my-haiku-arm64-progress/19044?page=2
发布时间:2026-05-01T18:23:35+00:00
smrobtzz 发表于 4月5日
X512 发表于 4月5日
smrobtzz 发表于 4月5日
X512 发表于 4月5日
cocobean 发表于 4月5日
smrobtzz 发表于 4月6日
oxoocoffee 发表于 4月9日
KitsunePrefecture 发表于 4月9日
smrobtzz 发表于 4月9日
rjzak 发表于 4月11日
smrobtzz 发表于 4月14日
CeCensus 发表于 4月15日
ubu 发表于 4月17日
waddlesplash 发表于 4月23日
于4月27日分割此主题
KENZ 发表于 4月29日
DigitalBox 发表于 4月29日
phoudoin 发表于 4月29日
感觉就像当年 BeOS for PowerPC 版本首次在 Mac 硬件上启动运行(而非经典 macOS)时的氛围一样!
zeldakatze 发表于 4月29日
(半开玩笑地)哭泣
支持 PPC 的主要原因是这可能很有趣。我也理解 arm32 作为桌面平台相当薄弱的观点。不过我记得 arm32 移植版曾在某个时候成功启动到了 app_server(然后在那里崩溃了)。等我有时间可能会去排查导致那个回归的问题。
download.haiku-os.org 上的最新构建版本(hrev59669)可以运行!对我来说,使用以下命令运行有效:
qemu-system-arm64 -m 512M -bios /path/to/the/arm64/QEMU_EFI.fd -device ramfb -M virt --cpu cortex-a76 -device usb-ehci -device usb-kbd -device usb-tablet -device usb-storage,drive=dska -drive id=dska,file=haiku-arm64-mmc.image,if=none(不知何故,qemu 使用的某些 CPU 与他们提供的 efi 实现不兼容,至少在 Debian 上如此。我全部使用 USB 设备,因为它用于键盘和数位板(你也可以用鼠标,但数位板设备省去了捕获鼠标的需要)。ramfb 在 arm64 上相当可靠。在 Debian 上,如果你安装了必要的包,tianocore 二进制文件的路径是 /usr/share/qemu-efi-aarch64/QEMU_EFI.fd。在其他系统上,应该很容易在线找到 efi 镜像,或者你可以从 Debian 包中提取它。)
所有参与此移植工作的人,这真是太棒了!(也许这也是我终于该给自己买一个树莓派 3 或更新版本(或其他 arm64 SBC)的理由 xD)
PulkoMandy 发表于 4月29日
澄清一下,如果有人想研究这些架构,我并无反对之意,甚至我自己也可能参与。做这件事很有趣,硬件要么因为更简单,要么因为古老、古怪且不寻常而值得把玩。但我不认为这能帮助 Haiku 作为桌面操作系统取得成功。我可能错了。证明给我看吧!
smrobtzz 发表于 5月1日
通过一些小修复,让 Haiku 在 UTM 中启动了。不过鼠标移动缓慢且卡顿,所以用起来并不特别愉快

KENZ 发表于 5月2日
每日构建镜像是“Bootstrap image”还是“unbootstrapped”的?我想知道如何在 ARM64 每日构建版本上搭建开发环境。
目前的每日构建镜像中没有 git、gcc 或任何开发包。有没有设置构建和测试其他包的指南?
还是说最近的镜像只是刚启动到桌面,但在进行用户层开发之前,系统还有很多需要修复的地方?
PulkoMandy 发表于 5月2日
它们是“unbootstrapped”的,但唯一的区别是初始软件包集的构建方式。
你可以通过下载其发布存档来设置 haikuports,这样你应该有一套足够好的软件包来开始构建东西,或者至少尝试看看缺少什么。
你也可以通过 pkgman 安装一些东西,但目前没有 haikuports 构建器,所以软件包集会相当有限。我想这以后会来的吧?
DigitalBox 发表于 5月3日
在我这边,pkgman 无法安装任何软件包,并出现“operation not supported”错误:

PulkoMandy 发表于 5月3日
这可能是因为镜像构建时没有 openssl 支持。如果是这样,确实很难用它做任何有用的事情。
Begasus 发表于 5月3日
如果软件包在仓库中可用,你可以获取链接并使用 wget 拉取,之前在 riscv64 镜像上也用了些技巧来设置 haikuporter/haikuports。
KENZ 发表于 5月4日
我在仓库服务器上找不到预构建的 arm64 开发包。但我找到了一个通过 FAT32 磁盘镜像将文件从 QEMU 主机传输到 ARM64 Haiku 客户机的方法。
用 MacOS 磁盘工具创建格式化为 FAT32 的磁盘镜像,然后在 Mac 上挂载并放置文件,最后像这样附加到 QEMU 客户机:
qemu-system-aarch64 \
-M virt \
-cpu max \
-m 2G \
-smp 4 \
-bios /opt/homebrew/share/qemu/edk2-aarch64-code.fd \
-device qemu-xhci,id=usb \
-drive file=haiku-master-hrev59671-arm64-mmc.image,if=none,id=drv0,format=raw \
-device usb-storage,bus=usb.0,drive=drv0 \
-device usb-kbd,bus=usb.0 \
-device usb-tablet,bus=usb.0 \
-device ramfb \
-display cocoa,zoom-to-fit=on \
-device qemu-xhci,id=usb2 \
-drive file=../shared.img,format=raw,if=none,id=usb-shared \
-device usb-storage,bus=usb2.0,drive=usb-shared \
-serial stdio我们是否能够在 x86_64 架构的 Haiku 系统或至少 Linux 系统上交叉编译一些适用于 ARM64 版 Haiku 的 .hpkg 软件包?