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.

[参考译文] AM5728:Building SDK - Yocto Way

Guru**** 2540080 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/901334/am5728-building-sdk---yocto-way

器件型号:AM5728

我已经快要过完了、非常沮丧。 由于我显然是唯一无法成功构建 AM572x Linux SDK 的人、我的结论是、您的在线说明(1.2构建 SDK)中必须缺少一些关键的配置步骤、而全球其他人都知道这些说明、但我不知道这些说明。

我不断收到编译错误、表示无法找到"bits\libio.h"(或从"bits"子目录中引用的其他包含项)、具体取决于我要构建的目标。  应该注意的是、如果我去旧学校直接安装 SDK (而不是通过 Yocto)、请对其进行配置(使用它的 setup.sh 脚本)、然后执行"make clean (清理)"、然后执行"make all (全部创建)"、所有内容都可以顺利成功构建。  只有当尝试这么做的时候、新的 Yocto 方法才会让事情变糟糕。 (请参阅 1.1.6运行安装脚本 和 1.1.7顶层 makefile。)

任何人都应该可以重现这些构建错误。

  1. 创建新的和新的 Ubuntu 18.04 VM;
  2. 按照   1.2构建 SDK 页面上的逐字说明进行操作;以及
  3. 对于最终的"构建"行、请尝试以下任一操作:
    1. MACHINE=am57xx-EVM bitbake Arago-core-tisdk-bundle
    2. MACHINE=am57xx-EVM bitbake tisdk-rootfs-image
    3. machine=am57xx-EVM bitbake meta-toolchain-arago-tisdk

有趣的是,“arago-base-tisdk-image”目标(最小构建)将成功,但我需要完整的 SDK 和文件系统。

您的书面说明中缺少哪些内容可帮助您构建 SDK 而不是我的 SDK?  显然、需要在 conf/local.conf 文件中添加或更新某些内容、但我不知道是什么。

最后、无论我使用的是06.02.00.81 SDK 还是刚刚发布的06.03.00.106 SDK、构建错误都是相同的。

