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.

[参考译文] DM388:使用 NFS 的 TFTP 引导

Guru**** 2562120 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/626653/dm388-tftp-boot-with-nfs

器件型号:DM388

我正在尝试了解有关 DM388 csk 器件中的 tftp 引导的更多信息。 我正在阅读、通过 tftp、我们可以将 Linux 映像直接加载到电路板中。 如果我们使用的是通过 tftp 引导、这是否意味着我们可以使用 SD 卡消除闪存和加载文件?

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

    我尚未尝试 TFTP 引导。 但是、如果您正在寻找一种在电路板启动并运行时直接刷写图像的方法、则可以使用 netcat 命令。

    在 PC 端优先:
    NC -l 1234 <文件名

    在 DM388板上:
    #mount SD 卡的引导分区
    mdkir /mnt/boot
    mount -t auto /dev/mmcblk0p1 /mnt/boot
    #将 映像复制到器件
    常闭 1234 >文件名

    #将 文件复制到已安装的 SD 卡分区
    CP 文件名/mnt/boot/filename
    同步

    上述操作可将所需文件从 PC 复制到 SD 卡、而无需移除 SD 卡。

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

    感谢 Nishal 的帮助。
    它发挥了作用。

    我能够将数据输入 SD 卡中。 我看到数据存储在 SD 卡的根目录/主目录中。 重新启动电路板时、我在代码中所做的修改是否生效? 因为 uImage 等位于 SD 卡的引导目录中。

    此致、
    镍薄型

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

    您好、Nithin、

    可以引导内核、甚至可以 nandboot。 您甚至可以将 tftpboot (用于内核)与 NFS (文件系统)一起使用。 u-boot 作为命令 tftpboot (tftpboot $addr $file),地址应该是各自的载入地址。 您需要修改相同的引导命令(bootcmd)。 因为 u-boot bootcmd 在复位时不会中断运行。


  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的参与、Vishwanath。
    您能不能帮助我执行使用 NFS 进行 tftp 引导的步骤。

    例如...查找加载地址、修改引导命令、设置 bootargs 等。

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

    最好先检查当前 bootcmd、然后依次跟踪 mmcboot 和 mmcargs 以了解其内容。
    请参阅此主题、该主题作为该主题的更多详细信息、

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

    如中所述;

    e2e.ti.com/.../2299199

    我将修改环境变量并尝试。

    #setenv serverip 192.168.1.1

    #setenv rootpath '/home/vishwanath.patil/dm38x/Source/ipnc_rdk/target/filesys

    #setenv nfsargs 'console=${console}root=/dev/nfs rw mem=${mem}nfsroot=$serverip:$rootpath IP=DHCP vram=${vram}${optargets}'

    #setenv nfsboot 'run nfsargs;run loaduimage;run loaddtbimage;bootm ${loadaddr}-${loaddtbaddr};'

    #setenv bootcmd 'csk_ff_init 1;运行 nfsboot;运行 mmcboot;运行 nandboot;'

    几个问题;
    1.我的 serverip 应该是我的主机 IP 地址吗?
    2.我是否需要设置 bootargs 或 nfsargs 来完成此任务?
    我的加载地址、logaddtbaddr、etc..can 和下面的 givien 应该是什么、或者我应该将其更改为什么?


    以下是我的 u-boot 结果

    arch = ARM
    波特率=115200
    电路板=dm38x
    Board_name=dm38x
    bootcmd=csk_ff_init 1;运行 mmcboot;运行 nandboot;
    BOOTDELAY=1
    BootFile=uImage
    console=ttyS0、115200n8
    CPU=armv7
    ethact=cpsw
    ethaddr=7c:66:9d:F9:0e:ca
    FDT_HIGH_0x84500000
    fdtcontrolladdr=bfe7fc98
    fdtfile=dm38x-csk.dtb
    loadaddr=0x82000000
    logaddtbaddr=0x84000000
    loaddtbimage=fatload MMC ${mmcdev}${loaddtbaddr}${fdtfile}
    loaduimage=fatload MMC ${mmcdev}${loadaddr}${bootfile}
    MEM=80M
    mmcargs=setenv bootargs console=${console}root=${mmcroot}mem=${mem}vram=${vram}${optargets}
    mmcboot=MMC dev ${mmcdev};如果 MMC 重新扫描;然后回显在设备${mmcdev}上找到的 SD/MMC;回显从 MMC 引导...;运行 mmcargs;如果运行 l;
    mmcdev=0
    mmcroot=/dev/mmcblk0p2 rootwait RW
    optargets=cmemk.phys_start=0x85000000 cmemk.phys_end=0x89000000 cmemk.allowOverlap=1 notifyk.vpssm3_SVA=0xBFD00000 leyprintk
    SoC=am33xx
    stderr=串行
    stdin =串行
    stdout=串行
    供应商= TI
    ver = U-Boot 2016.05 (2017年9月22日- 12:03:55 +0530)
    VRAM=4M


    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1.我的服务器应该是我的主机 IP 地址吗?
    serverip 将是主机 IP
    2) 2)我是否需要设置 bootargs 或 nfsargs 将执行该任务?
    镊子 nfsargs 还可以
    3) 3)我的加载地址、loaddtbaddr、etc..can 和下面的 givien 应该是什么、或者我应该将其更改为什么?
    它们将与您必须使用 tftpboot - uImage 和 DTB 加载到这些位置的情况相同
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢你,Vishwanath

    根据我的 u-boot 打印结果、您能帮助我构建 tftpboot 命令来载入 uImage 和 dtb 吗?

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

    我像这样修改了 u-boot;

    DM38x-CSK#打印
    arch = ARM
    波特率=115200
    电路板=dm38x
    Board_name=dm38x
    bootcmd=csk_ff_init 1;运行 nfsboot;运行 mmcboot;运行 nandboot;
    BOOTDELAY=1
    BootFile=uImage
    console=ttyS0、115200n8
    CPU=armv7
    ethact=cpsw
    ethaddr=7c:66:9d:F9:0e:ca
    FDT_HIGH_0x84500000
    fdtcontrolladdr=bfe7fc98
    fdtfile=dm38x-csk.dtb
    ipaddr=192.168.1.50
    loadaddr=0x82000000
    logaddtbaddr=0x84000000
    loaddtbimage=fatload MMC ${mmcdev}${loaddtbaddr}${fdtfile}
    loaduimage=fatload MMC ${mmcdev}${loadaddr}${bootfile}
    MEM=80M
    mmcboot=MMC dev ${mmcdev};如果 MMC 重新扫描;然后回显在设备${mmcdev}上找到的 SD/MMC;回显从 MMC 引导...;运行 mmcargs;如果运行 l;
    mmcdev=0
    mmcroot=/dev/mmcblk0p2 rootwait RW
    nfsargs=console=${console}root=/dev/nfs rw mem=${mem}nfsroot=$serverip:$rootpath IP=DHCP vram=${vram}${optargets}
    nfsboot=run nfsargs;运行 loaduimage ;运行 loaddtbimage;bootm ${loadaddr}-${loaddtbaddr};
    optargets=cmemk.phys_start=0x85000000 cmemk.phys_end=0x89000000 cmemk.allowOverlap=1 notifyk.vpssm3_SVA=0xBFD00000 leyprintk
    rootpath=/home/test/ti/ipnc_rdk-3.9.0/Source/ipnc_rdk/target/filesys
    serverip=192.168.1.15
    SoC=am33xx
    stderr=串行
    stdin =串行
    stdout=串行
    供应商= TI
    ver = U-Boot 2016.05 (2017年9月22日- 12:03:55 +0530)
    VRAM=4M

    保存后、给出了该命令

    tftpboot 0x82000000 192.168.1.15:uImage

    DM38x-CSK# tftpboot 0x82000000 192.168.1.15:uImage
    端口0、速度100、全双工上的链路
    使用 cpsw 器件
    来自服务器192.168.1.15的 TFTP;我们的 IP 地址为192.168.1.50
    文件名'uImage'。
    加载地址: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
    已超过重试计数;正在重新开始

    我出什么问题了吗?

    此致。

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

    您配置了哪些网关? 我无法在 uboot 打印中看到网关设置。

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

    它是 gatewayip、而不仅仅是网关。 更改它。 同时将网络掩码设置为255.255.255.0并进行检查。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Dwarakesh
    在此处粘贴更新的 uboot 打印;

    DM38x-CSK#打印
    arch = ARM
    波特率=115200
    电路板=dm38x
    Board_name=dm38x
    bootcmd=csk_ff_init 1;运行 nfsboot;运行 mmcboot;运行 nandboot;
    BOOTDELAY=1
    BootFile=uImage
    console=ttyS0、115200n8
    CPU=armv7
    ethact=cpsw
    ethaddr=7c:66:9d:F9:0e:ca
    FDT_HIGH_0x84500000
    fdtcontrolladdr=bfe7fc98
    fdtfile=dm38x-csk.dtb
    gatewayip=192.168.1.1
    ipaddr=192.168.1.50
    loadaddr=0x82000000
    logaddtbaddr=0x84000000
    loaddtbimage=fatload MMC ${mmcdev}${loaddtbaddr}${fdtfile}
    loaduimage=fatload MMC ${mmcdev}${loadaddr}${bootfile}
    MEM=80M
    mmcboot=MMC dev ${mmcdev};如果 MMC 重新扫描;然后回显在设备${mmcdev}上找到的 SD/MMC;回显从 MMC 引导...;运行 mmcargs;如果运行 l;
    mmcdev=0
    mmcroot=/dev/mmcblk0p2 rootwait RW
    网络掩码=255.255.255.0
    nfsargs=console=${console}root=/dev/nfs rw mem=${mem}nfsroot=$serverip:$rootpath IP=DHCP vram=${vram}${optargets}
    nfsboot=run nfsargs;运行 loaduimage ;运行 loaddtbimage;bootm ${loadaddr}-${loaddtbaddr};
    optargets=cmemk.phys_start=0x85000000 cmemk.phys_end=0x89000000 cmemk.allowOverlap=1 notifyk.vpssm3_SVA=0xBFD00000 leyprintk
    rootpath=/home/test/ti/ipnc_rdk-3.9.0/Source/ipnc_rdk/target/filesys
    serverip=192.168.1.15
    SoC=am33xx
    stderr=串行
    stdin =串行
    stdout=串行
    供应商= TI
    ver = U-Boot 2016.05 (2017年9月22日- 12:03:55 +0530)
    VRAM=4M

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

    更新后的 uboot 会得到相同的结果。 我提供的加载地址是否正确?

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

    如果能够 ping 通主机,是否可以尝试 ping 通主机,如果能够 ping 通主板,是否可以尝试 ping 通主机?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Dwarakesh、

    我能够执行 Ping 操作

    DM38x-CSK# ping 192.168.1.15
    端口0、速度100、全双工上的链路
    使用 cpsw 器件
    主机192.168.1.15处于活动状态
    DM38x-CSK#


    TEST@TEST-TEST:~$ ping 192.168.1.50
    Ping 192.168.1.50 (192.168.1.50) 56 (84)字节数据。
    64字节从192.168.1.50开始:icmp_seq=1 TTL=128 time=1.36ms
    64字节从192.168.1.50开始:icmp_seq=2 TTL=128 time=0.719ms
    64字节从192.168.1.50开始:icmp_seq=3 TTL=128 time=0.900ms
    64字节从192.168.1.50开始:icmp_seq=4 TTL=128 time=0.926ms
    64字节从192.168.1.50开始:icmp_seq=5 TTL=128 time=0.960ms
    64字节从192.168.1.50开始:icmp_seq=6 TTL=128 time=0.938ms
    64字节从192.168.1.50开始:icmp_seq=7 TTL=128 time=0.953ms

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

    它与 tftp config 或命令有关

    是否可以尝试、不使用 IP、如下所示
    tftpboot 0x82000000 uImage
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Dwarakesh、

    我试过它...

    DM38x-CSK# tftpboot 0x82000000 uImage
    端口0、速度100、全双工上的链路
    使用 cpsw 器件
    来自服务器192.168.1.15的 TFTP;我们的 IP 地址为192.168.1.50
    文件名'uImage'。
    加载地址: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
    已超过重试计数;正在重新开始
    DM38x-CSK#

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

    是的、我之前没注意到这个命令日志。 它不应产生影响。 在主机 PC 端配置 TFTP 服务器的步骤是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Nithin、

    请确保您已按照以下 wiki 中的建议在 Ubuntu 方面完成了操作: processors.wiki.ti.com/.../Setting_Up_a_TFTP_Server
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Dwarakesh、
    我正在尝试使用 TFTP 引导...我开始尝试安装 TFTP 服务器、根据某些文档将映像文件移动到 tftp 引导。 我可能做了一些错误。

    您能为我提供有关安装的正确步骤吗?

    谢谢、

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

    您好、Nithin、

    我已共享上面的链接。 请确保您尝试该操作。 此外、确保您已卸载除上述链接之外的任何其他内容。 如果有任何其他 tftp 守护程序正在运行,也请检查 ps。