LoginSignup
10
9

More than 5 years have passed since last update.

Ultra96-PYNQを自分でビルドする

Last updated at Posted at 2019-03-13

Avnet社Ultra96ボードで動作するPYNQ v2.4を自前でビルドする手順です。

単にUltra96-PYNQを使うだけなら、ビルド済のイメージをAvnetのページからダウンロードしてSDカードに書き込めばOKですが、カーネルの設定を変えたいなどの場合は一からビルドする必要があると思います。

おおまかな手順はUltra96-PYNQリポジトリのREADME.mdに書いてある通りです。備忘録として詳細をまとめました。

準備

OS

Ubuntu 16.04をインストールしたマシンを用意します。
ディスクの空き容量は200GB130GBぐらい必要です。メモリは最低8GB必要とのことです。

Xilinx開発環境のインストール

SDSoC 2018.3

Xilinxのダウンロードページから「Linux 64 用 SDSoC 2018.3 ウェブ インストーラー」をダウンロードしてインストールします。

PetaLinuxツール 2018.3

同じくXilinxのダウンロードページから「PetaLinux 2018.3 インストーラー」をダウンロードしてインストールします。
足りないパッケージがある場合は適宜sudo apt installします。

zshを使っている場合、設定スクリプトのsettings.shを次の通り書き換えるとよいです。
(インストールしたディレクトリは /opt/petalinux-v2018.3-final )

 SETTINGS_FILE='settings.sh'
 # The right location will be replaced by the installer
-XIL_SCRIPT_LOC="./"
+XIL_SCRIPT_LOC="/opt/petalinux-v2018.3-final/"

 if [ $# != 0 ]; then
    # The first argument is the location of PetaLinux Installation
@@ -14,18 +14,18 @@
    XIL_SCRIPT_LOC="$1"
 else
    #  XIL_SCRIPT_LOC should point to script location
-   if [ "$0" == "ksh" ]; then
+   if [ "$0" = "ksh" ]; then
        XIL_SCRIPT_LOC_TMP_UNI=`readlink -f ${XIL_ARG_}`
    else
        XIL_SCRIPT_LOC_TMP_UNI=$BASH_SOURCE
    fi
    XIL_SCRIPT_LOC_TMP_UNI=${XIL_SCRIPT_LOC_TMP_UNI%/*}
    if [ "$XIL_SCRIPT_LOC_TMP_UNI" != "" ]; then
-       if [ "$XIL_SCRIPT_LOC_TMP_UNI" == "settings.sh" ]; then
+       if [ "$XIL_SCRIPT_LOC_TMP_UNI" = "settings.sh" ]; then
            XIL_SCRIPT_LOC_TMP_UNI="./"
        fi
        XIL_SCRIPT_LOC_TMP_UNI=`readlink -f ${XIL_SCRIPT_LOC_TMP_UNI}`
-       if [ $? == 0 ]; then
+       if [ $? = 0 ]; then
            XIL_SCRIPT_LOC=${XIL_SCRIPT_LOC_TMP_UNI}
        fi
    fi

それぞれのツールにパスを通します。

$ source /opt/sdsoc.2018.3/SDx/2018.3/settings64.sh
$ source /opt/petalinux-v2018.3-final/settings.sh

Ultra96-PYNQのビルド

Ultra96-PYNQの取得

Ultra96-PYNQをGitHubからcloneします。

$ git clone https://github.com/Avnet/Ultra96-PYNQ

最新のimage_v2.4ブランチをチェックアウトします。2018.3より古いXilinxツールをインストールしている場合は適当なブランチに変更して下さい。

$ git checkout image_v2.4

PYNQの取得

PYNQをGitHubからcloneします。

$ git clone https://github.com/Xilinx/PYNQ

image_v2.4ブランチをチェックアウトします。

$ git checkout image_v2.4

ビルド

ビルド用のディレクトリに移動します。

$ cd PYNQ/sdbuild

PYNQのビルドに必要なパッケージとQEMUとCrosstool-NGは、スクリプトでまとめてインストールするようになっています。スクリプトの途中sudoを使っているところがあるため、パスワードなしでsudoできるようにしておきます。

$ sudo visudo

で設定ファイルを開き、

<ユーザ名> ALL=NOPASSWD: ALL

を最後の行に追加します。

ビルドのセットアップスクリプトを実行します。

$ scripts/setup_host.sh

QEMUとCrosstool-NGのインストールディレクトリにパスを通します。

$ export PATH=/opt/qemu/bin:/opt/crosstool-ng/bin:$PATH

これで準備が整いました。Ultra96-PYNQをcloneしたパスを指定してビルドします。

$ make clean
$ make BOARDDIR=/home/okuhata/Ultra96-PYNQ

かなり時間がかかります。パスワードなしでsudoができない場合、ビルド途中でパスワード入力を求められます。

完了

ビルドしてできたイメージはPYNQ/sdbuild/output/Ultra96-2.4.imgにあります。
出来上がったイメージをmicroSDカードに書き込み、Ultra96ボードに挿入して起動します。

参考

ZCU102向けPYNQビルド 備忘録

10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9