如果你想在一台 Minisforum MS-R1 上同时运行十几个原生 ARM64 Android 实例,用来压测点对点同步行为,这台机器看起来几乎是理想选择:CIX P1(Sky1)12 核 ARMv9 SoC、服务器级内存,而且价格终于到了可接受区间。但真要用 Google Cuttlefish 启动 KVM 加速的 arm64 Android 客户机时,一条 modprobe 报错会立刻叫停。

报错是:modprobe: FATAL: Module vhost_vsock not found in directory /lib/modules/6.6.10-cix-build-generic。vhost-vsock 是虚拟套接字传输,Cuttlefish 与客户机之间的 ADB、日志、控制消息全部依赖它。没有 /dev/vhost-vsock,Cuttlefish 不会启动,这不是可选项。

查看 Minisforum 出厂内核 6.6.10-cix-build-generic 的配置后,问题更清晰:用 grep -E 'VHOST' /boot/config-$(uname -r) 检查,输出里只有 # CONFIG_VHOST_NET is not set,而 CONFIG_VHOST_VSOCK 完全没出现,连“is not set”都没有。原因是父级 CONFIG_VHOST 被禁用后,Kconfig 不会生成依赖符号——厂商不是只关了 vsock,而是把整个 vhost 子系统都关了。

作者提醒,从这台硬件到真正能跑 VM 之间还有四个独立陷阱,他全部踩了一遍。本文作为系列第一篇,先解决最前置的问题:拿到一个真正能托管虚拟机的内核。后续编译、模块和启动配置仍会继续考验耐心。

整个过程大约需要一个下午,大部分时间是一次可以走开的编译。对 MS-R1 用户来说,这不是优化,而是让 Cuttlefish 跑起来的必经之路。