Diary/2023-8-27
PYNQのビルド
https://wasa-labo.com/wp/?p=612 がだいぶ古かったのでアップデート
https://pynq.readthedocs.io/en/latest/pynq_sd_card.html が元ネタ
- Vivadoのインストール
Vivado 2022.1をインストールして,2022.1.1と2022.1.2までアップデートしておく.
/tools/Xilinx/Vivado/2022.1 とかにインストールされていると仮定.
Vivado 2019.1を必要とするPYNQ v2.5以降はSDxは不要になっている(というか,なくなった).
- VirtualBoxのインストール
ドキュメント通りVagrant使うのがいいのかもしれないけど,手動でセットアップ.
VirtualBoxをインストールして,Ubuntu 20.04.6環境をセットアップ.
ドキュメントのサポートOSには20.04.3までしか記載されてないけど20.04.6.
なお,好みでserver版を選択.
ホストOSの /tools を /tools にマウントするなど,開発環境を共有できるようにしておく.
- PYNQのビルド準備
リポジトリクローンして,セットアップスクリプトを実行.
git clone https://github.com/Xilinx/PYNQ.git cd PYNQ/sdbuild ./scripts/setup_host.sh
途中で
E: Unable to locate package zlib1g:i386
とか言われたら
sudo dpkg --add-architecture i386 sudo apt update
してやりなおし.他にも途中でエラーがでたらインストールしてやりなおし.
自分の環境では,
sudo apt install libncurses-dev
が必要だった.
PYNQのLinuxイメージには事前ビルド済みのアーカイブっを利用する.
pynq.ioから,PYNQ rootfs arm v3.0.1 と Prebuilt PYNQ source distribution binary v3.0.1 をダウンロードして,
それぞれ
cp jammy.arm.3.0.1.gz ./prebuilt/pynq_rootfs.arm.tar.gz cp pynq-3.0.1.tar.gz ./prebuilt/pynq_sdist.tar.gz
としてコピーする.
最後にPetaLinux 2022.1をインストール.たとえば,
chmod 755 petalinux-v2022.1-04191534-installer.run ./petalinux-v2022.1-04191534-installer.run -d /opt/xilinx/petalinux-v2022.1-04191534
とか.
最後に,Vivadoの実行に必要なライブラリで不足してるものをインストール.手元では,
sudo apt install libtinfo-dev libtinfo5
が必要だった.
- ビルド
環境変数を読み込んで
source /tools/Xilinx/Vivado/2022.1/settings64.sh source /opt/xilinx/petalinux-v2022.1-04191534/settings.sh
試しにPYNQ-Z1だけビルドしてみる.Makefileに
ALLBOARDS ?= $(basename $(notdir $(wildcard $(BOARDDIR)/*/*.spec))) BOARDS ?= $(ALLBOARDS)
とあるので
BOARDS=Pynq-Z1 make
としてPynq-Z1向けだけのビルドを実行.
途中で sudo でパスワード求められるので注意が必要.