🐯

ZYBO Z7によるZYNQ入門 (6)Linux環境でUDP通信(iperf)

2021/11/12に公開

環境

  • 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