Build1 distinct publisher3 min readUpdated
Cuttlefish will not start on Minisforum's CIX P1 desktop because the vendor kernel strips the whole vhost subsystem. The rebuild is not optional, and it is not just a Cuttlefish problem.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
Anyone pricing the Minisforum MS-R1 as a cheap arm64 Android test fleet should price a kernel build into the first machine: the vendor's 6.6.10-cix-build-generic ships with no vhost_vsock module, and modprobe fails outright [1][2]. Cuttlefish, AOSP's official virtual device and the reason the box looked attractive in the first place, moves ADB, logs and control messages over vsock, so without /dev/vhost-vsock it does not start at all [3][4].
The buyer in question wanted a dozen real arm64 Android instances on arm64 silicon to benchmark peer-to-peer sync at scale, and the MS-R1 fit: a 12-core ARMv9 CIX P1 ("Sky1") in one of the first genuinely affordable ARM desktops with server-class memory [5][6]. Cuttlefish even has a --num_instances=N flag that does exactly that [7].
The diagnosis, according to the writeup, is not a missing module but a missing subsystem. Grepping the shipped config shows CONFIG_VHOST_NET is not set and CONFIG_VHOST_VSOCK does not appear at all, which is what happens when the parent CONFIG_VHOST symbol is off and Kconfig never emits the dependent symbols [8][9]. The device nodes agree: /dev/kvm is present, /dev/vhost-vsock and /dev/vhost-net are not [10]. Hardware virtualization is enabled; the kernel-side plumbing around it is not.
The vhost_net half should bother people who will never touch Cuttlefish. Without it, every guest's virtio networking is serviced in QEMU userspace instead of in the kernel, and the MS-R1 documentation walks buyers through running Proxmox on the machine [11][12].
This is not a silicon limit. CIX's own mainline tree sets CONFIG_VHOST_NET=m, CONFIG_VHOST_VSOCK=m, CONFIG_VSOCKETS=m and CONFIG_KVM=y [13]. The vendor's config fragments explain the product kernel instead: cix.config at 596 lines, cix_redroid.config at 222, cix_docker.config at 40, virt.config at 61, and none of them enable vhost [14][15]. Roughly a quarter of that fragment work goes to redroid [16], containerized Android that shares the host kernel and needs no vsock, with binder compiled in [17]. The vendor's supported Android story is containers, and the kernel matches the documentation.
Two traps are worth copying into your notes. virt.config is not the virtualization options: its header reads "Virtualization guest", it configures a kernel to run inside a VM, and it disables every platform ARCH_* symbol plus THERMAL, SPI, MTD and REGULATOR, producing a kernel that will not drive the board [18]. And upgrading out of the problem is worse than it looks. Mainline Sky1 support landed around v6.17 but is minimal enablement (mailbox, SCMI clocks, basic device tree) aimed at the Radxa Orion O6, a different board with different firmware and NICs, so lost networking or a failed boot is the likely outcome [19]. The cixtech/cix-linux-main patch sets for 6.18, 7.0 and 7.1 carry a defconfig with everything Cuttlefish needs, but are tested on the Orion O6 with specific edk2 firmware and want clk_ignore_unused [20]: a twelve-release jump from 6.6 on unvalidated firmware [21].
The stated cost of doing it properly is about an afternoon, most of that an unattended compile, with four separate traps along the way [22][23]. That is tolerable once. It is a different number if it repeats per vendor kernel bump, or per box, and the published account is only part one of two, covering nothing beyond getting a host kernel that can host VMs [24]. Watch whether CIX or Minisforum enable vhost in a shipped kernel, since the same fragment set that omits it is the one carrying redroid support [15][17]. Until then, treat "it virtualizes" on the spec sheet as covering KVM and not the vhost fast paths.
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
On the Minisforum MS-R1, running sudo modprobe vhost_vsock returns: modprobe: FATAL: Module vhost_vsock not found in directory /lib/modules/6.6.10-cix-build-generic
The kernel Minisforum ships on the MS-R1 is 6.6.10-cix-build-generic.
Cuttlefish is AOSP's official virtual device and runs arm64 Android guests on arm64 hosts with KVM acceleration.
Cuttlefish uses vsock, a virtual socket transport, for all communication between the host and its guest VMs, including ADB, logs and control messages; without /dev/vhost-vsock, Cuttlefish does not start, and it is not a soft dependency.
The author's goal was a box that could run a dozen Android instances at once, real rather than emulated on x86, to benchmark peer-to-peer sync behaviour at scale: native arm64 Android on native arm64 silicon with no translation layer.
The Minisforum MS-R1 is built on the CIX P1 ("Sky1"), a 12-core ARMv9 SoC, and is one of the first genuinely affordable ARM desktops with server-class amounts of memory.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
First-hand, reproducible, single-source
The core technical assertions are backed by pasted command output that any MS-R1 owner can rerun (modprobe failure, grep of the shipped kernel config, ls of the device nodes) and by named upstream artifacts (CIX config symbols, config fragment line counts). That is strong for a hands-on report but it comes from one author on one machine, with no vendor confirmation, no second unit, and no measurement of the claimed networking slow path.
Default on shipping hardware, one reported user
Adoption evidence is limited to the vendor-shipped configuration itself: the affected kernel is the factory default on a retail MS-R1, the vendor ships a redroid fragment indicating a container-first Android path, and upstream/BSP alternatives exist as published trees. But only one operator is documented hitting the wall, and no data shows how many MS-R1 owners run VMs, rebuild kernels, or have adopted the recommended BSP branch.
Slightly ahead of what is measured
The headline framing — KVM without vhost, rebuild not optional, not just a Cuttlefish problem — matches the demonstrated config and device-node evidence, so it is close to aligned. It runs modestly ahead in two places: the claim that all Proxmox guests are 'quietly getting the slow path' is asserted without any benchmark, and the mainline-would-fail warning is a prediction with no boot attempt shown.
Practitioner write-up with mild series pull
The visible incentive is a developer documenting their own hardware project on a personal dev.to account; no vendor relationship, sponsorship, product or commercial interest is disclosed or implied in the supplied material. The mild distortion pressure is narrative: the piece is part 1 of 2, so framing the obstacle as a dramatic multi-trap wall serves reader retention for the follow-up.
Technically solid, single-witness
Confidence is held mid-range: the reproducible command evidence and internally consistent explanation (vendor redroid fragment, binder in, vhost out) make the core finding likely correct, while single-source status, no vendor comment, an untested mainline claim and unquantified performance impact prevent a higher score.
build
qm start said nothing, the UI said stopped, and only host dmesg named the passthrough failure1 distinct publisher
security
The bottleneck moved: 622 CVEs in July, and no one left to write up the fixes1 distinct publisher
product
Linux 7.2 ships cache-aware scheduling, and Torvalds calls AI bug reports the new normal1 distinct publisher
security
Hugging Face breach ran 69 days: a containment failure, not a rogue-agent flash1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 16, 2026