Ubuntu 20.04LTSでQuartusを使いたい

2022/07/14

Quartus 19.1をUbuntu 20.04LTSで動かしたい。 18.04LTSのマシンでは問題なく動作しているので、以下のシンプルなコンテナイメージを作成。

Dockerfile

イメージ生成コマンド

docker build . -t aocl:devel

参考にした元のDockerfileからの変更点は

  1. zsh, ping, emacs等のコマンドを追加した。
  2. en_US.UTF-8のlocaleを設定した。
  3. 中に入って作業するためのsshのポートを10022に設定した。内部では"testuser"のアカウントで作業をする。
  4. “testuser"で必要な設定は、初ログイン後”.zshenv"等に適切に設定して、差分をcommitする必要がある。
  5. Quartus自体はhost側にインストールされているディレクトリをそのまま利用する。

run script

起動スクリプトはrun-fpgaを参考にして作成した。 物理NICのインターフェイスがないとquartus_fitが動作しないので、host networkを使う。

利用方法

ssh -p 10022 localhost

でログイン。ホストとコンテナの共有ディレクトリにOpenCLカーネルなど必要ファイルをおき、aoclコマンドを実行する。

なお、「dockerコンテナにsshすなー」という意見もあるそうです。

現状の問題点

ホームディレクトリをNFS共有している場合、複数のホストでこのイメージのコンテナを実行すると、 二つ目以降のコンテナにssh接続すると、host keyが変わったという例の文句がでる。 理想的には、同じDockerfileだが、起動ポートを変える方がよさそう。

“~/.ssh/config"に以下の設定を追加して回避中。

Host localhost
  StrictHostKeyChecking no
  UserKnownHostsFile=/dev/null