Linux プロジェクトの場合は、PetaLinux プロジェクトを作成して、XSA で定義されるハードウェアのサポートを追加し、XRT に必要なソフトウェア パッケージを含めるように設定できます。次の手順に従って、Linux ソフトウェア オブジェクトとそのプラットフォームの Linux イメージを生成します。PetaLinux ツールの詳細は、 『PetaLinux ツール資料: リファレンス ガイド』 (UG1144) を参照してください。
Linux ソフトウェア オブジェクトと Linux イメージを生成するには、次のコマンドを実行します。
- 作業ディレクトリに移動し、サブディレクトリを作成して、Vitis プラットフォーム作成のワークスペースを保持するサブディレクトリと、PetaLinux ツールからの出力ファイルを保持するブート ディレクトリを作成します。
cd zcu102_min_pkg mkdir pfm; cd pfm mkdir wksp1 mkdir boot cd ..
- PetaLinux ツールへのパスを設定します。
source <PetaLinux_Tool_Install_Directory>/settings.sh
-
zcu102_pkg ディレクトリに petalinux という名前の PetaLinux プロジェクトを作成します。
プロジェクト名はユーザーが定義しますが、この例の場合は、ここで使用される命名規則を使用してください。PetaLinux プロジェクトは、ボード サポート パッケージ (BSP) またはテンプレートに基づいて作成できます。BSP が使用でき、必要な機能が提供されている場合は、それを開始点として使用できます。この例では、 Zynq® UltraScale+™ MPSoC テンプレートから開始します。
petalinux-create -t project --template zynqMP -n petalinux
- XSA を含むディレクトリへのパスを指定して、PetaLinux プロジェクトへハードウェア カスタマイズを追加します。
cd petalinux petalinux-config --get-hw-description=../vivado
- PetaLinux メニューで必要であれば
CONFIG_SUBSYSTEM_MACHINE_NAME
をzcu102-rev1.0
に設定します。PetaLinux ツールでは、 『PetaLinux ツール資料: リファレンス ガイド』 (UG1144) にリストされる特定のザイリンクス ボードが認識されます。注記:petalinux-config
と入力すると、GUI インターフェイスが起動されます。メニューおよび選択肢は、方向キーおよび Tab キーを使用して選択できます。マシン名を変更するには、次の手順に従います。
-
zcu102-rev1.0
に変更します。
をクリックし、テンプレートを - プロンプトが表示されたら、保存して終了します。
-
- 次の
CONFIG_x
行を petalinux/project-spec/meta-user/conf/user-rootfsconfig ファイルに追加して、XRT サポート用のユーザー パッケージを追加します。XRT が Vitis エンベデッド ソフトウェア専用フローに対して作成され、XRT およびアクセラレーション カーネルを使用しない場合、この手順は飛ばしてください。- CONFIG_xrt
- CONFIG_xrt-dev
- CONFIG_zocl
- CONFIG_opencl-clhpp-dev
- CONFIG_opencl-headers-dev
- CONFIG_packagegroup-petalinux-opencv
- 次のテキストを petalinux/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi ファイルに追加して、zocl ドライバーを含めるようにデバイス ツリーをアップデートします。 ヒント: XRT が Vitis エンベデッド ソフトウェア開発フローに対して作成され、XRT およびアクセラレーション カーネルを使用しない場合、この手順は飛ばしてください。
&amba { zyxclmm_drm { compatible = “xlnx,zocl”; status = “okay”; }; };
ヒント: コピーして貼り付ける際には、system_user.dtsi ファイルに貼り付けるクォーテーション マークを左右で形の同じまっすぐな方のクォーテーションにしておかないと、PetaLinux ビルド中に解析エラーになります。 - 追加したユーザー パッケージすべてをイネーブルにします。XRT が Vitis エンベデッド ソフトウェア専用フローに対して作成され、XRT およびアクセラレーション カーネルを使用しない場合、この手順は飛ばしてください。
ユーザーのパッケージをイネーブルにするには、次の手順に従います。
-
petalinux-config -c rootfs
と入力します。 - ユーザー パッケージを選択します。
- 「y」と入力して、
xrt
、xrt-dev
、zocl
、opencl-hpp-dev
、opencl-headers-dev
、およびpackagegroup-petalinux-opencv
のユーザー パッケージをイネーブルにします。 - プロンプトが表示されたら、保存して終了します。
-
- CMA メモリの容量割り当てを 1024 MB に増加します (オプション)。
-
petalinux-config -c kernel
と入力します。 - をクリックします。
- Enter キーを押して、256 を 1024 に変更します。
- [ ] メニュー選択肢に 'n' を入力して、次をオフにします。
- プロンプトが表示されたら、保存して終了します。
-
- PetaLinux プロジェクト (petalinux) 内から Linux ビルドを開始します。
petalinux-build
- ターゲット Linux システム用の sysroot セルフインストーラーを作成します。
cd images/linux petalinux-build --sdk
-
sdk.sh セルフインストーラーを使用して、sysroot を出力およびインストールします。プロンプトが表示されたら、出力ディレクトリへの完全パスを指定して、生成した sysroot ファイルを先ほど作成した pfm 作業ディレクトリに保存します。
- ./sdk.sh と入力します。
- 出力ディレクトリ (<Full_Pathname_to_zcu102_min_pkg>/pfm) への完全パスを指定して、確認します。
- PetaLinux ビルドが問題なく終了すると、生成された Linux ソフトウェア コンポーネントが <PetaLinux_Project>/images/linux ディレクトリに含まれるようになります。ザイリンクスの例では、petalinux/images/linux ディレクトリに生成されたイメージと次の ELF ファイルが含まれます。Vitis プラットフォーム作成フローを実行するには、これらのファイルを zcu102_min_pkg/pfm/boot ディレクトリにコピーします。
- image.ub
- zynqmp_fsbl.elf
- pmufw.elf
- bl31.elf
- u-boot.elf
- 次の内容を含む BIF ファイル (linux.bif) をブート ディレクトリに追加します。ファイル名は、ブート ディレクトリの内容と同じにする必要があります。Vitis ツールは、
v++
リンク時または SD カードの生成時、プラットフォームの sw ディレクトリに対して相対的にパス名を展開します。ただし、bootgen
コマンドを直接使用して BIF ファイルから BOOT.BIN を作成する場合は、BIF ファイルに完全なパス名が必要です。Bootgen は<>
シンボル間の名前を展開しません。/* linux */ the_ROM_image: { [fsbl_config] a53_x64 [bootloader] <zynqmp_fsbl.elf> [pmufw_image] <pmufw.elf> [destination_device=pl] <bitstream> [destination_cpu=a53-0, exception_level=el-3, trustzone] <bl31.elf> [destination_cpu=a53-0, exception_level=el-2] <u-boot.elf> }