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/AM5728:设置静态 IP

Guru**** 2555630 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/624342/linux-am5728-setup-static-ip

器件型号:AM5728

工具/软件:Linux

您好!

我们在 AM572x EVM 上的 PSDK 04.00.04中使用 tftp 引导和 NFS。 所有内容都是使用您的配置脚本设置的。 当我们要为 EVM 使用静态 IP 地址时、必须更改哪些 uboot 变量和/或内核 bootargs?

e2e.ti.com/.../8446.bootEnv.txt

提前感谢

Marc

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

    查看此主题:
    e2e.ti.com/.../2035119

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

    约旦、您好!

    感谢您的回复。 我更改了以下引导变量:

    ipadress

    加泰韦普

    网络掩码

    主机名

    网络

    IP_method

    bootcmd

    网络引导

    =>印刷版
    arch = ARM
    args_mmc=run finduid;setenv bootargs console=${console}${optargets}root=PARTUUID =${uuid}rw rootfstype=${mmcrootfstype}
    波特率=115200
    电路板= am57xx
    Board_name=am57xx_evm_reva3.
    Board_rev=A.30
    Board_serial=11164P550380
    BOOT_FDT=尝试
    BOOT_FIT = 0
    bootcmd=run fdfdt;运行 getuenv;setenv autoload no;运行 static_ip;tftp ${loadaddr}zImage; TFTP ${fdtaddr}${fdtfile};运行 netargs;bootz ${loadaddr}-${fdtaddr}
    BOOTDELAY=2
    bootdir=/boot
    bootenvfile=uEnv.txt
    BootFile=zImage
    BOOTM_SIZE=0x10000000
    bootpart=0:2
    bootscript=echo 正在从 MMC${mmcdev}...;源${loadaddr}运行的 bootscript
    console=ttyO2,115200n8.
    CPU=armv7
    dfu_alt_info_eMMC=rawemmc raw 0 3751936;引导部分1;rootfs 部分1 2;mlo fat 1;ml.raw 0x100 0x100;u-boot.img.raw 0x300 0x1000;spl-os-args.img raw 0x80 0x80;spl-os-image-raw 0x100;u-boot.g1;splfat 1;splfat 1 uEnv.txt raw 0xfat 1;spl-arg-raw 0x1000;spl- raw 0xfat 1
    1
    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 0x400;spl-os-args.raw 0x80 0x80;spl-os-image.fat raw 0x900;spl-os-os-gfat 1;fat 0 uEnv.txt
    dfu_alt_info_ram=内核 ram 0x80200000 0x4000000;fdt ram 0x80f80000 0x80000;ramdisk ram 0x81000000 0x4000000
    DFU_bufsiz=0x10000
    dofastboot=0
    envboot=MMC dev ${mmcdev};如果 MMC 重新扫描;然后回显在设备${mmcdev}上找到的 SD/MMC;如果运行 loadbootscript;然后运行 bootscript;如果运行 loadbootenv;然后从${bootenvfile}回显已加载的 env;运行 importbootenv;fi; if test -n $uuccmd;然后运行 envenvenvcmd;然后运行 envenvenvenvcmd…
    ;fi;fi;fi;
    eth1addr=a0:F6:FD:BD:76:7d
    ethact=cpsw
    ethaddr=a0:F6:FD:BD:76:7c
    FDT_addr_r=0x88000000
    fdtaddr=0x88000000
    fdtcontrolladdr=fdf1e458
    fdtfile=未定义
    findfdt=if test $board_name = omap5_uevm;then setenv fdtfile omap5-uevm.dtb;fi;if test $board_name = dra7xx;then setenv fdtfile dra7-evm.dtb;fi;if test $board_name = 72x-revc;then fdtv 文件.dtv =dtv;then dtv_detv_dtv;then tv_detv_detv-v-v-test
    dra72-evm.dtb;fi;if test $board_name = dra71x;then setenv fdtfile dra71-evm.dtb;fi;if test $board_name = beagle_x15;then setenv fdtfile am57xx-beagle-x15.dtb;fi;if test $board_name = beagle_rev1;bex15_bagle_bagle-v-v-bagle1;fi
    = am572x_idk &&测试$idk_LCD =否;然后 setenv fdtfile am572x-idk.dtb;fi;if test $board_name = am572x_idk &&测试$idk_LCD = osd101t2045;然后 setenv fdtfile am572x-idk-lcd-wd-test $572x_tdwdwx&tdtdtidtb;tdosf_dtwx_tb =$10twx_tidtwx_tb =$10twx+ tdtidtwx+ tdtwx+ tdtwx_tidtb;tdt
    iam572x-idk-lcd-osd101t2587.dtb;fi;if test $board_name = am57xx_evm;then setenv fdtfile am57xx-evm.dtb;fi;if test $board_name = am57xx_evm_reva3;then setenv ftb 文件 am57xx-evm_dtb;and $tidtidtx = am57xx_evm_dt&$tidtidt&tidtidk&$tidt.dlbt;then ramt&t&tidt&tidtidt.t.t.t.t.t&l
    1x-idk.dtb;fi;if test $board_name = am571x_idk && test $idk_lcd = osd101t2045;然后 setenv fdtfile am571x-idk-lcd-osd101t2045.dtb;fi;if test $board_name = am571x_didk;然后设置为$571tidtwd-lcd;然后设置为$10tdtidtidtidtidtwx-t1dt1dt1dtb;tidtidtidt1dt1dtidtidtwx-t1dt1dt1dt-tb;fb;fb;f1d
    电子罚款;然后回显警告:无法确定要使用的设备树;fi;
    finduuid=part uuid MMC ${bootpart}uuid
    fit_bootfile=fitImage
    fit_loadaddr=0x87000000
    gatewayip=192.168.3.254
    getuenv=MMC dev ${mmcdev};如果 MMC 重新扫描;如果运行 loadbootenv;然后运行 importbootenv;fi;
    主机名= myhost
    importbootenv=echo 从 MMC${mmcdev}导入环境...;env 导入-t ${loadaddr}${filesize}
    ip_method=static
    ipaddr=192.168.3.222
    kernel_addr_r=0x82000000
    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}
    mmcboot=MMC dev ${mmcdev};setenv devnum ${mmcdev};setenv devtype MMC;如果 MMC 重新扫描;然后回显在器件${mmcdev}上找到的 SD/MMC;如果运行 loadimage;然后测试${boot_fit}-eq 1;然后运行 loadfit;否则运行 mmcovados;fi;fi;
    mmcdev=0
    mmclosados=run args_mmc;如果测试${boot_FDT}= yes ||测试${boot_FDT}=试用;如果运行 loadfdt;则 bootz ${loadaddr}-${fdtaddr};否则测试${boot_FDT}=试用;然后 bootz;否则、回显警告:无法加载 bootz;否则;fi;
    mmcrootfstype=ext4 rootwait
    netargs=setenv bootargs console=${console}${optargets}root=/dev/nfs nfsroot=${serverip}:${rootpath}、${nfsopts}RW IP=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostName}:off
    netboot=echo Booting from network...;setenv autoload no;static;run netloadimage;run netloadfdt; 运行 netargs;bootz ${loadaddr}-${fdtaddr}
    netloadfdt=tftp ${fdtaddr}${fdtfile}
    netloadimage=tftp ${loadaddr}${bootfile}
    网络掩码=255.255.255.0
    nfsopts=nolock、v3、tcp、rsize=4096、wsize=4096
    partitions=uuid_disk=${uid_gppt_disk};name=rootfs、start=2MiB、size=-、uid=${uid_gppt_rootfs}
    partitions_android_disk=${uuuid_gppt_disk};name=xloader、start=128K、size=256K、uid=${uuid_gppt_xloader};name=bootloader、size=768K、uid=${uid_gppt_bootmisc};name=environment,size=128K、uuuuuuuuid=gpize_s=uuuuuuuuuuid_misd${uid=uuuuuuuuuid_m$};name=uuuuuuuuuuuuuuuuuuuuuid
    56k、uid=${uuid_gp_t_reserved};name=EFS、size=16M、size=${uuid_gppt_EFS};name=crypto、size=16K、uuuid=${uid_gppt_crypto};name=recovery、size=10M、uid=10M、uid_recovery;size=m、uid=uid=m_boot_rypto=${uid=uid、uid=uid=m_same、uid=系统、uid=uid=10M、uid=uid_rypto${uid=uid=uid}
    {uid_gpt_cache};name=ipu1, size=1M,uid=${uid_gp_t_ipu1};name=ipu2, size=1M,uid=${uid_gp_t_ipu2};name=userdata,size=-,uid=${uuuuid_gpT_userdata}
    pxefile_addr_r=0x80100000
    ramdisk_addr_r=0x88080000
    读数地址= 0x88080000
    rootpath=/home/marc/ti-processor-sdk-linux-am57xx-evm-04.00.00.04/targetNFS
    脚本地址=0x80000000
    scsidevs=0
    serverip=192.168.3.221
    SoC=omap5
    static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off
    stderr=串行@48020000
    stdin =串行@48020000
    stdout=串行@48020000
    update_TO_fit=setenv loadaddr ${fit_loadaddr};setenv 引导文件${fit_bootfile}
    usbtty=CDC_ACM
    供应商= TI
    ver = U-Boot 2017.01-g9fd60700db (2017年6月28日- 19:55:57 -0400)
    VRAM=16M

    环境大小:6363/65532字节
    =>

    但是、当内核启动时、它仍然执行 DHCP 请求。

    [3.740686] Micrel KSZ9031千兆 PHY 48485000.MDIO:01:连接的 PHY 驱动器[Micrel KSZ9031千兆位 PHY](MII_bus:phy_addr=4848485000.MDIO:01、IRQ=1)
    [3.767433] IPv6:ADDRCONF (NETDEV_UP):eth0:链路未就绪
    [3.773608] net eth1:正在初始化 cpsw 版本1.15 (0)
    [3.900325] Micrel KSZ9031千兆 PHY 48485000.MDIO:02:连接的 PHY 驱动器[Micrel KSZ9031千兆位 PHY](MII_BUS:phy_addr=4848485000.MDIO:02、IRQ=1)
    [3.924847] IPv6:ADDRCONF (NETDEV_UP):ETH1:链路未就绪
    [6.888531] cpsw 48484000。以太网 eth0:链路向上- 1Gbps/全-流控制关闭
    [6.899934] IPv6:ADDRCONF (NETDEV_CHANGE):eth0:链路就绪
    [6.929920]发送 DHCP 和 RARP 请求...... 超时!
    [85.902132] IP-Config:永久重试(NFS 根)...
    [85.907218] Net eth0:正在初始化 cpsw 版本1.15 (0)
    [85.912576] net eth0:初始化 cpsw ale 版本1.4
    [85.917738]净 eth0:ALE 表大小1024
    [86.040374] Micrel KSZ9031千兆 PHY 48485000.MDIO:01:连接的 PHY 驱动程序[Micrel KSZ9031千兆位 PHY](MII_bus:phy_addr=4848485000.MDIO:01、IRQ=1)
    [86.064601] IPv6:ADDRCONF (NETDEV_UP):eth0:链路未就绪
    [86.070491] net eth1:正在初始化 cpsw 版本1.15 (0)
    [86.190654] Micrel KSZ9031千兆 PHY 48485000.MDIO:02:连接的 PHY 驱动器[Micrel KSZ9031千兆位 PHY](MII_BUS:phy_addr=4848485000.MDIO:02、IRQ=1)
    [86.214032] IPv6:ADDRCONF (NETDEV_UP):eth1:链路未就绪
    [93.368537] cpsw 48484000.ethernet eth0:链路已建立- 1Gbps/全速-流量控制已关闭
    [93.389936] IPv6:ADDRCONF (NETDEV_CHANGE):eth0:链路就绪
    [93.419916]发送 DHCP 和 RARP 请求..,确定
    [97.339914] IP-Config:从192.168.3.254获得 DHCP 应答,我的地址为192.168.3.207
    [97.347866] IP 配置:完整:
    [97.351145] device=eth0、hwaddr=a0:f6:fd:bd:76:7c、ipaddr=192.168.3.207、mask=255.255.255.0、gw=192.168.3.254
    [97.361554] host=myhost、domain=、nis 域=(无)
    [97.366890] bootserver=0.0.0.0, rootserver=192.168.3.221, rootpath= nameserver0=192.168.3.254

    内核命令行为:

    root@am57xx-EVM:~# cat /proc/cmdline
    console=ttyO2、115200n8 root=/dev/nfs nfsroot=192.168.3.221:/home/marc/ti-processor-sdk-linux-am57xx-evm-04.00.00.04/targetNFS、nolock、v3、TCP、rsize=4096、wsize=4096 RW IP=192.168.3.222:192.168.3.221:192.168.3.254:255.255.255.0:myhost:::off

    我还尝试编辑此处提到的文件  。 但这没有帮助。

    您是否有任何关于如何将内核中 eth0的静态 IP 与 tftp 引导和 nfs 一起使用的建议?

    提前感谢

    Marc

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

    最新 SDK 使用 systemd 服务、该服务会覆盖引导参数。 我已使用引用的 e2e 线程中描述的 systemd 服务过程成功设置静态 IP。

    此致、
    Yordan