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.

[参考译文] AM62A7-Q1:AM62A 文件系统缩减至 64MB

Guru**** 2416110 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1510317/am62a7-q1-am62a-filesystem-cut-off-to-64mb

器件型号:AM62A7-Q1

工具/软件:

尊敬的专家:
为了降低成本、我们的客户希望将闪存大小减少到 64MB(包括客户应用)、但需要更改软件才能启用闪存。 请帮助我们为您提供指南吗? 谢谢~

我可以看到 tisdk-tiny-image-am62axx-evm.tar.xz 文件系统、但似乎仍然超出了我们的预期、完全 92MB 不包含客户的应用和 AI 模型。

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

    我们需要确定可以移除哪些元件以减小 rootfs 的大小。 不过、这取决于应用程序栈所需的内容、并视具体情况而定、您需要指导该操作。

    为此、 您可以更仔细(深入)检查 rootfs、例如使用此命令...

    # du -h -d2
    
    ...or...
    
    # du -h -d3

    ...想知道哪里是最大的分配,并考虑哪些可以删除.

    `d、您可以执行的另一操作是查看编译的清单(在 T Ü V eploy-ti/images/am62axx-evm/*manifest`上)、以识别可能被删除的软件包。

    可以尝试快速更改 init 管理器 通过将以下内容添加到`conf/local.conf`中、查看您的系统是否仍然正常工作、以及您可以节省多少空间。

    # Reduce filesystem size by using sysvinit instead of systemd
    ARAGO_SYSVINIT = "1"

    最后、您可以使用压缩的内核映像进行引导 ,这将有助于剃除像 13MB 大小...

    这是我刚才针对 AM64 所做的概念验证、AM62A 的结果将是类似的。

    默认情况下、内核大小为 21.2MB……

    root@am64xx-evm:~# ls -alh /boot/Ima*
    lrwxrwxrwx    1 root     root          36 Mar  9 12:34 /boot/Image -> Image-6.12.17-ti-00771-gc85877d40f8e
    -rw-r--r--    1 root     root       21.2M Mar  9 12:34 /boot/Image-6.12.17-ti-00771-gc85877d40f8e

    ...然而,压缩内核与 gzip 后,大小减少到 8.8MB(请参阅添加的新文件)

    root@am64xx-evm:~# ls -alh /boot/Ima*
    lrwxrwxrwx    1 root     root          36 Mar  9 12:34 /boot/Image -> Image-6.12.17-ti-00771-gc85877d40f8e
    -rw-r--r--    1 root     root       21.2M Mar  9 12:34 /boot/Image-6.12.17-ti-00771-gc85877d40f8e
    -rw-r--r--    1 root     root        8.8M Mar  9 15:21 /boot/Image-6.12.17-ti-00771-gc85877d40f8e.gz

    现在、在引导时、我们需要设置两个 U-Boot 环境变量来指定一个 U-Boot 可用于解压缩目的的空间。 并指定新的内核映像文件名...

    => env set kernel_comp_addr_r 0xb0000000
    => env set kernel_comp_size 0x10000000
    => env set name_kern Image-6.12.17-ti-00771-gc85877d40f8e.gz
    => boot

    这样、内核将在加载期间自动解压缩。 当然、上述所有步骤也可以自动执行(包括进入 U-Boot config 等)。

    执行上述操作的另一种(更简单)方法是从合适的映像加载内核 、方法是将 U-Boot `boot_fit`环境变量设置为`1`。 FIT 映像已经是 rootfs 的一部分、实际上已经以压缩方式包含内核映像。 因此、您可以完全删除`/boot/Image *`文件、立即释放~21MB。

    此致、Andreas

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

    Andreas、
    我认为它可以节省一些空间,但仍然无法满足要求。 我想您可以提供基于 SDK9.2 的微型文件系统、其中包含“Openvx、OpenCV、gstream 和边缘 AI 组件“。 这两者都可以在 C7X、编码、以太网和 OpenCV 上运行一些应用、例如推理。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为它可以节省一些空间、但仍然无法满足要求

    您是否尝试过我提供的建议? 您可以节省多少成本? 请提供详细信息。

    我希望您可以提供基于 SDK9.2 的微型文件系统、其中可以包含“Openvx、OpenCV、gstream 和 Edge AI 组件“。 这两者都可以在 C7X、编码、以太网和 OpenCV 上运行一些应用、例如推理。  [/报价]

    我认为这将是一项迭代开发工作 、旨在使其满足您的任何应用需求 、我们无法在 E2E 论坛的上下文中提供这方面的信息。 因此、我之前提供了一些步骤、可以帮助您开始自己这样做。 如果您对具体方面有任何疑问、请告知我。

    Andreas

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

    尊敬的 Andreas:

    非常感谢。

    我尝试了 这个步骤,它帮助了很多。

    [报价 userid=“4452" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1510317/am62a7-q1-am62a-filesystem-cut-off-to-64mb/5806516 #5806516“] 可以尝试快速更改 init 管理器 通过将以下代码添加到`conf/local.conf`

    初始图像 tar 文件大小为 29524240 字节、在此步骤之后、它将变为 21201912 字节。

    使用 10.0 SDK 构建 Yocto 后、解压缩的大小会从 116MB 减小到 67MB。  

    但是、我们需要这样做 v4l2 edgeai tiovx 应用或 edgeai gstreamer 以运行该应用。 我在 local.conf 中添加了以下内容:

    然后使用以下命令来重建映像:

    ~/yocto/tisdk/build$ MACHINE=am62axx-evm bitbake  tisdk-tiny-image -f

    我得到这个错误:

    processor@processor:~/yocto/tisdk/build$ MACHINE=am62axx-evm bitbake  tisdk-tiny-image -f
    WARNING: Duplicate inclusion for /home/processor/yocto/tisdk/sources/meta-arago/meta-arago-distro/conf/distro/include/branding-core.inc in /home/processor/yocto/tisdk/sources/meta-arago/meta-arago-distro/conf/distro/arago.conf
    WARNING: Duplicate inclusion for /home/processor/yocto/tisdk/sources/meta-arago/meta-arago-distro/conf/distro/include/branding-core.inc in /home/processor/yocto/tisdk/sources/meta-arago/meta-arago-distro/conf/distro/arago.conf
    NOTE: Started PRServer with DBfile: /home/processor/yocto/tisdk/build/cache/prserv.sqlite3, Address: 127.0.0.1:46271, PID: 2273852
    Loading cache: 100% |###############################################################################################################################################################################################################################################| Time: 0:00:04
    Loaded 11126 entries from dependency cache.
    Parsing recipes: 100% |#############################################################################################################################################################################################################################################| Time: 0:00:07
    Parsing of 7068 .bb files complete (7067 cached, 1 parsed). 11127 targets, 1753 skipped, 0 masked, 0 errors.
    NOTE: Resolving any missing task queue dependencies
    ERROR: Nothing RPROVIDES 'dropbearv4l-utils' (but /home/processor/yocto/tisdk/sources/meta-arago/meta-arago-distro/recipes-core/images/tisdk-tiny-image.bb RDEPENDS on or otherwise requires it)
    NOTE: Runtime target 'dropbearv4l-utils' is unbuildable, removing...
    Missing or unbuildable dependency chain was: ['dropbearv4l-utils']
    ERROR: Required build target 'tisdk-tiny-image' has no buildable providers.
    Missing or unbuildable dependency chain was: ['tisdk-tiny-image', 'dropbearv4l-utils']
    
    Summary: There were 2 WARNING messages.
    Summary: There were 2 ERROR messages, returning a non-zero exit code.
    

    您能指导我们如何删除不需要的软件包,如 python 和添加所需的软件包,如 v4L-utils 吗?

    此致、

    Adam

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

    我目前正在国际旅行、所以需要几天时间才能回到这里。

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

    很抱歉、我犯了一个错误、没有在两个 image_install 之间放置空间。 我们现在可以将 v4l-utils 和一些 edgeai 组件添加到 FS 中。

    此致、

    Adam

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对不起、我犯了一个错误、没有在两个 image_install
    之间放置空间。

    好的、很高兴您找到了问题所在、是的、这很关键、有时可能会错过。 这是因为  “:append"运算“运算符的工作方式。

    此致、
    Andreas

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

    尊敬的 Andreas:

    感谢您的快速答复。 请让此 e2e 保持开放状态。 我们仍在尝试缩小 FS。

    此致、

    Adam

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

    Adam、

    这是  rootfs 中运行完整 gstreamer 应用所需的最小文件数:

    /cfs-file/__key/communityserver-discussions-components-files/791/SDK10.0_5F00_min_2D00_rootfs.xlsx

    大约需要 41MB 的空间。  

    我们需要找到使用 Yocto 生成此错误的方法。 目前、我们已经剥离了所有不需要的东西。

    谢谢

    Yogesh

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

    Yogesh

    请详细说明如何使用 Yocto 生成它、我在 Excel 中看不到 Linux 内核大小。 因此、您可以确认您是 Excel 中所有文件的统计数据。