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/AM3352:将 zImage 添加到 Arago 中的引导目录

Guru**** 2608385 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/641622/linux-am3352-adding-zimage-to-boot-directory-in-arago

器件型号:AM3352

工具/软件:Linux

我很难将 zImage 安装到 Arago Bitbake 环境中的/boot 目录中。 我确定我缺少一些简单的东西、但我无法弄清楚。 我真的不想解包、复制和重新打包 rootfs。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Chris、

    在 Arago bitbake 环境中、您可以在找到 zImage、MLO、u-boot.img 和器件树徽标 /build/arago-tmp-external-linaro-toolchain/deploy/images/am335x-evm 并将其复制到 SD 卡的/boot 分区,而无需解压缩 rootfs。

    此致、
    Kemal

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

    您好、Kemal、

    我没有将文件加载到 SD 卡上。 而是从创建一个到 NFS 引导的归档文件。 我希望能够为工厂提供所需的全部存档、以便在将存档解压缩到 eMMC 后、一切都可以实现。 这是不是通过 bitbake 实现的?  

    谢谢、

    Chris

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

    是的、这是可能的。 您需要将其添加到 build/conf/local.conf 文件并构建目标。

    wks_file ="s_dimage-bootpart.wks"
    image_boot_files ="MLO u-boot.img"
    IMAGE_FSTYPES +="WIC"
    DO_IMAGE_WIC[视情况而定]+="mtools-native:DO_populate_sysroot dosfstools - native:DO_populate_sysroot"

    完成指定目标后、您需要运行。
    MACHINE=AM335x-EVM WIC 创建 simage-bootpart -e

    然后传输/var/tmp/wic/build/sdimage-bootpart- -mmcblk.direct 到 SD 卡并将其添加到 eMMC。
    DD if=sdimage-bootpart- -mmcblk.direct of=/dev/mmcblk1

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

    您好、Kemal、

    我不想创建 SD 卡映像。 如果我理解正确、这就是您提供的说明将执行的操作。 实际上、我最终使它以我认为正确的方式工作。 我只想补充一点:

    image_install +="内核映像"

    就是这样。 但是、我现在遇到了与内核模块相同的问题。 我尝试了:

    image_install +="内核模块"

    我还尝试添加了  

    machine_extra_RRECOMMENDS ="内核模块"

    但什么也没有。 我在编译内核时确实会看到警告:"QA Issue:linux-ti-staging:files/directories were installed but not shipped in any package:"(QA 问题:linux-ti-staging:文件/目录已安装但未以任何软件包形式提供:)"、然后是内核 我不明白为什么不打包它们、因为它们包含在 image_install 中。 但根 fs 中肯定不包含它们。 如果我没有提到它、我正在构建 Arago-base-image。  

    谢谢、

    Chris

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

    您是否尝试添加:

    RRECOMMENDS_${PN}="\
    内核模块\
    "
    sources/meta-Arago/meta-Arago-distro/meta-core/packagegroup/packagegroup-Arago-base.bb 中

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

    我只是尝试添加它、它没有什么不同。 它仍然显示软件包已安装但未出厂,并且没有任何内核模块最终出现在 rootfs 中。 一个有趣的事情是 files_kernel-modules 实际上是空的。 我不确定原因、但它看起来不正确。 我本来希望所有的内核模块都列在其中、但它们并不是。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我终于明白了。 问题是,默认情况下,内核模块会进行压缩,因此它们具有.ko.gz 后缀。 在收集内核模块的./oe-core/meta/classes/kernel-module-split.bbclass 中、它仅根据*。ko 后缀进行搜索。 因此、它忽略压缩的内核模块。

    122. module_regex ='^(.*)\.k?o$'

    要验证我是否已将内核配置更改为未压缩、现在它们出现在 rootfs 中。 但是、我宁愿修复根问题、以便可以更新 regex、但我必须修补该文件。 不确定我是否将其提交回上游、是否会出现故障。 无论哪种方式、我都想向 OE 内核维护人员指出这一点、因为我认为应该将其修复。