Quartus Ⅱ を Ubuntu 16.04 LTSにインストールした話

Quartus Ⅱ を Ubuntu 16.04 LTSにインストールした話

BEAN

Quartus Ⅱ が必要になった理由

4月になり, 学校が始まってしまいました. もう少しニート期間が欲しかったのですが…

で, 学校の実験においてFPGAをすることになり, Quartus Ⅱの環境が必要になりました. 学校のPCでできないこともないですが, 家である程度実験の課題を終わらせておきたさを感じたので, 自分の環境にQuartus Ⅱが欲しくなったわけです.

ちなみに今はQuartus Prime が最新版らしく, 学校で使うFPGA基盤が対応しているのがQuartus Ⅱだけ(なのかどうか詳しいことは知らない)らしいのでそれを入れなくてはなりません.

これがすんなりはいればいいのですが, どうもそう行かなかったので自分の導入メモをここに書いておこうとした次第.

ですのでこの記事が役に立ちそうなのは後輩ぐらい…(来年も同じ実験をするのかどうか微妙なラインですが).

残念ながら, 自分が持ってるmacにはQuartus Ⅱが対応していないので, 仮想環境上で環境構築を行います.

Quartus Ⅱ のインストール

環境

まず自分の環境を示しておきます.

  • PC: MacBook Pro (Retina, 13-inch, Early 2015, 10.13.4 High Sierra)
  • 仮想環境: Parallels Desktop Lite 1.3.0, Ubuntu 16.04 LTS

仮想環境について: Virtual Boxでもいいですが, 個人的にはParallels Desktop Liteの方が動作が軽い気がします.

インストールするものは

  • Quartus Ⅱ Web Edition 13.1.0.162

Quartus Ⅱ を インストールするための準備

仮想環境を構築したあと, sudo apt updateすると

