Microsemi Libero
[1] より:
- Libero® SoC Design Suite は Microsemi の PolarFire, IGLOO2, SmartFusion2, RTG4, SmartFusion, IGLOO, ProASIC3, Fusion ファミリーと包括的で学びやすく採用しやすい開発ツールによって高い生産性を発揮します。
この記事では Arch Linux に Microsemi Libero ツールチェインをインストールする方法を説明します。
目次
インストール
要件
Libero は 45GiB の空き容量を必要とします。
パッケージのインストール
Libero は multilib の32ビットのパッケージに依存しています。pacman を使って multilib のパッケージをインストールするには、先に multilib リポジトリを有効化する必要があります。
次のパッケージをインストールしてください: openmotif zlib lib32-libxft lib32-libpng12 lib32-dbus lib32-sqlite lib32-libpulse
Qt5 の32ビット依存ライブラリ
Liberos の一部の共有ライブラリは32ビットの Qt5 ライブラリ (libQt5XcbQpa.so.5
, libQt5Gui.so.5
, libQt5DBus.so.5
, libQt5Core.so.5
) に依存します。残念ながら multilib リポジトリからインストールできないため、手動で追加する必要があります。
Qt 32-bit online installer から Qt の32ビットインストーラをダウンロードして実行してください:
$ chmod u+x qt-unified-linux-x86-2.0.5-2-online.run $ ./qt-unified-linux-x86-2.0.5-2-online.run
"Qt 5.5" -> "Desktop gcc" をインストールすれば十分です。インストールのパスは /home/user/lib/qt5_32
のように設定してください (user はあなたのユーザー名に置き換えてください)。
ファイルの抽出
インストーラは Java ランタイムを展開しデフォルトでは一時ファイルの保存場所に /tmp
を使います。/tmp
に十分な空き領域があることを確認してください。デフォルトの 8GB の tmpfs ではインストールするのに十分ではありません。無効化してからシステムを再起動して変更を適用してください:
# systemctl mask tmp.mount # reboot
https://www.microsemi.com/product-directory/design-resources/1750-libero-soc#downloads から "Libero SoC v12.1 for Linux" インストールファイルをダウンロードしてください (アカウントの作成が必要です)。実行可能属性を付与して実行してください:
$ chmod u+x Libero_SoC_v12.1_lin.bin $ ./Libero_SoC_v12.1_lin.bin -i console
インストーラが起動したら、質問に答えて、ファイルの展開先を /home/user/programs/microsemi/libero/v12.1/
や /home/user/programs/microsemi/common
などに設定してください。グラフィカルインストーラも存在します。上記のコマンドの console
を gui
に置き換えてください。
サイレントインストール
コマンドラインでインストールのパラメータをスクリプトに指定することもできます。例えばデフォルトのインストールの場合:
$ ./Libero_SoC_v12.1_lin.bin -i silent \ -DUSER_INSTALL_DIR=/home/user/programs/microsemi/libero/v12.1/ \ -DUSER_COMMON_DIR=/home/user/programs/microsemi/common \ -DCHOSEN_FEATURE_LIST=Synplify,ModelSim,ModelsimPro,Identify,Libero \ -DCHOSEN_INSTALL_FEATURE_LIST=Synplify,ModelSim,ModelsimPro,Identify,Libero \ -DCHOSEN_INSTALL_SET=Libero
インストール後
インストールが完了したら tmpfs を再度有効化してください:
# systemctl unmask tmp.mount # reboot
Arch Linux で Libero を実行するには設定が必要です。
Libero は古いバージョンの motif ライブラリをロードしようとします。以下のファイルを修正して case `uname`
ブロックの 3 を 4 に変えてください:
/home/user/programs/microsemi/libero/v12.1/Libero/bin/actel_setup_vars
... case `uname` in SunOS) ... Linux) arch=lin # X/Motif MOTIF_LIB=libXm.so.4 ...
また、Microsemi が同梱しているバージョンの libz
は古いため、公式リポジトリに存在する lib32-libpng12 で機能しません。/home/user/programs/microsemi/libero/v12.1/Libero/lib
ディレクトリで以下のコマンドを実行して Libero が pacman でインストールされたライブラリを使うようにしてください:
$ mv libz.so.1 libz.so.1.old $ ln -s /lib/libz.so libz.so.1
FlashPro ユーティリティを使えるようにするため /home/user/programs/microsemi/libero/v12.1/Libero/libfp
でも上記のコマンドを実行してください。
vault のパスの定義時にインストーラはダブルクォートを誤って追加します。そのため Libero は作業ディレクトリに ""
という名前のフォルダを作成してしまいます。この問題を解決するには install.def
ファイルを手動で編集して VAULT_LOCATION
が定義されている行からダブルクォートを削除してください:
/home/user/programs/microsemi/libero/v12.1/Libero/data/install.def
... data VAULT_LOCATION '/home/user/programs/microsemi/common/vault' OVERRIDE ...
もしくは以下のコマンドを実行してクォートを取り除いてください:
$ cd /home/user/programs/microsemi/libero/v12.1/Libero/data $ sed 's/"//g' install.def > tmp.def $ cp tmp.def install.def $ rm tmp.def
Libero の起動
Libero の起動時には環境変数を設定する必要があります:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/lib/qt5_32/5.5/gcc/lib LM_LICENSE_FILE="port@domain.of.your.license.server" SNPSLMD_LICENSE_FILE="port@domain.of.synopsys.license.server"
$LD_LIBRARY_PATH
には32ビットの Qt のインストールパスを、$LM_LICENSE_FILE
にはライセンスデーモンが動作している Libero のライセンスサーバーを設定してください。$SNPSLMD_LICENSE_FILE
は Libero で使われる Synopsys ツールで必要になります。複数のライセンスデーモンを起動している場合、別のサーバーに設定してください。
上記の変数を設定したら以下のコマンドで Libero を起動できます:
$ /home/user/programs/microsemi/libero/v12.1/Libero/bin/libero
以下のように起動スクリプトを作成すると良いでしょう:
/home/user/scripts/launch_libero.sh
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/lib/qt5_32/5.5/gcc/lib LM_LICENSE_FILE="port@domain.of.your.license.server" SNPSLMD_LICENSE_FILE="port@domain.of.synopsys.license.server" /home/user/programs/microsemi/libero/v12.1//Libero/bin/libero
忘れずに実行可能属性を付与してください:
$ chmod u+x /home/user/scripts/launch_libero.sh
アプリケーションメニューエントリ
~/.local/share/applications
ディレクトリに libero.desktop
ファイルを作成することで freedesktop.org アプリケーションメニューエントリを追加することができます:
~/.local/share/applications/libero.desktop
[Desktop Entry] Version=1.0 Name=Libero SoC Design Suite v12.1 Comment=Microsemi Design Software for Microsemi FPGAs and SoCs Exec=/home/user/scripts/launch_libero.sh Icon=/home/user/programs/microsemi/libero/v12.1/libero.xpm Terminal=false Type=Application Categories=Development
FlashPro プログラマを使う
プログラマ (例: Microsemi FlashPro5) を使うには2つの設定が必要です: デバイスに権限を与えるルールの追加と衝突するカーネルモジュールのアンロードです。
udev ルールの追加
プログラマにアクセスするための適切な権限を追加するために root で udev ルールセットに以下のファイルを追加してください:
/etc/udev/rules.d/70-microsemi.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="1514", ATTR{idProduct}=="2008", MODE="0666", GROUP="microsemi-prog" SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6001", MODE="0666", GROUP="microsemi-prog"
グループ microsemi-prog
はただの例です。別のグループに置き換えたり、新しいグループを追加して user ユーザーを属させることができます:
# groupadd microsemi-prog # usermod -aG microsemi-prog user
一度ログアウトすることで新しいグループが適用されます。newgrp microsemi-prog
で新しいグループを適用することもできます。グループを確認するには id
または groups
を実行してください。
衝突するカーネルモジュールの削除
プログラマを接続すると FTDI シリアルデバイスとして認識され、対応するカーネルドライバーがロードされます。Liberos ソフトウェアはそのカーネルドライバーでは機能しないためアンロードする必要があります:
# rmmod ftdi_sio
ドライバーを永続的にアンロードしたい場合は以下をブラックリストに追加:
/etc/modprobe.d/blacklist-ftdi.conf
blacklist ftdi_sio