Installing Vivado on Ubuntu VirtualBox

Recently I wanted to do some development on the Xilinx Zynq platform from scratch. Since I am working on a Mac and the necessary software is only available for Windows/Linux I set up an Ubuntu virtual machine and tried to get the toolchain up and running. There were some obstacles on the way that I want to show you to save yourself some time and effort. So fire up that virtual machine and get ready for some big downloads!


Before we get into it, here is my Setup:

  • Host: MacBook Pro retina
  • Virtual Machine: Ubuntu 16.06 64bit
  • Vivado Version: 2017.2
  • Debug Probe: Digilent HS2

Vivado Install

  1. Download the Vivado HLx 2017.2 WebPACK Edition from here

  1. Run the installer
cd Downloads/
chmod +x Xilinx_Vivado_SDK_2017.2_0616_1_Lin64.bin
sudo ./Xilinx_Vivado_SDK_2017.2_0616_1_Lin64.bin
  1. Login with your Xilinx User ID and Password when prompted
  2. Install the software to the suggested /opt/Xilinx directory
  3. Wait for the >20GB to be downloaded and installed

Driver installation

Since the 2016 versions of Vivado, the cable drivers for debugging probes are not installed by the Vivado installer. The user has to manually instal them.

cd /opt/Xilinx/Vivado/2017.2/data/xicom/cable_drivers/lin64/install_script/install_drivers/
sudo ./install_drivers

This creates the necessary udev rules in /etc/udev/rules.d

(Optional) Install Digilent utilities

For the Digilent utilities follow the instructions below. They aren’t necessary but make debugging driver issues easier.

  1. Download the Digilent Runtime and Utilities from here

Install them

sudo dpkg -i digilent.adept.runtime_2.16.6-amd64.deb
sudo dpkg -i digilent.adept.utilities_2.2.1-amd64.deb

USB Filter for VirtualBox

To use the Digilent HS2 probe in Ubuntu you have to add device filters in the VirtualBox machine settings.

  1. Go to you machines Settings – Ports – USB and enable the USB Controller
  2. Add USB Device Filters by clicking the green plus for the Digilent USB Device
  3. Save the settings and power up the machine with all the USB devices plugged in

The settings should look something like this:

Test the driver

Hook up the HS2 probe to a target (in my case a Redpitaya board) and run

$ djtgcfg enum
Found 1 device(s)

Device: JtagHs2
    Product Name:   Digilent JTAG-HS2
    User Name:      JtagHs2
    Serial Number:  210249982807
$ djtgcfg init -d JtagHs2
Initializing scan chain...
Found Device ID: 13722093
Found Device ID: 4ba00477

Found 2 device(s):
    Device 0: ARM_DAP
    Device 1: XC7Z010

If the output looks like this your JTAG probe should be running.

Run Vivado

To run vivado you have to source a bash script. I added an alias in my .bashrc for convenience.

echo "alias sourcevivado='source /opt/Xilinx/Vivado/2017.2/'" >> ~/.bashrc

Close the shell and re open it. Now start vivado by typing

vivado &

As a final test we open the Hardware Manager (Tools – Hardware Manager), click on open target – Auto connect to see if Vivado detects our Zynq:

5 Replies to “Installing Vivado on Ubuntu VirtualBox”

  1. Pingback: DLatch
  2. Super useful article for students finding themselves in a similar situation to your own.

    One thing though might be to add the memory sizes of your ubuntu vm to ensure anyone following this article first allocates sufficient space when setting up.

    ….yes I realize this article is 2 years old.

    1. Thank you very much for the feedback. I indeed had that problem and had to increase disk size afterwards.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.