Quartus 19.1をUbuntu 20.04LTSで動かしたい。 18.04LTSのマシンでは問題なく動作しているので、以下のシンプルなコンテナイメージを作成。
Dockerfile
イメージ生成コマンド
docker build . -t aocl:devel
参考にした元のDockerfileからの変更点は
- zsh, ping, emacs等のコマンドを追加した。
- en_US.UTF-8のlocaleを設定した。
- 中に入って作業するためのsshのポートを10022に設定した。内部では"testuser"のアカウントで作業をする。
- “testuser"で必要な設定は、初ログイン後”.zshenv"等に適切に設定して、差分をcommitする必要がある。
- 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