トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

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.1Prebuilt 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 でパスワード求められるので注意が必要.