ZYBO Z7によるZYNQ入門 (3)Ubuntu, PetaLinuxツール環境構築
- (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間のデータ転送
はじめに
以降の記事ではEthernet通信を行うため、ホストPCとしてUbuntu環境を使用します。Windows環境でも可能なはずですが、ファイアウォールの問題で受信できなかったため、Ubuntu環境で行います。
また、先の記事ではXilinx SDKでプロジェクトを作る際にOS Platformにはstandaloneを指定していました。そのため、OSなしの環境(ベアメタル環境)となっていました。Linuxのイメージファイルを作って起動すると、EthernetやUSBが簡単に使用できるようになります。Linuxイメージファイル作成のためにはPetaLinuxツールが必要となります。そこで、本PCはPetaLinuxツールをインストールするためのLinux環境としても使用します。
環境
- PC: Windows 10 64-bit
- PC (Linux): Ubuntu 18.04
- PetaLinuxツール 2019.1
- Ethernetケーブル
PetaLinuxツールはUbuntu 20.04には対応していないため、18.04をインストールします。また、PetaLinuxツールは8GB RAM, 2GHzx8コア, 100GB HDDのPCが要求されています。
しかし、6GB RAM, 2.4GHzx2コア, 64GB eMMCのミニPCでも動作することを確認しました。ディスクの使用容量は20GB程度でした。
Ubuntu 18.04のインストール
下記の記事を参考にUbuntu 18.04をインストールします。
固定IPアドレスでの通信確認
Ubuntu PCが固定IPアドレスでUDPの通信ができるか確認を行います。Windows PCとUbuntu PCのIPアドレスを下記のように設定し、Ethernetケーブルで接続します。
- Windows PC: 192.168.1.11
- Ubuntu PC: 192.168.1.12
iperfを使用して、Windows PC(クライアント)からUbuntu PC(サーバ)にUDPデータが送信されることを確認します。
- Ubuntu PC(Server): iperf -s -u
- Windows PC(Client): iperf -c 192.168.1.12 -u
Windowsでiperfが使えない場合は、iperf3をインストールしておきます。なお、Windows PCをサーバにしたところ、ファイアウォールによりデータが通りませんでした。
PetaLinuxツールのインストール
XilinxのサイトからPetaLinux 2019.1をダウンロードします。
必要なライブラリをインストールします。
$ sudo apt-get install -y python gawk gcc git make net-tools libncurses5-dev tftpd zlib1g:i386 libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential screen pax gzip
次にインストール先のフォルダを作成します。
$ sudo mkdir -p /opt/pkg/petalinux
$ sudo chown -R USER_NAME:USER_GROUP /opt/pkg/petalinux
インストールを開始します。
$ chmod 777 petalinux-v2019.1-final-installer.run
$ ./petalinux-v2019.1-final-installer.run /opt/pkg/petalinux/
インストール中に3回Agreementが出てくるので全てYESにします。
デフォルトでは、ツールの使用状況に関する統計データをXilinxに送信する WebTalk オプションが有効です。WebTalk 機能を無効にするには、下記のコマンドを実行します。
$ petalinux-util --webtalk off
Discussion