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.
我已按照文档中的说明操作、但是、当我基于 Linux (Ubuntu 22.04)构建时、我会看到通过 htop 在所有8个内核上间歇性地100%使用 CPU。 我有32G 的 RAM。 在编译时,桌面上没有其他应用程序可以可靠地使用。 有什么建议吗?
您好、Jim、
Yocto 构建通常非常占用资源、并且可以完全接管一台机器几个小时。 您可以看到所有内核上都有100%的 CPU 负载、这实际上表明并行编译会按预期工作、从而以尽可能快的方式加载系统以完成编译。
当然、当您想同时做其他工作时、这将导致您体验到的非常好的减速。 这就是为什么经常使用专用构建机器/服务器的原因。 请注意,Yocto 不仅会导致较高的 CPU 负载,还会使磁盘活动大幅增加。 如果您使用快速 NVMe 驱动器、则可能不是一个大问题。
如果您在执行 Yocto 编译时必须使用现有机器、并且不能选择使用专用机器或获取新的更高端机器、则可以通过向您的应用程序添加以下内容来限制 Yocto 的并行编译、从而尝试缩短一些 CPU 时间 conf/local.conf 文件...
BB_NUMBER_THREADS ?= "1" PARALLEL_MAKE ?= "-j 6"
假设采用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 构建中(最好是使用您自己的自定义层)、以生成随时可用的映像。
如果在工作过程中存在任何与上述所有方面相关的具体问题、请单独打开一个 E2E 主题、因为根据您的电路板与 TI EVM 的不同、您可能会遇到一系列挑战、并且不同的主题专家将负责处理不同的支持主题。
此致、Andreas