FC2カウンター FPGAの部屋 AVNET からダウンロードした BSP を使って、Petalinux プロジェクトを作成して、xmutil をやってみたがやはりエラーだった
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

AVNET からダウンロードした BSP を使って、Petalinux プロジェクトを作成して、xmutil をやってみたがやはりエラーだった

AVNET からダウンロードした zub1cg_sbc_2022_2.bsp を使用して、Petalinux プロジェクトを作成し、環境を整え、ビルドした。sysroot を作成し、pl.dtbo を作成して、Vitis を起動し、プラットフォーム・プロジェクトと Vector Addition アプリケーション・プロジェクトを作成した。ファイルを ZUBoard 1CG の Petalinux 2022.2 に転送し、xmutil でロードしようとしたところ、今までと同様にエラーになってしまった。

AVNET から zub1cg_sbc_2022_2.bsp をダウンロードした。
zub1cg_sbc_2022_2.bsp を使用して、Petalinux 2022.2 の zub1cg_sbc_base プロジェクトを作成した。
petalinux-create -t project -s zub1cg_sbc_base_2022_2.bsp -n zub1cg_sbc_base

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/project-spec/configs/config ファイルを編集する。
以下のように変更した。

CONFIG_SUBSYSTEM_HOSTNAME="zub1cg-sbc-base"
CONFIG_SUBSYSTEM_PRODUCT="zub1cg_sbc_base"


base の Viavdo プロジェクトを使用するように設定した。
cd zub1cg_sbc_base/
petalinux-config --silentconfig --get-hw-description=../../../hdl/projects/zub1cg_sbc_base_2022_2


ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/project-spec/meta-user/conf/user-rootfsconfig に以下の項目を追加した。

CONFIG_xmutil
CONFIG_xrt


xmutil, xrt の有効化を行った。
petalinux-config -c rootfs
user packages に入って、xmutil, xrt にスペース・キーで * を表示させて有効化した。

ビルドを行ったところ、成功した。
petalinux-build

Sysroot(SDK)をビルドする。
petalinux-build --sdk

sdk.sh が ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/images/linux ディレクトリに生成された。

sysroots ディレクトリを ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base ディレクトリに展開した。
images/linux/sdk.sh -d ./

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/sysroots ディレクトリが生成され、その下に cortexa72-cortexa53-xilinx-linux, x86_64-petalinux-linux ディレクトリが生成された。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base ディレクトリに pfm ディレクトリを作成し、その下に boot ディレクトリと sd_dir ディレクトリを作成した。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/images/linux ディレクトリの bl31.elf, pmufw.elf, system.dtb, u-boot.elf, zynqmp_fsbl.elf のファイルを ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/pfm/boot ディレクトリにコピーした。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/pfm ディレクトリで xsct コマンドを実行した。
xsct
createdts -hw ../../../../hdl/projects/zub1cg_sbc_base_2022_2/zub1cg_sbc_base.xsa -zocl -platform-name zub1cg_sbc_base -git-branch xlnx_rel_v2022.2 -overlay -compile -out ./dtg_output
exit


ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/pfm/dtg_output/dtg_output/zub1cg_sbc_base/psu_cortexa53_0/device_tree_domain/bsp ディレクトリに pl.dtsi ファイルが生成された。

pl.dtsi をコンパイルして pl.dtbo を生成する。
cd /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/pfm/dtg_output/dtg_output/zub1cg_sbc_base/psu_cortexa53_0/device_tree_domain/bsp
dtc -@ -O dtb -o pl.dtbo pl.dtsi


pl.dtbo が生成された。

Vitis 作業
すでに source /media/masaaki/Ubuntu_Disk/tools/Xilinx/Vitis/2022.2/settings64.sh は実行済みだ。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base ディレクトリに移動する。
vitis &
で Vitis 2022.2 を起動した。

Vitis IDE Launcher ダイアログが表示された。
Workspace に ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/vitis_work を指定した。
Launch ボタンをクリックした。

Vitis 2022.2 が立ち上がった。
Create Platform Project をクリックして、プラットフォーム・プロジェクトを作成する。

New Platform Project ダイアログの Create new platform project 画面が開く。
Platform project name に zub1cg_sbc_base と入力した。
Next > ボタンをクリックする。

Platform 画面
Hardware Specification の XSA File に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/hdl/projects/zub1cg_sbc_base_2022_2/zub1cg_sbc_base.xsa を指定した。
Software Specification の Operating system には linux を、Processor には psu_cortexa53 を指定した。
Boot Componetnts の Generate boot components のチェックを外す。
Finish ボタンをクリックする。

zub1cg_sbc_base プラットフォーム・プロジェクトが作成された。
platform.spr で、zub1cg_sbc_base -> psu_cortexa53 -> linux on psu_cortexa53 をクリックして選択する。
Bif File: の Browse... の右端の下向き三角をクリックし、Generate Bif を選択する。

