你好,
我希望能从TFTP加载内核和设备树文件,NFS挂载为根文件系统,启动整个系统;
今天下午还能正常执行,但是几次重启之后,发现TFTP加载内核时,程序使用的serverip不是环境变量中设置的ip,导致zImage加载失败,如下:
Hit any key to stop autoboot: 0 Booting from network ... link up on port 0, speed 100, full duplex BOOTP broadcast 1 DHCP client bound to address 192.168.3.199 (5 ms) link up on port 0, speed 100, full duplex Using cpsw device TFTP from server 192.168.3.1; our IP address is 192.168.3.199 Filename 'zImage'. Load address: 0x82000000 Loading: T T T T
手动TFTP加载内核,正常执行,如下:
=> pri serverip serverip=192.168.3.105 => pri ipaddr ipaddr=192.168.3.232 => ping 192.168.3.105 link up on port 0, speed 100, full duplex Using cpsw device host 192.168.3.105 is alive => tftp 0x82000000 zImage link up on port 0, speed 100, full duplex Using cpsw device TFTP from server 192.168.3.105; our IP address is 192.168.3.232 Filename 'zImage'. Load address: 0x82000000 Loading: #########################################################################################################################################################################################################################################################################3.3 MiB/s done Bytes transferred = 3887616 (3b5200 hex)
我在论坛上找到了相似的帖子,但是帮助不大:
https://e2echina.ti.com/question_answer/dsp_arm/sitara_arm/f/25/t/176292?tisearch=e2e-sitesearch&keymatch=tftp
这是什么原因呢?
在失败的信息中,我注意到了"DHCP client bound to address 192.168.3.199 (5 ms)", U-Boot中可以使用什么方法,关闭DHCP呢?
yongqing wang:
看看bootargs 你那里是是否设置为 ip=dhcp
yongqing wang:
回复 yongqing wang:
bootargs 内部设置静态IP大概设置类似下面的:
UBOOT# setenv bootargs 'mem=256M console=ttyO2,115200n8 root=/dev/nfs
rw nfsroot=192.168.1.151:/home/work/netra/dvr/rfs
ip=$[ipaddr]:$[serverip]:$[gatewayip]:$[netmask]::eth0:off
vram=20M notifyk.vpssm3_sva=0xBEE00000'
yongqing wang:
回复 user5232010:
感谢你的分享
qingyulan:
回复 user5232010:
请问通过tftp加载设备树的地址是哪个?在哪里能找到资料?多谢
tftp 0x??? am437x-gp-evm.dtb
yongqing wang:
回复 qingyulan:
参考这个看看:https://wenku.baidu.com/view/b94d7efe185f312b3169a45177232f60ddcce72b.html