はじめに
Vitis/VivadoのWindows版を使用していたのですが、Linuxの環境で統一したくなったので、WSL2に入れ直しました。
公式にはサポートされてませんが、インストールしている方はいらっしゃるようなので、簡単にできるのではと思ったんですが、私の試したーバージョンでは、Vitisが表示されないという事情もあったので、記事にしておきます。
バージョン
Windows 11 23H2
Vitis/Vivado 2024.2
WSLのOS Ubuntu 24.04
手順
Linux版のインストール方法に従ってインストールします。
ドキュメントに従って必要なパッケージのインストールをする
sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update
sudo apt-get install libgl1-mesa-glx
sudo apt-get install libgl1-mesa-dri
sudo apt-get install libgl1-mesa-dev
sudo add-apt-repository --remove ppa:xorg-edgers/ppa
sudo apt install net-tools
sudo apt-get install -y unzip
sudo apt install gcc
sudo apt install g++
vitisをインストール後起動してみたら、次のライブラリーが不足していて起動できませんでした。
WSLのUbuntu 24.04の場合、足りないのだとおもわれます。インストールしておきます。
詳しくは、補足3に記載。
xlsclientsがないと、Vitisが正常に動作しなかったのでx11-utilsをインストールします。
sudo apt-get install libasound2t64
sudo apt-get install libsecret-1-0 libsecret-1-dev
sudo apt install x11-utils
localeに関するエラーが発生するので、en_US.UTF-8をインストールします。次のコマンドを実行しておきます。
sudo locale-gen en_US.UTF-8
sudo dpkg-reconfigure locales
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
Downloadサイトから、 AMD 統合インストーラー (FPGA およびアダプティブ SoC 用) 2024.2: Linux Self Extracting Web Installer
をダウンロードして、WSL2のシェルから実行する
ダウンロードしたインストーラをsudoをつけて実行。
デフォルトのインストールディレクトリが/toolsだったので、sudoつけました。
ユーザで書き込めるディレクトリにインストーするのだったら、sudoは不要かもしれません。
INFO Could not detect the display scale (hDPI).
If you are using a high resolution monitor, you can set the installer scale factor like this:
export XINSTALLER_SCALE=2
setenv XINSTALLER_SCALE 2
SCALEを設定すると大きい文字にできるようです。私の環境では、きにならなかったので、このまま進めました。
WSLgが有効になっているのでXサーバ等の考慮は不要で、GUIで表示されるインストール画面が表示されました。
画面の表示に従って、操作します。
インストールが開始されます。
インストール完了
指示されたスクリプトを実行
$ cd /tools/Xilinx/Vitis/2024.2/scripts/
$ sudo ./installLibs.sh
インストール完了しました。
.bashrc
に次の記述を追加します。
source /tools/Xilinx/Vitis/2024.2/settings64.sh
一度WSLを開きなおして、.bashrcを読み込みます。
vitisを起動してみます。
vitis
しばらく待ってもGuiが何も表示されません。
プロセスは起動してるのに。
vivadoは、起動しました。
vitisが起動できない原因判明
※当初、libwebkit2gtk
が不足が原因と記載していましたが、再インストールして確認したところ、このライブラリーをインストールする必要はありませんでした。
修正いたします。
/tools/Xilinx/Vitis/2024.2/bin/vitis
の205行目を次のように書き換えます
-LD_LIBRARY_PATH=$XILINX_VITIS/lib/lnx64.o:$LD_LIBRARY_PATH
+LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$XILINX_VITIS/lib/lnx64.o:$LD_LIBRARY_PATH
詳しくは、補足2を参照してください。
vitis起動できました。
今後の予定
USBのJTAGを使えるようにする必要がありますが、Windows側にhw_serverを起動することで、WSLのvivadoから使えるようにできます。
補足
上に書いた手順は、順調にいった時の手順です。
Vitisのインストールで、次の画面で進捗が止まって進まなくなる事態が起きました。
この画面から進まないので、Cancelを押したら、インストールしたものが全部削除されました。
- ダウンロードだけするというオプションがあったのでダウンロードだけして、インストールするした
- インストールするデバイスを、Zinqだけにしてみた(いまのところこれ以外使わないので)
という対応をしたら、うまく行きました。原因は不明です。
同様の現象が発生した場合は参考にしてみてください。
補足2
$XILINX_VITIS/ide/electron-app/lnx64/vitis-ide
このコマンドで起動するとVitisを起動する事ができました。
違いを調査した結果、Vitisの起動スクリプトで、LD_LIBRARY_PATH
に$XILINX_VITIS/lib/lnx64.o
を追加している事が原因で、Vitisが動作しなくなっていました。
動作しない場合は、次のようなライブラリーのロードエラーが発生していました。
masa@DESKTOP-HP:~$ /home/masa/tools/Xilinx/Vitis/2024.2/ide/electron-app/lnx64/vitis-ide: /home/masa/tools/Xilinx/Vitis/2024.2/lib/lnx64.o/Ubuntu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /lib/x86_64-linux-gnu/libgallium-24.2.8-1ubuntu1~24.04.1.so)
/home/masa/tools/Xilinx/Vitis/2024.2/ide/electron-app/lnx64/vitis-ide: /home/masa/tools/Xilinx/Vitis/2024.2/lib/lnx64.o/Ubuntu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /lib/x86_64-linux-gnu/libgallium-24.2.8-1ubuntu1~24.04.1.so)
/home/masa/tools/Xilinx/Vitis/2024.2/ide/electron-app/lnx64/vitis-ide: /home/masa/tools/Xilinx/Vitis/2024.2/lib/lnx64.o/Ubuntu/libstdc++.so.6: version `GLIBCXX_3.4.28' not found (required by /lib/x86_64-linux-gnu/libgallium-24.2.8-1ubuntu1~24.04.1.so)
/home/masa/tools/Xilinx/Vitis/2024.2/ide/electron-app/lnx64/vitis-ide: /home/masa/tools/Xilinx/Vitis/2024.2/lib/lnx64.o/Ubuntu/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by /lib/x86_64-linux-gnu/libLLVM.so.19.1)
/home/masa/tools/Xilinx/Vitis/2024.2/ide/electron-app/lnx64/vitis-ide: /home/masa/tools/Xilinx/Vitis/2024.2/lib/lnx64.o/Ubuntu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /lib/x86_64-linux-gnu/libLLVM.so.19.1)
/home/masa/tools/Xilinx/Vitis/2024.2/ide/electron-app/lnx64/vitis-ide: /home/masa/tools/Xilinx/Vitis/2024.2/lib/lnx64.o/Ubuntu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /lib/x86_64-linux-gnu/libLLVM.so.19.1)
/home/masa/tools/Xilinx/Vitis/2024.2/ide/electron-app/lnx64/vitis-ide: /home/masa/tools/Xilinx/Vitis/2024.2/lib/lnx64.o/Ubuntu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /lib/x86_64-linux-gnu/libLLVM.so.19.1)
LD_LIBRARY_PATH
にUbuntu24のライブラリーを先に指定する記述を追加して、回避してみました。この方法で、問題ないかどうかはわかりませんが、起動する事はできました。
この状況はWSLに限らない問題のような気がします。
ドキュメントには、Vitisのドキュメントには、Ubuntu24もサポートしているような記述がありますが、Ubuntu24はサポートされていないのでしょうか?
補足3
vitisこのスクリプトでは、$XILINX_VITIS/ide/electron-app/lnx64/vitis-ide
起動時にエラーメッセージを/dev/nullに出力して表示していないので、ログを表示するように修正して起動してみました。
masa@DESKTOP-HP:/tools/Xilinx/Vitis/2024.2/bin$ vitis-x
****** Vitis Development Environment
****** Vitis v2024.2 (64-bit)
**** SW Build 5238363 on 2024-11-08-17:54:51
** Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
** Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
masa@DESKTOP-HP:/tools/Xilinx/Vitis/2024.2/bin$ /tools/Xilinx/Vitis/2024.2/ide/electron-app/lnx64/vitis-ide: error while loading shared libraries: libasound.so.2: cannot open shared object file: No such file or directory
libasound.so.2を追加。
sudo apt-get install libasound2t64
Error: libsecret-1.so.0: cannot open shared object file: No such file or directory
at process.func [as dlopen] (node:electron/js2c/asar_bundle:5:1800)
at Object.Module._extensions..node (node:internal/modules/cjs/loader:1170:18)
at Object.func [as .node] (node:electron/js2c/asar_bundle:5:1800)
at Module.load (node:internal/modules/cjs/loader:982:32)
at Module._load (node:internal/modules/cjs/loader:823:12)
at Function.c._load (node:electron/js2c/asar_bundle:5:13331)
at Module.require (node:internal/modules/cjs/loader:1006:19)
at require (node:internal/modules/cjs/helpers:93:18)
at Object.<anonymous> (/tools/Xilinx/Vitis/2024.2/ide/electron-app/lnx64/resources/app/node_modules/keytar/lib/keytar.js:1:14)
at Module._compile (node:internal/modules/cjs/loader:1110:14) {
code: 'ERR_DLOPEN_FAILED'
}
libsecret-1.so.0を追加
sudo apt-get install libsecret-1-0 libsecret-1-dev
補足4
Ubuntu22.04の場合は、Vitis起動時に次のエラーが発生
/tools/Xilinx/Vitis/2024.2/ide/electron-app/lnx64/vitis-ide: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory
/tools/Xilinx/Vitis/2024.2/ide/electron-app/lnx64/vitis-ide: error while loading shared libraries: libasound.so.2: cannot open shared object file: No such file or directory
sudo apt install libnss3
sudo apt install libasound2
sudo apt install libsecret-1-0
参考
https://qiita.com/basaro_k/items/04eea702c83a927f920c
https://qiita.com/GeekMasahiro/items/314e38927d69370ab70d