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-AM68:临时构建的 Yocto 编译09_01_00的 edgeai-gst-apps 失败

Guru**** 2551640 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1344319/sk-am68-edgeai-gst-apps-fails-for-scratch-built-yocto-build-09_01_00

器件型号:SK-AM68

我通过以下两个页面从头开始重建 Yocto 映像:

https://github.com/TexasInstruments/ti-docker-images (执行 Yocto 构建的 Docker 映像)

https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am68a/09_01_00/exports/docs/linux/Overview_Building_the_SDK.html (使用 Yocto 构建 SDK)

产生的 SD 卡映像启动,似乎工作正常:我看到 U-Boot 消息启动,显示输出工作,易捷时应用程序启动,连接的鼠标移动光标周围,以太网工作等。  不过、如果我尝试通过点击相应的按钮来启动"物体检测"演示、显示输出似乎处于冻结状态。  我跟踪了 edgeai-init.service、这就是我看到的:

root@am68-sk:/opt/edgeai-gst-apps journalctl --follow -u edgeai-init
Apr 01 15:22:41 am68-SK ntpd [687]:NTP 引擎已准备就绪
Apr 01 15:22:41 am68-SK ntpd [689]:-s 选项不再有效,将很快删除。
Apr 01 15:22:41 am68-SK ntpd [689]:请重新配置以使用约束或受信任的服务器。
Apr 01 15:22:41 am68-SK ntpd [689]:在没有 libtls 支持的情况下配置的约束
Apr 01 15:22:41 am68-SK ntpd [689]:在没有 libtls 支持的情况下配置的约束
Apr 01 15:22:41 am68-SK ntpd [689]:在没有 libtls 支持的情况下配置的约束
Apr 01 15:22:41 am68-sk ntpd [687]:NTP 引擎正在退出
Apr 01 15:22:41 am68-SK ntpd [686]:终止
Apr 01 15:22:41 am68-sk edgeai-launcher.sh[688]: Can't killpid 687 : no such process
Apr 01 15:22:41 am68-sk systemd[1]:启动 EdgeAI OOB 演示。
Apr 01 15:27:50 am68-sk edgeai-launcher.sh[681]:**
Apr 01 15:27:50 am68-sk edgeai-launcher.sh[681]:错误:../git/gst-libs/gst/tiovx/gsttiovxcontext.c:146:gst_tiovx_context_init:置位失败:(0 == ret)
Apr 01 15:27:50 am68-sk edgeai-launcher.sh[681]:app: init ..!
Apr 01 15:27:50 am68-sk edgeai-launcher.sh[681]:app_log:错误:无法映射大小为262144字节的内存@ 0xaa000000!!
Apr 01 15:27:50 am68-sk edgeai-launcher.sh[681]:app:error:log writer init failed!!
Apr 01 15:27:50 am68-sk edgeai-launcher.sh[681]:app_log:错误:无法映射大小为3288576字节的内存@ 0xae000000!!
Apr 01 15:27:50 am68-sk edgeai-launcher.sh[681]:app:错误:文件 io writer 初始化失败!!!
Apr 01 15:27:50 am68-sk edgeai-launcher.sh[681]:app: init ...完成了!!
Apr 01 15:27:50 am68-sk edgeai-launcher.sh[681]:保释外出! 错误:../git/gst-libs/gst/tiovx/gsttiovxcontext.c:146:gst_tiovx_context_init:置位失败:(0 = ret)
Apr 01 15:27:53 am68-sk edgeai-launcher.sh[1292]:/etc/init.d/edgeai-launcher.sh : line 16: kill:(681 )- No such process
Apr 01 15:27:53 am68-sk edgeai-launcher.sh[1292]:服务未运行
Apr 01 15:27:53 am68-sk edgeai-launcher.sh[1299]: USB Camera 0 Detected
Apr 01 15:27:53 am68-sk edgeai-launcher.sh[1299]: device =/dev/video-usb-cam0
Apr 01 15:27:53 am68-sk edgeai-launcher.sh[1299]:格式= jpeg
Apr 01 15:27:53 am68-sk edgeai-launcher.sh[1292]:将壁纸应用于 Linux 帧缓冲
Apr 01 15:27:55 am68-SK systemd[1]:edgeai-init.service:已成功停用。

时间戳15:27:50出现的错误与我 单击"Object Detection"(物体检测)按钮的相关。   

如果我使用预构建的09_01_00_06映像(可在此处找到: https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX AM68A)对 SD 卡进行编程、那么物体检测演示就可以正常启动。   

有什么想法我做错了吗?

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

    看起来这可能是器件树问题。   我注意到的一件事是临时构建 映像的主机名 是"am68-sk"、而预构建 映像的主机名是"am68a-sk"。  

    作为一个实验,我从预构建的映像将 uEnv.txt 文件复制到临时构建的映像的引导分区,而临时构建的映像现在的主机名是"am68a-sk"。  此外、"物体检测"演示现已开始运行!

    Yocto 构建中是否缺少步骤?

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

    您好!

    今晚我将运行 Yocto 构建文件、看看我是否可以重现您的问题。 我明天会向您介绍最新结果。

    此致!
    杰瑞德

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

    出于完整性考虑、此处是从头开始构建的映像中的 uEnv.txt:

    #此 uEnv.txt 文件可以包含您的其他环境设置
    #要在引导时设置 U-Boot。 它可以是简单的变量、
    #作为 serverip 或自定义变量。 此文件的格式为:
    #变量=值
    #注:此文件将在 bootcmd 运行后进行评估,并且
    # bootcmd 必须设置为加载此文件(如果存在)
    #默认为所有较新的 U-Boot 映像。 这也意味着、某些
    此文件无法更改 bootdelay 等变量、因为
    #它不会被评估,直到 bootcmd 运行。

    #根据 board_name 更新 Linux 主机名
    # SK 还需要一个额外的 dtbo 来引导。 根据 board_name 将其前面添加到 name_overlays
    udtcmd=if test "$board_name"="am68-sk";then;setenv args_all $args_all systemd.hostname=am68-sk;if test ${boot_fit}-eq 1;then setenv name_overlays ti/k3-am68-sk-som-ddr-me-carveout.dtbo;$name_vebo;kenvebo 重叠;$enve.csm-slaves

    ...这里是 uEnv.txt 从预先建立的映像:

    #此 uEnv.txt 文件可以包含您的其他环境设置
    #要在引导时设置 U-Boot。 它可以是简单的变量、
    #作为 serverip 或自定义变量。 此文件的格式为:
    #变量=值
    #注:此文件将在 bootcmd 运行后进行评估,并且
    # bootcmd 必须设置为加载此文件(如果存在)
    #默认为所有较新的 U-Boot 映像。 这也意味着、某些
    此文件无法更改 bootdelay 等变量、因为
    #它不会被评估,直到 bootcmd 运行。

    #根据 board_name 更新 Linux 主机名
    # SK 还需要一个额外的 dtbo 来引导。 根据 board_name 将其前面添加到 name_overlays
    udtcmd=if test ${boot_fit}-eq 1;then setenv name_overlays $name_overlases_fit;fi;setenv args_all $args_all systemd.hostname=am68a-sk;if test "$board_name"="am68-SK";then;fit ${boot_fit}-all $args_all systemdhostname=am68a-slave-sk-faces;the-sk_member_exas-kve-sk-facebook;the-sk-facebook;the-ve-ve-vexample-sk-eve-vexample-vexample-ve-vexample-vexas-kfi_slaveq-faces;

    #设置正确的 U-Boot 环境变量
    dorprocboot=1
    name_overles=k3-j721s2-edgeai-apps.dtbo

    #从 FIT 映像引导时名称重叠
    name_overlases_fit=ti/k3-j721s2-edgeai-apps.dtbo

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

    更多信息:

    -当我构建图像时,我执行以下命令:"machine=j721s2-evm bitbake -k tisdk-edgeai-image"

    -查看构建输出、结果显示它为图像拉取了"sources/meta-tisdk/recips-tisdk/tisdk-uenv/tisdk-uenv/j721s2-evm/uEnv.txt"

    -因为我指定了"tisdk-edgeai-image",我希望它已拉取"sources/meta-edgeai/pics-tisdk/edgeai-components/tisdk-uenv/j721s2-evm/uEnv.txt",但似乎没有这样。

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

    您好!

    我生成了一个 tisdk-edgeai-image、它在引导分区中有正确的 uEnv.txt。 当您运行 oe-layertool-setup.sh 时、您使用了什么配置文件?

    您是否执行了本 常见问题解答中概述的步骤? 具体来说、您是否使用了 processor-sdk-analysis 配置? 此外、确保执行以下命令:

    echo 'ARAGO_BRAND = "edgeai"' >> conf/local.conf

    此致!
    杰瑞德

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

    Jared、

    感谢调查。  对您的问题的回答:

    ./oe-layertool-setup.sh -f configs/processor-sdk-analytics/processor-sdk-analytics-09.01.00-config.txt

    是的、我的"conf/local.conf"中有"edgeai"行。

    您能否确认您的"./meta-edgeai/recipes-tisdk/edgeai-components/tisdk-uenv.bbappend 文件外观?  通过今天的讨论、我注意到我收到了有关定义错误的 FILESEXTRAPATH 变量的 bitbake 警告、这些警告是由于我有的 tisdk-uenv.bbappend 版本所致。  我稍微调整了一下这个文件、最终使正确的 uEnv.txt 出现在我的引导分区中。  

    以下是 tisdk-uenv.bbappend、其导致了 bitbake 警告:

    FILESEXTRAPATHS:edgeai:="${THISDIR}/${PN}/${MACHINE}/ edgeai"
    FILESEXTRAPATHS:ADAS:="${THISDIR}/${PN}/${MACHINE}/ADAS"

    PR:append ="_edgeai_0"

    以下是我调整后的版本、解决了警告问题、并删除了正确的 uEnv.txt 版本:

    FILESEXTRAPATHS:prepend:edgeai:="${THISDIR}/${PN}/${MACHINE}/:"
    FILESEXTRAPATHS:prepend:ADAS:="${THISDIR}/${PN}/${MACHINE}/:"

    PR:append ="_edgeai_0"

    这是一个很好的问题,但似乎是一个很好的问题。 注意,我的"meta-edgeai"层是提交"02ce7e60b449c72def00f26afc549034cbd82ba9"和标记09.01.00.07。  你的办公室是这样吗?

    您是否还能确认您是否使用 Docker 容器进行构建?

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

    恢复对 tisdk-uenv.bbappend 的更改、以下是我将看到的警告:

    警告:/home/tisdk/tisdk/sources/meta-arago/meta-arago-distro/recipes-tisdk/tisdk-uenv/tisdk-uenv.bb:FILESEXTRAPATHS-variable,必须始终使用:prepend (或:append)| ETA:--:--:--
    赋值类型、不要忘记冒号。
    请按以下格式分配:
    FILESEXTRAPATHS:append:=":${THISDIR}/ Your_Files_Path "或
    FILESEXTRAPATHS:prepend:="${THISDIR}/ Your_Files_Path:"
    在您的 bbappend 文件中

    您的错误分配为:
    /home/tisdk/tisdk/sources/meta-tisdk/recipes-tisdk/tisdk-uenv/tisdk-uenv/j721s2-evm-k3r5:/home/tisdk/tisdk/sources/meta-tisdk/recipes-tisdk/tisdk-uenv/tisdk-uenv:/home/tisdk/tisdk/sources/meta-edgeai/recipes-tis
    dk/edgeai-components/tisdk-uenv/j721s2-evm-k3r5/edgeai
    警告:/home/tisdk/tisdk/sources/meta-arago/meta-arago-distro/recipes-tisdk/tisdk-uenv/tisdk-uenv.bb:FILESEXTRAPATHS-variable,必须始终使用:prepend (或:append)
    赋值类型、不要忘记冒号。
    请按以下格式分配:
    FILESEXTRAPATHS:append:=":${THISDIR}/ Your_Files_Path "或
    FILESEXTRAPATHS:prepend:="${THISDIR}/ Your_Files_Path:"
    在您的 bbappend 文件中

    您的错误分配为:
    /home/tisdk/tisdk/sources/meta-tisdk/recipes-tisdk/tisdk-uenv/tisdk-uenv/j721s2-evm:/home/tisdk/tisdk/sources/meta-tisdk/recipes-tisdk/tisdk-uenv/tisdk-uenv:/home/tisdk/tisdk/sources/meta-edgeai/recipes-tisdk/ed
    geai-components/tisdk-uenv/j721s2-evm/edgeai

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

    您好!

    我使用了 OE-layersetup 存储库的预封装版本、因此我使用了09_01_00配置、 其中没有./meta-edgeai/recipes-tisdk/edgeai-components/tisdk-uenv.bbappend。 它基于 commit 8e6594ed87582cd9b19e1cf2007d8514fcf03c85。

    我将改用09.01.00配置重新编译、看看会发生什么情况。

    此外、我不使用 Docker 容器。

    此致!
    杰瑞德

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

    您好!

    我使用该配置文件重新生成构建、并且看到相同的错误。 我将提交一个内部 TT、看看我们是否能解决该问题。

    以下是的文字,processor-sdk-analytics-09_01_00-config.txt 而不是processor-sdk-analytics-09.01.00-config.txt

    # This file takes repo entries in the format
    # repo name,repo uri,repo branch,repo commit[,layers=layer1:layer2...:layern]
    
    bitbake,git.openembedded.org/bitbake,2.0,a7f6c3e67bd9170e93b2b94676e84018faf0df91
    meta-arago,git.yoctoproject.org/meta-arago,kirkstone,769c052cff7eccb08de6d0f1dbcbac5c56b6b77a,layers=meta-arago-distro:meta-arago-extras:meta-arago-demos:meta-arago-test
    meta-qt5,github.com/.../meta-qt5.git,kirkstone,ae8a97f79364bed1abc297636f7933d0e35f22be,layers=
    meta-virtualization,git.yoctoproject.org/meta-virtualization,kirkstone,67b0ef4256a484851f3556d281ca4caa88374388,layers=
    meta-openembedded,git.openembedded.org/meta-openembedded,kirkstone,8a75c61cce2aa1d6e5a3597ab8fc5a7e6aeae1e4,layers=meta-networking:meta-python:meta-oe:meta-gnome:meta-filesystems
    meta-ti,git.yoctoproject.org/meta-ti,kirkstone,8a468a00043e824ca85b1065f770b045b5f894d7,layers=meta-ti-extras:meta-ti-bsp
    meta-arm,git.yoctoproject.org/meta-arm,kirkstone,b187fb9232ca0a6b5f8f90b4715958546fc41d73,layers=meta-arm:meta-arm-toolchain
    oe-core,git.openembedded.org/openembedded-core,kirkstone,11da43b58e19583a9bc16044309610cfb2e86469,layers=meta
    meta-tisdk,git.ti.com/.../meta-tisdk.git,kirkstone,7a4f8861879ec1ac2675e51e96920989c2522960,layers=
    meta-edgeai,git.ti.com/.../meta-edgeai.git,kirkstone,8e6594ed87582cd9b19e1cf2007d8514fcf03c85,layers=
    OECORELAYERCONF=./sample-files/bblayers.conf.sample
    OECORELOCALCONF=./sample-files/local-arago64-v2.conf.sample
    BITBAKE_INCLUSIVE_VARS=yes

    此致!
    杰瑞德

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

    您好!

    看起来问题已在 Commit: fa42c52中修复。 此修复程序应反映在 SDK 9.2中、它将在接下来的几天内推出。

    您也可以将提交文件作为补丁进行拉取、如果您继续使用9.1、则只需自行编辑即可。

    此致!
    杰瑞德