Skip to content

Instantly share code, notes, and snippets.

@btgoodwin
Forked from sohnryang/vivado-on-m1-mac.md
Created June 21, 2023 12:56
Show Gist options
  • Save btgoodwin/a2b35660d56fdcd63bbc24c9dc9f666c to your computer and use it in GitHub Desktop.
Save btgoodwin/a2b35660d56fdcd63bbc24c9dc9f666c to your computer and use it in GitHub Desktop.
Vivado on ARM64 Mac using Rosetta 2

Running Vivado on ARM64 Mac using Rosetta 2

macOS Ventura supports running x86-64 binaries on Linux VMs. However, even with Rosetta installing Vivado is not a simple one-click process. This guide covers some workarounds and tricks to get Vivado up and running on ARM64 Mac.

  1. Make sure you're running macOS Ventura or higher.
  2. Install UTM and create a Debian VM with Rosetta according to their guide.
    • Other distributions should also work, but commands will be different.
  3. Install x86-64 version of java and libtinfo. Vivado depends on them.
$ sudo apt install default-jdk:amd64 libtinfo5:amd64
  1. Download a copy of self-extracting web installer from Xilinx website.
  2. Run the installer with --confirm flag.
$ /path/to/vivado/installer --confirm
  1. The installer will print something like About to extract 40 KB in /tmp/selfgzXXXX ... Proceed ?. Check the path /tmp/selfgzXXXX, and proceed.
  2. After extracting, the installer will ask about running ./xsetup. Before pressing y, open /tmp/selfgzXXXX/xsetup in your editor and delete architecture checking code which looks like this:
# ERROR out if this installation is running on 32 bit OS 
# and does not support 32 bit installation 
if [ "$(uname -m)" != "x86_64" ]; then
    ...
fi
  1. Save the file and press y in the installer. Continue with installation as usual.
  2. Patch the loader. Open /path/to/xilinx/Vivado/2022.2/bin/loader in your editor, where /path/to/xilinx is the path to Xilinx software suite installation. Remove architecture checking code as you did on step 6.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment