KV260上でPetalinuxを動かすまでの手順をまとめておきます。
動作確認環境
- 開発環境(ホストPC)
-
Windows 10
- FPGAボード
-
Kria KV260 Vision AI Starter Kit
- 動作させるPetalinuxのバージョン
-
Petalinux 2022.1
実行手順
Kria K26 SOM Wikiやこちらのページによると、KV260上でUbuntu 22.04 LTSやPetalinux 2022.1等の(本記事作成時点で)最新のOSを動作させるためには、まずKV260のブートファームウェアを更新する必要があるようです。以下の手順でブートファームウェアを更新し、KV260上でPetalinux 2022.1の動作を確認していきます。
Petalinux 2021.1はデフォルトで(工場出荷時に)書き込まれているブートファームウェアでも起動可能なようです。まずはこのPetalinuxのイメージをSDカードに書き込み、KV260上で起動できることを確認します。
ホストPCからKV260上に最新のブートファームウェアを転送し、ファームウェアの更新を行います。
Petalinux 2022.1のイメージをSDカードに書き込み、KV260上で起動できることを確認します。
Petalinux 2021.1の起動
以下のURLから必要なファイルをダウンロードしておきます。
- Petalinux 2021.1のSDカードイメージ
- 2022.1 Boot FW
Windows上にbalenaEtcherをインストールし、SDカードをWindows PCに接続します。balenaEtcherを起動し、Flash from fileをクリックして、ダウンロードした「petalinux-sdimage-2021.1-update1.wic.xz」を選択します。Select targetをクリックしてPCに接続したSDカードを選択し、FlashをクリックしてSDカードに書き込みを行います。
イメージの書き込みが完了したら、SDカードをKV260のコネクタに挿入します。PCとKV260上のUSB micro-B(J4)コネクタをUSBケーブルで接続し、PC上でTeraterm等のターミナルを起動して以下のようにシリアル通信の設定を行います。
- ボーレート: 115200bps
- データビット: 8bit
- ストップビット: 1bit
- フロー制御: なし
- パリティ: なし
KV260にイーサネットケーブルを挿入し、ネットワークに接続できるようにしておきます。電源を投入すると起動ログが表示されていきますが、以下のように現在のブートファームウェアのバージョンも見つけることができます。
Xilinx Zynq MP First Stage Boot Loader
Release 2020.2 Apr 22 2021 - 17:48:34
しばらく起動ログが表示されると、ログインプロンプトが表示されます。ユーザ名・パスワードともに「petalinux」と入力するとログインできます。
KV260のブートファームウェア更新
KV260のIPアドレスを調べておきます。
xilinx-k26-starterkit-2021_1:~$ ip a show eth0
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
...
inet 192.168.0.14/24 brd 192.168.0.255 scope global eth0
valid_lft forever preferred_lft forever
...
ホストPC上の端末(WSLやPowershell等)からKV260上へ予めダウンロードしておいたブートファームウェアをscp等で転送します。
$ scp .\BOOT_xilinx-k26-starterkit-v2022.1-09152304_update3.BIN petalinux@192.168.0.14:~
ブートファームウェアに関してはこちらのページに詳細が記載されています。ブートファームウェアはKria SOM上に配置されたQSPI Flashの中の2つのパーティション(Image AとImage B)に格納され、それぞれプライマリとセカンダリ(バックアップ用)として用いられます。以下のコマンドでどちらのパーティションがブートに用いられたか確認できます。
xilinx-k26-starterkit-2021_1:~$ sudo xmutil bootfw_update -p
Image A: Bootable
Image B: Bootable
Requested Boot Image: Image A
Last Booted Image: Image A
XilinxSom_QspiImage_v1.1_20210422
現時点でブートに利用されていないパーティション(Image B)に最新のブートファームウェアを書き込みます。
xilinx-k26-starterkit-2021_1:~$ sudo xmutil bootfw_update -i ./BOOT_xilinx-k26-starterkit-v2022.1-09152304_update3.BIN
Marking last booted image as bootable
Reading Image..
Marking target image non bootable
Writing Image..
Marking target image as non bootable and requested image
./BOOT_xilinx-k26-starterkit-v2022.1-09152304_update3.BIN updated successfully
Requested Boot ImageがImage Bに変わりました。これで次の電源投入時はImage Bがブートに用いられます。また、Image BはNon Bootableに変わり、Image Bからブート可能か否かはまだわからない状態となっています。
xilinx-k26-starterkit-2021_1:~$ sudo xmutil bootfw_update -p
Image A: Bootable
Image B: Non Bootable
Requested Boot Image: Image B
Last Booted Image: Image A
XilinxSom_QspiImage_v1.1_20210422
ここで一度電源を落とします。
xilinx-k26-starterkit-2021_1:~$ sudo poweroff
再び電源を投入すると、起動ログの中でブートファームウェアのバージョンが更新されていることを確認できます。
Xilinx Zynq MP First Stage Boot Loader
Release 2022.1 Sep 16 2022 - 04:56:15
現時点でのブートの状態を確認します。Last Booted ImageがImage Bに変わっていますが、まだImage BはNon Bootableの状態になっています。
xilinx-k26-starterkit-2021_1:~$ sudo xmutil bootfw_update -p
Password:
Image A: Bootable
Image B: Non Bootable
Requested Boot Image: Image B
Last Booted Image: Image B
XilinxSom_QspiImage_v1.1_20210422
ブートに問題がない場合は、以下のコマンドでLast Booted Image(Image B)の状態をBootableに変更します。
xilinx-k26-starterkit-2021_1:~$ sudo xmutil bootfw_update -v
Marking last booted image as bootable
再びブートの状態を確認すると、Image BがBootableの状態に変更されています。これで、ブートファームウェアの更新は完了です。
xilinx-k26-starterkit-2021_1:~$ sudo xmutil bootfw_update -p
Image A: Bootable
Image B: Bootable
Requested Boot Image: Image B
Last Booted Image: Image B
XilinxSom_QspiImage_v1.1_20210422
Petalinux 2022.1の起動
以下のURLから必要なファイルをダウンロードしておきます。
- Petalinux 2022.1のSDカードイメージ
上述した手順でダウンロードした「petalinux-sdimage_xilinx-k26-starterkit.wic.xz」をSDカードに書き込み、そのSDカードを使ってKV260を起動します。
しばらくすると以下のようなログインプロンプトが現れ、無事にPetalinux 2022.1で起動することを確認できました。
PetaLinux 2022.1_update1_05131710 xilinx-k26-starterkit-20221 ttyPS1
xilinx-k26-starterkit-20221 login: