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.

[参考译文] PROCESSOR-SDK-AM62X:借助 Yocto 构建 SDK - Processor SDK AM62x 文档

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1359709/processor-sdk-am62x-building-the-sdk-with-yocto---processor-sdk-am62x-documentation

器件型号:PROCESSOR-SDK-AM62X

我已按照文档中的说明操作、但是、当我基于 Linux (Ubuntu 22.04)构建时、我会看到通过 htop 在所有8个内核上间歇性地100%使用 CPU。  我有32G 的 RAM。  在编译时,桌面上没有其他应用程序可以可靠地使用。  有什么建议吗?  

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

    您好、Jim、

    Yocto 构建通常非常占用资源、并且可以完全接管一台机器几个小时。 您可以看到所有内核上都有100%的 CPU 负载、这实际上表明并行编译会按预期工作、从而以尽可能快的方式加载系统以完成编译。  

    当然、当您想同时做其他工作时、这将导致您体验到的非常好的减速。 这就是为什么经常使用专用构建机器/服务器的原因。  请注意,Yocto 不仅会导致较高的 CPU 负载,还会使磁盘活动大幅增加。 如果您使用快速 NVMe 驱动器、则可能不是一个大问题。

    如果您在执行 Yocto 编译时必须使用现有机器、并且不能选择使用专用机器或获取新的更高端机器、则可以通过向您的应用程序添加以下内容来限制 Yocto 的并行编译、从而尝试缩短一些 CPU 时间 conf/local.conf 文件...

    Fullscreen
    1
    2
    BB_NUMBER_THREADS ?= "1"
    PARALLEL_MAKE ?= "-j 6"
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    假设采用8核计算机、这应将 Yocto 使用的内核数限制为6个、从而使2个内核始终可用于其他应用。 请注意、这可能会大大延长构建时间。 但这都是一种折衷。

    在这些行中、请确保您了解/使用 Yocto 共享状态缓存功能(不要不断删除该文件夹)、这将显著加快递增构建。 这里有一个很好的总结: https://bootlin.com/blog/yocto-sharing-the-sstate-cache-and-download-directories/

    此致、Andreas

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

    Andreas、

     

                   感谢您的回复!

                   我在我们的 Ubuntu 22.04机器上翻了一番,它似乎有所帮助。

                   完成了大约38%的任务、我出现了取指令错误、但继续生成。  我会在编译结束时得到一个映像还是需要执行其他操作。  从我使用 Qualcomm 的经验来看、生成通常会因出现任何错误而停止。

     

                                                                   吉姆·迈耶

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

    您好、Jim、

                   完成约38%时,我有一个获取错误,但构建仍在继续。  我会在编译结束时得到一个映像还是需要执行其他操作。  从我使用 Qualcomm 的经验来看,生成通常会因任何错误而停止。

    它应该与使用其他供应商的解决方案构建 Yocto 的行为并没有什么不同。 它要么会执行结束、要么会因错误而停止。 但是、即使发生错误、Yocto 也会继续构建一段时间、这种情况并不少见、因为 Yocto 会继续构建不受错误影响的其他配方、尤其是在使用`bitbake -k`选项时。

     `、如果它似乎停留了很长时间、那么最好仔细检查处理器负载(例如、使用` htop)以确保仍然存在活动。 如果不是、可能有一种罕见的注意事项、在某些情况下、当系统内存耗尽时、可以观察到这种情况、但不幸的是、没有显示干净的错误消息(bitbake 服务器过程将只是挂起)。

    另外、对于 AM62x 具体构建、请尝试从构建中禁用 Chromium。 它非常繁重/繁重、您的应用程序可能不需要它、请参阅 SDK 文档中 Overview_Building_的 Chromium 相关说明、网址:https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/09_02_01_09/exports/docs/linux/vc800_sdk.html#build-steps。

    此致、Andreas

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

    Andreas、

       我是否可以在任何具有 am62xx-LP 芯片的通用硬件上安装"tisdk-default-image-am62xx-lp-evm.wic.xz"?  此外、如果通用硬件包含不同的 I/O 连接和以太网(X2)等、如何配置这些更改。   

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

    您好、Jim、

       能否在任何具有 am62xx-LP 芯片的通用硬件上安装"tisdk-default-image-am62xx-LP-evm.xz"?  [/报价]

    哦、不、不幸的是、它不是那么简单。 您需要做的是实现一个"板端口"、而这最好在 Yocto 外部实现。 基本上、针对您的电路板定制 U-Boot 和内核、使其处于可用/兼容的状态。 这通常包括定制 U-Boot 和内核 DTB 文件、将定制的 DDR 配置添加到 U-Boot (也通过 DTS)、以及根据需要在 U-Boot 中创建一些特定于电路板的文件/init 序列。

    https://dev.ti.com/tirex/explore/node?node=A__AWde9U3fyhQwPQrzBeP7QA__AM62-ACADEMY__uiYMDcq__LATEST

    然后、您需要同时为 U-Boot 和内核生成一个补丁集、然后您可以将其添加到 Yocto 构建中(最好是使用您自己的自定义层)、以生成随时可用的映像。

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1303384/sk-am62-using-custom-kernel-in-local-workspace-for-yocto-ti-sdk/4953153#4953153

    如果在工作过程中存在任何与上述所有方面相关的具体问题、请单独打开一个 E2E 主题、因为根据您的电路板与 TI EVM 的不同、您可能会遇到一系列挑战、并且不同的主题专家将负责处理不同的支持主题。

    此致、Andreas

x 出现错误。请重试或与管理员联系。