Xilinx KV260でHLSの準備の躓きポイントまとめ
※これは自分用メモです
petalinux-configの躓きポイント
とりあえずハードウェアのデザインするので、この辺をなぞっていく。これは後々更新してく。
多分Vivadoでハードウェアのデザインするところはそんなはまらないと思う。その後で、petalinuxでソフトウェア関係の色々、カーネルとか、ブートローダつくるときにpetalinuxでハマったので、まとめとく。
まず、Vivadoを入れるとVitisまではインストールされるけど、petalinuxは別にインストールしないといけないので、xilinxのwebからダウンロードする。OSはUbuntuを使ってる想定。ダウンロードはこっちのページからできる。
Petalinuxの作業の流れはこのページが考え方がまとまってると思う。
基本的には 手順 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をこっちからダウンロードしてくる。
ちなみに、bspファイルはこっちから適当なやつを引っ張ってくる。
これで、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 ...とか野蛮なことをしなくて住むようになった世界は素敵だ。
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
を走らす。