Xilinx KV260でHLSの準備の躓きポイントまとめ

※これは自分用メモです

petalinux-configの躓きポイント

 とりあえずハードウェアのデザインするので、この辺をなぞっていく。これは後々更新してく。

xilinx.github.io

xilinx.github.io

 多分Vivadoでハードウェアのデザインするところはそんなはまらないと思う。その後で、petalinuxでソフトウェア関係の色々、カーネルとか、ブートローダつくるときにpetalinuxでハマったので、まとめとく。

 まず、Vivadoを入れるとVitisまではインストールされるけど、petalinuxは別にインストールしないといけないので、xilinxのwebからダウンロードする。OSはUbuntuを使ってる想定。ダウンロードはこっちのページからできる。

www.xilinx.com


 Petalinuxの作業の流れはこのページが考え方がまとまってると思う。

adaptivesupport.amd.com

 基本的には 手順 2: ソフトウェア コンポーネントの作成 - Vitis™ チュートリアル 2022.1 の資料 に書いてあるとおりに進めるが、petalinux2024を使ってるとpetalinux-createのときに使うbspをSDTとXSCTのどっちかを選ばないといけなくて、間違えたbspでプロジェクトを作ると延々と、

petalinux-config --get-hw-description=<path to xsa> --silent 
[INFO] Getting hardware description 
[ERROR] This Project was configured with "sdt", you may see issues if you use the same project for "xsa" flow

というエラーに悩まされることになる。このエラーが出てるときはXSCTを選んでないことになるので、XSCTのbspをこっちからダウンロードしてくる。

https://www.xilinx.com/member/forms/download/xef.html?filename=xilinx-kv260-starterkit-xsct-v2024.2-12072024.bsp

 ちなみに、bspファイルはこっちから適当なやつを引っ張ってくる。

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/1641152513/Kria+SOMs+Starter+Kits#PetaLinux-Board-Support-Packages


 これで、petalinux-create、petalinux-configは通るようになった。

petalinux-buildでの躓きポイント

libtinfoが見つからない

 何も考えないでpetalinux-buildすると、

ERROR: libtinfo.so.5 is required by meta-xilinx-tools. This library must be installed before the build system can use xsct. It is often part of an ncurses5 package.

っていうのが出て、tinfoっていうライブラリがないっていわれてるけど、細心のバージョンは6なので、古いやつを入れないといけない。

以下のコマンドで対応する。

sudo tee /etc/apt/sources.list.d/jammy.list <<EOF
deb http://archive.ubuntu.com/ubuntu/ jammy universe
EOF
sudo tee /etc/apt/preferences.d/pin-jammy <<EOF
Package: *
Pin: release n=jammy
Pin-Priority: -10
Package: libtinfo5
Pin: release n=jammy
Pin-Priority: 990
EOF
sudo apt-get update
sudo apt-get install libtinfo5

Ubuntu24.04LTSでPetalinux2024.2を使うときのエラー

 なんかUbuntu24.04LTSでカーネルの何かが変わったらしく、petalinux-buildを走らすとパミッションエラーが出る。

petalinux ERROR: PermissionError: 
[Errno 1] Operation not permitted During handling of the above exception, another exception occurred: 
Traceback (most recent call last):   
File "/home/user/projects/vidado_sandbag/pl_ws/xilinx-kv260-starterkit-xsct-2024.2/components/yocto/layers/poky/bitbake/bin/bitbake-worker", line 278, in child     bb.utils.disable_network(uid, gid)   File "/home/nsakairi/projects/vidado_sandbag/pl_ws/xilinx-kv260-starterkit-xsct-2024.2/components/yocto/layers/poky/bitbake/lib/bb/utils.py", line 1696, in disable_network     with open("/proc/self/uid_map", "w") as f:          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ PermissionError: [Errno 1] Operation not permitted 

これを解消するのがちょっとカーネルの設定いじるので度胸が必要になるけど、petalinux-buildする前に、

sudo sysctl kernel.apparmor_restrict_unprivileged_userns=0

を走らせて、petalinux-buildしたあとで設定をもとに戻すために、

sudo sysctl kernel.apparmor_restrict_unprivileged_userns=1

を走らせる。sudo echo ...とか野蛮なことをしなくて住むようになった世界は素敵だ。

tm23forest.com

askubuntu.com

lists.yoctoproject.org

adaptivesupport.amd.com

PetalinuxのKV260向けアップグレード

KV260のスターターキット用に色んなものをenableにしないといけないので、以下のコマンド走らす。これやらないとbuildでコケる。

petalinux-upgrade -u "https://petalinux.xilinx.com/sswreleases/rel-v2024.2/sdkupdate/2024.2_update1/" -p "aarch64"

 これやらないと、こういうエラーが出る。

NOTE: Executing Tasks ERROR: fsbl-firmware-2024.2+git-r0 do_configure: ExecutionError('/home/<user>/projects/vidado_sandbag/pl_ws/xilinx-kv260-starterkit-xsct-2024.2/build/tmp/work/xilinx_k26_kv-xilinx-linux/fsbl-firmware/2024.2+git/temp/run.do_configure.976376', 1, None, None) 
ERROR: Logfile of failure stored in:
...

Petalinux build

petalinux-build

の後で、

petalinux-build --sdk

を走らす。