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.

[参考译文] TDA4VM:使用 DFU-util 对闪存进行分区

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/928714/tda4vm-is-partitioning-required-for-flashing-using-dfu-util

器件型号:TDA4VM

您好!

我正在使用 DFU-util 工具将 Linux 映像(引导加载程序和根文件系统)刷写到 eMMC 中。

在将图像复制到 eMMC 之前、DFU 工具是否自行对 eMMC 进行分区?

或者、我们是否必须先对 eMMC 进行分区、然后再复制映像?

谢谢、此致、
圣阿斯

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

    您好、Saintath、

    DFU-util 不进行分区。 如果 DFU_alt_info 具有分区、则必须通过其他方式创建分区表。
    默认情况下、eMMC 的 DFU_alt_info (DFU_alt_info_eMMC)具有原始格式的引导加载程序二进制文件(boot0分区中的偏移量)和分区中的 rootfs。

    此致、
    Vishal

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

    您好、Vishal、

    感谢你的答复。

    是的、DFU_alt_INFO_eMMC 在分区中具有 rootfs。

    那么,在使用 DFU-util 工具复制 rootfs.ext4映像之前,我们是否必须为 rootfs 创建分区?

    您能提供命令来执行此操作吗?

    谢谢、此致、
    圣阿斯

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

    从 u-boot 控制台、您可以执行以下命令。 确保'partitions'环境变量具有所需的分区表。

    => GPT 写入 MMC 0 $partitions

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

    您好、Vishal、

    请更正我的错误,可以使用以下命令创建分区表:

    echo === 从 U-boot ===开始对 eMMC 进行分区
    setenv uuid_gpt_disk 37c84ec5-8cc8-42e6-85d0-dfd0ebde3257
    setenv uuid_gpt_rootfs b0e8add0-befc-41d2-baed-900d580f605b
    setenv uuid_gpt_boot 53e2091a-5ba3-42e5-b79e-dda6c9b371e2
    GPT 写入 MMC 0"rootid_disk=${uuid_gppt_disk};name=boot、start=0、size=20M、可引导、type=ebd0a0a2-b9e5-4433-87c0-68b6b72699c7、uid=${uid_gp_boot};uuuuuuid=20、uuuuuuuuuuuuuuuuuuuuuuuid_gpb<=}、uuuuuuuuuuuuuuuuuuid_boot"、
    MMC 部件

    此外,我想问 DFU 是否仅与 USB3.1配合使用,或者是否与 EVM 上的 USB 1端口配合使用? 当我使用 sudo dfu-util -l 连接到笔记本电脑时,我可以检测 USB3.1  

    此致

    Manish

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

    您好、Vishal、

    这是目前存储在"分区"变量中的内容: name=rootfs, start=0,size=-,uuuid=${uuid_gpt_rootfs}

    我想创建一个新分区。 因此、我以这种方式创建了两个分区:  

    GPT 写入 MMC 0"name=rootfs、start=0、size=3072M、uid=${uuid_gppt_rootfs}、typ;name=rwpartition、start=3072M、size=-、uid=37c84ec5-8cc8-42e6-85d0-dfd0ebde3257"

    现在、如果我运行 MMC 部件、则输出正常。

    但是、当我在 Uboot 中运行 DFU 0 MMC 0并在主机 PC 上运行 DFU-util -l 时、上面创建的新分区不会显示在列表中。

    我还尝试按如下方式更改 DFU_alt_info_eMMC、但仍然不幸运。

    setenv dfu_alt_info_emmc "rawemmc raw 0 0x800000 mmcpart 1;rootfs part 0 1 mmcpart 0;rwpart 0 2 mmcpart02;tidboot3.bin.raw 0x0 0x400 mmcpart 1;tispl.bin.img raw 0x400 mmcpart 1 0x400 mmcpart1;rwn 0x400 sysfw.itb.raw

    您能否告诉我们如何创建新分区、以便在主机 PC 上的"sudo dfu-util -l "输出中更新该分区。

    谢谢你。

    此致、

    圣阿斯

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

    您好、Saintath、

    我按照以下步骤添加共享的新分区。 突出显示我对 u-boot 环境变量所做的添加以添加新分区。

    U-boot 控制台

    => printenv 分区
    partitions=name=rootfs、start=0、size=-、uuid=${uuid_gppt_rootfs}

    => setenv 分区'name=rootfs, start=0,size=3072M,uuid=${uuid_gp_t_rootfs};name=test, size=-,uid=${uid_gp_t_test}

    => GPT 写入 MMC 0 $partitions
    写入 GPT:成功!

    => MMC 部件

    MMC 设备0的分区映射--分区类型:EFI

    零件开始 LBA 结束 LBA 名称
    属性
    键入 GUID
    分区 GUID
    1 0x00000022 0x00600021 "rootfs"
    attrs:0x0000000000000000
    类型:ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
    GUID:e621d3a4-8c4e-5642-93b1-12e8e35e317a
    2 0x00600022 0x01da3fde "测试"
    attrs:0x0000000000000000
    类型:ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
    GUID:502930c8-71d0-b041-b5e4-6c5f0495a6bf

    => printenv dfu_alt_info_eMMC
    dfu_alt_info_emmc=rawemmc raw 0 0x800000 mmcpart 1;rootfs part 0 1 mmcpart 0;tidboot3.bin.raw 0x0 0x400 mmcpart 1;tispl.bin.raw 0x400 0x1000 mmcpart 1;u-boot.img.raw 0x1400 0x2000 mmcpart 0x400;mmcw 0x3600 rw 0x400原始部分0x400原始0x400 mmcpart 1;sysfw.itb.raw

    => setenv dfu_alt_info_eMMC 'rawemmc raw 0 0x800000 mmcpart 1;rootfs part 0 1 mmcpart 0;测试零部件0 2 mmcpart 0;tidoot3.bin.raw 0x0 0x400 mmcpart 1;tispl.bin.img raw 0x400 mmcpart 1 0x400 mmcpart sysfw.itb.raw 0x400原始原始0x1000 mmcpart 1;tid.mmc2400 RAW 0x400原始零部件0x400原始0x400原始0x400原始0x400毫米 cpart 0x400 0x400毫米 cpart 1;turb 0x400原始0x400原始0x400原始0x400毫米 cumcpart 0x400原始0x400原始0x

    => setenv dfu_alt_info ${dfu_alt_info_eMMC}

    => DFU 0 MMC 0

     

    Linux PC

    $ sudo dfu-util -l

    版权所有2005-2009 Weston Schmidt、Harald Welte 和 OpenMoko Inc.
    版权所有2010-2016 Tormod Volden 和 Stefan Schmidt
    此计划是免费软件、绝对不提供保修
    请向 sourceforge.net/.../报告错误

    找到 DFU:[0451:6163] ver=0224、devnum=27、cfg=1、intf=0、path="3-1"、 alt=7、name="sysfw.itb.raw"、serial="000000000012"
    找到 DFU:[0451:6163] ver=0224、devnum=27、cfg=1、intf=0、path="3-1"、 alt=6、name="u-env.rain"、serial="000000000012"
    找到 DFU:[0451:6163] ver=0224、devnum=27、cfg=1、intf=0、path="3-1"、 alt=5、name="u-boot.img.rain"、serial="000000000012"
    找到 DFU:[0451:6163] ver=0224、devnum=27、cfg=1、intf=0、path="3-1"、 alt=4、name="tispl.bin.rain"、serial="000000000012"
    找到 DFU:[0451:6163] ver=0224、devnum=27、cfg=1、intf=0、path="3-1"、 alt=3、name="tiboot3.bin.rain"、serial="000000000012"
    找到 DFU:[0451:6163] ver=0224、devnum=27、cfg=1、intf=0、path="3-1"、 alt=2、name="test"、serial="000000000012"
    找到 DFU:[0451:6163] ver=0224、devnum=27、cfg=1、intf=0、path="3-1"、 alt=1、name="rootfs"、serial="000000000012"
    找到 DFU:[0451:6163] ver=0224、devnum=27、cfg=1、intf=0、path="3-1"、 alt=0、name="rawemmc"、serial="000000000012"