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
```