This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] SK-AM62P-LP:无法在离线环境中构建具有 Yocto 的 SDK

Guru**** 2551110 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1318189/sk-am62p-lp-failed-to-build-the-sdk-with-yocto-in-offline-environment

器件型号:SK-AM62P-LP

您好!

 我正在尝试为 AM62Px 构建处理器 SDK、我在离线主机

  • 我事先准备了本地镜像(下载文件夹)
  • 我开始使用"BB_NO_NETWORK = 1"进行构建
  • 除了一个食谱,一切都很好
  • 似乎名为"websocketd"的食谱试图在 do_compile 过程中从互联网获得一些东西。
  • 是否有办法准备好所需的全部内容并完全脱机进行构建?

DEBUG: Executing shell function do_compile
go: github.com/gorilla/websocket@v1.4.0: Get "">proxy.golang.org/.../v1.4.0.mod": dial tcp 216.58.203.81:443: i/o timeout
go: downloading github.com/gorilla/websocket v1.4.0
go: github.com/gorilla/websocket@v1.4.0: Get "">proxy.golang.org/.../v1.4.0.mod": dial tcp 216.58.203.81:443: i/o timeout
go: github.com/gorilla/websocket@v1.4.0: Get "">proxy.golang.org/.../v1.4.0.mod": dial tcp 216.58.203.81:443: i/o timeout
go: downloading github.com/gorilla/websocket v1.4.0
go: github.com/gorilla/websocket@v1.4.0: Get "">proxy.golang.org/.../v1.4.0.mod": dial tcp 216.58.203.81:443: i/o timeout

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [quote userid="588088" url="~/support/processors-group/processors/f/processors-forum/1318189/sk-am62p-lp-failed-to-build-the-sdk-with-yocto-in-offline-environment 似乎是名为"websocketd"的食谱试图从互联网上获得 DO_COMPILETE 过程中的一些东西。

    这种行为通常是在 Yocto 社区被冷落的,如果发现这些事情,他们通常是固定的。 用户应该能够进行一个完全构建只基于缓存下载文件。 这种方法看起来像是 TI 添加的一部分、因此让我来提交一份内部问题报告、以便更新和改进该构建流程。

    目前、您只需从构建中删除软件包(及其依赖项)就可以了吗? 完整的无刷直流电机和 Websocketd 来自 packagegroup-arago-base.bbappend 您将需要删除  状态 来自  packagegroup-arago-tisdk-addons.bb 。 您应该能够通过 local.conf 或在您自己的层中进行此操作。

    此致、Andreas

    (参考: SITSW-3635)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢! 我会尝试它。

    在 do_fetch 阶段之后、一个配方请求互联网是否很常见? 如果这个食谱是我们需要的,我们不能只是删除它,但改变它的行为,以在 do_fetch 阶段做互联网的事情,对吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    且在 do_fetch 阶段后请求互联网的食谱是否很常见? [/报价]

    不,食谱不应该这样做。 这被认为是糟糕的做法。 编译所需的一切都应在"提取"阶段获取。

    但是改变它的行为以在 do_fetch 阶段执行互联网操作,对吗?

    可以。 但是、根据具体方法、修复起来可能并不"容易"、因为它可能涉及修改相关工程本身的源代码/ makefile 等、以便在某些文件夹中查找已下载的工件、而不是在编译期间尝试动态下载它们。

    如果您确实需要这些食谱 ,但无法删除,请告诉我们,我们可能可以帮助确定需要做什么。

    此致、Andreas

    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我可以成功地建立 tisdk-base-image 在删除我自己的层的 websocketd 依赖后,我将尝试全映像建立这些天,如果你可以指导我修改上游项目的制作过程也有这个问题将是非常有帮助的。

    提前感谢您!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我可以在删除我自己层中的 websocketd 依赖项后成功构建 tisdk-base-image

    很高兴基本构建现已开始工作。

    如果您可以指导我修改上游项目的 make 过程也有此问题,将会非常有用。

    我在这上面花了更多的时间、似乎还有其他(非 TI 的) Yocto 食谱、比如`ã o Influxdb`、这些食谱存在类似的问题、但在进行建模的那一刻、没有现成的解决方案、至少我没有看到任何这样的解决方案。 那么、我继续并提交了一个 TI 内部问题报告/增强请求(SITSW-3657)、让我们的软件团队对此进行调查并针对未来的 SDK 进行修复、但目前我没有现成的解决方案。 然而,做一些进一步的研究,它看起来会按照这篇文章的思路在这里: https://stackoverflow.com/a/65356780

    此外、还有一种方法即使采用原配方也可以进行离线构建、即利用 Yocto 的共享状态缓存功能。 如果构建一次 websocketd (即特定版本)、所有构建/二进制构件都会存储在共享状态缓存中、 下次进行完整系统构建时、假设可以访问共享状态缓存、Bitbake 应该从缓存中提取以前构建的二进制文件、并使用这些文件填充 rootfs 等。 以下是有关此主题的一些不错的讨论: https://bootlin.com/blog/yocto-sharing-the-sstate-cache-and-download-directories/

    此致、Andreas

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您将其添加到 TI 内部问题列表、我可以想象出、对于每个可能具有完全不同构建流程的特定上游项目、修复起来很困难。
    bootlin 教程也很有帮助!