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についてはデザインのコンパイルも問題なく行えました。