!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