LoginSignup
2
2

More than 3 years have passed since last update.

DockerのゲストOSをCentOS 7.4として古いVivadoを動かす

Last updated at Posted at 2020-10-10

Linux版Vivadoの動作環境について

  みなさんこんにちは。よくFPGA開発をする際問題になるのは,Vivadoのバージョンだったりします。
何年も前から続いてるプロジェクトだったりするとどうしても最新のVivadoが使えないケースも出てきます。
このとき困るのは,VivadoをLinux上で動かす必要があるときです。

Xilinxのページによると,Vivado 2018.2が動作可能なLinuxとしては

  • Red Hat Enterprise Workstation/Server 7.2、 7.3、 および 7.4 (64 ビッ ト )
  • Red Hat Enterprise Workstation 6.6、 6.7、 6.8、 および 6.9 (64 ビッ ト )
  • SUSE Linux Enterprise 11.4 および 12.3 (64 ビッ ト )
  • CentOS 7.2、 7.3、 および 7.4 (64 ビッ ト )
  • CentOS 6.7、 6.8、 および 6.9 (64 ビッ ト )
  • Ubuntu Linux 16.04.3 LTS (64 ビッ ト )

が挙げられています。どれもこれも少なくとも3年くらい前の古いOSです。
急遽Vivado 2018.2が必要になったからといって,新しい環境のPCを仕立ててくるのも,大変です。
そこでDockerの出番です。

試した環境

ホスト側OS

  • Ubuntu 20.04 LTS
  • Dockerはaptからインストールできるものを使用

ゲスト側OS

  • Cent OS 7.4

手順

Dockerfileを用意する

まず次のようなDockerfileを用意しました。

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

Dockerfileでは開発ツール一式,X11クライアントとして動かすために必要なもの一式,sudoをインストールするようにしています。
また当初試したときいくつかのライブラリが不足したため,それを補うようにしてあります。

パスワード無しでsudoできるようにもしてあります。

Dockerイメージのビルド

このDockerfileからビルドするイメージをcentos_xilとして次のコマンドでビルドを行います。

docker build -t centos_xil .

ビルドしたイメージの起動

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

ここで注意しておきたいのは,まずゲストOS側でアプリケーションを実行して,ホスト側のXサーバにGUIが表示されるようにするため,
環境変数DISPLAYをコンテナに渡し,X11の環境をマウントによってコンテナとホスト側で共有するようにしていることです。
次にホームディレクトリを共有していることにも注目する必要があります。Vivadoのインストールによってイメージが肥大することを防いだり,開発環境をコンテナとホスト側でやりとりしたりする手間を省く効果を狙っています。

Vivadoのインストール

コンテナ上でVivadoのインストーラを実行します。インストーラはホームディレクトリに一時ファイル置き場を作ってそこにダウンロードしておくのが良いでしょう。日本語の名前になっている「ダウンロード」ディレクトリには入れない可能性があります。インストール先は権限の問題などもあり,~/Xilinxとしました。

VivadoとSDKの動作確認

上記の手順を踏むことで,問題なくVivadoとSDKが起動することは確認できました。

Vivadoについてはデザインのコンパイルも問題なく行えました。

参照したページ(順不同)

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2