🐯
ZYBO Z7によるZYNQ入門 (6)Linux環境でUDP通信(iperf)
- (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)
 
 
LinuxのiperfでUDP通信
まずはZYBO上のLinuxにiperfを実装して、UDP通信を行います。
- Ubuntu PC (Server) : 192.168.1.12
 - ZYBO (Client) : 192.168.1.10
 
rootfs (root file system) のカスタマイズ
rootfsには最低限のバイナリしか含まれていないため、(5)PetaLinuxツールでLinuxイメージを作成で作成したproject_1にEthernet動作確認用のiperf(iperf2, iperf3)を追加します。iperfは既存レシピに含まれており、下記の場所にあります。
/opt/pkg/petalinux/components/yocto/source/aarch64/layers/meta-openembedded/meta-oe/recipes-benchmark/
petalinux-imagefull.bbappendに次の行を追加します。"の後にスペースが必要です。
$ cd ~/petalinux/project_1/
$ nano project-spec/meta-user/recipes-core/images/petalinux-image-full.bbappend
IMAGE_INSTALL_append = " iperf2"
IMAGE_INSTALL_append = " iperf3"
下記のコマンドでrootfsのコンフィグ画面に入れますので、user packagesのiperf2, iperf3にチェックを入れてからビルドを行います。
$ source /opt/pkg/petalinux/settings.sh
$ petalinux-config -c rootfs
$ petalinux-build

UDPの動作確認
SDカードにimage.ubを書き込み後、ZYBOとUbuntu PCをEthernetケーブルで接続してからZYBOの電源を入れます。
Ubuntu PCをServer(192.168.1.12)として下記のコマンドを実行し、
$ iperf3 -s
ZYBOをClient(192.168.1.10)として下記のコマンドを実行すると、UDPの通信が確認できます。
$ iperf3 -c 192.168.1.12 -u -b 100M


なお、Ubuntu用に購入したミニPCのLANは購入サイトでは1000Mに対応と記載されていたのですが、ethtoolで確認したところ100Mまでしか対応していませんでした。。。
Discussion