VivadoのFloatingライセンスをゲットしたので使い方調べるがてらメモを残します。
Floatingライセンスの使い方
Floatingライセンスをどうやってやるのかよくわからない
https://docs.xilinx.com/v/u/2020.1-日本語/ug973-vivado-release-notes-install-license
1 ライセンスファイルを出力
ライセンスサーバに使うライセンスファイルをのMACアドレスなどで.licを出力する。Xilinxのライセンスセンターにアクセスして出力。 https://japan.xilinx.com/support/licensing_solution_center.html これの購入済みのライセンスについてというところをクリックして進む
2 ライセンスサーバを起動
ライセンスサーバはVivadoをダウンロードするページにある。ずっと起動することになるのでLinuxサーバとかでやった方がいい。 https://japan.xilinx.com/support/download.html 下の方にライセンス管理ツールがある。
Windowsで起動する場合:
Server Tool directory>\win64.o\lmgrd -c <path_to_license>\<license
filename>.lic – l <path_to_license>\<log filename>.log
これをPowershellなどで実行する。win64.o/lmgrdそのものが実行ファイル。
3 ライセンスマネージャーでこのように入力
localhostじゃない場合はサーバーのAddressを入力する。ポートは通常2100。
4 すると多分Statusを見ると各種通ってるはず
5 謎
これまで中途半端に合成してたやつを途中から合成しようとすると、キャッシュの問題かわからないけど再起動しても関係なく失敗してしまうので、デザインを一度消してから再度合成すると通るようになった。謎です。
21:20:54 (xilinxd) UNSUPPORTED: "xczu9eg" (PORT_AT_HOST_PLUS ) fumi-kbic@fumi-kbic (No such feature exists. (-5,346))と出ているのはデバッグログで気にしなくて良いらしい。
Linux
Linuxで同様にやってみた
Win同様にライセンス管理ツールをDL。
加えて、sudo apt install lsb-core
をやると動くようになた。
実行するとき:/home/fumi/lin_flm_v11.17.2.0/lnx64.o/lmgrd -c /home/fumi/lin_flm_v11.17.2.0/lnx64.o/Xilinx-linux.lic -l /home/fumi/lin_flm_v11.17.2.0/lnx64.o/log2.log
lmgrdとライセンスファイルとログの位置は適宜変更。
毎回起動するの無理すぎるのでsystemctlでnasのVM起動時に自動起動してくれるようにした。
[Unit] Description=Xilinx License Server [Service] Type=simple ExecStart=/home/fumi/lin_flm_v11.17.2.0/lnx64.o/lmgrd -c /home/fumi/lin_flm_v11.17.2.0/lnx64.o/Xilinx-linux.lic -l /home/fumi/lin_flm_v11.17.2.0/lnx64.o/log2.log [Install] WantedBy=multi-user.target
ホームディレクトリにライセンスサーバがあるとして、このようにする。systemctlでは~を使って省略することはできないらしいので、絶対パスで書く必要があることに注意。
Execstartにコマンドを直書きすることでOKらしい。
これを/etc/systemd/systemに設置する。
$ sudo cp xilinx_lisence.service /etc/systemd/system
fumi@synology-vm1:~$ sudo systemctl daemon-reload fumi@synology-vm1:~$ sudo systemctl enable xilinx_lisence.service Created symlink /etc/systemd/system/multi-user.target.wants/xilinx_lisence.service → /etc/systemd/system/xilinx_lisence.service.
fumi@synology-vm1:~$ sudo systemctl status xilinx_lisence.service ○ xilinx_lisence.service - Xilinx License Server Loaded: loaded (/etc/systemd/system/xilinx_lisence.service; enabled; vendor preset: enabled) Active: inactive (dead)
おりますね。
これをStart。
fumi@synology-vm1:~$ sudo systemctl start xilinx_lisence.service fumi@synology-vm1:~$ sudo systemctl status xilinx_lisence.service ○ xilinx_lisence.service - Xilinx License Server Loaded: loaded (/etc/systemd/system/xilinx_lisence.service; enabled; vendor preset: enabled) Active: inactive (dead) since Tue 2024-01-30 13:01:36 JST; 2s ago Process: 3748 ExecStart=/home/fumi/lin_flm_v11.17.2.0/lnx64.o/lmgrd -c /home/fumi/lin_flm_v11.17.2.0/lnx64.o/Xilinx-linux.lic -l /home/fumi/lin_flm_v11.17.2.0/lnx64.o/log2.log (code=exited, status=0/SUCCESS) Main PID: 3748 (code=exited, status=0/SUCCESS) CPU: 7ms 1月 30 13:01:36 synology-vm1 systemd[1]: Started Xilinx License Server. 1月 30 13:01:36 synology-vm1 systemd[1]: xilinx_lisence.service: Deactivated successfully.
あれ?実行中になってる?
調べてみると、type=simpleとしていると、フォアグラウンドで実行していることが前提となってしまい動かないらしい?(詳しくわかっていないのですがプログラムが終了するとsystemdのタスクが終了したとみなす?なぜlmgrdが終了してしまうのか…)
なのでtype=forkingとします。また、起動した時にネットワークがないとエラーで止まるのでネットワークが起動したら実行に依存関係を設定します。
[Unit] Description=Xilinx License Server After=network.target Wants=network.target [Service] Type=forking ExecStart=/home/fumi/lin_flm_v11.17.2.0/lnx64.o/lmgrd -c /home/fumi/lin_flm_v11.17.2.0/lnx64.o/Xilinx-linux.lic -l /home/fumi/lin_flm_v11.17.2.0/lnx64.o/log2.log [Install] WantedBy=multi-user.target
これを同様にreloadして実行。すでにEnableしてるのでEnableは不要。
sudo systemctl daemon-reload
sudo systemctl start xilinx_lisence.service
fumi@synology-vm1:~$ sudo systemctl status xilinx_lisence.service ● xilinx_lisence.service - Xilinx License Server Loaded: loaded (/etc/systemd/system/xilinx_lisence.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2024-01-30 14:07:09 JST; 18s ago Process: 7568 ExecStart=/home/fumi/lin_flm_v11.17.2.0/lnx64.o/lmgrd -c /home/fumi/lin_flm_v11.17.2.0/lnx64.o/Xilinx-linux.li> Main PID: 7569 (lmgrd) Tasks: 7 (limit: 4598) Memory: 1.9M CPU: 24ms CGroup: /system.slice/xilinx_lisence.service ├─7569 /home/fumi/lin_flm_v11.17.2.0/lnx64.o/lmgrd -c /home/fumi/lin_flm_v11.17.2.0/lnx64.o/Xilinx-linux.lic -l /ho> └─7571 xilinxd -T synology-vm1 11.17 7 -c :/home/fumi/lin_flm_v11.17.2.0/lnx64.o/Xilinx-linux.lic: -srv NpnJRECsZhD> 1月 30 14:07:09 synology-vm1 systemd[1]: Starting Xilinx License Server... 1月 30 14:07:09 synology-vm1 systemd[1]: Started Xilinx License Server.
あとで気づいたけどLICENCEです。lisenceではありません…(恥ずかしい)