{
  "id": 1430571,
  "title": "Running Android VMs on ARM: Rebuilding the Minisforum MS-R1 Kernel for Cuttlefish",
  "url": "https://urgent.news/2026/08/17/running-android-vms-on-arm-rebuilding-the-minisforum-ms-r1-kernel-for",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-17T06:06:10.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/biozal/running-android-vms-on-arm-rebuilding-the-minisforum-ms-r1-kernel-for-cuttlefish-52a1"
  },
  "original_language": "en",
  "account": "Part 1: Getting a kernel suitable for virtual machines\n\nThe author wanted a box capable of running multiple Android instances simultaneously, utilizing native arm64 Android on arm64 silicon without any translation layer. The Minisforum MS-R1 seemed ideal, featuring a 12-core ARMv9 SoC and ample memory. Google's Cuttlefish, an official Android virtual device, supports arm64 Android guests on arm64 hosts with KVM acceleration.\n\nHowever, the vendor had disabled the entire vhost subsystem, which is necessary for Cuttlefish to function. The shipped kernel, 6.6.10-cix-build-generic, lacked the CONFIG_VHOST_VSOCK symbol, preventing the creation of /dev/vhost-vsock. This crucial issue caused two traps: the first involved virtualization support and the second centered around the choice of a source tree for the kernel.\n\nPart 2: Restoring virtualization support and choosing a source tree\n\nTo resolve the virtualization problem, the author needed to enable the vhost subsystem in the kernel. After exploring three options - mainline, cixtech/cix-linux-main, and cixtech/cix_opensource_linux - the author decided to go with cixtech/cix_opensource_linux, branch cix_p1_k6.6_master. This branch provides a full bootloader source tree for the CIX P1 architecture and uses the same 6.6 lineage as the shipped kernel.\n\nThe key challenge lay in booting the system, as the MS-R1 does not have a bootloader package or an EFI partition mounted. After some investigation, the author found the GRUB bootloader in the ESP (EFI System Partition) at /mnt/esp/EFI/BOOT/BOOTAA64.EFI. With the bootloader in place, the author could successfully boot the kernel and start running virtual machines using Cuttlefish on the Minisforum MS-R1.",
  "summary": "Part 1 of 2. This part covers getting a kernel that can actually host virtual machines. Why bother I wanted a box that could run a dozen Android instances at once — real ones, not emulated-on-x86 ones — to benchmark peer-to-peer sync behaviour at scale. Native arm64 Android on native arm64 silicon, no translation layer, enough cores and RAM to make the peer count interesting. The Minisforum MS-R1…",
  "key_points": [
    "Author aims to run multiple Android instances on Minisforum MS-R1",
    "Minisforum MS-R1 lacks vhost subsystem, disabling Cuttlefish functionality",
    "cixtech/cixopensourcelinux branch enables vhost support for kernel 6.6.10"
  ],
  "editors_take": "Successfully running Android VMs on ARM hardware requires enabling the vhost subsystem in the kernel, a crucial step now achieved on the Minisforum MS-R1 through a custom kernel rebuild.",
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}