| # -*- 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 |