Zedboard+AD-FMCOMMS3でPetalinuxが起動することは確認できたので、
サンプルにモジュールやアプリケーションの追加ができるよう、
このあたりを参考にPetalinuxを基礎から学びます。
1. ZYBO (Zynq) 初心者ガイド (8) Linux起動する
2. Virtual Box上でZybo用にLinuxをビルドする
OSはUbuntu 18.04.6 LTS、VivadoとPetalinuxのバージョンは2021.1です。
ターゲットは、Zybo Z7-20になります。
まずは、DigilentのサイトからVivado Board Filesをダウンロードして、newの
board_filesのフォルダを、/tools/Xilinx/Vivado/2021.1/data/board/にコピーします。
https://github.com/Digilent/vivado-boards
次に、Vivadoを起動し、新規プロジェクトを作成します。
プロジェクト名はデフォルトのままproject_1とします。
Project TypeにはRTL Projectを選択し、Do not specify sources at this timeにチェック。
Default Partでは、Boardタブから先ほどダウンロードしたdigilentint.comのZybo Z7-20を選択。
現時点で、File Versionは1.1、Board RevはB.2となっています。
Projectが作成されたら、Flow NavigatorのIP INTEGRATORから、Create Block Designを起動。
Design nameはデフォルトのまま、design_1とします。
BLOCK DESIGNパネルのDiagramに、Zynqを追加。
Run Block AutomationをクリックしてZynqだけのブロックを作成します。
SoucesタブのDesign Sourcesから、design_1を右クリックし、Create HDL Wrapperを実行。
Optionsには、Let Vivado manage wrapper and auto-updateを選択します。
続いて、Flow NavigatorのPROGRAM AND DEBUGからGenerate Bitstreamを起動します。
ビットストリームが生成されたら、Fileメニューから、Export -> Export Hardwareを選択します。
Outputには、Include bitstreamをチェック。
XSA file nameは、デフォルトのままdesign_1_wrapperとします。
これで、プロジェクトフォルダに、ハードウェア定義ファイルであるdesign_1_wrapper.xsaが生成されます。
![](https://blogimg.goo.ne.jp/user_image/12/54/7459551f80861a51ce248105256a2e21.png)
Vivadoでの作業はここまで。次は、Petalinuxのプロジェクトを生成します。
ここでは、プロジェクト名をzybo_linuxにしました。
続いて、ハードウェア定義ファイルのdesign_1_wrapper.xsaがあるフォルダを指定し、
Petalinuxの設定をします。
![](https://blogimg.goo.ne.jp/user_image/33/f3/00e54fc9cdd30dd17fd442256506fb69.png)
前回同様に、Yocto SettingsのEnable Network sstate feedsをdisableします。
![](https://blogimg.goo.ne.jp/user_image/6d/29/b7a5af417efd5486dcdb2d14470a5a8c.png)
それ以外はデフォルトのままで、Petalinuxのビルドを実行します。
![](https://blogimg.goo.ne.jp/user_image/7b/f5/b19137ded62e443f55dba5a1b73af4f8.png)
かれこれ1時間ほどで、ビルドが無事に完了。
image/linuxフォルダに、Linuxシステムのイメージファイルが生成されます。
![](https://blogimg.goo.ne.jp/user_image/6e/23/b5cd593d5b5cbc5bee28a677bcc877d9.png)
最後に、bootイメージファイル(BOOT.bin)を生成します。
![](https://blogimg.goo.ne.jp/user_image/73/d0/39e55db7cb41b685f7769e99b270de5a.png)
次に、起動用のSDカードを準備します。
GPartedを使い、次のようなBOOTとrootfsのパーティションを作りました。
![](https://blogimg.goo.ne.jp/user_image/38/33/7c96dea2562376239415292f29cff679.png)
BOOTフォルダに、image.ub、BOOT.bin、boot.scrをコピーします。
![](https://blogimg.goo.ne.jp/user_image/7d/6c/e2196b860bb5927fc131316bd3317f6b.png)
SDカードをZyboのスロットに挿入し、bootのジャンパをSDに切り替え、電源を入れると、
無事にPetalinuxが起動してくれました。
![](https://blogimg.goo.ne.jp/user_image/4d/c7/b850532da82c579e3040fbc9584be62e.png)
ここまでは順調。次は、GPIOやUARTを追加してみよう。
P.S. Petalinuxのビルドがとにかく遅いので、少しでも速くなるかなと、この動画を参考に
sstateキャッシュとdownloadsファイルをすべてローカルにダウンロードしてみました。
Youtube: PetaLinux 101 - Getting Started Quickly
Petalinuxの設定で、ダウンロードしたファイルのフォルダを指定。
![](https://blogimg.goo.ne.jp/user_image/2c/b9/1719088da6b349e9553d510ae92e12ac.png)
![](https://blogimg.goo.ne.jp/user_image/12/56/96c2c2308ced5debe98ff9ffc4962719.png)
![](https://blogimg.goo.ne.jp/user_image/2d/9e/545c7d436a68723e68111b85294bb56b.png)
![](https://blogimg.goo.ne.jp/user_image/4a/e1/5f546a746d57b7e86e73c88896aa55f4.png)
実験的に新しいプロジェクトを作成して、ビルドしてみたところ、さほど改善は見られず。
ネットワークの回線速度よりも、圧倒的にコンパイルが遅い。
ローカルのディスク容量を圧迫するだけなので、利点はなさそうです。
サンプルにモジュールやアプリケーションの追加ができるよう、
このあたりを参考にPetalinuxを基礎から学びます。
1. ZYBO (Zynq) 初心者ガイド (8) Linux起動する
2. Virtual Box上でZybo用にLinuxをビルドする
OSはUbuntu 18.04.6 LTS、VivadoとPetalinuxのバージョンは2021.1です。
ターゲットは、Zybo Z7-20になります。
まずは、DigilentのサイトからVivado Board Filesをダウンロードして、newの
board_filesのフォルダを、/tools/Xilinx/Vivado/2021.1/data/board/にコピーします。
https://github.com/Digilent/vivado-boards
次に、Vivadoを起動し、新規プロジェクトを作成します。
プロジェクト名はデフォルトのままproject_1とします。
Project TypeにはRTL Projectを選択し、Do not specify sources at this timeにチェック。
Default Partでは、Boardタブから先ほどダウンロードしたdigilentint.comのZybo Z7-20を選択。
現時点で、File Versionは1.1、Board RevはB.2となっています。
Projectが作成されたら、Flow NavigatorのIP INTEGRATORから、Create Block Designを起動。
Design nameはデフォルトのまま、design_1とします。
BLOCK DESIGNパネルのDiagramに、Zynqを追加。
Run Block AutomationをクリックしてZynqだけのブロックを作成します。
SoucesタブのDesign Sourcesから、design_1を右クリックし、Create HDL Wrapperを実行。
Optionsには、Let Vivado manage wrapper and auto-updateを選択します。
続いて、Flow NavigatorのPROGRAM AND DEBUGからGenerate Bitstreamを起動します。
ビットストリームが生成されたら、Fileメニューから、Export -> Export Hardwareを選択します。
Outputには、Include bitstreamをチェック。
XSA file nameは、デフォルトのままdesign_1_wrapperとします。
これで、プロジェクトフォルダに、ハードウェア定義ファイルであるdesign_1_wrapper.xsaが生成されます。
![](https://blogimg.goo.ne.jp/user_image/12/54/7459551f80861a51ce248105256a2e21.png)
Vivadoでの作業はここまで。次は、Petalinuxのプロジェクトを生成します。
ここでは、プロジェクト名をzybo_linuxにしました。
続いて、ハードウェア定義ファイルのdesign_1_wrapper.xsaがあるフォルダを指定し、
Petalinuxの設定をします。
![](https://blogimg.goo.ne.jp/user_image/33/f3/00e54fc9cdd30dd17fd442256506fb69.png)
前回同様に、Yocto SettingsのEnable Network sstate feedsをdisableします。
![](https://blogimg.goo.ne.jp/user_image/6d/29/b7a5af417efd5486dcdb2d14470a5a8c.png)
それ以外はデフォルトのままで、Petalinuxのビルドを実行します。
![](https://blogimg.goo.ne.jp/user_image/7b/f5/b19137ded62e443f55dba5a1b73af4f8.png)
かれこれ1時間ほどで、ビルドが無事に完了。
image/linuxフォルダに、Linuxシステムのイメージファイルが生成されます。
![](https://blogimg.goo.ne.jp/user_image/6e/23/b5cd593d5b5cbc5bee28a677bcc877d9.png)
最後に、bootイメージファイル(BOOT.bin)を生成します。
![](https://blogimg.goo.ne.jp/user_image/73/d0/39e55db7cb41b685f7769e99b270de5a.png)
次に、起動用のSDカードを準備します。
GPartedを使い、次のようなBOOTとrootfsのパーティションを作りました。
![](https://blogimg.goo.ne.jp/user_image/38/33/7c96dea2562376239415292f29cff679.png)
BOOTフォルダに、image.ub、BOOT.bin、boot.scrをコピーします。
![](https://blogimg.goo.ne.jp/user_image/7d/6c/e2196b860bb5927fc131316bd3317f6b.png)
SDカードをZyboのスロットに挿入し、bootのジャンパをSDに切り替え、電源を入れると、
無事にPetalinuxが起動してくれました。
![](https://blogimg.goo.ne.jp/user_image/4d/c7/b850532da82c579e3040fbc9584be62e.png)
ここまでは順調。次は、GPIOやUARTを追加してみよう。
P.S. Petalinuxのビルドがとにかく遅いので、少しでも速くなるかなと、この動画を参考に
sstateキャッシュとdownloadsファイルをすべてローカルにダウンロードしてみました。
Youtube: PetaLinux 101 - Getting Started Quickly
Petalinuxの設定で、ダウンロードしたファイルのフォルダを指定。
![](https://blogimg.goo.ne.jp/user_image/2c/b9/1719088da6b349e9553d510ae92e12ac.png)
![](https://blogimg.goo.ne.jp/user_image/12/56/96c2c2308ced5debe98ff9ffc4962719.png)
![](https://blogimg.goo.ne.jp/user_image/2d/9e/545c7d436a68723e68111b85294bb56b.png)
![](https://blogimg.goo.ne.jp/user_image/4a/e1/5f546a746d57b7e86e73c88896aa55f4.png)
実験的に新しいプロジェクトを作成して、ビルドしてみたところ、さほど改善は見られず。
ネットワークの回線速度よりも、圧倒的にコンパイルが遅い。
ローカルのディスク容量を圧迫するだけなので、利点はなさそうです。
※コメント投稿者のブログIDはブログ作成者のみに通知されます