Appearance
Run VoHive on Mac in a Linux VM: UTM vs Kyvenza
You can run VoHive on a Mac by installing it in a Linux virtual machine, and the choice of VM app matters more than usual here. VoHive manages a physical 4G modem, so the VM must take over that USB device — and USB passthrough is exactly where the Mac VM tools differ. The short answer: use UTM for the VoHive VM itself, and use Kyvenza for the Linux ARM services around it that do not touch USB hardware.
Quick fit table
| Need | Right tool | Why |
|---|---|---|
| VoHive with a USB 4G modem (Quectel EC25, reflashed DJI EG25-G, or similar) | UTM | USB device passthrough works only in UTM's QEMU backend |
| One-time AT-command reflash of a DJI 4G module to EC25 identity | UTM | Same USB passthrough requirement |
| x86_64 Linux guest on an Intel Mac | UTM | Kyvenza is Apple Silicon only and runs arm64 guests only |
| Linux ARM server VM for services with no USB hardware (dashboards, automation, bots, dev boxes) | Kyvenza | Native Apple Virtualization framework, no QEMU configuration |
| A second always-on VM next to the VoHive VM | Either | Kyvenza is simpler to set up; UTM is more configurable |
What VoHive needs from a VM
VoHive is a Linux-only management platform for Qualcomm-based 4G/5G modems: SMS over web and bots, multi-SIM management, eSIM/eUICC switching, and SOCKS5/HTTP proxy instances. Its install script supports Linux on arm64 and amd64, installs a systemd service, and serves a web dashboard on port 7575. See the upstream vohive-release repository for capabilities and the official installer.
Three requirements decide which VM app can host it:
- USB passthrough. The modem must appear inside the guest as a USB serial device (
/dev/ttyUSB*). VoHive talks to it directly, so the VM app must hand the physical USB device to the guest. - Linux with systemd. The install script exits on non-Linux systems and registers a
vohivesystemd unit. - Network reachability from the host. The default NAT networking of every Mac VM app is enough: the Mac browser reaches the guest's private IP on port
7575.
The popular community workflow — DJI 4G module to EC25 on a Mac, based on the original linux.do tutorial — additionally needs USB passthrough for the one-time AT-command reflash that rewrites a DJI EG25-G module's USB identity to a Quectel EC25.
Use UTM when the modem must live in the VM
UTM is a free, open-source VM app built on QEMU. Its USB sharing feature connects host USB devices to a guest, and UTM's own documentation states it is supported only by the QEMU backend. That makes UTM the correct free tool for the VoHive VM on a Mac.
The condensed workflow, verified against the community guide:
- Install UTM:
brew install --cask utm. - Download the Ubuntu Server 24.04 installer — the arm64 ISO on Apple Silicon, the amd64 ISO on Intel.
- Create a VM with Virtualize (not Emulate), matching your Mac's architecture. For VoHive, 2 vCPUs, 2 GB of memory, and 20 GB of disk are enough. Install Ubuntu Server with OpenSSH server enabled.
- Plug in the 4G module, then in the VM's UTM settings enable USB passthrough for it. Confirm with
lsusbin the guest. - If you are converting a DJI module, run the one-time AT commands from the community guide to rewrite the USB identity to
2c7c:0125(Quectel EC25). AfterAT+CFUN=1,1the module re-enumerates, so re-bind the passthrough rule to the new ID or to the physical USB port. - Run VoHive's
install.shin the guest, then openhttp://<vm-ip>:7575from your Mac browser and change the defaultadmin/adminpassword immediately.
Before copying commands, read the full community guide — it tracks current gotchas, including the status of upstream release binaries.
Use Kyvenza when the Linux service needs no USB hardware
Kyvenza is a good fit for the rest of a self-hosted stack on Apple Silicon: Linux ARM VMs that run network services but never touch a USB device. Typical neighbors of a VoHive setup — an automation box for the bots that talk to VoHive, a monitoring dashboard, a private DNS or ad-blocking resolver, a scratch build VM — all run well in Kyvenza.
The difference from UTM is setup friction, not capability:
- Kyvenza runs guests on Apple's Virtualization framework only, so there is no QEMU layer to configure and no architecture choices to make.
- The VM assistant downloads the latest official arm64 installer for Ubuntu, Debian, Fedora, or Alpine and mounts it on first boot — no manual ISO hunting.
- VMs start headless by default, and the VM detail view shows the guest's NAT IP address, so reaching a web dashboard from your Mac browser is immediate.
- Shared folders over VirtioFS make it easy to move configs and logs between the Mac and the guest.
To create such a VM: open Kyvenza, click +, choose Linux, pick Ubuntu, and start with 2 vCPUs, 2 GB of memory, and 32 GB of disk for a small service. The general workflow is covered in Create your first VM and Managing VMs.
What Kyvenza does not support
Being explicit about limits saves you a wasted install:
- No USB device passthrough. Kyvenza cannot hand a 4G modem — or any physical USB device — to a guest. This is the hard blocker for VoHive itself.
- NAT-only networking. Guests are reachable from the Mac host, but not directly from other devices on your LAN.
- No background persistence. VMs live in the Kyvenza app process; quitting the app stops every running VM, and there is no auto-start on login.
- Apple Silicon only, macOS 14 Sonoma or later. No Intel Macs, no x86_64 guests, no Windows on ARM, no nested virtualization, no GPU passthrough.
For a broader feature-by-feature look, see the VM tool comparison.
Troubleshooting
The VoHive install script fails while downloading the binary
The script pulls a binary from the upstream vohive-release GitHub releases. The community guide reports that recent release assets have been unavailable at times, so check that guide's README for the current recommended path before debugging your VM.
The modem disappears from the guest after the reflash
AT+CFUN=1,1 soft-reboots the module, and its USB ID changes from 2ca3:4006 to 2c7c:0125. Re-bind the UTM passthrough rule to the new ID, or bind it to the physical USB port so re-enumeration does not drop the device.
The dashboard does not load from the Mac browser
Confirm the guest IP inside the VM with ip a, check that systemctl status vohive is active, and open http://<vm-ip>:7575. NAT networking means the dashboard is reachable from the Mac host, not from other devices on your network.
Next steps
- For the VoHive VM: get UTM and follow the community Mac guide.
- For everything else: download Kyvenza and read System requirements before creating your first Linux ARM VM.
- Compare the tools in more depth on the VM tool comparison page, or see Kyvenza as a UTM alternative for the general positioning.
- If a VM misbehaves, open Diagnostics & Troubleshooting.