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/AM3358:TFTP 引导失败

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/658696/linux-am3358-tftp-boot-fails

器件型号:AM3358

工具/软件:Linux

您好!

只需从具有以下系统设置的 TI Processor SDK 开始:

  • TI SDK    :Linux-AM335x-EVM-04.02.00.09-Linux-x86
  • 计算机  :Ubuntu 16.04 (本机64位) @ IP:192.168.1.86 (DHCP)
  • 开发板 :BeableBone Black,版本 C     。@ IP:192.168.1.68 (DHCP)
  • 网关                                :@ IP:192.168.1.1

按照循序渐进的在线说明进行设置:

  1. 已配置 Linux 主机、包括所有必需的软件包以及 linaro-6.2.1工具链。
  2. 已安装 SDK
  3. 使用 SDK Create SD Card Scrip 创建 SD 卡
  4. 配置了开发环境(USB Mini、FTDI Serial、Ehthernet)
  5. 已使用 SD 卡引导目标板(已删除 BBBlack eMMC)
  6. 运行安装脚本
  7. 使用 SDK 根目录中的顶级 makefile 重建源文件。
  8. 已验证 TFTP 服务器是否正在运行并可从 LAN 访问(使用 Windows 7 TFTP 客户端)   

我怀疑问题是在 SD 上将错误的引导参数传递给 U-Boot。

  1. 我不确定是否创建了 uEnv.txt、以及
  2. 为什么 从服务器192.168.1.1 (网关)而不是192.168.1.86 (Ubuntu 计算机)使用 TFTP

在 minicom 控制台上、我获得以下输出:

欢迎使用 Minicom 2.7

选项:I18N
编译于 2016年2月7日、13:37:27。
端口/dev/ttyUSB0、12:38:00

按 CTRL-A Z 获取有关特殊键的帮助


U-Boot SPL 2017.01-g340fb36f04 (2017年12月23日- 10:20:13)
尝试从 MMC1引导
正在读取 uboot.env
正在读取 u-boot.img
正在读取 u-boot.img
正在读取 u-boot.img
正在读取 u-boot.img


U-Boot 2017.01-g340fb36f04 (2017年12月23日- 10:20:13 -0500)

CPU :AM335X-GP 修订版2.1
型号:TI AM335x BeagleBone Black
DRAM: 512 MiB
NAND: 0 MIB
MMC:  OMAP SD/MMC:0、OMAP SD/MMC:1.
正在读取 uboot.env
NET:  cpsw、USB_ether
按任意键停止自动引导: 0
正在阅读 uEnv.txt
**无法读取文件 uEnv.txt **
端口0、速度100、全双工上的链路
BOOTP 广播1
DHCP 客户端绑定到地址192.168.1.68 (5ms)
端口0、速度100、全双工上的链路
使用 cpsw 器件
来自服务器192.168.1.1的 TFTP;我们的 IP 地址为192.168.1.68
文件名"AM335x-bonebine.dtb"。
加载地址:0x82000000
负载:T T T T T T T T T T T T T T T T T T T T T T T T T T T T
已超过重试计数;正在重新开始
端口0、速度100、全双工上的链路
使用 cpsw 器件
来自服务器192.168.1.1的 TFTP;我们的 IP 地址为192.168.1.68
文件名"AM335x-bonebine.dtb"。
加载地址:0x88000000
负载:T T T T T T T T T T T T T T T T T T T T T T T T T T T T
已超过重试计数;正在重新开始

 

提前感谢您、

