ZCU102用にPYNQ環境を構築しようと調べたところ、とても参考になる記事がありました。
しかしファイル名等、現在では環境がかなり変わってきたので、image_v2.6.2
をベースにビルド方法と動作確認を備忘録として残しておきます。
前提となる環境
- Ubuntu 18.04
- Vitis 2020.1
- Petalinux 2020.1
事前準備
次のファイルを~/に用意します。
- ZCU104用PYNQ Image (zcu104_v2.6.0.img) (from: http://www.pynq.io/board.html)
- ZCU102 BSP 2020.1 (xilinx-zcu102-v2020.1-final.bsp) (from: https://japan.xilinx.com/support/download.html)
ビルド実行
以下のスクリプトを実行します。
スクリプトの中の./scripts/setup_host.sh
の時点でQEMU等をコンパイル・インストールするので、Ubuntu 18.04のroot権限が必要です。
CPUがRyzen 9 5950X搭載のUbuntu 18.04でビルドは約30分かかりました。
またPYNQ
ディレクトリ全体で約33GB消費します。
# pynq
git clone https://github.com/Xilinx/PYNQ.git -b image_v2.6.2 --depth 1
cd PYNQ
# ZCU102 setting
cp -rf ./boards/ZCU104 ./boards/ZCU102
rm -rf ./boards/ZCU102/petalinux_bsp/
mv ./boards/ZCU102/ZCU104.spec ./boards/ZCU102/ZCU102.spec
sed -i -e "s/104/102/g" ./boards/ZCU102/ZCU102.spec
# copy files
cp ~/xilinx-zcu102-v2020.1-final.bsp ./boards/ZCU102/
mkdir ./sdbuild/prebuilt
cp ~/zcu104_v2.6.0.img ./sdbuild/prebuilt
# install qemu,crosstool-ng
cd ./sdbuild/
./scripts/setup_host.sh
# path
PATH=/opt/qemu/bin:/opt/crosstool-ng/bin:$PATH
source /<path/to>/Petalinux/2020.1/settings.sh
source /<path/to>/Vitis/2020.1/settings64.sh
# build
sudo echo
make BOARDS=ZCU102 PREBUILT=./prebuilt/zcu104_v2.6.0.img
動作確認
ビルドが完了すると、PYNQ/sdbuild/output
にZCU102-2.6.0.img
という名でイメージファイル(約7GB)が生成されます。
これをSDカードに書き込みます。
自分はWindowsにコピーして、rufusでSDカードに書き込みました。
SDカードをZCU102に挿入してブートさせると、DisplayPort出力からPYNQのデスクトップ環境が立ち上がります。
Chromiumブラウザーからlocalhost
を入力すると、Jupyter Notebookに入ることができます。パスワードはxilinx
です。
ザイリンクス デバイス向けの認定 Ubuntu
本題からは逸れますが、Xilinx用Ubuntuイメージがリリースされています。
https://japan.xilinx.com/products/design-tools/embedded-software/ubuntu.html
Ubuntuのバージョンは20.04のようです(PYNQは18.04)。ZCU102に対応しており、すぐに確認することができます。
Wikiページを参照すると、Vitisプラットフォームに対応したユーティリティがあるようですね。
今後はPYNQがXilinx Ubuntuに取り込まれていくのでしょうか。ユーザーとしては気になるところです。