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.

[参考译文] AM62P:TISDK 10.00.07 create-sd-card.sh 强制分区不起作用

Guru**** 2478765 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1457125/am62p-tisdk-10-00-07-create-sd-card-sh-force-partition-doesn-t-work

器件型号:AM62P

工具与软件:

我遇到了一个问题、那就是 uboot 无法从 Ubuntu 22.04 VM 上使用10.0.7 SDK 中的 create-sd-card.sh 脚本格式化的 SD 卡启动。  如果我在 ubuntu18.04VM 上运行该脚本、系统将正确启动。  2和 uboot 之间的不同的 fdisk 分区似乎不能使用22.04 fdisk 引导参数进行引导。  如何解决此问题?

好的参数表是:

从 Ubuntu 18.04中获取 fdisk:

磁盘/dev/sdf:7.5 GiB、8068792320字节、15759360扇区
单位:1 * 512 = 512字节的扇区
扇区大小(逻辑/物理):512字节/512字节
I/O 大小(最小/最佳):512字节/512字节
磁盘标签类型:DOS
磁盘标识符:0xbfec185f

器件引导开始结束扇区大小 ID 类型
/dev/sdf1 * 2048 131071 129024 63M c W95 FAT32 (LBA)

从 Ubuntu 22.04中正常工作的 SD 卡中获取 fdisk:

Disk /dev/sdf:7.51 GiB、8068792320字节、15759360扇区
磁盘型号:MassStorageClass
单位:1 * 512 = 512字节的扇区
扇区大小(逻辑/物理):512字节/512字节
I/O 大小(最小/最佳):512字节/512字节
磁盘标签类型:DOS
磁盘标识符:0xbfec185f

器件引导开始结束扇区 ID 类型 Start-C/H/S End-C/H/S 属性
/dev/sdf1 * 2048 131071 129024 c W95 FAT32 (LBA) 0/33/3 8/122/4 80

从 Ubuntu 22.04中删除无法正常工作的 SDcard (从22.04开始分区)中的 fdisk:

Disk /dev/sdf:7.51 GiB、8068792320字节、15759360扇区
磁盘型号:MassStorageClass
单位:1 * 512 = 512字节的扇区
扇区大小(逻辑/物理):512字节/512字节
I/O 大小(最小/最佳):512字节/512字节
磁盘标签类型:DOS
磁盘标识符:0xbfec185f

器件引导开始结束扇区 ID 类型 Start-C/H/S End-C/H/S 属性
/dev/sdf1 * 2048 131071 129024 c W95 FAT32 (LBA) 0/33/3 8/122/4 80

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

    尊敬的 Kevin:

    看起来所有的`fdisk -l`从你的所有场景打印看起来完全相同吗?

    您能否按照预期安装 SD 卡并验证`tiboot3.bin`是否位于` boot `分区中?

    您能试一下吗 create-sd-card.sh 在本机 Ubuntu 22.04计算机上执行脚本以供参考、以确认它可以正常工作(应该)?

    此致、Andreas

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

    是的、正确、fdisk 输出对于"工作"和"非工作"分区是相同的。  这两种场景使用了完全相同的 create-sd-card.sh 脚本并使用了完全相同的引导加载程序文件(tiboot3.bin、tispl.bin、u-boot.img、tiboot-hs-fs.bin)。  此外、这两种方案都使用完全相同的 USB<->SD 卡写入器。  我没有运行 Ubuntu 22.04的物理机。  唯一的物理驱动器运行12.04、也能正常工作。  每个 VM I (18.04、14.04、12.04)也都能正常工作。  无法创建可引导 SD 卡的唯一情况是 Ubuntu 22.04 VM。  至于物理、TISDK 文档不会说他们现在使用的是 docker、这只是一个22.04 VM?  感谢任何帮助。

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

    您可以做的是、通过编程后读出 SD 卡(例如使用 dd 命令/dev/sda)(例如`dd if=sdcard.img bs=1M`)、将工作中和非工作中的 SD 卡映像转换回映像文件。 然后、您可以进行十六进制比较、以使用您喜欢的十六进制差分工具来查看差异所在。 例如、在 MBR (偏移量0)或 FAT32引导信息记录中。

    对于物理、TISDK 文档不是说他们现在使用了文档记录器、这只是一个22.04 VM?  [报价]

    Docker 不是虚拟机;Docker 不会处理外围设备/SD 卡读取器抽象问题。

    此致、Andreas

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

    下面是比较:

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

    另外、我们在实际 Ubuntu 22.04和18.04上进行了尝试、结果与虚拟机相同。

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

    大家好、Kevin

    此外、我们还尝试了真实的 Ubuntu 22.04和18.04、结果与虚拟机相同。

    这很有趣、很高兴知道。

    我个人使用 SDK 方法和 Ubuntu 22.04成功创建了 SD 卡映像、不同之处在于、由于工作流程的原因、我将生成的映像写入回环设备(虚拟 SD 卡)作为中间步骤、然后通过 USB 读卡器将生成的映像写入 SD 卡。

    话虽如此、您可以尝试使用其他 USB SD 读卡器吗?

    至于进一步分析您的数据,我本周正在进行国际商务旅行,所以我的时间非常有限,但下星期将能够更深入地查看事情。

    此致、Andreas

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

    我已经尝试了2个不同的 USB SD 卡写入器和其他人已经尝试了不同的一个,以及所有相同的结果。  听起来不错。

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

    尊敬的 Kevin:

    当我遇到在某些情况下使用 Linux SD 卡创建脚本时与引导相关的问题的内部讨论时、我只是在处理一些不相关的事情。 这是在大型 SD 卡(128GB)的背景下,但也许解决方案也适用于您的案例。 您能否尝试添加 '-a' 的应用参数 mkfs.vfat 脚本中的命令、如这里的 diff 所示。。。

    a0797059@jiji:~/ti/ti-processor-sdk-linux-am62pxx-evm-10.00.07.04/bin
    $ diff --unified  create-sdcard.sh.orig create-sdcard.sh
    --- create-sdcard.sh.orig       2025-01-14 23:50:38.768046742 -0600
    +++ create-sdcard.sh    2025-01-14 23:51:34.785637837 -0600
    @@ -540,7 +540,7 @@
    
     ################################################################################
     EOM
    -       mkfs.vfat -F 32 -n "boot" ${DRIVE}${P}1
    +       mkfs.vfat -F 32 -a -n "boot" ${DRIVE}${P}1
     cat << EOM
    
     ################################################################################
    @@ -610,7 +610,7 @@
    
     ################################################################################
     EOM
    -       mkfs.vfat -F 32 -n "boot" ${DRIVE}${P}1
    +       mkfs.vfat -F 32 -a -n "boot" ${DRIVE}${P}1
     cat << EOM
    
     ################################################################################

    此致、Andreas