Exécutez l'ancien Vivado avec le système d'exploitation invité de Docker en tant que CentOS 7.4

À propos de l'environnement d'exploitation de Vivado pour Linux

Bonjour à tous. Souvent, le problème avec le développement FPGA est la version de Vivado. S'il s'agit d'un projet qui dure depuis de nombreuses années, il y a des cas où le dernier Vivado ne peut pas être utilisé. Le problème avec cela est lorsque vous devez exécuter Vivado sous Linux.

Selon la page Xilinx, en tant que Linux pouvant exécuter Vivado 2018.2.

Est listé. Tous sont d'anciens systèmes d'exploitation qui ont au moins 3 ans. Même si vous avez besoin de Vivado 2018.2 à la hâte, il est difficile de personnaliser un PC avec un nouvel environnement. C'est là que Docker entre en jeu.

Environnement éprouvé

OS côté hôte

OS côté invité

procédure

Préparer un Dockerfile

Tout d'abord, j'ai préparé le Dockerfile suivant.

FROM centos:7.4.1708

RUN yum update -y
RUN yum groupinstall -y "Development Tools"
RUN yum install -y kernel-devel kernel-headers
RUN yum install -y gtk2-devel
RUN yum install -y libcanberra libcanberra-devel
RUN yum install xauth libXtst libXrender -y
RUN yum install -y xeyes
RUN yum install -y sudo
RUN yum clean all

ARG uid=1000
ARG gid=1000
RUN groupadd -g ${uid} kohei && \
    useradd -u ${gid} -g kohei -G wheel,root kohei && \
    chown ${uid}:${gid} -R /home/kohei

RUN echo 'Defaults visiblepw'             >> /etc/sudoers
RUN echo 'kohei ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers

USER kohei
WORKDIR /home/kohei

Dans Dockerfile, un ensemble d'outils de développement, un ensemble d'éléments nécessaires pour fonctionner en tant que client X11 et sudo sont installés. De plus, lorsque je l'ai essayé pour la première fois, certaines bibliothèques manquaient, alors j'essaie de les compenser.

Il vous permet également de sudo sans mot de passe.

Créer une image Docker

Définissez l'image à créer à partir de ce Dockerfile comme centos_xil et compilez avec la commande suivante.

docker build -t centos_xil .

Lancer l'image construite

docker run -ti --rm --name centos_xil \
           -e DISPLAY=$DISPLAY \
           -v /tmp/.X11-unix/:/tmp/.X11-unix \ 
           -v /home/kohei:/home/kohei \
           centos_xil /bin/bash

Il convient de noter ici que l'application est d'abord exécutée côté OS invité afin que l'interface graphique soit affichée sur le serveur X côté hôte. La variable d'environnement «DISPLAY» est transmise au conteneur et l'environnement X11 est partagé entre le conteneur et l'hôte par montage. Ensuite, vous devez également noter que vous partagez votre répertoire personnel. Nous visons à éviter que l'image ne devienne gonflée en installant Vivado et à éviter la peine d'échanger l'environnement de développement entre le conteneur et le côté hôte.

Installer Vivado

Exécutez le programme d'installation Vivado sur le conteneur. C'est une bonne idée de créer un stockage de fichiers temporaire dans votre répertoire personnel et de le télécharger là-bas. Vous ne pourrez peut-être pas accéder au répertoire "Téléchargements", qui porte un nom japonais. La destination d'installation a été définie sur ~ / Xilinx en raison de problèmes tels que les autorisations.

Contrôle de fonctionnement de Vivado et du SDK

En suivant les étapes ci-dessus, nous avons pu confirmer que Vivado et le SDK ont démarré sans aucun problème.

Pour Vivado, j'ai pu compiler le design sans aucun problème.

Pages référencées (sans ordre particulier)

Recommended Posts

Exécutez l'ancien Vivado avec le système d'exploitation invité de Docker en tant que CentOS 7.4
Exécutez Payara avec Docker
Exécutez TAO Core avec Docker
Exécuter des rails à chaque fois dans le docker
WordPress avec Docker Compose sur CentOS 8
Faites fonctionner Jupyter Lab n'importe où avec Docker
Exécutez Keras avec CentOS7 + Anaconda + Django + Apache
Exécutez Ubuntu + ROS avec Docker sur Mac
Comment exécuter Blazor (C #) avec Docker
[Memo] Créez facilement un environnement CentOS 8 avec Docker
Exécutez JSP Hello World avec Tomcat sur Docker
Créez un notebook Jupyter avec Docker et exécutez ruby
Exécutez autossh en tant que service systemd sur CentOS