Skip to content
Snippets Groups Projects
Commit 9c770d5e authored by David Lynch's avatar David Lynch
Browse files

// Initial Commit

parent 4b65480a
Branches
No related tags found
No related merge requests found
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.define "focal", primary: true do |focal|
focal.vm.box = "ubuntu/focal64"
focal.vm.synced_folder ".", "/shared",
owner: "vagrant", group: "vagrant"
focal.vm.provider "virtualbox" do |vb|
vb.gui = true
vb.name = "Quartus_Ubuntu"
vb.memory = "8192"
vb.customize ["modifyvm", :id, "--vram", "128"]
vb.customize ["modifyvm", :id, "--graphicscontroller", "vmsvga"]
vb.customize ["modifyvm", :id, "--accelerate3d", "on"]
vb.customize ["modifyvm", :id, "--audioin", "on"]
vb.customize ["modifyvm", :id, "--audioout", "on"]
vb.customize ["modifyvm", :id, "--audiocontroller", "hda"]
disk_image = File.join(File.dirname(File.expand_path(__FILE__)),
'ubuntu_20_04.vdi')
unless File.exist?(disk_image)
vb.customize ['createhd',
'--filename', disk_image,
'--size', 160 * 1024]
end
vb.customize ['storageattach', :id,
'--storagectl', 'SCSI',
'--port', 2, '--device', 0,
'--type', 'hdd',
'--medium', disk_image]
vb.customize ['storageattach', :id,
'--storagectl', 'IDE',
'--port', '0', '--device', '1',
'--type', 'dvddrive',
'--medium', 'emptydrive']
end
focal.vm.provision "shell", inline: <<-SHELL
parted /dev/sdc mklabel msdos
parted /dev/sdc mkpart primary 100 100%
partprobe
mkfs.xfs /dev/sdc1
mkdir /workspace
echo `blkid /dev/sdc1 | awk '{print$2}' | sed -e 's/"//g'` \
/workspace xfs noatime,nobarrier 0 0 >> /etc/fstab
mount /workspace
chown -R vagrant:vagrant /workspace
chmod 777 -R /workspace
SHELL
focal.vm.provision "shell",
inline: "apt-get update"
focal.vm.provision "shell",
inline: "/bin/bash /shared/scripts/setup_host.sh"
focal.vm.provision "shell",
inline: "apt remove -y gdm3"
focal.vm.provision "shell",
inline: "apt-mark hold gdm3"
focal.vm.provision "shell",
inline: "apt install -y kde-full || :"
focal.vm.provision "shell",
inline: "/bin/bash /shared/scripts/sddm_fix.sh"
focal.vm.provision "shell",
inline: "sudo apt update && sudo apt -y full-upgrade && sudo apt -y autoremove || :"
focal.vm.provision "shell",
inline: "cat /root/.profile | grep PATH >> /home/vagrant/.profile || :"
end
end
# USB Blaster
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6002", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6003", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
# USB Blaster II
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6010", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6810", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
[Desktop Entry]
Version=1.0
Name=ModelSim-Intel FPGA Starter Edition
Comment=ModelSim simulation software for Intel FPGAs
Exec=_alteradir/modelsim_ase/bin/vsim -gui -l /dev/null
Icon=_alteradir/modelsim_ase/modesim.gif
Terminal=false
Type=Application
Categories=Development
export PATH=$PATH:_alteradir/modelsim_ase/bin
[Desktop Entry]
Version=1.0
Name=Quartus Prime Lite
Comment=Quartus Prime Lite design software for Intel FPGAs
Exec=_alteradir/quartus/bin/quartus --64bit
Icon=_alteradir/quartus/adm/quartusii.png
Terminal=false
Type=Application
Categories=Development
export PATH=$PATH:_alteradir/quartus/bin:_alteradir/quartus/sopc_builder/bin
# Detect if a 64bit machine and activate quartus
# depending on it.
if [ `uname -m` = "x86_64" ] ; then
QUARTUS_64BIT='1'
else
QUARTUS_64BIT='0'
fi
export QUARTUS_64BIT
[Desktop Entry]
Version=1.0
Name=ModelSim-Intel FPGA Starter Edition
Comment=ModelSim simulation software for Intel FPGAs
Exec=/workspace/intelFPGA/20.1/modelsim_ase/bin/vsim -gui -l /dev/null
Icon=/workspace/intelFPGA/20.1/modelsim_ase/modesim.gif
Terminal=false
Type=Application
Categories=Development
export PATH=$PATH:/workspace/intelFPGA/20.1/modelsim_ase/bin
[Desktop Entry]
Version=1.0
Name=Quartus Prime Lite
Comment=Quartus Prime Lite design software for Intel FPGAs
Exec=/workspace/intelFPGA/20.1/quartus/bin/quartus --64bit
Icon=/workspace/intelFPGA/20.1/quartus/adm/quartusii.png
Terminal=false
Type=Application
Categories=Development
export PATH=$PATH:/workspace/intelFPGA/20.1/quartus/bin:/workspace/intelFPGA/20.1/quartus/sopc_builder/bin
# Detect if a 64bit machine and activate quartus
# depending on it.
if [ `uname -m` = "x86_64" ] ; then
QUARTUS_64BIT='1'
else
QUARTUS_64BIT='0'
fi
export QUARTUS_64BIT
run.sh 0 → 100644
#!/bin/bash
set -x
script_dir=$(cd $(dirname ${BASH_SOURCE[0]}) && pwd)
vagrant up
vagrant reload
#!/bin/bash
set -x
script_dir=$(cd $(dirname ${BASH_SOURCE[0]}) && pwd)
touch /etc/sddm.conf
echo "[General]" >> /etc/sddm.conf
echo "InputMethod=" >> /etc/sddm.conf
echo "[Users]" >> /etc/sddm.conf
echo "RememberLastUser=false" >> /etc/sddm.conf
echo "HideUsers=ubuntu" >> /etc/sddm.conf
#!/bin/bash
set -x
script_dir=$(cd $(dirname ${BASH_SOURCE[0]}) && pwd)
read -d '' PACKAGES <<EOT
linux-image-generic
bc
libtool-bin
gperf
bison
flex
texi2html
texinfo
help2man
gawk
libtool
build-essential
automake
libncurses5-dev
libncurses6
libglib2.0-dev
libfdt-dev
device-tree-compiler
qemu-user-static
binfmt-support
multistrap
git
lib32z1
lib32stdc++6
libssl-dev
kpartx
dosfstools
nfs-common
zerofree
u-boot-tools
rpm2cpio
curl
libsdl1.2-dev
libpixman-1-dev
libc6-dev
chrpath
socat
zlib1g-dev
zlib1g:i386
unzip
rsync
python3-pip
python3
gcc-multilib
xterm
net-tools
libidn11
libxft2
libxft2:i386
libxrender1:i386
libxtst6:i386
libxi6:i386
EOT
set -e
sudo apt-get update
sudo dpkg --add-architecture i386
sudo apt-get update
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/ppa
sudo apt update
sudo apt-get install -y $PACKAGES
sudo apt full-upgrade -y
#!/bin/bash
set -x
script_dir=$(cd $(dirname ${BASH_SOURCE[0]}) && pwd)
source /shared/scripts/setup_dependencies.sh
source /shared/scripts/setup_quartus.sh
#!/bin/bash
set -x
script_dir=$(cd $(dirname ${BASH_SOURCE[0]}) && pwd)
pkgbase=quartus-free
pkgname=(${pkgbase} ${_components[@]})
# Keep dot in _patchver
_mainver=20.1; _patchver=.1; _buildver=720
# Latest HLS compiler was only released with Pro numbering
#_promain=20.3; _propatch=.0; _probuild=158; _prover=${_promain}${_propatch}.${_probuild}
pkgver=${_mainver}${_patchver}.${_buildver}
#arch=('x86_64')
tar_file=Quartus-lite-${pkgver}-linux.tar
_base_url="https://download.altera.com/akdlm/software/acdsinst"
source=("${_base_url}/${_mainver}std${_patchver}/${_buildver}/ib_tar/${tar_file}")
if [ -f "/shared/${tar_file}" ]
then
echo "Extracting Quartus, this may take some time..."
tar -xvf /shared/${tar_file} -C /workspace
else
echo "Downloading Quartus, this may take some time..."
wget $source -P /workspace
echo "Extracting Quartus, this may take some time..."
tar -xvf /workspace/${tar_file} -C /workspace
fi
_alteradir="/workspace/intelFPGA/${_mainver}"
if [ -d $_alteradir ]
then
echo "$_alteradir exists"
else
echo "$_alteradir does not exist: creating..."
mkdir /workspace/intelFPGA
mkdir $_alteradir
fi
sudo chmod a+x /workspace/components/*.run
sudo chown -R vagrant:vagrant /workspace/*
install_command="/workspace/components/QuartusLiteSetup-${pkgver}-linux.run \
--disable-components modelsim_ae \
--mode unattended \
--unattendedmodeui none \
--accept_eula 1 \
--installdir "${_alteradir}""
echo "Installing Quartus, this may take some time..."
`runuser -l vagrant -c "${install_command}"`
# Cleanup
echo "Cleaning up"
rm -r /workspace/components
if [ -f "/workspace${tar_file}" ]
then
echo "Removing Tar file"
rm /workspace/$tar_file
fi
# Copy over base files
\cp -f /shared/quartus-free/base_quartus.sh /shared/quartus-free/quartus.sh
\cp -f /shared/quartus-free/base_quartus.desktop /shared/quartus-free/quartus.desktop
\cp -f /shared/quartus-free/base_modelsim-ase.sh /shared/quartus-free/modelsim-ase.sh
\cp -f /shared/quartus-free/base_modelsim-ase.desktop /shared/quartus-free/modelsim-ase.desktop
# Replace altera directory in integration files
sed -i "s,_alteradir,${_alteradir},g" /shared/quartus-free/quartus.sh
sed -i "s,_alteradir,${_alteradir},g" /shared/quartus-free/quartus.desktop
sed -i "s,_alteradir,${_alteradir},g" /shared/quartus-free/modelsim-ase.sh
sed -i "s,_alteradir,${_alteradir},g" /shared/quartus-free/modelsim-ase.desktop
# Fix modelsim startup code for Linux Kernel >=4.0
# see https://wiki.archlinux.org/index.php/Altera_Design_Software
sed -i 's,linux_rh60,linux,g' "${_alteradir}/modelsim_ase/vco"
# Suppress spurious warning about linux-gate.so.1
sed -i '/msg_system/a suppress = 3116' "${_alteradir}/modelsim_ase/modelsim.ini"
# Install integration files
install -D -m755 /shared/quartus-free/quartus.sh "/etc/profile.d/quartus.sh"
install -D -m644 /shared/quartus-free/quartus.desktop "/usr/share/applications/quartus.desktop"
install -D -m644 /shared/quartus-free/51-usbblaster.rules "/etc/udev/rules.d/51-usbblaster.rules"
install -D -m755 /shared/quartus-free/modelsim-ase.sh "/etc/profile.d/modelsim-ase.sh"
install -D -m644 /shared/quartus-free/modelsim-ase.desktop "/usr/share/applications/modelsim-ase.desktop"
echo "Finished Installing Quartus"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment