Yocto配方:如何在特定文件夹中安装

5
我已经为我的程序创建了一个Yocto配方。 从配方构建映像时,默认的文件夹有哪些? 在构建映像时,我想将我的文件移动到另一个文件夹,如“/opt/xyz”。 我只需要使用“mv”,还是有其他选项?

您能否详细说明您想实现什么?您是想在最终的Yocto镜像内部还是外部移动文件? - volker
1
为什么不直接让你的程序安装文件到正确的位置(即/opt/xyz)呢? - Anders
2个回答

12

我猜你想要把编译好的程序复制到一个文件夹,如${bindir}

摘自Yocto参考手册1.1:
在将路径作为CONFFILES变量的一部分时,最好使用适当的路径变量。例如,使用${sysconfdir}而不是/etc或${bindir}而不是/usr/bin是一个好习惯。您可以在源目录中的meta/conf/bitbake.conf文件顶部找到这些变量的列表。(Source Directory)

你可以将文件从工作目录复制到目标文件系统中的任何目录。例如,请参见hello-world示例(请注意,该示例来自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} 变量。

4
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中。

第二行将你的二进制文件复制到opt/xyz/dir中。

第三行用于将opt/xyz/binary的副本复制到yocto rootfs中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接