!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|http://www.pynq.io/board.html]から,[PYNQ rootfs arm v3.0.1|https://bit.ly/pynq_arm_v3_1] と [Prebuilt PYNQ source distribution binary v3.0.1|https://bit.ly/pynq_sdist_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 でパスワード求められるので注意が必要.