1

当使用 Petalinux(Yocto 的一种)构建项目时,它需要 Internet 从服务器(git serve 或其他)获取包。

我的工作机器没有访问Internet的权限(只有局域网),所以我打算在这个局域网中设置一台可以访问Internet的机器,成为Yocto的镜像服务器。

有没有人有任何想法设置这样的服务器?请帮忙。

4

2 回答 2

3

您可以查看以下页面来设置源镜像:

基本上,您使用以下选项在源镜像机器上启动构建:

 SOURCE_MIRROR_URL ?= "file:///source_mirror/sources/"
 INHERIT += "own-mirrors" 
 BB_GENERATE_MIRROR_TARBALLS = "1" 

您只能使用以下命令获取源: bitbake -c target runall="fetch". ./source_mirror/sources/然后你启动一个ftp服务器来为http://example.com/my-source-mirror.

然后在离线机器上,你设置

 INHERIT += "own-mirrors"
 SOURCE_MIRROR_URL = "http://example.com/my-source-mirror"
 BB_NO_NETWORK = "1" # or BB_FETCH_PREMIRRORONLY = "1"

如果您有权访问代理,则可以检查以下内容:

于 2019-04-11T07:39:27.700 回答
0

Copy'n'paste 快捷方式:下面是一个工作配置,您只需复制'n'paste 即可,无需花费时间了解每个小细节 :)

架构:在这个例子中有两种类型的机器。“构建服务器”和“开发者电脑”的几个实例。

机器准备: 在所有机器(服务器和开发人员)上安装共享文件夹,以访问将其存储映射到 /mnt/mirror 的任何类型的文件服务器(例如 nfs)。NFS 示例,如果这对您来说是新的,如果您已经安装了 NFS,请跳过:https ://pelux.io/2017/06/19/How-to-create-a-shared-sstate-dir.html (停止阅读标题“Yocto”并按照以下步骤进行操作)

总体配置: 将我粘贴到此票证末尾的代码添加到文件 conf/local.conf 中,并删除之前所有冲突的行(即与我们定义的任何变量,如 DL_DIR 混淆)

机器配置: 对于开发机器,使用 A(结果 B),对于构建服务器,使用 B(结果 A)。

命中它: 当服务器 PC 第一次进行 bitbakes 时,它会填充镜像文件夹。第一个服务器构建完成后,客户端将使用镜像。(source-mirror 绕过互联网依赖和 sstate-cache 以加快构建速度)。

本地配置文件:

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Activate either A or B depending on it this is a developer pc or the build server
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MIRROR_SERVER = "file:///mnt/mirror/"

# ########################################################
# A) Settings for developer PC operation
# ########################################################
BB_FETCH_PREMIRRORONLY = "1"
SOURCE_MIRROR_URL = "${MIRROR_SERVER}/source-mirror"
UNINATIVE_URL = "${SOURCE_MIRROR_URL}"
INHERIT += "own-mirrors"
SSTATE_MIRRORS = "\
file://.* ${MIRROR_SERVER}/sstate-cache/PATH;\
downloadfilename=PATH \n \
"

# ########################################################
# B) SETTINGS FOR BUILDSERVER OPERATION
# ########################################################
#SSTATE_DIR = "/mnt/remux/sstate-cache"
#BB_GENERATE_MIRROR_TARBALLS = "1"
##To populate the source mirror start a normal server build or run: bitbake --runall=fetch <image>

# ########################################################
# SETTINGS FOR BOTH, A and B
# ########################################################
DL_DIR = "/mnt/mirror/source-mirror“
于 2020-07-04T16:05:26.390 回答