トップ 一覧 Farm 検索 ヘルプ RSS ログイン

Diary/2019-11-3の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!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