首先,要创建自己的元层,您应该运行命令yocto-layer create MyRecipe
在您的 Yocto 环境中。这是为了确保元层中拥有所有必要的元素。确保将新的元层放入conf/bblayers.conf
创建HelloWorld食谱视频可以找到here
第二,将文件从一个目录复制到另一个目录。
DESCRIPTION = "Testing Bitbake file"
SECTION = "TESTING"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
PR = "r0"
SRC_URI = "file://MyfileA \
file://MyfileB "
#specify where to get the files
S = "${WORKDIR}"
inherit allarch
#create the folder in target machine
#${D} is the directory of the target machine
#move the file from working directory to the target machine
do_install() {
install -d ${D}/TestFolder
install -m ${WORKDIR}/MyfileA ${D}/TestFolder
}
为了获得更多详细信息,这是我对文件如何在 Yocto 中移动的理解。
您有一个存储元数据的目录/sourced/meta-mylayer/recipes-myRecipe/
。在该目录中,将有一个与配方同名的文件夹。 IE。myRecipe/
myRecipe_001.bb
.
您将存储与以下内容相关的文件myRecipe.bb
(通常是一个补丁)myRecipe/
以便SRC_URI
将进入那个myRecipe/
抓取文件的目录。 IE。myFileA
, myFileB
然后,您指定S
。这是构建目录中未打包的配方源代码所在的位置。这么说来,myFileA
and myFileB
被移动/复制到那里时myRecipe
builds.
通常,S
等于${WORKDIR}
,这相当于${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}
实际的目录取决于几个因素:
TMPDIR:顶级构建输出目录
MULTIMACH_TARGET_SYS:目标系统标识符
ON:配方名称
EXTENDPE:纪元 -(如果未指定 PE(大多数食谱通常都是这种情况),则 EXTENDPE 为空)
PV:食谱版本
PR:配方修订
之后,我们inherit allarch
. 此类用于独立于体系结构的配方/数据文件(通常是脚本).
然后,我们要做的最后一件事就是复制文件。
${D}
是构建目录中 do_install 任务安装组件的位置。该位置默认为${WORKDIR}/image
${WORKDIR}/image
也可以描述为/
目标系统中的目录。
Go to ${D}
目录并创建文件夹调用TestFolder
然后,从以下位置复制 myFileA${WORKDIR}
to the ${D}/TestFolder
附:请添加评论以修复。这里可能有错误的信息,因为所有这些都是我自己学到的。