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.

[参考译文] J784S4XEVM:从 eMMC 获取 rootfs 分区时出现问题

Guru**** 2536100 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1562306/j784s4xevm-issue-in-taking-the-rootfs-partition-from-the-emmc

器件型号:J784S4XEVM


工具/软件:

Gokul Praveen 会见 Thakar Prashant Shivhare  

我能够将引导分区和 rootfs 的内容从 SD 卡复制到 eMMC 的 boot0 分区、并且电路板成功引导。 但是、除非我在 U-Boot 终端中手动设置 bootpart=0:2、否则它仍然需要来自 SD 卡的 rootfs 内容。

我们需要自动执行此操作、以便从 eMMC 引导时、它应该自动从 eMMC 获取 rootfs、而无需手动干预。

您能指导我如何实现这个目标吗?

谢谢、
Kowshika.

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

    尊敬的 Kowshika:

    您可以尝试执行下面的步骤吗 常见问题解答 此列表示  在 SD 卡 FAT 分区上启用保存:

     https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1448106/faq-tda4vh-enable-saveenv-feature-in-sdcard-emmc-and-a-workaround-for-saveenv-in-ospi-flash 

    此致

    Gokul

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

    Gokul Praveen  

    我以某种方式在 u-boot 终端中启用了 saveenv。保存环境后、系统开始自动从 eMMC 引导 rootfs。 当我将引导配置更改回以使用 SD 卡、然后再次将其切换到 eMMC 时、访问 rootfs 时会遇到问题。





    您能帮助我了解为什么会出现这种情况并提出解决方案吗?

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

    尊敬的 Kowshika:

    您能否分享您已执行的详细步骤(包括在 uboot 中输入的命令)。

    此致

    Gokul

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

    Gokul Praveen 

    我遵循的步骤
    案例 1:从 eMMC 引导(初始工作正常)

    setenv bootpart 0:2 #将 rootfs 设置为 eMMC
    Saveenv
    引导

    使用来自 eMMC 的 rootfs 电路板成功引导。

    案例 2:切换到 SD 卡(工作正常)

    setenv bootpart 1:2 #将 rootfs 设置回 eMMC
    Saveenv
    引导

    使用 SD 卡的 rootfs 时、电路板成功引导。

    案例 3:切换回 eMMC(出现问题)

    setenv bootpart 0:2 #将 rootfs 设置回 eMMC
    Saveenv
    引导


    此后、在再次尝试从 eMMC 引导时、我会遇到 rootfs 问题。

    最初、从 eMMC 引导工作正常。

    切换到 SD 卡也可以正常工作。

    但切换回 eMMC 会导致与 rootfs 相关的问题。

    您能帮助我了解在 SD 卡和 eMMC 之间切换后为什么会出现这个问题、并提供解决问题的建议吗?

    此致、  
    Kowshika.

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

    尊敬的 Kowshika:

    您可以尝试以下命令吗?

    切换到 EMMC:

    setenv bootdev 0
    setenv bootpart 0:2
    setenv args_mmc "run finduuid;setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait"
    
    

    切换到 SD 卡:

    setenv bootdev 1
    setenv bootpart 1:2
    setenv args_mmc "run finduuid;setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk1p2 rw rootfstype=ext4 rootwait"
    
    

    此致

    Gokul

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

    Gokul Praveen 

    当我执行上述命令时,一切都可以正常工作,无需使用 saveenv。 但是、如果在执行这些命令后运行 saveenv、则引导过程将失败并抛出以下错误。

    **无分区表 — MMC 0 **
    找不到分区 MMC 0:2
    无法设置块设备
    [WTX 调试] fs/fs.c:do_load () line 766:argc=5;arg[0]:load
    [WTX 调试] fs/fs.c:do_load () line 766:argc=5;arg[1]:mmc
    [WTX 调试] Fs/fs.c:do_load () line 766:argc=5;arg[2]:0:2
    [WTX 调试] fs/fs.c:do_load () line 766:argc=5;arg[3]:0x82000000
    [WTX 调试] fs/fs.c:do_load () line 766:argc=5;arg[4]:/boot/Image
    **无分区表 — MMC 0 **
    找不到分区 MMC 0:2
    无法设置块设备
    [WTX 调试] fs/fs.c:do_load () line 766:argc=5;arg[0]:load
    [WTX 调试] fs/fs.c:do_load () line 766:argc=5;arg[1]:mmc
    [WTX 调试] Fs/fs.c:do_load () line 766:argc=5;arg[2]:0:2
    [WTX 调试] Fs/fs.c:do_load () line 766:argc=5;arg[3]:0x88000000
    [WTX 调试] fs/fs.c:do_load () line 766:argc=5;arg[4]:/boot/dtb/ti/k3-j784s4-wtxAquila_v3.dtb
    **无分区表 — MMC 0 **
    找不到分区 MMC 0:2
    无法设置块设备
    libfdt FDT_CHECK_HEADER():FDT_ERR_BATMAGIC
    未配置 FDT 存储器地址。 请配置
    FDT 地址(通过“FDT addr)

    “命令。
    正在中止!
    糟糕的 Linux ARM64 映像魔术!
    切换到分区#0、确定
    mmc0(第 0 部分)是当前设备
    **无分区表 — MMC 0 **
    找不到分区 MMC 0:1
    MMC:不存在卡
    MMC_init:–123、Time 2002
    正在启动 USB...
    找不到工作的控制器
    USB 已停止。 请先发出“USB start“(USB 启动)。
    正在启动 USB...
    找不到工作的控制器
    无法获取以太网的 PHY@46000000port@1:地址 0
    am65_cpsw_Nuss_port Ethernet@46000000ethernet@46000000port@1:phy_connect () 失败
    无法获取以太网的 PHY@46000000port@1:地址 0
    am65_cpsw_Nuss_port Ethernet@46000000ethernet@46000000ethernet@46000000port@1:phy_connect () 失败
    无法获取以太网的 PHY@46000000port@1:地址 0
    am65_cpsw_Nuss_port Ethernet@46000000ethernet@46000000ethernet@46000000ethernet@46000000port@1:PHY_connect () 失败
    无法获取以太网的 PHY@46000000port@1:地址 0
    am65_cpsw_Nuss_port Ethernet@46000000ethernet@46000000ethernet@46000000ethernet@46000000ethernet@46000000port@1:PHY_connect () 失败
    无法获取以太网的 PHY@46000000port@1:地址 0
    am65_cpsw_Nuss_port Ethernet@46000000ethernet@46000000ethernet@46000000ethernet@46000000ethernet@46000000ethernet@46000000ethernet@46000000port 1:PHY_connect () 失败
    “同步中止“处理程序、ESR 0x8a000000
    ELR: ffffffffffb1d40472 LR : ffffffffb1d40472 (reloc)
    ELR: 0000000031407472 LR : 0000000031407472
    x0:00000000ffffffed x1:0000000000000000
    x2:0000000000000002 x3:00000000fde97f60
    x4:00000000fffbfd50 x5:00000000fde97f80
    x6:0000000000000021 x7:00000000fdedc0e0
    x8:00000000fde72df0 x9:0000000000000008
    x10:00000000ffffffd8 x11:000000000000000a
    x12:0000000000002d18 X13:00000000fde71ee8
    X14:00000000fde72df0 x15:0000000000000002
    x16:00000000fff2fe0c X17:0000000000000000
    x18:00000000fde86db0 x19:00000000fde93a10
    x20:00000000fde93a30 x21:00000000fffef000
    x22:0000000000000004 x23:00000000fffed000
    x24:0000000000000000 x25:00000000fff000
    X26:00000000fffed000 X27:0000000000000000
    X28:00000000fde96930 X29:6f703030303030

    代码:00000000 00000000 00000000 (00000000)  
    正在重置 CPU...

    正在重置...

    不使用saveenv→系统引导成功。

    saveenv→引导失败、因为缺少分区表和错误的 FDT 地址。

    这些日志意味着什么? 是否saveenv覆盖某些环境变量(如或bootargs MMC 分区设置)?

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

    尊敬的 Kowshika:

    您能否确认是否在运行 saveenv 命令时插入了 SD 卡、因为在执行 saveenv 命令时环境变量存储在 SD 卡中。

    此致

    Gokul

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

    不是、当我处于 eMMC 模式时、我没有插入 SD 卡

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

    尊敬的 Kowshika:

    您能插入它并重试一次吗?

    此致

    Gokul

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

    好的  

    我会尝试让您知道结果

    此致
    Kowshika.

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

    当然、Kowshika。