ZGy

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

    如果您在 U-Boot 控制台中停止引导并输入=> setenv serverip 192.168.1.86,则会发出声音,您的主板将引导。

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

    您好、Kemal、

    它不启动!

    U-Boot 会响应 ping 命令、因此网络连接必须正常。

    我已经尝试在 U-Boot 控制台上停止并发送下面列出的所有命令)
    (来自自动生成的安装程序“./bin/setupBoard.minicom”文件)

    setenv serverip 192.168.1.86
    setenv ipaddr 192.168.1.68
    setenv rootpath '/home/ZGy/Projects/beaglebone-r--.--/linux-sdk-04.02/targetNFS
    setenv 引导文件 AM335x-bonebine.dtb
    setenv nfsopts 'nolock、v3、tcp、rsize=4096、wsize=4096'
    setenv getuenv 'if MMC rescan;then if run loadbootenv;then run importbootenv;fi;fi;'
    setenv bootcmd 'run findfdt;运行 getuenv;setenv autoload no;dhcp;tftp ${loadaddr}AM335x-bonebreblu.dtb;tftp ${fdtaddr}${fdtfile};运行 netargs;boottz ${ftaddr}-${fdtaddr}'
    保存
    引导

    我不确定是否已创建 uEnv.txt 文件(假设包含引导参数)。 如果是、您知道它在哪里保存?

    ZGy

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

    是否已将来自服务器192.168.1.1的 TFTP 消息从服务器192.168.1.86更改为 TFTP
    请阅读 文章、了解有关 uEnv.txt 创建的内容以及 如何以及保存位置。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    没有任何变化、它仍然执行相同的操作、并打印相同的消息"TFTP from server 192.168.1.1 (从服务器192.168.1.1获取 TFTP)"。

    现在我确信 uEnv.txt 文件不会被创建-因此我停止查找它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的,请参阅以下消息:"reading uboot.env"和"reading uEnv.txt ** Unable to read file uEnv.txt **"。 您有 uboot.env、没有 uEnv.txt
    您能否将附加 的 e2e.ti.com/.../7776.uEnv.txt 复制 到 SD 卡的引导分区、将其重命名为 uEnv.txt 并查看将发生什么情况?

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

    我可以看到这些消息、但不确定为什么按照联机说明文件 uEnv.txt 不在那里。
    只有在我从控制台发出"saveenv"命令时、才会创建"uboot.env"文件。 它以前不存在。
    我将文件"7776.uEnv.txt"复制到 SD、并将其重命名为"uEnv.txt"。 U-Boot 会找到并读取它、但行为没有变化。

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

    是否可以发布所有 U-Boot 环境变量(=> printenv)? 似乎存在覆盖 serverip 的条件

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    arch = ARM
    args_mmc=run finduid;setenv bootargs console=${console}${optargets}root=PARTUUI
    d=${uuuid} rw rootfstype=${mmcrootfstype]
    波特率=115200
    电路板=AM335x
    Board_name=A335BNLT
    Board_rev=00C0
    Board_serial=3917BBBK1439
    boot_a_script=load ${devtype}${devnum}:${distro_bootpart}${scriptaddr}${prefi
    x}${script};源${scriptaddr}
    boot_efi_binary=load ${devtype}${devnum}:${distro_bootpart}${kernel_addr_r}ef
    i/boot/bootarM.EFI;如果 fdt addr ${fDT_addr_r};则 bootefi ${kernel_addr_r}${f
    dt_addr_r};否则 bootefi ${kernel_addr_r}${fdtcontrolladdr};fi
    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=run findfdt;运行 getuenv;setenv autoload no;dhcp;tftp ${loadaddr}am33
    5x-bonebblack.dtb;tftp ${fdtaddr}${fdtfile};运行 netargs;bootz ${loadaddr}-$
    {fdtaddr}
    bootcmd_dhcp=run boot_net_usb_start;如果 DHCP ${scriptaddr}${boot_script_dhcp};
    然后、如果 test -z "${fdtfi}、则源${scriptaddr};fi;setenv efi_fdtfile ${fdtfile};if test -z "${fdtfi
    LE}"-a -n "${soc}";然后 setenv efi_fdtfile ${soc}-${board}${boardver}.dtb;fi;
    setenv efi_old_VCI ${BOOTP_VCI};setenv efi_old_arch ${BOOTP_arch};setenv BOOTP_
    VCI PXEClient:Arch:00010:UNDI:003000;setenv BOOTP_ARCH 0xA;if DHCP ${kernel_addr
    _r};然后是 tftpboot ${FDT_addr_r}dtB/${EFI_fdtfile};如果是 fdt addr ${FDT_addr_r};t
    hen bootefi ${kernel_addr_r}${fdt_addr_r};否则 bootefi ${kernel_addr_r}${fdtc
    ontroladdr};fi;fi;setenv BOOTP_VCI ${EFI_OD_VCI};setenv BOOTP_ARCH${EFI_OD_AR
    ch};setenv efi_fdtfile;setenv efi_old_arch;setenv efi_old_vci;
    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=14
    BOOTDELAY=2
    bootdir=/boot
    bootenvfile=uEnv.txt
    BootFile=AM335x-bonebrebly.dtb
    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;mLo.raw 0x100 0x1
    00;u-boot.img.raw 0x300 0x1000;u-env.raw 0x1300 0x200;spl-os-args.raw
    w 0x1500 0x200;spl-os-image.raw 0x1700 0x6900;spl-os-args fat 0 1;spl-os-imA
    GE fat 0 1;u-boot.img fat 0 1;uEnv.txt fat 0 1
    dfu_alt_info_nand=SPL 零件0 1;SPL.Backup1零件0 2;SPL.Backup2零件0 3;SPL.BAC
    kup3第0部分4;u-boot 第0部分5;u-boot-spl-OS 第0部分6;内核第0部分8;rootfs 部分
    0 9.
    dfu_alt_info_ram=内核 ram 0x80200000 0x4000000;fdt ram 0x80f80000 0x80000;ramd
    ISK RAM 0x81000000 0x4000000
    distro_bootcmd=用于${boot_targets}中的目标;请运行 bootcmd_${target};完成
    EFI_dtb_nefins=//dtb//dtb/current
    envboot=MMC dev ${mmcdev};如果 MMC 重新扫描、则回显在器件${MMC 上找到的 SD/MMC
    dev};如果运行 loadbootscript;然后运行 bootscript;否则运行 loadboottenv;则为 ec
    HO 从${bootenvfile}加载 env;运行 importbootenv;fi;if test -n $uvencmd;然后
    回显正在运行 uvencmd ...;运行 uvencmd;fi;fi;fi;
    eth1addr=38:D2:69:3E:B3:69
    ethact=cpsw
    ethaddr=38:D2:69:3E:B3:67
    FDT_addr_r=0x88000000
    fdtaddr=0x88000000
    fdtcontrolladdr=9df294f8
    fdtfile=未定义
    findfdt=if test $board_name = A335BONE;then setenv fdtfile AM335x-bone.dtb;fi;
    如果 TEST $board_name = A335BNLT;则 setenv fdtfile AM335x-bonebine.dtb;fi;i
    f test $board_name = BBG1;然后 setenv fdtfile AM335x-bonegreen.dtb;fi;if test
    $board_name = A33515BB;然后 setenv fdtfile AM335x-evm.dtb;fi;if test $board_
    名称= A335X_SK;然后 setenv fdtfile AM335x-evmsk.dTB;fi;如果 test、则为$board_name =
    a335_ice;然后 setenv fdtfile am335x-icev2.dtb;fi;if test $fdtfile = undefine
    D;然后是回显警告:无法确定要使用的设备树;fi;
    finduuid=part uuid MMC ${bootpart}uuid
    fit_bootfile=fitImage
    fit_loadaddr=0x87000000
    getuenv=if MMC rescan;then run loadbootenv;then run importbootenv;fi;fi;
    importbootenv=从 MMC${mmcdev}导入环境...;env 导入-t ${
    loadaddr}${filesize}
    init_console=if test $board_name = A335_ICE;然后 setenv 控制台 ttyO3、115200n8;
    否则 setenv 控制台 ttyO0、115200n8;fi;
    ipaddr=192.168.1.68
    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_PA
    rt;fi
    mmcboot=MMC dev ${mmcdev};setenv devnum ${mmcdev};setenv devtype MMC;if mmc r
    eScan;然后、如果运行 loadimage、则回显在器件${mmcdev}上找到的 SD/MMC;如果测试、则回显
    ${boot_fit}-eq 1;然后运行 loadfit;否则运行 mmcloados;f;fi;fi;fi;
    mmcdev=0
    mmclosados=run args_MMC;如果测试${boot_FDT}=是||测试${boot_FDT}=尝试;
    n 如果运行 loadfdt、则为 bootz ${loadaddr}-${fdtaddr};否则为测试${boot_FDT}
    =尝试;然后是 bootz;否则是回声警告:无法加载 DT;fi;fi;否则是 bootz;fi;
    mmcrootfstype=ext4 rootwait
    mtdds=nand0=nand.0
    mtdparts=mtdparts=nand.0:128k (NAND.SPL)、128k (NAND.SPL.Backup1)、128k (NAND.SPL.BAC
    kup2)、128k (NAND.SPL.backup3)、256k (NAND.u-boot-spl-OS)、1m (NAND.U-boot)、128k (NAND.U-boot)
    u-boot-env)、128k (NAND.u-boot-env.Backup1)、8m (NAND.kernel)、-(NAND.file-system)
    nandargs=setenv bootargs console=${console}${optargets}root=${nandroot}rootfsty
    PE=${nandrootfstype}
    nandboot=echo 从 nand 引导...;运行 nandargs;n 并读取${fdtaddr}NAND.u-b
    oot -spl-OS;n 并读取${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=${se
    rverip}:${rootpath}、${nfsopts}RW IP=DHCP
    netboot=echo Booting from network...;setenv autoload no;dhcp;运行 netloadimag
    e;运行 netloadfdt;运行 netargs;bootz ${loadaddr}-${fdtaddr}
    netloadfdt=tftp ${fdtaddr}${fdtfile}
    netloadimage=tftp ${loadaddr}${bootfile}
    nfsopts=nolock、v3、tcp、rsize=4096、wsize=4096
    partitions=uuid_disk=${uid_gppt_disk};name=rootfs、start=2MiB、size=-、uid=${uid_
    GPT_rootfs}
    pxefile_addr_r=0x80100000
    ramargs=setenv bootargs console=${console}${optargets}root=${ramroot}rootfstype
    =${ramrootfstype}
    ramboot=echo 从 ramdisk 引导...;运行 ramargs;bootz ${loadaddr}${rdaddr}
    ${fdtaddr}
    ramdisk_addr_r=0x88080000
    ramroot=/dev/ram0 rw
    ramrootfstype=ext2
    读数地址= 0x88080000
    rootpath=/home/a000001/Projects/beaglebone-r--.--/linux-sdk-04.02/targetNFS
    scan_dev_for_boot=echo 扫描${devtype}${devnum}:${distro_bootpart}...;用于
    ${boot_refixes}中的前缀;请运行 scan_dev_for_extlinux;运行 scan_dev_for_scribp
    TS;完成;运行 scan_dev_for_EFI;
    scan_dev_for_boot_part=part list ${devtype}${devnum}-可引导设备列表;env ex
    ists devplist || setenv devplist 1;用于${devplist}中的 distro_bootpart;如果为 fs、则执行
    键入${devtype}${devnum}:${distro_bootpart}bootstype;然后运行 scan_dev_for_b
    模拟;fi;完成
    scan_dev_for_efi=setenv efi_fdtfile ${fdtfile};如果 test -z "${fdtfile}"-a -n "$
    {soc}";然后 setenv efi_fdtfile ${soc}-${board}${boardver}.dtb;fi;用于前缀 i
    n ${EFI_dtb_near缀};如果测试-e ${devtype}${devnum}:${distro_bootpart}${p、则执行
    重新修复}${efi_fdtfile};然后运行 load_efi_dTB;fi;done;if test -e ${devtype}${dev
    num}:${distro_bootpart}efi/boot/bootarm.EFI;然后回显找到 EFI 可拆卸介质
    二进制 efi/boot/bootarm.EFI;运行 boot_efi_binary;回显 EFI 加载失败:contin
    正在编目...;fi;setenv efi_fdtfile
    scan_dev_for_extlinux=if test -e ${devtype}${devnum}:${distro_bootpart}${prefi
    x}extlinux/extlinux.conf;然后 echo 找到${prefix}extlinux/extlinux.conf;运行 b
    iot_extlinux;echo 脚本失败:继续...;fi
    scan_dev_for_scripts=用于${boot_scripts}中的脚本;如果测试-e ${devtype}${d、则执行
    evnum}:${distro_bootpart}${prefix}${script};然后回显找到的 U-Boot 脚本${pr
    efix}${script};运行 boot_a_script;回显脚本失败:继续...;fi;完成
    脚本地址=0x80000000
    serverip=192.168.1.86
    SoC=am33xx
    spiargs=setenv bootargs console=${console}${optargets}root=${spiroot}rootfstype
    =${spirootfstype}
    spiboot=echo Booting from SPI ...;运行 spiargs;SF 探测器${spibusno}:0;SF 读取
    ${loadaddr}${spisrcadr}${spimgsize};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
    USBnet_devaddr=38:D2:69:3E:B3:67
    供应商= TI
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    启动时是否按住 S2开关按钮?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我在第一个帖子中提到、我删除了 BBBlack eMMC。 删除 eMMC 后、无需保留 S2。 如果 Ido 未将 SD 卡安装到位、则会在控制台上打印"CCCCCCC"。

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

    您是否还删除了/dev/mmcblk0boot0和/dev/mmcblk0boot1分区? 您可能已将旧环境保存在/dev/mmcblk0boot1.上

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

    不确定如何删除/dev/mmcblk0boot0和/dev/mmcblk0boot1分区?

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

    只需使用 dd 命令擦除内容即可。 类似的东西

    DD if=/dev/zero of=/dev/mmcblk0boot0

    然后、对于 BOOT1。

    Steve K.

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

    在格式化分区之前,是否可以先确定分区并查看是否保存了192.168.1.1 IP?

    从 SD 卡引导、无需使用 TFTP。 请参阅中的说明 /board-support/linux- /Documentation/mmc/mmc-dev-parts.txt

    #检查是否存在192.168.1.1
    hexdump -C /dev/mmcblk0boot0
    hexdump -C /dev/mmcblk0boot1

    #使分区可写
    echo 0 >/sys/block/mmcblkXbootY/force_ro

    #以删除分区或将其格式化为零
    DD IF=/dev/zero of=/dev/mmcblkXbootY BS=512

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

    无法再 从 BBBlack eMMC 引导。

    如果没有 SD、它将无法启动、并且从 SD 引导时的行为是默认行为-我没有更改任何内容。 我使用./bin/create-sdcard.sh 脚本和 预构建的映像创建了 SD。

    检查主机上 SD 的内容:

    mmcblk1.         179:0   14.6G 0磁盘  

    ├─毫米波1p1       179:1  0  70M 0部件 /media/ZGy/boot   <=>包含 MLO 和 u-boot.img

    └─毫米波1p2       179:2  0 14.6G 0器件           <<=>不确定这是什么? 我可以将其安装在主机上吗?

    根据我的理解、脚本 仅复制"MLO"和"u-boot.img"文件。  为了从 SD 引导和运行、我们需要复制 Linux 内核和文件系统。  

    不确定默认情况下脚本是否将文件系统和 Linux 内核复制到 SD 中、对吗? 还是应该 这样?  

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

    create-sdcard.sh 执行所有操作、格式化 SD 卡、创建分区、创建 FAT 和 ext3文件系统、将可引导标志切换至第一个分区将 MLO u-boot.img 复制到其中、在第二个分区上提取 rootfs。 只需运行 create-sdcard.sh 脚本、按照说明操作、并选择从 Processor SDK 刷写保留的预编译映像、然后将其放在电路板上、并在为器件通电的同时按住 S2开关按钮。

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

    如果你看一下我的原始帖子、你会发现这正是我从一开始就做的。

    我可以验证引导分区是否是主要 FAT23分区、是否已正确创建、它包含 MLO 和 和 u-boot.img、并且它们工作正常。

    我不确定 rootfs 以及它是否已正确创建。 我相信它应该是 Linux ext3分区、但我的主机无法检测到它。

    此时、我非常确定配置目标 和/或 允许直接从 SD 运行的 rootfs 分区的 minicom 脚本有问题-但我还不知道问题。  

    同时、以下命令在从 u-boot 控制台发出时起作用:

    => env 默认-f -a

    => saveenv

    =>复位

    => setenv serverip 192.168.1.86

    => setenv ipaddr 192.168.1.68  

    => saveenv

    =>复位

    => tftpboot ${kloadaddr}AM335x-boneblack.dtb

    端口0、速度100、全双工上的链路                                         

    使用 cpsw 器件                                                     

    来自服务器192.168.1.86的 TFTP;我们的 IP 地址为192.168.1.68                               

    文件名"AM335x-bonebine.dtb"。                                             

    加载地址:0x82000000                                                 

    正在加载:###                                                       

        351.6 KiB/s                                                   

    完成                                                           

    传输的字节= 37853 (93dd 十六进制)   

    =>

    现在、如果我发出 DHCP 命令、它将默认返回网关 IP (192.168.1.1)。 我认为 bu 默认值假定 NFS 服务器与网关相同。                                                                                                      

    => DHCP                                                                                                                  
    端口0、速度100、全双工上的链路                                                                                
    BOOTP 广播1                                                                                                        
    DHCP 客户端绑定到地址192.168.1.68 (5ms)                                                                         
    使用 cpsw 器件                                                                                                        
    来自服务器 192.168.1.1的 TFTP我们的 IP 地址为192.168.1.68                                                             
    文件名"AM335x-bonebine.dtb"。                                                                                         
    加载地址:0x82000000                                                                                                 
    负载:T T T T T T T T T T T T T T T T T T T T T T T T T T T T                                                                         
    已超过重试计数;正在重新开始                                                                                     
    =>


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

    ti-processor-sdk-linux-am335x-evm-04.02.00.09中的 setup-uboot-env.sh 脚本存在问题、如果生成、则需要将"\"中止 autoboti\"字符串更改为"\"停止 autoboti\"、也可以在 setupBoard.minicom 中将其更改为"\"停止 autoboti\"。 您是否使用连接到主机的 USB 电缆为 BBB 供电? 您是否可以通过外部5V 电源为其供电、而无需将其连接到任何 USB?