- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!PYNQ v2.5 ビルド
ちょっとZybo Z7-20のPYNQ環境を刷新したくなったので,
Xilinxの2019.1なツールセットに対応しているv2.5をビルド.
(対応バージョン は https://pynq.readthedocs.io/en/latest/pynq_sd_card.html の 表に)
生活マシンがUbuntu 18.04なのでVirtualBoxでUbuntu 16.04を動かしてビルドする.
::Ubuntu 18.04での準備
Vivado SDSoC 2019.1 と PetaLinuxをインストールしておく
* /opt/Xilinx/SDx/2019.1
* $HOME/tools/petalinux-v2019.1
とか.
::共有フォルダの準備
Vivadoやらツール一式はホストに入れてるものを使いたいので,
/optとホームディレクトリを共有フォルダに設定ゲストでmount.
sudo mount -t vboxsf opt /mnt
sudo mount -t vboxsf -o uid=1000,gid=1000 miyo $HOME/mnt
ホームディテクトリの方はuidのマッピングをする.
Vivadoやらは,パスをあわせたいので
sudo ln -sf /mnt/Xilinx /opt/
ln -sf $HOME/mnt/tools $HOME/
としておく
::PYNQのclone
PYNQはゲスト上でclone.適当な作業ディレクトリ$WORKを用意して,
mkdir -p $WORK
cd $WORK
git clone https://github.com/Xilinx/PYNQ
cd PYNQ
git checkout refs/tags/v2.5
::PYNQのための環境準備
ゲストで作業.環境準備用スクリプト
./setup_host.sh
でうまくいくはずなのだけど,dokcer-ceが上手く入らないみたい.
なので,先にdocker-ceをインストール
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
# GPGキーの登録
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 検証
sudo apt-key fingerprint 0EBFCD88
# リポジトリの追加
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt update
sudo apt install docker-ce
でOK.
あと,unzipがないとおこられたので,それもインストール.
sudo apt install unzip
で,
cd $HOME/mnt/src/PYNQ/sdbuild/scripts
./setup_host.sh
で環境が準備できる.
::ビルドスクリプト準備
ビルドスクリプト置き場を,
mkdir -p $WORK/PYNQ/myboards/Z7-20
とか作って,
ARCH_Z7-20 := arm
BSP_Z7-20 :=
BITSTREAM_Z7-20 := base.bit
STAGE4_PACKAGES_Z7-20 := pynq ethernet
という内容のZ7-20.specを作る.
::Vivadoで作ったリソースをコピー.
bitファイルとhdfをコピーしてくる.
bitファイルはVivadoのプロジェクトディレクトリ$PROJECTの下の$PROJECT.runs/impl_1に,
hdfファイルはVivadoのFileメニューからExport→Export Hardware...を選ぶと,
$PROJECT.sdkの下にできている.
cp ~/mnt/どこか/$PROJECT/$PROJECT.runs/impl_1/*.bit \
$WORK/PYNQ/myboards/Z7-20/base.bit
mkdir -p $WORK/PYNQ/myboards/Z7-20/petalinux_bsp/hardware_project
cp ~/mnt/どこか/$PROJECT/$PROJECT.sdk/design_1_wrapper.hdf \
$WORK/PYNQ/myboards/Z7-20/
mybords以下は,次のようになっているはず.
myboards/
└── Z7-20
├── Z7-20.spec
├── base.bit
└── petalinux_bsp
└── hardware_project
└── design_1_wrapper.hdf
:: ビルド
準備できたらPetaLinux使ってビルド...の前にビルド変数をセット.
cd $PYNQ/sdbuild
export PATH="/opt/crosstool-ng/bin:/opt/qemu/bin:$PATH"
source /opt/Vivado/2019.1/settings64.sh
source /opt/Xilinx/SDK/2019.1/settings64.sh
source /home/miyo/tools/petalinux-v2019.1/settings.sh
petalinux-util --webtalk off source /opt/Xilinx/SDx/2019.1/settings64.sh
PetaLinuxの環境変数をはじめてロードするのであれば,
WARNING: /bin/sh is not bash!
と,警告がでるかもしれない.
sudo dpkg-reconfigure dash
でNoを選ぶ.あと,
ERROR: You are missing the following system tools required by PetaLinux:
- diffstat
- xterm
みたいに足りないものリストがでてくるので適宜インストールして,再度,
source /home/miyo/tools/petalinux-v2019.1/settings.sh
する.
で,ビルド
make BOARDDIR=$WORK/PYNQ/myboards BOARDS=Z7-20