-
Notifications
You must be signed in to change notification settings - Fork 0
Alternate Install macOS UTM
Caution
This installation method is not supported or maintained by the ARM Developers. For full support and continued maintenance, we recommend installing ARM via the supported Docker Container. This installation method was developed for macOS users who cannot run Docker natively with USB passthrough.
Use at your own risk
This guide covers installing ARM using Docker inside an Ubuntu Server VM running on macOS via UTM. This approach is necessary because ARM requires Linux and direct USB device access, which macOS cannot provide natively.
Important: You must use UTM's QEMU backend (Emulate), not Apple Virtualization (Virtualize). Apple Virtualization does not support USB passthrough.
- Mac (Apple Silicon or Intel)
- External USB DVD/Blu-ray drive
- Ubuntu Server 24.04 ISO (ARM64 for Apple Silicon, AMD64 for Intel)
- At least 4GB RAM and 64GB storage available for the VM
- Download UTM from https://mac.getutm.app
- Open the downloaded DMG file
- Drag UTM to your Applications folder
- Launch UTM from Applications
Tip: If macOS blocks the app, go to System Settings → Privacy & Security and click Open Anyway.
- Open UTM and click Create a New Virtual Machine
- Select Emulate (NOT Virtualize - critical for USB passthrough)
- Select Linux
Boot ISO:
- Click Browse and select your Ubuntu Server ISO
Hardware Settings (Apple Silicon):
- Architecture:
ARM64 (aarch64) - System:
QEMU 8.2 ARM Virtual Machine - RAM:
4096 MB(minimum) - CPU Cores:
4
Hardware Settings (Intel Mac):
- Architecture:
x86_64 - System:
Standard PC (Q35 + ICH9, 2009) - RAM:
4096 MB(minimum) - CPU Cores:
4
Storage:
- Size:
64 GB(minimum recommended)
Network:
- Select Bridged (Advanced) and choose your network interface (usually
en0)
- Name:
ARMorUbuntu-ARM - Click Save
- Start the VM and select Try or Install Ubuntu Server
- Follow the installation wizard:
- Installation type: Ubuntu Server (full, not minimized)
- Enable OpenSSH server
- Skip featured snaps
- After installation, remove the ISO from the virtual CD drive in UTM settings
- Get the VM's IP address:
ip addr show- With the VM running, plug in your USB DVD drive
- In the UTM window toolbar, click the USB icon
- Select your DVD drive to connect it to the VM
SSH into your VM:
ssh username@<VM_IP_ADDRESS>Check if the drive is detected:
ls -la /dev/sr0Expected output:
brw-rw----+ 1 root cdrom 11, 0 Jan 29 05:28 /dev/sr0
sudo apt update && sudo apt upgrade -y
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USERLog out and back in for group changes to take effect, then verify:
docker --versionmkdir -p ~/arm/{config,logs,music,movies,completed}
cd ~/armcat > docker-compose.yml << 'EOF'
services:
arm:
image: automaticrippingmachine/automatic-ripping-machine:latest
container_name: arm
restart: unless-stopped
privileged: true
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
- ARM_UID=1000
- ARM_GID=1000
volumes:
- ./config:/etc/arm/config
- ./logs:/home/arm/logs
- ./music:/home/arm/music
- ./movies:/home/arm/media/movies
- ./completed:/home/arm/media/completed
ports:
- "8080:8080"
devices:
- /dev/sr0:/dev/sr0
EOFNote: Adjust
TZto your timezone (e.g.,America/Los_Angeles,Europe/London)
docker compose pull
docker compose up -ddocker logs arm --tail 20Look for:
INFO ARM: DriveUtils.drives_search Optical drive detected: /dev/sr0
Open your browser and navigate to:
http://<VM_IP_ADDRESS>:8080
Default credentials:
- Username:
admin - Password:
password
Change the default password immediately in Settings.
To save ripped media directly to a macOS folder, configure a VirtFS shared directory in UTM:
- Shut down the VM
- In UTM, edit the VM settings
- Under Sharing, add a directory path (e.g.,
/Volumes/Media Library) - Start the VM and mount the share:
sudo mkdir -p /mnt/media-library
sudo mount -t 9p -o trans=virtio share0 /mnt/media-library -oversion=9p2000.L- Update your
docker-compose.ymlvolumes to use/mnt/media-library
For persistent mounting, add to /etc/fstab:
share0 /mnt/media-library 9p trans=virtio,version=9p2000.L,rw,_netdev 0 0
Note: VirtFS permissions require
chmod 777on the shared directory due to UID mismatches between macOS and Linux.
- Verify you selected Emulate (QEMU), not Virtualize when creating the VM
- Check UTM's USB menu to ensure the drive is connected
- Run
ls -la /dev/sr*in the VM
- Verify
/dev/sr0exists:ls -la /dev/sr0 - Check docker-compose.yml device path
- Restart the container:
docker compose restart
- Verify container is running:
docker ps - Check if VM IP changed:
ip addr show - Confirm port 8080 is exposed:
docker port arm
QEMU emulation is slower than native virtualization. This is the tradeoff for USB passthrough support. Ripping works but takes longer than on native hardware.
# View logs
docker logs arm -f
# Restart ARM
cd ~/arm && docker compose restart
# Update ARM
cd ~/arm && docker compose pull && docker compose up -d
# Stop ARM
cd ~/arm && docker compose down| Component | Value |
|---|---|
| VM Software | UTM with QEMU backend |
| Guest OS | Ubuntu Server 24.04 |
| Container | automaticrippingmachine/automatic-ripping-machine |
| Web Interface | http://VM_IP:8080 |
| Default Login | admin / password |
| DVD Device | /dev/sr0 |
Getting Started
-
Docker
-
Manual Install
- See Alternate Installations
-
Automatic script install
Web Page Overview
Configuration
-
Configuration Files
-
Alternate Installations
- Ubuntu
-
Ubuntu 20.04 (install script)(Run the Debian script) - Ubuntu 25.04
- Debian
- Open Media Vault
- TrueNAS
- macOS with UTM (Docker)
Hardware Configuration
Troubleshooting
ARM Status
Contributing to ARM
How ARM Works