Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save karthicraghupathi/d3378fa13604e58efe91793007372d32 to your computer and use it in GitHub Desktop.
Save karthicraghupathi/d3378fa13604e58efe91793007372d32 to your computer and use it in GitHub Desktop.
Vagrant and VMWare Fusion 13 on Apple M1 Pro

Vagrant and VMWare Fusion 13 Player on Apple M1 Pro

This document summarizes notes taken to make VMWare Fusion 13 Player work on Apple M1 Pro. It builds upon a previous (deprecated) document based on VMWare Tech Preview 21H1

VMWare Fusion 13 was released on November 17, 2022 and Fusion 13.5 on October 19, 2023

Created on: November 20, 2022

Updated on: June 1, 2024

This process has been used from macOS 12.6.1 to macOS 14.5

Installing Rosetta

First install Rosetta if not already done, this is needed to run x86 code:

/usr/sbin/softwareupdate --install-rosetta --agree-to-license

Installing Vagrant

Install Vagrant via brew or install it manually.

brew install vagrant@2.4.1

Installing VMWare Fusion Player

Not going to describe how to get VMWare Fusion 13 Player at this time.

It is possible to get VMWare Fusion 13 Player free for a personal license but the download and registration process is downright hostile for the end user. You should be expected to have to login in Incognito Window and try different browsers if necessary. You may also want to disable your ad-blocker if you have any as it may interfer with some pages.

If you use it as part of your work, you can go through the normal purchase process in the VMWare Store.

Installing Vagrant VMWare provider

It requires two steps. This is detailed in the documentation but follow the steps below:

It is now available via brew, so you can do

brew install --cask vagrant-vmware-utility

Otherwise, go to Vagrant vmware Utility and download the binary and install it. The direct link is vagrant-vmware-utility_1.0.21_x86_64.dmg.

It needs to be version 1.0.21

Next install the provider:

vagrant plugin install vagrant-vmware-desktop

Create a Vagrant file

You can use the following example as a box based on Ubuntu 20.04.5:

Vagrant.configure("2") do |config|
    config.vm.box = "starboard/ubuntu-arm64-20.04.5"
    config.vm.box_version = "20221120.20.40.0"
    config.vm.box_download_insecure = true
    config.vm.provider "vmware_desktop" do |v|
        v.ssh_info_public = true
        v.gui = true
        v.linked_clone = false
        v.vmx["ethernet0.virtualdev"] = "vmxnet3"
    end
end

The line v.vmx["ethernet0.virtualdev"] = "vmxnet3" is extremely important otherwise your box will most likely fail to boot as it will try to use the legacy e1000 VMWare NIC which is not working anymore.

Run vagrant

vagrant up

and then

vagrant ssh

Hopefully this should work and you should find yourself with everything working.

Resources

  • Unofficial Fusion for Apple Silicon Companion Guide - This document is a compilation of tips, tricks and gotchas related to the use of VMWare Fusion on Apple Silicon. It is a gold mine and where you will find the most up to date information in relation to the OS you want to run and more.

Please do check the document above before chosing a random vagrant box to run. The distribution and kernel version used on a box is extremely important and is the difference between working or not.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment