Yocto 配方:如何在特定文件夹中安装
Yocto recipe : how to install in specific folder
我已经为我的程序创建了一个 Yocto 食谱。
从配方构建图像的默认文件夹是什么?
在构建图像时,我想将我的文件移动到另一个文件夹,如“/opt/xyz”。
我应该只做“mv”还是有其他选择?
我猜您想将编译后的程序复制到一个文件夹,例如 ${bindir}
:
Quote from Yocto ref-manual 1.1:
When specifying paths as part of the CONFFILES variable, it is good practice to use appropriate path variables. For example, ${sysconfdir} rather than /etc or ${bindir} rather than /usr/bin. You can find a list of these variables at the top of the meta/conf/bitbake.conf file in the Source Directory.
您可以将文件从您的工作目录复制到目标文件系统中的任何目录。参见hello-world example的例子(注意这个例子取自1.1参考手册,但我在新版本中还没有找到):
DESCRIPTION = "Simple helloworld application"
SECTION = "examples"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
PR = "r0"
SRC_URI = "file://helloworld.c"
S = "${WORKDIR}"
do_compile() {
${CC} helloworld.c -o helloworld
}
do_install() {
install -d ${D}${bindir}
install -m 0755 helloworld ${D}${bindir}
}
FILES_${PN} = "${bindir}"
在此示例中,helloworld
二进制文件将被复制到图像上的 /usr/bin
(也可能是 /opt
,请参阅源目录了解变量定义)。
为 ${sysconfdir} ${bindir} ${datadir} ${libdir}
个目录调整 FILES_${PN} 变量。
do_install(){
install -d ${D}{base_prefix}/opt/xyz/
install -m ${WORKDIR}/yourbinary ${D}${base_prefix}/opt/xyz/
}
FILES_${PN} = "${base_prefix}/opt/*"
以上
第一行在 opt/xvz/
中的 imagedir 中创建目录
第 2 行将您的二进制文件复制到 opt/xyz/dir
第 3 行用于将 opt/xyz/binary 复制到 yocto rootfs。
我已经为我的程序创建了一个 Yocto 食谱。 从配方构建图像的默认文件夹是什么? 在构建图像时,我想将我的文件移动到另一个文件夹,如“/opt/xyz”。
我应该只做“mv”还是有其他选择?
我猜您想将编译后的程序复制到一个文件夹,例如 ${bindir}
:
Quote from Yocto ref-manual 1.1:
When specifying paths as part of the CONFFILES variable, it is good practice to use appropriate path variables. For example, ${sysconfdir} rather than /etc or ${bindir} rather than /usr/bin. You can find a list of these variables at the top of the meta/conf/bitbake.conf file in the Source Directory.
您可以将文件从您的工作目录复制到目标文件系统中的任何目录。参见hello-world example的例子(注意这个例子取自1.1参考手册,但我在新版本中还没有找到):
DESCRIPTION = "Simple helloworld application"
SECTION = "examples"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
PR = "r0"
SRC_URI = "file://helloworld.c"
S = "${WORKDIR}"
do_compile() {
${CC} helloworld.c -o helloworld
}
do_install() {
install -d ${D}${bindir}
install -m 0755 helloworld ${D}${bindir}
}
FILES_${PN} = "${bindir}"
在此示例中,helloworld
二进制文件将被复制到图像上的 /usr/bin
(也可能是 /opt
,请参阅源目录了解变量定义)。
为 ${sysconfdir} ${bindir} ${datadir} ${libdir}
个目录调整 FILES_${PN} 变量。
do_install(){
install -d ${D}{base_prefix}/opt/xyz/
install -m ${WORKDIR}/yourbinary ${D}${base_prefix}/opt/xyz/
}
FILES_${PN} = "${base_prefix}/opt/*"
以上 第一行在 opt/xvz/
中的 imagedir 中创建目录第 2 行将您的二进制文件复制到 opt/xyz/dir
第 3 行用于将 opt/xyz/binary 复制到 yocto rootfs。