GoForum🌐 V2EX

[分享] macOS 26 (Tahoe) 时代,在 Apple Silicon 虚拟机中手动构建 AFNI ARM64 原生环境的坑与路

longzheng268 · 2026-03-15 16:37 · 0 次点赞 · 1 条回复

[分享] macOS 26 (Tahoe) 时代,在 Apple Silicon 虚拟机中手动构建 AFNI ARM64 原生环境的坑与路

0x00 前言

最近 macOS 26 (Tahoe) 发布后,AFNI 官方针对 Liquid Glass 带来的 XQuartz 兼容性问题做了大量修复。虽然官方提供了 @update.afni.binaries 的建议,但对于追求极致稳定,或需要在 ARM 虚拟机( Parallels/UTM )中跑 Debian 环境的同学来说,官方预编译包的缺失依然是个硬伤。

这两天折腾了一下在 Debian 12 ARM64 环境下手动从源码编译 AFNI & SUMA ,成功点亮了 3D 渲染和 NIML 联动,特此分享。

0x01 运行实测与系统环境

  • 运行实测

BQACAgUAAyEGAASHRsPbAAERuYpptmpTaela69JwjcQUtsU9qxi2bgAC2yAAAlpcsFUlCwUY1PHo7joE.png

  • 宿主机: macOS 26 (Tahoe) - Apple Silicon

宿主机环境

  • 虚拟机: Debian GNU/Linux 12 (bookworm) ARM64

虚拟机环境

目前测试 DTI 追踪和基础 GUI 功能均正常,联动非常顺滑:

0x02 为什么要折腾这个?

虽然官方在 Tahoe 上努力修复了 GUI 问题,但目前调整窗口大小时偶发的黑屏 Bug 依然存在。在虚拟机里跑一个原生编译、针对 ARM 指令集优化的二进制版本,不仅能规避宿主机的系统层级显示干扰,还能利用虚拟机隔离环境进行大规模数据批处理,对科研生产力是极大的释放。

0x03 核心踩坑与心得

  • GLIB 路径地狱:在 aarch64 下,glibconfig.h 的位置和传统的 x86 差异很大。编译时必须显式导出 CPATH,否则 SUMA_gts 会报错死在第一步。
  • 依赖补全:除了常规的 Motif ,libxi-devlibxdevice-dev 是在虚拟机里搞定 X11 转发的关键,少一个都会导致二进制文件无法生成。
  • R 环境陷阱:别用 AFNI 自带的脚本去跑 R 包源码编译,ARM 下直接 apt install r-cran-tidyverse 等二进制包才是正解,能省去数小时的编译报错。
  • 去油脂模式:针对虚拟机环境,建议在 .sumarc 里强行开启 SUMA_NoFancyStuff=YES。实测在 X11 转发下,这样能极大减少由于 GPU 驱动兼容性导致的图形卡死。

0x04 成果分享

我已经将针对 Debian 12 ARM64 优化的 Release 同步到了 GitHub ,包含了一键编译脚本和预编译的二进制包,希望能给同样在 Apple Silicon 上做脑成像分析的同学省点时间。

0x05 交流

向所有在 macOS 26 环境下克服 Xquartz 破碎问题的探险家致敬。如果你有更好的 ARM 架构优化参数,欢迎一起讨论。

1 条回复
longzheng268 · 2026-03-15 16:37
#1

包可能会有问题,今天刚刚做完,没来及大规模测试,用官方源码编译成功运行了,另外用 Rosetta 版的 Ubuntu 也有问题。

添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: longzheng268
发布: 2026-03-15
点赞: 0
回复: 0