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:Rootfs 始终从 eMMC 加载

Guru**** 2540720 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/696767/linux-am3352-rootfs-always-loaded-from-emmc

器件型号:AM3352

工具/软件:Linux

您好!

我们正在将系统从4.4内核升级到4.9内核。

根据引导引脚、我的 eMMC 比 SD 卡具有高优先级、因此当 eMMC 中其他 SD 卡上提供 Uboot 时、Uboot 会从 eMMC 加载。 这是预期的结果。

我们在处理器的 mmc1上有 SD 卡、在 mmc2上有 eMMC。 因此、如果 SD 卡中有可用的 zImage、它也会从 SD 卡加载、否则它将从 eMMC 引导。 我认为这也是正确的预期吗?

使用内核4.9 (SD 卡已连接、eMMC 也已闪存):

内核从 eMMC 加载 rootfs。

使用内核4.4 (SD 卡已连接、eMMC 也已刷写):

内核从 SD 卡加载 rootfs。

我希望如果连接 SD 卡,则应从 SD 卡加载 rootfs。 与内核4.4相同。 如何在内核4.9中执行此操作? 内核中是否有要从中加载 rootfs 的设置?

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

    如果您在 U-Boot 控制台中输入此命令、新内核4.9将作为旧内核4.4运行。
    => setenv bootpart 0:2

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

    您好、Kemal、

    我对内核使用相同的 uboot、具有相同的 uboot env 参数、即4.4和4.9。 然后、我还有这种不同的行为。

    Bootpart 已经为0:2

    谢谢你。

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

    请参阅 帖子。 您需要使用 AM335x_boneblack_config 重新编译 U-Boot、以使 MMC 命令在最新的 Processor SDK 上正常工作。

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

    我也尝试了相同但相同的行为、但也进行了此更改。

    谢谢你。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    内核如何从何处(从 SD 卡或 eMMC)决定安装 rootfs? 我认为这里是内核4.4和4.9之间的区别。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    要安装的 rootfs (来自 SD 卡或 eMMC)由 U-Boot 决定。 在 U-Boot 环境中看到此行。

    args_mmc=run finduid;setenv bootargs console=${console}${optargets}root=PARTUUID =${uuid}rw rootfstype=${mmcrootfstype}

    此行决定的 UUID gest
    finduuid=part uuid MMC ${bootpart}uuid

     当 bootpart 为0:2时、rootfs 从 SD 卡加载;当 bootpart 为1:2时、它从 eMMC 加载。

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

    是 Kemal。 我还想这种情况。 但是、根据以下观察、我认为我仍然缺少一些东西:

    案例- 1:
    假设我的 SD 卡具有 uboot (在引导分区中)和 rootfs (在 ROOTFS 分区和内核4.4中)和
    eMMC 使用相同的 uboot (在引导分区中)和 rootfs (在 ROOTFS 分区中、相同的 rootfs 但内核4.9中)进行了完全刷写。

    现在、如果我连接 SD 卡并启动电路板、内核4.4将通过 SD 卡的 rootfs 启动。

    案例- 2:
    我仅在 SD 卡中将内核4.4的 zImage 替换为内核4.9的 zImage。 eMMC 和 SD 卡中的所有其他内容都是原样的。

    现在我将连接 SD 卡并启动板、内核4.9 (根据日志来自 SD 卡)将通过 eMMC 的 rootfs 启动。

    我在 uboot 提示符下使用 printenv 命令发现 bootpart 为0:2。 aslo 尝试了 setenv bootpart 0:2 commad、然后尝试了 boot 命令、但仍然是-2 rootfs 来自 eMMC。

    如果从 SD 卡使用 zImage,则为什么要切换到 rootfs 的 eMMC。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请将内核引导日志和这些日志从 U-Boot 控制台附加到案例-2中以进行检查。

    =>印刷版
    =>部件列表 MMC 0
    =>部件列表 MMC 1
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Kemal、

    我们已使用相同的 u-boot、内核4.9和 rootfs 刷写 eMMC 和 SD 卡。

    以下是日志:

    uBoot# printenv
    arch = ARM
    args_mmc=run finduid;setenv bootargs console=${console}${optargets}root=PARTUUID =${uuid}rw rootfstype=${mmcrootfstype}
    波特率=115200
    电路板=AM335x
    Board_NAME=>> h8뽘bUoġR8。ز fȢÏ~O˪L&(qjJ㥚=
    Board_rev= 8ۘbUoġR8 Ω。和 ز fȢÏ~Ω O˪L&(qjJ㥚 Ω=
    Board_serial= oġR8 Ω。ز fȢÏ~Ω O˪L&(qjJ㥚 Ω=
    boot_a_script=load ${devtype}${devnum}:${distro_bootpart}${scriptaddr}${prefix}${script};source ${scriptaddr}
    boot_efi_binary=load ${devtype}${devnum}:${distro_bootpart}${kernel_addr_r}efi/boot/bootarm.EFI;如果 fdt addr ${fdt_addr_r};则 bootefi ${kernel_addr_r}${fiF
    boot_extlinux=sysboot ${devtype}${devnum}:${distro_bootpart}任何${scriptaddr}${prefix}extlinux/extlinux.conf
    BOOT_FDT=尝试
    BOOT_FIT = 0
    BOOT_NET_USB_START=USB 启动
    boot_nars=//boot/
    boot_script_dhcp=boot.scr.uimg
    boot_scripts=boot.scr.uimg boot.scr
    boot_targets=mmc0 legacy_mmc0 mmc1 legacy_mmc1 nand0 PXE DHCP
    bootcmd=if test ${boot_fit}-eq 1;然后运行 update_to _fit;fi;运行 findfdt;运行 init_console;运行 envboot;运行 distro bootcmd
    bootcmd_dhcp=run boot_net_usb_start;如果 DHCP ${scriptaddr}${boot_script_dhcp};则源${scriptaddr};fi;setenv efi_fdtfile ${fdtfile};如果 test -z "${fdtfil;
    bootcmd_legacy_mmc0=setenv mmcdev 0;setenv bootpart 0:2;运行 mmcboot
    bootcmd_legacy_mmc1=setenv mmcdev 1;setenv bootpart 1:2;运行 mmcboot
    bootcmd_mmc0=setenv devnum 0;运行 MMC_boot
    bootcmd_mmc1=setenv devnum 1;运行 MMC_boot
    bootcmd_nand=运行 nandboot
    bootcmd_PXE=运行 boot_net_usb_start;DHCP;如果 PXE 获得;然后是 PXE 引导;fi
    BOOTCOUNT=1
    BOOTDELAY=2
    bootdir=/boot
    bootenvfile=uEnv.txt
    BootFile=zImage
    BOOTM_SIZE=0x10000000
    bootpart=0:2
    bootscript=echo 正在从 MMC${mmcdev}...;源${loadaddr}运行的 bootscript
    console=ttyO0、115200n8
    CPU=armv7
    DFU_alt_INFO_eMMC=rawemmc RAW 0 3751936
    dfu_alt_info_mmc=boot part 0 1;rootfs part 0 2;mlo fat 0 1;ml.raw 0x100 0x100;u-boot.img.raw 0x300 0x1000;u-env.raw 0x1300 0x200;spl-os-args.raw raw1
    dfu_alt_info_nand=SPL 零件0 1;SPL.Backup1零件0 2;SPL.Backup2零件0 3;SPL.Backup3零件0 4;u-boot 零件0 5;u-boot-spl-OS 零件0 6;内核零件0 8;rootfs 零件9
    dfu_alt_info_ram=内核 ram 0x80200000 0x4000000;fdt ram 0x80f80000 0x80000;ramdisk ram 0x81000000 0x4000000
    distro_bootcmd=用于${boot_targets}中的目标;请运行 bootcmd_${target};完成
    EFI_dtb_nefins=//dtb//dtb/current
    envboot=MMC dev ${mmcdev};如果 MMC 重新扫描;然后回显在器件${mmcdev}上找到的 SD/MMC;如果运行 loadbootscript;然后运行 bootscript;否则、如果运行 loadbootenv;然后是 ech;
    eth1addr=F4:5e:AB:39:6c:5F
    ethaddr=F4:5e:AB:39:6c:5d
    FDT_addr_r=0x88000000
    fdtaddr=0x88000000
    fdtcontrolladdr=bdf204d8
    fdtfile=未定义
    findfdt=setenv fdtfile am335x-evmsk.dtb;
    finduuid=part uuid MMC ${bootpart}uuid
    fit_bootfile=fitImage
    fit_loadaddr=0x87000000
    importbootenv=echo 从 MMC${mmcdev}导入环境...;env 导入-t ${loadaddr}${filesize}
    init_console=setenv 控制台 ttyO0、115200n8;
    kernel_addr_r=0x82000000
    load_efi_dtb=load ${devtype}${devnum}:${distro_bootpart}${fDT_addr_r}${prefix}${efi_fdtfile}
    loadaddr=0x82000000
    loadbootenv=fatload MMC ${mmcdev}${loadaddr}${bootenvfile}
    loadbootscript=load MMC ${mmcdev}${loadaddr}boot.scr
    loadfdt=load ${devtype}${bootpart}${fdtaddr}${bootdir}/${fdtfile}
    loadfit=run args_mmc;bootm ${loadaddr}#${fdtfile};
    loadimage=load ${devtype}${bootpart}${loadaddr}${bootdir}/${bootfile}
    loadramdisk=load MMC ${mmcdev}${rdaddr}ramdisk.gz
    MMC_BOOT=if MMC dev ${devnum};然后 setenv devtype MMC;运行 scan_dev_for_boot_part;fi
    mmcboot=mmc dev ${mmcdev};setenv devnum ${mmcdev};setenv devtype MMC;如果 MMC 重新扫描;然后回显器件${mmcdev}上的 SD/MMC;如果运行 loadimage;然后如果测试;
    mmcdev=0
    mmclaros=run args_mmc;如果测试${boot_FDT}=是||测试${boot_FDT}=尝试;如果运行 loadfdt;则 bootz ${loadaddr}-${fdtaddr};否则测试${boot_FDT}=;
    mmcrootfstype=ext4 rootwait
    mtdds=nand0=nand.0
    mtdparts=mtdparts=nand.0:128k (NAND.SPL)、128k (NAND.SPL.Backup1)、128k (NAND.NANT.Backup2)、128k (NAND.SPL.backup3)、256k (NAND.u-boot-spl-OS)、1m (NAND.NAND-boot)、128k (NAND.SPL)
    nandargs=setenv bootargs console=${console}${optargets}root=${nandroot}rootfstypy=${nandrootfstype}
    nandboot=echo Booting from nand ...;运行 nandargs;nand read ${fdtaddr}nand.u-boot-spl-OS;nand read ${loadaddr}NAND.kernel;bootz ${loadaddr}-${fdtaddr}
    nandroot=ubi0:rootfs rw ubi.mtd=NAND.file-system、2048
    nandrootfstype=ubifs rootwait=1
    netargs=setenv bootargs console=${console}${optargets}root=/dev/nfs nfsroot=${serverip}:${rootpath}、${nfsopts}RW IP=DHCP
    netboot=echo Booting from network...;setenv autoload no;dhcp;run netloadimage;run netloadfdt; 运行 netargs;bootz ${loadaddr}-${fdtaddr}
    netloadfdt=tftp ${fdtaddr}${fdtfile}
    netloadimage=tftp ${loadaddr}${bootfile}
    nfsopts=nolock
    partitions=uuid_disk=${uid_gppt_disk};name=rootfs、start=2MiB、size=-、uid=${uid_gppt_rootfs}
    pxefile_addr_r=0x80100000
    ramargs=setenv bootargs console=${console}${optargets}root=${ramroot}rootfstypy=${ramrootfstype}
    ramboot=echo 从 ramdisk 引导...;运行 ramargs;bootz ${loadaddr}${rdaddr}${fdtaddr}
    ramdisk_addr_r=0x88080000
    ramroot=/dev/ram0 rw
    ramrootfstype=ext2
    读数地址= 0x88080000
    rootpath=/export/rootfs
    scan_dev_for_boot=echo 扫描${devtype}${devnum}:${distro_bootpart}...;对于${boot_drefixes}中的前缀;请运行 scan_dev_for_extlinux;运行 scan_dev_for_script;
    scan_dev_for_boot_part=part list ${devtype}${devnum}-bootable devplist;env 存在 devplist || setenv devplist 1;用于${devplist}中的 distro_bootpart;如果有、请执行
    scan_dev_for_efi=setenv efi_fdtfile ${fdtfile};如果测试-z "${fdtfile}"-a -n "${soc}";则 setenv efi_fdtfile ${soc}-${board}${boardver}.dtb;fi;用于前缀 ine
    scan_dev_for_extlinux=if test -e ${devtype}${devnum}:${distro_bootpart}${prefix}extlinux/extlinux.conf;然后回显找到${prefix}extlinux/extlinux.conf;运行 BOI
    scan_dev_for_scripts=用于${boot_scripts}中的脚本;如果测试-e ${devtype}${devnum}:${distro_bootpart}${prefix}${script}、则执行;然后回显找到的 U-Boot 脚本${pree
    脚本地址=0x80000000
    SoC=am33xx
    args=setenv bootargs console=${console}${optargets}root=${spiroot}spifstypy=${rootrootfstype}
    spiboot=echo Booting from SPI ...;运行 spiargs;SF 探测器${spibusno}:0;SF 读取${loadaddr}${spisrcadr}${spiimgsize};bootz ${loadaddr}
    spibusno=0
    spiimgsize=0x362000
    spiroot=/dev/mtdblock4 rw
    rootspifstype=jffs2.
    spisrcaddr=0xe0000
    static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off
    stderr=串行@44e09000
    stdin =串行@44e09000
    stdout=串行@44e09000
    update_TO_fit=setenv loadaddr ${fit_loadaddr};setenv 引导文件${fit_bootfile}
    USB_boot=USB start;如果 USB dev ${devnum};则 setenv devtype USB;运行 scan_dev_for_boot_part;fi
    供应商= TI
    ver = U-Boot 2017.01 (2018年5月11日- 17:34:17 +0530)

    环境大小:8655/131068字节
    UBoot# 器件列表 MMC 0

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

    Part   Start Sector   Num Sectors    UUID           类型
     1    48195          144585         00000000-01    0c Boot
     2    192780         1124550        00000000-02    83
     3    1317330        160650         00000000-083     
     4    1477980        29623860       0000-04    05喷塑
     5    1478043        1124487        00000000-05    83
     6    2602593        28499247       00000000-06    83
    UBoot#器件列表 MMC 1.

    MMC 设备1的分区映射 --  分区类型:DOS

    Part   Start Sector   Num Sectors    UUID           类型
     1    48195          144585         00000000-01    0c Boot
     2    192780         2269135        00000000-02    83
    UBoot#


    谢谢你。

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

    看到 UUID、它们都是0。 请修复此问题以确保正确检测 rootfs。

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

    您好、Kemal、

    我仔细研究了其中的一些线程、也做了一些更改、但还不幸运地检测到 UUID。 请在此处提供指导。

    我介绍了以下主题、我认为您建议的补丁可以在这里提供帮助。 但无法下载。

    e2e.ti.com/.../506240

    谢谢你

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

    不再需要应用此修补程序、而是用于不同的目的。 您能使用创建 SD 卡 /bin/create-sdcard.sh 脚本。 然后将这些命令的反馈发布给我。
    SD 卡连接到主机时为 sudo blkid、SD 卡连接到主板时为 U-Boot 控制台的=> MMC 部件。

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

    您好、Kemal、

    以下是主机计算机中"blkid"命令的日志、/dev/sdb 是刷写的 SD 卡:

    $ sudo blkid
    Rohit 的[sudo ]密码:
    /dev/sda1:label="OSDisk" UUID ="92AE1221AE11FF03" type="NTFS" PARTUUID ="18b631bc-01"
    /dev/sda2:label="New Volume" UUUUUUID="D41C71321C7110AA" type="NTFS" PARTUUUUUID="18b631bc-02"
    /dev/sda5:UUID ="c0aa7a-89dd-41b8-b8b825-8bac2878ddb" type="ext4" PARTUUID ="18b631bc-05"
    /dev/sda6:UUID ="a29dfb2c-3d37-4ca3-a296-babde3b893af" type="swap" PARTUUID ="18b631bc-06"
    /dev/sda7:UUID ="fe2978d8-26e7-4991-ae7d-b00f621609ad" type="ext4" PARTUUID ="18b631bc-07"
    /dev/sdb1:label="boot" UUID ="FE2B-21C9" type="vfat"
    /dev/sdb2:label="ROOTFS" UID="e0347257-335d-4ccc-984d-8846cf7f8750" type="ext4"
    /dev/sdb3:label="boot_backup" UUID ="FE51-58D2" type="vfat"
    /dev/sdb5:label="ROOTFS_backup" UUID="0c193d-0dd6-4cbe-81d5-b1491840c9f9" type="ext4"
    /dev/sdb6:label="data" UUID ="bf2aa85e-95c1-45ab-a2ab-aa912f3921f1" type="ext4"
    $

    以下是 uboot 提示符下的"MMC part"命令的日志:

    UBoot# MMC 部件

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

    Part   Start Sector   Num Sectors    UUID           类型
     1    48195          144585         00000000-01    0c Boot
     2    192780         1124550        00000000-02    83
     3    1317330        160650         00000000-083     
     4    1477980        29623860       0000-04    05喷塑
     5    1478043        1124487        00000000-05    83
     6    2602593        28499247       00000000-06    83
    UBoot#

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否还可以发布此命令的输出?
    =>部件列表 MMC 1
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    与以前一样。 不变

    UBoot#器件列表 MMC 1.

    MMC 设备1的分区映射--分区类型:DOS

    零件起始扇区数量扇区 UUID 类型
    1 48195. 144585. 00000000-01 0C 引导
    2. 192780 2269135 00000000-02 83.
    UBoot#
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您能否在 eMMC 上执行这些命令并查看 UUID 是否会更改、重新引导电路板并检查它们是否仍然存在。 此分区将擦除您的 eMMC、但稍后重新刷新它、然后再次查看 UUID 是否仍然存在。

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

    uBoot# uuidgen
    未知命令'uuidgen'-尝试'help'
    UBoot#

    uBoot# printenv 分区
    partitions=uuid_disk=${uid_gppt_disk};name=rootfs、start=2MiB、size=-、uid=${uid_gppt_rootfs}
    UBoot#
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    主机计算机中键入 uuidgen 命令以生成 UUID。

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


    以下是生成的 UUID:
    uuuidgen
    a64e3d89-954c-4ea0-929c-ccfd2bb11800
    uuuidgen
    fd54a989-0677-47ba-a791-e1cecdcf8d8a


    以下是写入 UUID 的日志:

    UBoot#器件列表 MMC 1.

    MMC 设备1的分区映射 --  分区类型:DOS

    Part   Start Sector   Num Sectors    UUID           类型
     1    48195          144585         00000000-01    0c Boot
     2    192780         2269135        00000000-02    83


    uBoot# printenv 分区
    partitions=uuid_disk=${uid_gppt_disk};name=rootfs、start=2MiB、size=-、uid=${uid_gppt_rootfs}
    uBoot# setenv uid_gp_t_disk a64e3d89-954c-4ea0-929c-ccfd2bb11800
    UBoot#
    uBoot# setenv uid_gp_t_rootfs fd54a989-0677-47ba-a791-e1cecdcf8d8a
    UBoot# GPT 写入 MMC 1 ${partitions}
    写入 GPT:成功!

    UBoot# 器件列表 MMC 1.

    MMC 设备1的分区映射 --  分区类型:DOS

    Part   Start Sector   Num Sectors    UUID           类型
     1    1              7471103        000000000000-01    ee


    以下是重新启动电路板后的日志:
    UBoot#器件列表 MMC 1.

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

    零件   开始 LBA      结束 LBA        名称
           属性
           键入 GUID
           分区 GUID
     1    0x00001000     0x0071ffde     "rootfs"
           attrs: 0x0000000000000000
           类型:  ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
           GUID:  89a954fd-7706-ba47-a791-e1cecdcf8d8a
    UBoot#

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您至少在 eMMC 上有一个 guid. 是否可以检查现在是否选择了正确的 rootfs?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    否 它不工作。 它实际上擦除了 eMMC。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、这是预期的。 您能否重新刷写它并发布这些命令的输出?
    =>部件列表 MMC 0
    =>部件列表 MMC 1
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果我再次刷写、UUID 变为零。

    以下是日志:

    UBoot# 器件列表 MMC 0

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

    Part   Start Sector   Num Sectors    UUID           类型
     1    48195          144585         00000000-01    0c Boot
     2    192780         1124550        00000000-02    83
     3    1317330        160650         00000000-083     
     4    1477980        29623860       0000-04    05喷塑
     5    1478043        1124487        00000000-05    83
     6    2602593        28499247       00000000-06    83

    UBoot#器件列表 MMC 1.


    MMC 设备1的分区映射--分区类型:DOS

    Part Start Sector Num Sectors UUID 类型
    1 48195 144585 00000000-01 0c Boot
    2 192780 2269135 00000000-02 83
    UBoot#

    谢谢你。

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

    因此、您知道 UUID 中的这些零是导致不正确检测 rootfs 的根本原因。 以及您需要解决的问题。 或者,也可以使用 dev 路径/dev/mmcblk0p2.返回到旧的 rootfs 检测

    setenv args_mmc 'run finduuid;setenv bootargs console=${console}${optargets}root=${root}rw rootfstype=${mmcrootfstype}'
    setenv bootcmd_legacy_mmc0 'etenv mmcdev 0;setenv bootpart 0:2;setenv root /dev/mmcblk0p2;运行 mmcboot'
    setenv bootcmd_legacy_mmc1 'etenv mmcdev 1;setenv bootpart 1:2;setenv root /dev/mmcblk1p2;运行 mmcboot'
    setenv bootcmd_mmc0 'etenv devnum 0;setenv root /dev/mmcblk0p2;运行 MMC_boot'
    setenv bootcmd_mmc1 'etenv devnum 1;setenv root /dev/mmcblk1p2;运行 MMC_boot'

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

    您好、Kemal、

    我在 eMMC 中创建了(超过2个) 6个分区、并且在没有任何更改或上述建议命令的情况下工作正常。 现在,如果 SD 卡存在的话,从 SD 卡安装 rootfs,否则从 eMMC 安装。 这是预期的结果。

     

    以下是日志:

    UBoot#器件列表 MMC 0

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

    Part   Start Sector   Num Sectors    UUID           类型
     1    48195          144585         00000000-01    0c Boot
     2    192780         1124550        00000000-02    83
     3    1317330        160650         00000000-083     
     4    1477980        29623860       0000-04    05喷塑
     5    1478043        1124487        00000000-05    83
     6    2602593        28499247       00000000-06    83
    UBoot#器件列表 MMC 1.

    MMC 设备1的分区映射 --  分区类型:DOS

    Part   Start Sector   Num Sectors    UUID           类型
     1    48195          143360         00000000-01    0c Boot
     2    191555         3145728        00000000-02    83
     3    3337283        143360         00000000-083     
     4    3480643        3990461        00000000-04    05喷塑
     5    3480700        3145728        00000000-05    83
     6    6626429        844675         00000000-06    83
    UBoot#

    这种情况发生在内核4.9中。 因为到目前为止,我只使用内核4.4处理两个分区。

    谢谢你。