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.

[参考译文] PROCESSOR-SDK-AM65X:使用 DFU 将 Linux 内核和 rootfs 编程到 eMMC

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/984574/processor-sdk-am65x-program-linux-kernel-and-rootfs-onto-emmc-using-dfu

器件型号:PROCESSOR-SDK-AM65X

我们有一个使用 AM65x 从 eMMC 引导 Linux 的定制板、并计划将其投入生产、PCB 将使制造基地保持已编程状态。

因此、我们一直在寻找在制造工厂简化 eMMC 编程流程的方法。 我们一直使用 SD 卡作为引导介质来对 eMMC 进行编程、但由于物流方面的某些复杂性、我们希望不再使用 SD 卡。

我已经能够使用中提供的 DFU_alt_info_eMMC 环境变量通过 DFU 成功地将 uboot 部分编程到 eMMC 中。 我现在希望完成编程的 Linux 部分。

首先、我要确认以下链接中详述的分区过程是正确的:

https://software-dl.ti.com/processor-sdk-linux/esd/AM65X/latest/exports/docs/linux/Foundational_Components_U-Boot.html#partitioning-emmc-from-u-boot

然后,我想知道创建 rootfs 映像并将其编程到 eMMC 的最佳方法。 Linux 内核和 dtbs 也是如此。

我们使用的是在 SR2上运行的 Linux SDK7.01

谢谢、

Eric

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

    尊敬的 Eric:

    1) 1)是的、正确。 链接中的分区步骤正常。
    2) dtbs/kernel 都是 rootfs 的一部分、因此将 rootfs 连接到 eMMC 应该可以获得所需的一切。 我稍后会回来介绍这些步骤。

    -凯尔西


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

    尊敬的 Eric:

    最好使用 tinysdk 图像。 我们已经在 $SDK_DIR/filesystem 下具有 tisdk-Tina-image-am65xx-evm.tar.xz

    我们可以使用它来创建可刻录到 eMMC 的文件系统映像

    步骤:

    # Below code needs to run on the HOST machine
     
    # Create an empty image file, seek value will create an image of that size. Typically 100MB should be enough.
    # Size will should be slightly greater than size of untarred tisdk-tiny-image-j7-evm.tar.xz + size (DTBs + Kernel image)
    dd if=/dev/null of=tisdk-tiny-image.img bs=1M seek=100
     
    # Add a filesystem to it
    mkfs.ext4 -F tisdk-tiny-image.img
     
    # Mount it on your local machine to copy DTB and Kernel image
    mkdir example_mnt_pt
    sudo mount -t ext4 -o loop tisdk-tiny-image.img /home/karan/yocto-build/example_mnt_pt
     
    # Untar tisdk-tiny-image-j7-evm.tar.xz on the mounted file system which is currently empty
    cd example_mnt_pt
    sudo tar xvf ../tisdk-tiny-image-j7-evm.tar.xz
     
    # Copy DTB, DTBOs and Kernel Image for your platform
    sudo cp /media/karan/rootfs/boot/Image* ./boot
    sudo cp /media/karan/rootfs/boot/*dtb* ./boot
    sync
     
    # Unmount the image, now the tisdk-tiny-image.img is ready
    cd ../
    sudo umount /home/$USER/yocto-build/example_mnt_pt
    Final step:

    # Flashing a tiny file system to eMMC User partition
    HOST $ sudo dfu-util -a rootfs -D <PATH_TO_CREATED_TINYFS>/tinyrootfs.img
    此致、
    基尔西
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Keerty、

    这很好。 但是、我们 始终使用默认文件系统、因此我们需要根据需要评估 tinysdk 文件系统。 要加快评估过程:

    tinysdk 文件系统与默认文件系统之间的主要区别是什么?

    默认 rootfs 的.img 是否太大而不能支持 DFU?

    谢谢、

    Eric

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

    Eric、

    Tiny 将不会有大的用户空间应用程序、并且将裸机二进制文件。
    我们尝试过小的文件系统、因为它很小、但 我相信您也可以尝试使用成熟的文件系统。

    在默认情况下、按照相同的步骤操作并告知我们。

    此致、
    基尔西