🐯
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