diff --git a/docker/QuartusPrime/files/13.0 b/docker/QuartusPrime/files/13.0 new file mode 120000 index 0000000..ff19dd2 --- /dev/null +++ b/docker/QuartusPrime/files/13.0 @@ -0,0 +1 @@ +/srv/dvlp/Projects/dev/github/docker/QuartusPrime/files/13.0 \ No newline at end of file diff --git a/docker/QuartusPrime/files/13.1 b/docker/QuartusPrime/files/13.1 new file mode 120000 index 0000000..60ba561 --- /dev/null +++ b/docker/QuartusPrime/files/13.1 @@ -0,0 +1 @@ +/srv/dvlp/Projects/dev/github/docker/QuartusPrime/files/13.1 \ No newline at end of file diff --git a/docker/QuartusPrime/files/17.1 b/docker/QuartusPrime/files/17.1 new file mode 120000 index 0000000..b9dd1e2 --- /dev/null +++ b/docker/QuartusPrime/files/17.1 @@ -0,0 +1 @@ +/srv/dvlp/Projects/dev/github/docker/QuartusPrime/files/17.1 \ No newline at end of file diff --git a/docker/QuartusPrime/quartus_docker.sh b/docker/QuartusPrime/quartus_docker.sh new file mode 100755 index 0000000..35bfab0 --- /dev/null +++ b/docker/QuartusPrime/quartus_docker.sh @@ -0,0 +1,79 @@ +#!/bin/bash -x +######################################################################################################### +## +## Name: run_quartus.sh +## Created: August 2019 +## Author(s): Philip Smart +## Description: A shell script to start the Quartus Prime Docker image. +## +## Credits: +## Copyright: (c) 2019 Philip Smart +## +## History: August 2019 - Initial module written. +## +######################################################################################################### +## This source file is free software: you can redistribute it and#or modify +## it under the terms of the GNU General Public License as published +## by the Free Software Foundation, either version 3 of the License, or +## (at your option) any later version. +## +## This source file is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program. If not, see . +######################################################################################################### + +# Configurable parameters. The MAC_ADDRESS is needed if you are using a licensed Quartus as it uses the hostid which is the mac address. +# Set a default for the X-Display if the environment hasnt set it. +# +MAC_ADDR="02:50:dd:72:03:01" +PROJECT_DIR_HOST=/srv/ +PROJECT_DIR_IMAGE=/srv/ +DISPLAY=${DISPLAY:-192.168.15.210:0} +VERSION=$1 +INSTANCE=$2 +UUID=`id -u` +UGID=`id -g` +USERNAME=`whoami` +HOMEDIR=/home/${USERNAME} +ALTERAHOME=/srv/altera +QUARTUSHOME=${ALTERAHOME}/${VERSION} + +if [ "${VERSION}" = "17.1.1" -o "X${VERSION}" = "X" ]; then + VERSION=17.1.1 +elif [ "${VERSION}" != "13.0.1" -a "${VERSION}" != "13.1" ]; then + echo "Unknown QuartusII version:$1" +fi +# In order to get X-Forwarding from the container, we need to update the X Authorities and bind the authorisation file inside the virtual machine. +XSOCK=/tmp/.X11-unix +XAUTH=/tmp/.docker.xauth +NLIST=`xauth nlist $DISPLAY | sed -e 's/^..../ffff/'` +if [ "${NLIST}" != "" ]; then + echo ${NLIST} | xauth -f $XAUTH nmerge - +fi +chmod 777 $XAUTH + +# Run the Ubuntu hosted Quartus Prime service. + #--volume ${QUARTUSHOME}:/opt/altera \ +docker run --rm \ + --mac-address "${MAC_ADDR}" \ + --env DISPLAY=${DISPLAY} \ + --ipc=host \ + --env XAUTHORITY=${XAUTH} \ + -u ${UUID}:${UGID} \ + --privileged \ + --volume /dev:/dev \ + --volume ${HOMEDIR}:${HOMEDIR} \ + --volume ${PROJECT_DIR_HOST}:${PROJECT_DIR_IMAGE} \ + --volume ${XAUTH}:${XAUTH} \ + --volume ${XSOCK}:${XSOCK} \ + --volume /sys:/sys:ro \ + --name quartus${VERSION}${INSTANCE} \ + quartus-ii:${VERSION} & + +# Bring up a terminal session for any local changes. +sleep 5 +docker exec -it quartus${VERSION}${INSTANCE} bash