Last active
September 27, 2024 22:28
-
-
Save kammoh/d3845a6fe6d14b02406122821ac7874c to your computer and use it in GitHub Desktop.
vivado-2024.1 patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
DOCKERFILE_PATH=. | |
docker build --platform=linux/amd64 -t vivado-2024.1 $DOCKERFILE_PATH |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM gusanagy/xilinx-vivado:2024.1-x11 | |
USER root | |
RUN <<EOF | |
apt-get update && apt-get install -y --no-install-recommends locales gcc g++ make build-essential && dpkg-reconfigure locales | |
apt-get autoclean && apt-get autoremove && apt-get -s clean | |
locale-gen en_US.UTF-8 && update-locale LANG=en_US.UTF-8 | |
EOF |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
[ -z $VIVADO_VERSION ] && VIVADO_VERSION=2024.1 | |
if [ -z $DOCKER_IMAGE ]; then | |
case "$VIVADO_VERSION" in | |
2024.1) | |
DOCKER_IMAGE="vivado-$VIVADO_VERSION" | |
XILINX_ROOT=/home/vivadouser | |
;; | |
*) | |
echo "Unsupported VIVADO_VERSION=$VIVADO_VERSION" | |
XILINX_ROOT=/tools/Xilinx | |
exit 1 | |
;; | |
esac | |
fi | |
XILINX_VIVADO=$XILINX_ROOT/Vivado/$VIVADO_VERSION | |
test -t 0 && DOCKER_OPTS="$DOCKER_OPTS -i --tty" | |
if [ -n "$KEEP_CHANGES" ]; then | |
echo "** Will keep changes!!! **" | |
else | |
DOCKER_OPTS="$DOCKER_OPTS --rm" | |
fi | |
if [[ $# -eq 0 ]]; then | |
if [[ -z "$DISPLAY" ]]; then | |
echo "DISPLAY not set" | |
exit 1 | |
fi | |
xhost +local:docker >/dev/null 2>&1 | |
fi | |
BIND_PATHS=($PWD) | |
# if "$HOME/.Xilinx" does not exist, create it | |
[ ! -d "$HOME/.Xilinx" ] && mkdir -p "$HOME/.Xilinx" | |
BIND_PATHS+=("$HOME/.Xilinx") | |
# if these directories exist, bind mount them | |
[ -d "/Volumes/src" ] && BIND_PATHS+=("/Volumes/src") | |
[ -d "/tmp/.X11-unix" ] && BIND_PATHS+=("/tmp/.X11-unix") | |
[ -d "$HOME/.Xil" ] && BIND_PATHS+=("$HOME/.Xil") | |
[ -f "$HOME/.Xauthority" ] && BIND_PATHS+=("$HOME/.Xauthority") | |
# uniquify | |
BIND_PATHS=($(for el in ${BIND_PATHS[@]}; do echo "${el}"; done | sort -u)) | |
# echo BIND_PATHS=${BIND_PATHS[@]} | |
for path in ${BIND_PATHS[@]}; do | |
[ -e $path ] && MOUNT_OPTS="$MOUNT_OPTS --mount type=bind,source=$path,target=$path" | |
done | |
[ -z $NETWORK ] && NETWORK=host | |
JAVA_TOOL_OPTIONS="-Dawt.useSystemAAFontSettings=on,-Dswing.aatext=true,-Dsun.java2d.xrender=true,-Dsun.java2d.ddscale=true,-Dsun.java2d.dpiaware=true" | |
JAVA_OPTS="-Dawt.useSystemAAFontSettings=on,-Dswing.aatext=true,-Dsun.java2d.xrender=true,-Dsun.java2d.ddscale=true,-Dsun.java2d.dpiaware=true" | |
_JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on,-Dswing.aatext=true,-Dsun.java2d.ddscale=true,-Dsun.java2d.dpiaware=true" | |
# HTTPS_PROXY=localhost | |
LD_PRELOAD="/lib/x86_64-linux-gnu/libudev.so.1:/lib/x86_64-linux-gnu/libselinux.so.1:/lib/x86_64-linux-gnu/libz.so.1:/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0" | |
if [ "$NETWORK" == "host" ]; then | |
[ -z "$CONTAINER_HOST" ] && CONTAINER_HOST=host.docker.internal | |
DISPLAY="$CONTAINER_HOST:0" | |
fi | |
ENV_SETS=(DISPLAY XAUTHORITY XILINX_VIVADO JAVA_TOOL_OPTIONS JAVA_OPTS HTTPS_PROXY _JAVA_OPTIONS LD_PRELOAD) | |
for e in ${ENV_SETS[@]}; do | |
var_ref=$(eval echo "\$$e") | |
[ -n "$var_ref" ] && ENV_OPTS="$ENV_OPTS --env $e=$var_ref" | |
done | |
# DOCKER_OPTS+=" --privileged " | |
docker run $DOCKER_OPTS \ | |
--platform linux/amd64 \ | |
--network=$NETWORK \ | |
--workdir=$PWD \ | |
$MOUNT_OPTS \ | |
$ENV_OPTS \ | |
$DOCKER_IMAGE "/bin/bash" "-c" "source $XILINX_VIVADO/settings64.sh && vivado $*" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment