# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "bento/ubuntu-16.04" config.vm.network "private_network", type: "dhcp" # Share an additional folder to the guest VM. The first argument is # the path on the host to the actual folder. The second argument is # the path on the guest to mount the folder. And the optional third # argument is a set of non-required options. config.vm.synced_folder "..", "/prjxray", type: "nfs" config.vm.provider "virtualbox" do |vb| vb.gui = true end # Base boxes are almost always server installs. Install the desktop # components along with the C++ build tools. config.vm.provision "shell", inline: <<-SHELL apt-get update apt-get upgrade -y apt-get install -y ubuntu-desktop build-essential git cmake SHELL # Strangely, headless Vivado installs still require a running X server. # Turn on auto-login so the user's X server is active. config.vm.provision "shell", inline: <<-SHELL mkdir -p /etc/lightdm/ echo "[Seat:*]" > /etc/lightdm/lightdm.conf echo "autologin-user=vagrant" >> /etc/lightdm/lightdm.conf systemctl start lightdm SHELL # Install Vivado. config.vm.provision "shell", inline: <<-SHELL if [ ! -d /vagrant/Vivado ]; then echo "No Vivado download found. Skipping install." else echo "Installing Vivado. This takes a while. I suggest going for a walk." export DISPLAY=:0 /vagrant/Vivado/xsetup --agree 3rdPartyEULA,WebTalkTerms,XilinxEULA --batch Install -e "Vivado HL WebPACK" --location "/opt/Xilinx" cp /vagrant/profile.d/* /etc/profile.d/ fi SHELL # Turn off idle screen locking and screensaver password. config.vm.provision "shell" do |s| s.privileged = false s.inline = <<-SHELL export DISPLAY=:0 dconf write /org/gnome/desktop/screensaver/idle-activation-enabled false dconf write /org/gnome/desktop/screensaver/lock-enabled false SHELL end config.vm.provision :reload end