Let's Vitis(3) - Linuxディストリビューションの構築

Xilinx社ではZynqMPSoC向けのLinuxディストリビューションとして、PetaLinuxを用意しています。

PetaLinuxはXilinx社のダウンロードサイトからダウンロードすることができます。

また、PetaLinuxのドキュメントは「PetaLinux Tools Documentation - Reference Guide」で確認できます。

https://japan.xilinx.com/support/documentation/sw_manuals_j/xilinx2019_2/ug1144-petalinux-tools-reference-guide.pdf

これを読んでZynqMPSoCのLinuxディストリビューションを作成しましょう。

PetaLinux

PetaLinuxとはYocto ProjectをベースとしてXilinx社がZynqシリーズにカスタマイズしているLinuxディストリビューションを構築するフレームワークです。

基本的にはXilinx社が販売している評価ボード向けのLinuxディストリビューションを構築できます。

Yocto Projectは次のURLで確認できます。

https://www.yoctoproject.org/

Yocto Project

Yocto Projectは組込みLinuxディストリビューションを構築するフレームワークです。

Yocto ProjectはmetaファイルというLinuxディストリビューションを構築するためのレシピ集をかけ合わせてLinuxディストリビューションを構築します。

Yocto Projectを構成する最小単位はレシピであり、レシピが集まってメタファイル、メタファイルをかけ合わせてLinuxディストリビューションになります。

Yocto Projectのフレームワークはpokyという名称であり、Linuxディスとビューションのビルドコマンドはbitbakeです。

そして、Yocto Projectにはさまざまな会社やコミュニティーが参加していまのでZynq向けだけではなく、i.mxやRasberryPi、IntelのsocfpgaのLinuxディストリビューションを構築できます。

Yocto Projectは特定CPUやSoCに依存するフレームワークではなく「組込み向けLinuxディストリビューションを構築するフレームワーク」です。

Xilinx社はYocto ProjectをベースにPetaLinuxを構築し、IntelのsocfpgaはangstromeというLinuxディストリビューションがあります。

Yocto Porojectのバージョンは3.0.1です。

Yocto Projectを使用してLinuxディストリビューションの構築

ZynqMPSoC向けのLinuxディストリビューションを構築するには最低限、次のメタファイルが必要です。

PetaLinuxでは上記のメタファイルの他に次のメタファイルも使います。

今回の解説では上記、2つのメタファイルは使用しません。

メタファイルのダウンロード

メタファイルのダウンロード行います。

まずはpokyのダウンロードです。

$ VERSION="zeus"
$ git clone git://git.yoctoproject.org/poky.git -b $VERSION

次に追加したいメタファイルをダウンロードします。

$ VERSION="zeus"
$ mkdir -p sources
$ cd sources

$ git clone git://github.com/openembedded/meta-openembedded.git -b $VERSION
$ git clone git://github.com/xilinx/meta-xilinx -b warrior
$ git clone git://github.com/aquaxis/meta-ultra96.git -b $VERSION

ここでは筆者が作成しているmeta-ultra96も追加しています。

meta-ultra96はUltra96V2のLinuxディストリビューションを構築するためのレシピが入っています。

今回、Yocto ProjectでLinuxディストリビューションを構築するディレクトリの構成は次のようにしました。

┣poky
┗sources
 ┣meta-openembedded
 ┣meta-xilinx
 ┗meta-ultra96

ZynqMPSoCでLinuxディストリビューションを起動するまでの手順があるのでLinuxディストリビューションのビルドの前にZynqMPSoCのブートについて勉強したいと思います。

次回予告

次回は「ZynqMPSoCのブート」の勉強をしましょう。

勉強の記録は月曜日、水曜日、金曜日を予定しているので次回は月曜日に記録予定です。