[分享] macOS 26 (Tahoe) 时代,在 Apple Silicon 虚拟机中手动构建 AFNI ARM64 原生环境的坑与路 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
longzheng268
V2EX    MacBook Pro

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

  •  
  •   longzheng268 5 天前 805 次点击

    [分享] 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 架构优化参数,欢迎一起讨论。

    longzheng268
        1
    longzheng268  
    OP
       5 天前
    包可能会有问题,今天刚刚做完,没来及大规模测试,用官方源码编译成功运行了,另外用 Rosetta 版的 Ubuntu 也有问题。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2888 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 21ms UTC 07:20 PVG 15:20 LAX 00:20 JFK 03:20
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86