🐯

ZYBO Z7によるZYNQ入門 (5)PetaLinuxツールでLinuxイメージを作成

2021/11/09に公開

環境

  • PC: Windows 10 64bit
    • Tera Term
  • PC (Linux): Ubuntu 18.04
    • Petalinuxツール 2019.1
  • ボード: ZYBO (Z7-10)
    • micro USBケーブル
    • Ethernetケーブル
    • microSDカード (Class10, 4-32GB)

ハードウェアデザインファイル(hdf)の準備

(2)Hello Worldと同じくPSだけ配置したハードウェアを使用するため、作成済みのproject_1.sdk/design_1_wrapper.hdfをUbuntu PCの~/petalinuxにコピーします。

Linuxイメージの作成

/opt/pkg/petalinux/settings.shを読み込み、petalinuxの環境設定を行います。
petalinux-createでproject_1を作成します。
petalinux-configで指定したhdfに基づくカーネル設定を行います。設定画面が出ますので、Subsystem AUTO Hardware Settings -> Ethernet SettingsのObtain IP address automaticallyのチェックを外して固定IPアドレスを設定します。

  • Static IP address (NEW) : 192.168.1.10
  • Static IP netmask (NEW) : 255.255.255.0
  • Static IP gateway (NEW) : 192.168.1.1

petalinux-buildでビルドします。
petalinux-packageでブートイメージ(BOOT.bin)を作成します。

$ source /opt/pkg/petalinux/settings.sh
$ cd ~/petalinux
$ petalinux-create --type project --template zynq --name project_1
$ cd project_1/
$ petalinux-config --get-hw-description=../
$ petalinux-build
$ petalinux-package --boot --force --fsbl images/linux/zynq_fsbl.elf --fpga images/linux/system.bit --u-boot

SDカードへのLinuxイメージのコピー

下記の二つのファイルをFAT32でフォーマットしたSDカードのルートにコピーします。

  • /images/linux/BOOT.BIN
  • /images/linux/image.ub

UbuntuのGUIアプリでもコピーできますが、sshでUbuntuにリモート接続している際にはコマンドの方が便利なため、コマンドでのSDカードへのコピー方法について説明します。

SDカード未接続の状態で現在の認識状態を確認します。

$ ls /dev/sd*
/dev/sda

SDカードを接続して未接続状態の時との違いを確認します。末尾に数字のついているものを優先します。

$ ls /dev/sd*
/dev/sda /dev/sdb /dev/sdb1

認識場所がわかったらSDカードをマウントします。

$ sudo mount -t vfat /dev/sdb1 /media

SDカードにファイルをコピーします。

$ sudo cp images/linux/BOOT.BIN /media/.
$ sudo cp images/linux/image.ub /media/.

SDカードをアンマウントします。

$ sudo umount /media

ZYBOでのLinux起動

イメージをコピーしたSDカードを、ZYBOに挿入し、ジャンパ(JP5)をSDに設定します。

TeraTermでシリアル接続して、ZYBOの電源をONにすると、Linuxが起動します。
User=root, Password=rootでログインできます。

ZYBO(192.168.1.10)とUbuntu PC(192.168.1.12)をEthernetケーブルで接続して、pingが通ることを確認します。

Discussion