今日は最後まで登りつめよう。
残すはPetaLinuxのBoot ImageとVivadoのファイルである。
結果から図示すると次のようになる。
こういう風に描くとなんとなく見えきたが、一番上を変更すると順番に処理していかなければいけない。
中間層を変更するとそこから下の処理が必要となる。
たとえば、Linux Kernelの変更をしたい場合はPetaLinuxで変更をするわけだけど、メーカお勧めルートだと「PetaLinuxで変更」→「PetaLinuxビルド」→「Platformビルド」→「Applicationビルド」→「SDカードへ書き込み」の順序をたどる。
Linux Kernelの変更方法は「PetaLinuxでdevtoolsを開いて修正」→「git formated-patchを作成」→「ユーザーレシピ追加」が正式な変更方法になるだろう。
SDカードを見れば、image.ubがPartition 1にいるのでLinux Kernelをコンパイルしてここに置けばいいだけじゃないの?と、思ったりするわけで…
でも、image.ubなのでmkimageしなきゃいけない煩わしさとかある。
俺的には次のようにしたいんだなぁ。
fsbl.elfとLinux Kernel(Imageとzynq.dtb)はPetaLinuxでの生成ではなく生成箇所を分離する。
fsbl.elfはPetaLinuxではなく、Vivadoで生成する。
Linux Kernel(Imageとzynq.dtb)はPetaLinuxではなく個別に生成する。
こうすることで、fsbl.elfはPSを変更したときだけ修正して、変更時のみpmufw.elfとbl31.elfとu-boot.elfを組み合わせてBOOT.BINを生成してSDカードに入れておく(Platformのディレクトリに入れておいても良い)。
pmufw.elfとbl31.elfとu-boot.elfは基本的に変更しないのでYocto Projectで生成して別途、置いておく。
Linux Kernelはimage.ubではなくImageとzynq.dtbに分離しておく、Imageはドライバの追加・変更などのときにビルドして、zynq.dtbはDevice Treeの情報を変更するときのみ修正して、SDカードに入れる。
Vivadoで生成するXSAはPlatformのディレクトリに入れるだけにする。
PetaLinuxではなくベースになっているYocto Projectでディストリビューションを組んでしまえば、XSAファイルがなくてもいいのでLinuxディストリビューションそのものはこれ単体で管理できる。
こうしておけば、開発やデバッグが簡単かな。
登場人物は整理できた。
なので勉強したくないはおしまい。
さて、ここからどうやってVitis AIに入っていけば良いんだろう?