說明: 在yocto專案中,經常會需要增加自訂的功能,此時就需要新增一個recipe。本文說明如何新增一個最簡單的recipe。
一.recipe需包含一個.c檔與.bb檔,如helloyocto.c及helloyocto.bb安排如下
poky/
└── meta-foo
└── recipes-bar
└── helloyocto
├── files
│ └── helloyocto.c
└── helloyocto.bb
二.helloyocto.c內容如下
#include
int main(int argc, const char* argv[]) { printf("Hello, Yocto!\n"); return 0; } |
三. helloyocto.bb內容如下
DESCRIPTION = "Simple hello world application" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
SRC_URI = "file://helloyocto.c" S = "${WORKDIR}"
do_compile() { ${CC} helloyocto.c ${LDFLAGS} -o helloyocto }
do_install() { install -d ${D}${bindir} install -m 0755 helloyocto ${D}${bindir} } |
四.單獨編譯此recipe
$ bitbake helloyocto
編譯出的執行檔,可用以下命令找到
$ find tmp/work/ -name helloyocto*
五. 將此菜單加入最終的image中,例如在conf/local.conf中加入一行
IMAGE_INSTALL += "helloyocto"
六.Recipe的說明
項目 |
說明 |
DESCRIPTION |
此菜單的說明 |
LICENSE |
此菜單的授權方式,如 “MIT”, “GPLv2”, “GPLv3” |
LIC_FILES_CHKSUM |
License檔案的位置與checksum |
SRC_URI |
Source的來源,可以是本地端(file://)或遠端(git://) |
S |
用來表示recipe解壓縮後的路徑 |
WORKDIR |
定義如下: ${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR} |
do_compile |
編譯函數。可將自定的編譯命令寫在此。 |
do_install |
安裝函數。可將自定的安裝命令寫在此。 |
評論