meta layer design === ### meta-mender 的方式 - meta-mender - meta-mender-core (layer) - recipes-mender - ... - meta-mender-demo (layer) - recipes-mender - ... - meta-mender-qemu (layer) - recipes-bsp - ... ### demo mender by qemu ``` layer path priority ========================================================================== meta $HOME/yocto/poky/meta 5 meta-poky $HOME/yocto/poky/meta-poky 5 meta-yocto-bsp $HOME/yocto/poky/meta-yocto-bsp 5 meta-mender-core $HOME/yocto/poky/meta-mender/meta-mender-core 6 meta-mender-demo $HOME/yocto/poky/meta-mender/meta-mender-demo 6 meta-mender-qemu $HOME/yocto/poky/meta-mender/meta-mender-qemu 6 ``` ### layer 使用方式 layer 使用 `$ bitbake-layers add-layer (layer path)` 可在 `conf/layer.conf` 增加或修改設定 e.g. `meta-mender-core` 加入之後,不管使用哪一個 image 去 build 都會把 `mender-client` 放進去,並調整分區產生對應的檔案 (`.sdimg`、`.mender` 等) ### recipe 使用方式 recipe 則是對象 `$ bitbake (recipe name)` 因此像是 `$ bitbake core-image-full-cmdline` 這樣產生 image 的行為,其實有一個名為 `core-image-full-cmdline.bb` 的 recipe 可以藉由設定 `CORE_EXTRA_INSTALL` 決定要不要多安裝什麼套件 但這邊的名稱也是 recipe name, e.g. `curl`、`python3` 同理,可以使用 `$ bitbake curl` 去產生 package ### 使用情境 假設使用者希望能夠擁有 `mender` 與 `tangleid` #### 參考 meta-mender - meta-tangle - meta-tangle-core (layer) - recipes-tangleid - recipes-dcurl - recipes-iota-swarm-node - recipes-entangled - recipes-fpga-accl - meta-tangle-demo (layer) - recipes-core - images - `core-image-full-image.bbappend` - `core-image-tangleid-demo.bb` 預期操作是 ```shell $ bitbake-layers add-layer meta-mender-core ## setting for mender in conf/local.conf $ bitbake-layers add-layer meta-tangle-core $ echo "CORE_EXTRA_INSTALL += \" tangleid\"" > conf/local.conf ## setting for tangleid ``` #### 另外一種想法 - meta-tangle - meta-tangle-tangleid (layer) - meta-tangle-dcurl (layer) - meta-dltcollab - meta-tangleid (layer) - meta-dcurl (layer) 預期操作是 ```shell $ bitbake-layers add-layer meta-mender-core ## setting for mender in conf/local.conf $ bitbake-layers add-layer (tangleid layer) ## setting for tangleid ```