Yocto 为什么';设置BB_generate_MIRROR_TARBALLS时,您是否要生成tarball?

Yocto 为什么';设置BB_generate_MIRROR_TARBALLS时,您是否要生成tarball?,yocto,bitbake,Yocto,Bitbake,我刚刚在我的Yocto构建中添加了一个新包(这个:),只要我连接到internet,它就可以正常工作。问题是,我现在正试图制作支持离线构建所需的tarball 关于设置:我正在运行Yocto Zeus。我在一个连接到互联网的虚拟机(Ubuntu 18.04)中工作,但是我们的构建代理不在网络上,所以我们托管了一个镜像。我已将此镜像安装在/mnt/download mirror上。我正在尝试在我的虚拟机上生成镜像所需的tarball 这是我正在使用的Yocto配置: BB_NO_NETWORK =

我刚刚在我的Yocto构建中添加了一个新包(这个:),只要我连接到internet,它就可以正常工作。问题是,我现在正试图制作支持离线构建所需的tarball

关于设置:我正在运行Yocto Zeus。我在一个连接到互联网的虚拟机(Ubuntu 18.04)中工作,但是我们的构建代理不在网络上,所以我们托管了一个镜像。我已将此镜像安装在/mnt/download mirror上。我正在尝试在我的虚拟机上生成镜像所需的tarball

这是我正在使用的Yocto配置:

BB_NO_NETWORK = "0"
INHERIT += "own-mirrors"
SOURCE_MIRROR_URL = "file:///mnt/download-mirror"
UNINATIVE_URL = "${SOURCE_MIRROR_URL}/uninative/2.7/"
BB_GENERATE_MIRROR_TARBALLS = "1"
SSTATE_MIRRORS = "file://.* file:///mnt/sstate-mirror/PATH"
但是当我运行Bitbake(我使用命令
Bitbake--runall fetch
)时,它就完成了,但是我没有得到我添加的新包的tarball。我在poky downloads文件夹(我通常会与镜像服务器同步的文件夹)中查找这个tarball,但它似乎不在那里

我是缺少配置还是什么?我已在中记录了所有配置


编辑-我还尝试在conf文件中设置
DL_DIR?=“/home/gen ccm root/Downloads”
,但我的命令仍然说没有什么可做的,所以我认为问题可能是我的bitbake命令。我还尝试了
bitbake-cmi-dev--runall=“fetch”
其中mi-dev是我的目标(根据7.23.2 in),但没有成功。

希望有人可以编辑此内容并输入更多信息,说明原因,但我确实设法让它生成了一个tarball

  • 清理了我的虚拟机,这需要删除sstate缓存和poky下载
  • 修改local.conf以在结尾处包含以下内容(我认为DL_DIR是可选的):
  • 运行命令:
    source oe init build env build dev
  • 运行命令:
    bitbake mi dev--runonly=fetch
  • 装载包含下载镜像的网络共享
  • 将文件复制到以下位置:
    sudo rsync-av--忽略现有--exclude=*.done--exclude=git2--exclude=svn/home/gen ccm root/Downloads//mnt/download mirror/

  • 随着我了解更多信息,我将对此进行更新(我仍然是一个Yocto noob),但问题似乎与Yocto在更改配置后没有重新配置,以及sstate缓存仍然可以访问并表示一切都在那里这一事实有关

    稍等,有了BB_NO_网络,它不应该出去从互联网上取东西

    如果我理解正确的话,您希望本地的一些其他生成机器有一个源镜像

    一种方法是共享一台机器的DL_目录,这台机器可以看到互联网

    另一种方法是使用源镜像,您需要从上面获得BB_GENERATE_mirror_TARBALLS=“1”

    我使用web服务器导出我的DL_DIR(其中也包含tarball),并在应该使用它的机器上使用,例如在local.conf或site.conf中:

    INHERIT += "own-mirrors"
    SOURCE_MIRROR_URL = "http://mirror/source_mirror_zeus"
    

    除了源代码之外,您还可以通过SSTATE\u镜像导出SSTATE,这将大大减少构建时间。

    是否应该在$DL\u目录中而不是$SOURCE\u镜像URL中创建它们?一旦它们被创建,你就可以将其移动到SOURCE_MIRROR_URL>@vermaete我同意,我没有在poky downloads文件夹中看到它。我将为Clarity更新问题
    BB\u NO\u NETWORK
    设置为0,这样它就可以上网了。当我正常构建时,我确实设置了
    SSTATE\u镜像
    (问题中就有)。我怀疑sstate缓存是我总是看到“无事可做”的部分原因。是的。Le说你在SSTATE或SSTATE_镜像中预先构建了所有内容,那么DL_DIR将不会被填充,因为不再需要源。
    INHERIT += "own-mirrors"
    SOURCE_MIRROR_URL = "http://mirror/source_mirror_zeus"