./poky/meta/classes/image_types.bbclass
をみると IMAGE_CMD_xxx がある。IMAGE_CMD_xxx を増やしていけば、任意のイメージがつくれる。たとえば freescale では IMAGE_CMD_sdcard を作っている。
Zynq 用にも作ってみよう。IMAGE_CMD_sdcard を作るというわけだ。
まずは fsl から、まるまるコピー。classes/image_types_fsl.bbclass を classes に image_types_sby.bbclass としてコピー。
でこれが自動的に読み込まれるかと思ったら大間違いだった。
IMAGE_CLASSES += "image_types_sby"
あるいは
IMAGE_CLASSES_append = "image_types_sby"
この作業中に += と append の違いを発見した。どうも、評価淳が違うらしい。+= は即座に(いつをもって即座かどうかわからないが)式に代入される。したがって、読み込み順で運悪く後に
IMAGE_CLASSES = "abc"
とかあると上書きされてしまう模様(動きをみるとたぶんそう。でも確証があるわけではない)。一方で append はおそらく、全部評価が終わってから。なので、append を使う方が安全。
これで、適当に sdcard をつくることはできた。本当に適当。
今後詳細を詰めて
www.sinby.com/backyard-report/004-Yocto/
に追加していく予定。