Boot Components Directory: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/pfm/boot を指定した。
FAT32 Partition Directory: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/pfm/sd_dir を指定した。
トンカチ・ボタンをクリックして、ビルドを行った。

Explorer の export -> zub1cg_sbc_base プラットフォームが生成された
その下に hw と sw ディレクトリが生成されている。

Vitis 2022.2 でアプリケーション・プロジェクトを作成する。
Vitis 2022.2 で File メニューから New -> Application Project... を選択してアプリケーション・プロジェクトを新規作成する。
New Application Project ダイアログの Create a New Application Project 画面が開く。
Next > ボタンをクリックする。

Platform 画面
zub1cg_sbc_base プラットフォームを選択する。
Next > ボタンをクリックする。

Application Project Details 画面
Application project name: に zub1cg_sbc_vadd と入力する。
Next > ボタンをクリックする。

Domain 画面
Application settings を入力する。
Sysroot paht: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/sysroots/cortexa72-cortexa53-xilinx-linux を入力する。
Root FS: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/images/linux/rootfs.ext4 を入力する。
Kernel Image: に /media/masaaki/Ubuntu_Disk/ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/images/linux/Image を入力する。
Next > ボタンをクリックする。

Template 画面
Simple Vector Addition を選択する。
Finish ボタンをクリックする。

Active build configuration: で Hardware を選択し、Explorer で zub1cg_sbc_vadd_system を選択し、トンカチ・ボタンをクリックしてビルドを行った。

ビルドに成功した。

ZUBoard 1CG の Petalinux 作業
Balena Etcher を使用して ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/images/linux/rootfs.wic を MicroSD カードに書き込んだ。

ZUBoard 1CG に MicroSD カードを挿入した。
SW2 を SD カード・ブートに設定した。 SW2-1 から OFF - ON - OFF - ON
ZUBoard 1CG に電源を供給した。(私の使用してる電源は、Anker PowerPort III 65W Pod を使用している。ノートパソコン用の電源を流用している)
基板右下の SW7 を押して、Petalinux を起動した。

ファイルを ZUBoard 1CG に転送するために必要なファイルを集める。
ZUBoard1CG/Avnet_2022_2/vitis_work/vadd_file_transfer ディレクトリを作成した。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/pfm/dtg_output/dtg_output/zub1cg_sbc_base/psu_cortexa53_0/device_tree_domain/bsp/pl.dtbo を vadd_file_transfer ディレクトリにコピーした。

ZUBoard1CG/Avnet_2022_2/petalinux/projects/zub1cg_sbc_base/vitis_work/zub1cg_sbc_vadd_system/Hardware/binary_container_1.xclbin を vadd_file_transfer ディレクトリにコピーした。

shell.json を作成して、vadd_file_transfer ディレクトリにセーブした。
Accelerated Design Development on Kria KR260 in Vitis 2022.1”から shell.json の内容を引用する。

{
  "shell_type" : "XRT_FLAT",
  "num_slots": "1"
}


ZUBoard 1CG で Petalinux 2022.2 を起動した。
ホーム・ディレクトリに examples/zub1cg_sbc_vadd ディレクトリを作成した。
cd
mkdir examples
cd examples
mkdir zub1cg_sbc_vadd
cd zub1cg_sbc_vadd


FileZilla を起動して、ZUBoard 1CG の Petalinux 2022.2 へ SFTP で vadd_file_transfer ディレクトリのファイルを転送した。

/lib/firmware/xilinx/zub1cg_sbc_vadd ディレクトリを作成した。
sudo mkdir /lib/firmware/xilinx/zub1cg_sbc_vadd

binary_container_1.xclbin の名前を binary_container_1.bin に変更する。こうしないと、XRT は FPGA ビットストリームを抽出して Kria のプログラマブル ロジックをコンフィグレーションすることができないそうだ。
mv binary_container_1.xclbin binary_container_1.bin

pl.dtbo binary_container_1.bin shell.json ファイルを /lib/firmware/xilinx/zub1cg_sbc_vadd ディレクトリにコピーした。
sudo cp pl.dtbo binary_container_1.bin shell.json /lib/firmware/xilinx/zub1cg_sbc_vadd

アクセラレーション・アプリケーションを確認して、zub1cg_sbc_vadd をロードしたところエラーになった。
sudo xmutil loadapp zub1cg_sbc_vadd
ZUBoard1CG_205_230726.png

ZUBoard1CG_206_230726.png

ダメそうなので、とりあえず他のことをやっていこう。
  1. 2023年07月29日 04:05 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/5997-a2991ada
この記事にトラックバックする(FC2ブログユーザー)