- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!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 でパスワード求められるので注意が必要.