*** Error in `appstreamcli': double free or corruption (fasttop): 0x0000000002fec630 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x77725)[0x7f2109b07725]

とエラーを吐くので,

sudo apt install --reinstall libappstream3

を実行.

これで自分の環境では解決しました.

この状態でとりあえず

sudo apt update && sudo apt upgrade

してから再起動しておきます.

次に32bitライブラリをインストールします. よくia32-libsをapt installしろと書かれますが, そんなものはないと蹴られてしまいます. なので以下で必要な32bitライブラリをインストールします.

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libxext6:i386 libxtst6:i386 libxi6:i386 libpng12-0:i386 libxext6:i386 libxi6:i386 libsm6:i386

Quartus Ⅱ のインストール.

Quartus ⅡのインストールはQuartus‐web‐13.1.0.162.isoを焼いたDVDを用います.

焼き終わったDVDをドライブに挿入して, 対話シェルを立ち上げます.

話を進める上で, インストール先は/opt/altera/13.1 にするので

sudo mkdir /opt/altera/

しておきます. DVDがマウントされればその場所でシェルを開いて, setup.shを叩きます.

sudo /bin/sh setup.sh

インストール先を聞かれるので/opt/altera/13.1と指定して, あとは指示に従うだけでこの辺はすんなり行きます.

インストールが完了すればQuartus Ⅱを立ち上げずにインストーラを終了させる.

次に環境変数の設定をします.

カレントディレクトリ下の.profileの最終行に以下を追記します.

export PATH=$PATH:/opt/altera/13.1/quartus/bin
export QUARTUS_64BIT=1

これで.profileをリロードします.

. ~/.profile

これでシェルからquartusと打って起動することを確認します.

これでなんとかいけてそうな気がしますが, 残念ながら"RLT Simulation"が起動しません.

多分シェルに ** Fatal: Read failure in vlm process (0,0)のエラーが吐かれているかと思います.

これはfreetype6ライブラリのバージョンによって起きるようで, 古いfreetype6を入れてやる必要があります.

まずはどこか適切なディレクトリ(ここでは~/Downloads)に移動して, freetype 2.4.12を落として展開し, ビルドします.

wget http://download.savannah.gnu.org/releases/freetype/freetype-2.4.12.tar.bz2
tar -xjvf freetype-2.4.12.tar.bz2
cd freetype-2.4.12
./configure --build=i386-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
make -j4

-j4部分は自分の環境に合わせて変更してください. わからなければmakeだけでもいけるはずです.

もしこの工程でエラーが吐かれてる場合, buildに必要なツールが足りていません. その場合, build-essential や gcc-multilib, g++-multilibをsudo apt installしましょう.

これでできたライブラリは~/Downloads/freetype-2.4.12/objs/.libs 下にあるので, このうちlibfreetype.so.6.10.1を/opt/altera/13.1/modelsim_ase/lib32 下に配置します.

sudo cp ~/Downloads/freetype-2.4.12/objs/.libs/libfreetype.so.6.10.1 /opt/altera/13.1/modelsim_ase/lib32/

ここで/opt/altera/13.1/modelsim_ase/lib32/libfreetype.so.6.10.1にシンボリックリンクを作成します.

cd /opt/altera/13.1/modelsim_ase/lib32/
ln -s libfreetype.so.6.10.1 libfreetype.so.6

このあと今配置したライブラリを使用させるために/opt/altera/13.1/modelsim_ase/bin/vsimを編集します.

cd /opt/altera/13.1/modelsim_ase/bin
sudo vim vsim

/opt/altera/13.1/modelsim_ase/bin/vsim の中にdir=``dirname $arg0`` と書かれた行があるので, この行の下に export LD_LIBRARY_PATH=/opt/altera/13.1/modelsim_ase/lib32/ を追記します.

またvsim内で指定されるディレクトリがLinuxカーネル4.0以上では正しくないようなので変更します.

case $utype in
    2.4.[7-9]*)       vco="linux" ;;
    2.4.[1-9][0-9]*)  vco="linux" ;;
    2.[5-9]*)         vco="linux" ;;
    2.[1-9][0-9]*)    vco="linux" ;;
    3.[0-9]*)         vco="linux" ;;
    *)                vco="linux_rh60" ;;
esac

これを以下のように変更します.

case $utype in
    2.4.[7-9]*)       vco="linux" ;;
    2.4.[1-9][0-9]*)  vco="linux" ;;
    2.[5-9]*)         vco="linux" ;;
    2.[1-9][0-9]*)    vco="linux" ;;
    3.[0-9]*)         vco="linux" ;;
    4.[0-9]*)         vco="linux" ;; 
    *)                vco="linux_rh60" ;;
esac

ここまで変更して, 次にこの変更したものを呼び出すためにQuartus Ⅱの設定の変更を行います.

Quartus Ⅱを起動して, Tool -> Options… -> EDA Tool Optionに移動. そのうちModelSim-Altera/opt/altera/13.1/modelsim_ase/binに指定します.

ここまできてようやくRLT Simulationが起動するようになります.

まとめ

必要だったQuartus Ⅱ はそこそこ古くて今の環境で動かすのに一苦労かけさせられます.

もし上記以外でエラーが出たら自分の書き忘れかもしれません. Mastodonかコメントに投げてもらえると何か答えれるかもしれません. 期間が空くと忘れそうですが…

もしエラーとかあると大抵ライブラリがないみたいなことだと思うので, /opt/altera/13.1/quartus/bin/opt/altera/13.1/modelsim_ase/bin以下のものを直接叩いて何が必要か調べてみてください.

Windows環境は知りません. 最近Windows環境を無くしましたし, 検証のしようがないので.

あとがき

そろそろLPIC Lelel 1受験しようと思います. というか101試験に関しては明日受けにいってきます. 102試験も終わると何かその事に関して書くかもしれませんが, あまり詳しくかけないでしょう. 規約的なアレで.

最近飲んだ飲料の中でKIRINの『晴れと水 白樺でろ過した天然水 手摘みレモン』というのが結構好きでした. 薄い味の飲料結構好きかもしれません. 大塚製薬のイオンウォータとかも同じ理由で好きです.

と無駄話で終わりです.

参考にしたサイト

comments powered by Disqus