ZYBO Z7によるZYNQ入門 (5)PetaLinuxツールでLinuxイメージを作成
- (1)Vivado, Xilink SDK開発環境構築
- (2)Hello Worldプログラムによる動作確認
- (3)Ubuntu, PetaLinuxツール環境構築
- (4)ベアメタル環境のlwIPでUDP通信
- (5)PetaLinuxツールでLinuxイメージを作成
- (6)Linux環境でUDP通信(iperf)
- (7)Linux環境でUDP通信(ユーザアプリ)
- (8)Audio Codec
- (9)AXI DMAを使用したPL-PS間のデータ転送
環境
- 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