bitbake SRC_URI file://

19
如果我有一个tarball,例如在本地目录/home/user/tarballs/中的helloworld.tar.gz,我该如何让我的bitbake配方从该目录获取?我的helloworld.bb文件是什么样的?
SECTION = "examples"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://COPYING; md5=1b1b8016e15e07a2fec59623ebf12345"

SRC_URI = "file://helloworld.tar.gz"

但是当我运行 bitbake 命令时,会出现以下警告信息:

WARNING: Unable to get checksum for helloworld SRC_URI entry helloworld.tar.gz: file could not be found

我读到了与文件和文件额外路径(FIILESEXTRAPATHS)相关的内容,这些可以影响下载路径,但不确定在哪里/如何设置。我执行了“bitbake -c show FILESEXTRAPATHS”命令,但收到了一个错误消息:
ERROR: Nothing PROVIDES 'FILESEXTRAPATHS'
3个回答

23

如果你想从本地目录获取文件,可以使用以下命令:

SRC_URI = "file:///home/user/tarballs/helloworld.tar.gz"

FILES和FILESEXTRAPATHS变量告诉bitbake去哪里查找被引用的文件:

SRC_URI = "file://helloworld.tar.gz"

这些文件在由那两个变量指定的位置进行搜索。 (或者更确切地说,首先搜索FILESEXTRAPATHS,然后是FILESEXTRAPATHS中指定的目录的一些可能子目录,其中包括DISTRO,MACHINE,ARCH等的扩展值)。

FILES(和FILESEXTRAPATHS)用于查找与元数据一起存储的文件,即在路径meta-/recipes-/name/XXX下的文件。

参见http://www.yoctoproject.org/docs/1.7/mega-manual/mega-manual.html#var-FILEShttp://www.yoctoproject.org/docs/1.7/mega-manual/mega-manual.html#var-FILESEXTRAPATHS


谢谢!我没有意识到我可以在SRC_URI中放置整个绝对路径。 - xyz

7
更好的做法是将文件保存在当前目录(.bb文件所在的目录),并在.bb文件中添加以下行。
FILESEXTRAPATHS_prepend := "${THISDIR}:"
SRC_URI = "file://helloworld.tar.gz"

FILESEXTRAPATHS_prepend:告诉bitbake文件位于.bb文件所在的位置。


4
您可以按照以下方式编辑.bb文件,
FILESEXTRAPATHS_prepend := "path_to_home_folder_of_source_folders:"
SRC_URI = "file://Source_floder/*"

作为一个例子
FILESEXTRAPATHS_prepend := "/home/username/:"
SRC_URI = "file://tarballs/*"

1
我在想,如果您没有tarball,而是一个带有源代码的目录树,怎么办呢? - grenix

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