如何建立 Yocto 的 hello world recipe?

關鍵字 :yocto

說明: 在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

安裝函數。可將自定的安裝命令寫在此。

 

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論