其中一个编译错误的示例(同样、所有其他错误也不会在"bits"子目录中找到某些头文件):

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

    我们非常感谢您的任何帮助、因为此论坛是 TI 提供支持的唯一途径。

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

    尊敬的 Alex:

    阅读您的帖子、我建议您首先通过运行以下命令来检查您是否安装了以下软件包:

    dpkg --list libc6-dev:amd64

    如果未安装、请请求您安装并重新运行编译。

    如果您通过以下部分中的命令运行、我希望安装此程序: software-dl.ti.com/.../Overview_Building_the_SDK.html

    最好仔细检查您是否通过此处列出的 Ubuntu 命令以及代理设置运行。

    我在此要强调的另一点是、"make clear"和"make all"会构建独立组件、重要的是、在本次讨论的背景下、它不会构建文件系统。

    您报告的错误主要是在文件系统的构建中。 请尝试上述操作、让我们根据您的进一步意见进行回顾。

    此致
    Karthik

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

    是的、已安装。

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

    此外、正如我所说的、您可以自行重现此错误、因此轮询我的系统是一个不必要的延迟。  安装 Ubuntu 18.04 (根据您自己的说明)并继续构建 SDK (再次使用您自己的说明)。

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

    是这样吗?  不再支持?  您认为发布的 SDK 不能按照您自己的说明进行构建吗?

    这些说明可能是10年前为 Ubuntu 编写的、因此显然缺少依赖项。  (哦、顺便说一下、我现在已经尝试了 Ubuntu 18.04和16.04。)  我不是 Linux 的人、因此我太愚蠢了、无法弄清它。  我在这里真的需要你的帮助。

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

    尊敬的 Alex:

    很抱歉耽误您的时间-我们通常使用 Ubuntu 服务器进行开发、并且在该计算机上6.02版本和6.03版本都可以正常运行。

    服务器不允许我安装虚拟机环境来帮助重现错误。

    相反、我现在拥有了一台配置合理的"远程计算机"、我将尝试从全新的18.04虚拟机复制该错误。 我现在正处于构建 Arago-base-tisdk-image 的阶段、当我转到下一步时、我将报告。

    此致

    Karthik

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

    尊敬的 Alex:

    我已经能够在全新的虚拟机安装中重现此问题、并按照文档中概述的步骤进行操作。

    但是、在服务器和以前安装的其他 Ubuntu 18.04版本上、我看到相同的命令集构建良好。

    我将进一步研究它、很快就会回来。

    此致

    Karthik

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

    是的、这就是我所担心的。  在 您的服务器上安装某个组件显然安装了 SDK 构建所需的一个或多个依赖项。 (您可能仍在运行16.04、因此对于独立于 SDK 安装的软件而言、这是四年的时间。 :-))

    如果您可以让服务器管理员运行以下命令并将其与在新的 Ubuntu 18.04 VM 上执行的相同命令进行比较、那么跟踪差异可能会更容易吗?

    APT 列表--installed 2>/dev/null > installed_packages.txt

    感谢您继续帮助解决此问题。

     

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

    尊敬的 Alex:

    请安装 g++-multilib 并查看是否可以继续。

    我的版本仍在运行、我认为它们已从故障点进一步发展、过早地宣布完成。 但请尝试一下、并报告您的发现。

    我们的服务器也在运行18.04 -它不是16.04,但我确实解释了为什么我们大多数人没有看到错误。 将保留该语句供稍后使用。  

    此致

    Karthik

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

    这让我通过了我的初始、显示停止错误。  这让我很开心。 :-) 此外,我发现了用于 bitbake 的美妙的"-k"参数(出错时继续)(您应该用它更新 Wiki),因此六个小时后(这将在其中丢弃12个内核!), 现在、我剩下六个 bitbake 任务、无论我在这些任务上执行了多少次"bitbake -f -c cleanall"、这些任务都无法完成:

    摘要:6个任务失败:
    /home/alex/tisdk/sources/meta-arago/meta-arago-extras/recipes-devtools/input-utils/input-utils_1.0.bb:DO 编译
    /home/alex/tisdk/sources/meta-arago/meta-arago-extras/recipes-core/meta/external-arm-sdk-toolchain.bb:DO 安装
    虚拟:nativesdk:/home/alex/tisdk/sources/meta-processor-sdk/recipes-support/tvm/tvm_git.bb:do_install
    /home/alex/tisdk/sources/meta-ti/recipes-bsp/edma3-lld/edma3-lld-rtos_git.bb:DO 编译
    /home/alex/tisdk/sources/meta-processor-sdk/recipes-support/tvm/tvm_git.bb:DO 安装
    /home/alex/tisdk/sources/meta-ti/recipes-kernel/linux/linux-ti-staging-rt_4.19.bb:DO 编译

    连接的是总输出。  也许我可以理解这三个'do_install'任务失败的原因、但我不知道为什么 input-utils、 EDMA3-LLD-RTOS 和  linux-ti-staging -RT 方法无法编译。

    Alex

    编辑: 对于它的价值、我现在尝试按照 http://arago-project.org/wiki/index.php/Setting_Up_Build_Environment 页面上的说明(主机设置)操作、但这没有帮助。 在该页面上、实际上引用了您的 g++-multilib 软件包(与 SDK Wiki 指令中的不同)。  除 ia32-libs (不再存在)外、所有内容都已安装、但 apt 输出指出 ia32-libs 包已被 lib32ncurses5和 lib32z1替换、因此我安装了这些包。  (我认为 lib32z1已安装。)  但是、正如我所说的、我仍然会遇到上述6个任务错误。

    e2e.ti.com/.../6406.build.log

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

    尊敬的 Alex:

    感谢您的更新。  

    是的、我将更新此文档以包含 g++-multilib。  

    在我向您发送了最后一条消息后、我继续了(是的、建议使用带有-k 选项的 bitbake -我们也会解决该问题)、故障与 chromium-option-wayland 有关、我通过 bitbake -c cleanall 和 bitbake 再次解决了该问题。

    但是、我当时一直在努力构建与我正在调查的 meta-ROS 相关的 PCL。 我遇到了一些虚拟机问题、我的实验再次启动。 几个小时内将使用 tisdk-rootfs-image 重新生成报告。

    您能否说明您是为 RT Linux 还是默认非 RT 构建? 我正在尝试非 RT。

    此致

    Karthik

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

    Linux-RT。  我们的应用需要实时性能、并且需要能够即时(微秒级)响应外部事件(中断)。  基线 Linux 几乎是一个不可去的地方、因此我尝试使用伪-RT Linux 并希望获得最佳性能。 :-) 如果这不能解决问题,那么我只能回到我更熟悉的 TI-RTOS。

    无论如何、您可以在日志中看到我用于构建的命令、但在这里它是:

    MACHINE=am57xx-EVM Arago_rt_enable=1 bitbake -k Arago-core-tisdk-bundle
    

    编辑: 对于这三个拒绝编译的方法、它们会错误地指出我是否使用'Arago_rt_enable=1'标志。

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

    尊敬的 Alex:

    我已经取得了更大的进展、我成功构建了 tisdk-rootfs-image。

    为了总结 SDK 文档中的其他步骤、我执行了以下步骤:

    1. 已安装 g++-multilib
    2. 按照以下建议增加了 Ubuntu 上的交换空间: https://e2e.ti.com/support/processors/f/791/p/779296/2886171#2886171
    3. 对于每个故障配方、我都进行了一次 bitbake -c cleanall 和 bitbake

    现在、我已成功构建 tisdk-rootfs-image。 我将继续构建 Arago-core-tisdk-bundle。 我们很快就会报告这一点。

    此致

    Karthik

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

    感谢您的更新。  期待您的结果。  我为我的虚拟机分配了32 GB 的内存,因此我不认为这是内存问题。  我还将文件句柄限制增加到4096 (Ubuntu 18.04的系统限制不会黑客入侵系统文件)。  默认为1024。  [ ulimit -n 4096]

    我为 Ubuntu 提供了1 TB 驱动器、并让安装程序使用整个驱动器、因此我不知道(手动)它使交换分区有多大。

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

    尊敬的 Alex:

    只需进行上述更改、以下构建就可以完成。

    machine=am57xx-EVM bitbake -k tisdk-rootfs-image
    machine=am57xx-EVM bitbake -k Arago 内核 tisdk-bundle
    
    

    现在、我将继续构建  

    MACHINE=am57xx-EVM Arago_rt_enable=1 bitbake -k Arago-core-tisdk-bundle 

    会回来并发布最后一次更新(希望如此)

    为了总结 SDK 文档中的其他步骤、我执行了以下步骤:

    1. 已安装 g++-multilib
    2. 按照以下建议增加了 Ubuntu 上的交换空间: https://e2e.ti.com/support/processors/f/791/p/779296/2886171#2886171、 要检查交换大小和配置、我刚刚按照本文的说明、发现增加到3GB 是我的诀窍。 (https://www.linuxtechi.com/extend-swap-space-using-swap-file-in-linux/)
    3. 对于每个故障配方、我都进行了一次 bitbake -c cleanall 和 bitbake

    此致

    Karthik

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

    尊敬的 Alex:

    我也能够为 RT 配置构建 Arago 内核 tisdk-bundle。

    总结:

    只需进行上述更改、以下构建就可以完成。

    machine=am57xx-EVM bitbake -k tisdk-rootfs-image
    machine=am57xx-EVM bitbake -k Arago 内核 tisdk-bundle
    
    MACHINE=am57xx-EVM Arago_rt_enable=1 bitbake -k Arago-core-tisdk-bundle 

    为了总结 SDK 文档中的其他步骤、我执行了以下步骤:

    1. 已安装 g++-multilib
    2. 按照以下建议增加了 Ubuntu 上的交换空间: https://e2e.ti.com/support/processors/f/791/p/779296/2886171#2886171、 要检查交换大小和配置、我刚刚按照本文的说明、发现增加到3GB 是我的诀窍。 (https://www.linuxtechi.com/extend-swap-space-using-swap-file-in-linux/)
    3. 对于每个故障配方、我都进行了一次 bitbake -c cleanall 和 bitbake

    以下是我的原始备注、可帮助查看所有步骤。

    1.下载虚拟盒
    2.下载 Ubuntu 18.04 ISO
    3.设置虚拟机
    4.浏览器的代理设置
    5.下载 SDK 6.03版本
    6.下载用于 ARMv7和 ARMv8的 GCC 工具链
    7.为 apt 设置代理
    8. apt-get 更新
    9.按照《软件开发人员指南
    》a.安装推荐的工具(apt-get 安装)
    b.重新配置 DASH -说不
    10. git、wget、http 的代理设置
    11.安装螺钉
    12.使用所有 git URL 更新配置文件
    13.运行 OE-layersetup
    14.调整 rm_work 和下载目录的配置文件
    15 setup.sh
    16、ulimit -Sn 4096
    17.安装 g++-multilib
    18.增加交换空间: www.linuxtechi.com/.../
    19.构建步骤:
    Git 克隆 git://arago-project.org/git/projects/oe-layersetup.git tisdk
    cd tisdk/
    vi configs/processor-sdk/processor-sdk-06.03.00.106-config.txt
    ./oe-layertool-setup.sh -f configs/processor-sdk/processor-sdk-06.03.00.106-config.txt
    vi conf/local.conf #,覆盖下载目录等
    。 CONF/setenv
    导出 toolchain_path_armv7=/home/karthik/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf
    导出 toolchain_path_armv8=/home/karthik/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu
    machine=am57xx-evm bitbake -k tisdk-rootfs-image
    MACHINE=am57xx-EVM bitbake -k Arago-core-tisdk-bundle
    MACHINE=am57xx-EVM Arago_rt_enable=1 bitbake -k Arago-core-tisdk-bundle
    

    此致

    Karthik

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

    尽管 bitbake 有32 GB 的存储器可供使用、但我将交换空间增加到了4 GB。  我仍然会得到与此主题前一页上一篇文章中报告的相同的六个错误。  EDMA3-LLD-RTOS、input-utils 和 linux-ti-staging 拒绝编译、无论我对它们执行多少次'bitbake -c cleanall'并单独编译它们。

    我现在看到您发布了整个速查表的一个不同之处是、您提取了一周前推出的 SDK 06.03.00.106版本。  正如我在开场白中发布的那样、我需要以之前的版本(06.02.00.81)为基础进行构建、因为这是我的电路板供应商基于其 BSP 的原因。

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

    Alex、

    根据您在第一篇文章中提到的"最后、无论我使用的是06.02.00.81 SDK 还是刚刚发布的06.03.00.106 SDK、构建错误都是相同的。"

    我将尝试使用6.02配置复制相同的内容、并告知您我的结果。

    同时、您能否使用6.03配置文件重新启动、并让我知道您是否进入同一页面?

    此致

    Karthik

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

    我已经启动了06_03_00_106构建、像您一样、我想首先从 tisdk-rootfs-image 目标开始(无论如何这是 SDK 构建的主要内容)、我现在处于44%、并且已经获得了与我之前使用的 SDK 相同的 EDMA3-LLD-RTOS 编译错误、这是不鼓励的。  可能需要几个小时才能完成"Bbitbake -k"作业、然后我才能查看是否清洁配方并再次尝试解决该问题、但我对此持怀疑态度。

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

    所以我想你还会在某种程度上留下一个步骤或一些东西。  我不知道您如何成功构建此器件、其中包含了 EDMA3-LLD-RTOS。  这两个 SDK 版本都将失败、因为源代码的配置脚本中存在错误/错误。

    如果查看日志(请参阅附件)、则错误始终相同:

    #正在调用配置...
    chmod a+x maketemp_configuro_cmd_c6xdsp.bat
    ./maketemp_configuro_cmd_c6xdsp.bat
    ./maketemp_configuro_cmd_c6xdsp.bat:1:./maketemp_configuro_cmd_c6xdsp.bat:-e:找不到
    /home/alex/tisdk.06_03_00_106/build/arago-tmp-external-arm-toolchain/work/am57xx_evm-linux-gnueabi/edma3-lld-rtos/2.12.05.30E-r1.1/git/makerules/rules_66.mk:219:目标'xdc_configuro'的配方失败
    make[2]:***[XDC_configuro]离开
    /home/alex/tisdk.06_03_00_106/build/arago-tmp-external-arm-toolchain/work/am57xx_evm-linux-gnueabi/edma3-lld-rtos/2.12.05.30E-r1.1/git/examples/edma3_driver/evmtda2xx 目录时出错:
    

    请注意"-e:找不到"。  该批处理文件有问题、而此错误是将此配方声明为失败的唯一原因。  之所以调用这一切、是因为某些奇怪的原因(您告诉我为什么它是您的 SDK)、即使我是为 am57xx-EVM 构建、也会构建 tda2xx-EVM 的代码(以及具有 C66x 内核的其他每个 EVM)。  由于我不关心该目标/EVM、因此我更新了 meta-ti/metrouge-bSP/EDMA3-LLD/EDMA3-LLD-RTOS_gIT.bb 配方文件以排除该 EVM:

    PLATFORMLIST_OMAP-a15 =""
    #PLATFORMLIST_OMAP-a15 ="\
    # tda2xx-evm
    \#"
    

    现在 、EDMA3-LLD-RTOS 构建无错误。 因此、这与交换空间(现在、我的容量为8 GB)、文件句柄、依赖项或任何其他内容无关。  这是 SDK 源文件中的一个错误、因此我不理解为什么您也没有收到此错误。

    此外、无论您是为 Linux 还是 LinuxRT 构建、都会发生这种情况。  昨天,我擦除了我的整个构建目录(当然,conf 子目录除外),并尝试为 Linux (而不是 LinuxRT)重建 rootfs 目标,但仍然出现相同的错误。

    e2e.ti.com/.../edma3_2D00_lld_2D00_rtos.build.log

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

    尊敬的 Alex:

    现在、我们似乎在您和我双方的行为上存在一些差异。  

    我将使用6.02配置和 Arago_rt_enable=1发布试验结果(请注意、我之前使用 Cheat 表进行的更新是在没有 RT 的情况下进行6.03配置)。  

    MACHINE=am57xx-EVM Arago_rt_enable=1 bitbake -k tisdk-rootfs-image 

    它顺利运行、没有任何问题。

    我现在正在生成:

    MACHINE=am57xx-EVM Arago_rt_enable=1 bitbake -k Arago-core-tisdk-bundle 

    将很快恢复。

    此致

    Karthik

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

    尊敬的 Alex:

    6.02上的步骤完全相同。

    请查看此处发布的速查表、该表也适合您- https://e2e.ti.com/support/processors/f/791/p/901334/3352199#3352199

    此致

    Karthik