Vitisなんか勉強したくない(4日目)

今日は最後まで登りつめよう。

残すはPetaLinuxとVivadoの部分

残すは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に入っていけば良いんだろう?

write: 2021/01/24/ 23:00:00