如何手动设置u-boot的以太网的IP地址、子网掩码、网关信息、TFTP的服务器地址,并进行测试
设置IP地址
运行下面这条命令设置u-boot的以太网的IP地址:
setenv ipaddr 192.168.5.9
设置子网掩码
运行下面这条命令设置u-boot的以太网的子网掩码:
setenv netmask 255.255.255.0
设置网关信息
运行下面这条命令设置u-boot的网关信息:
setenv gatewayip 192.168.5.1
如何测试IP是否成功设置?
假设开发板连接的是Windows上的USB网卡,USB网卡的IP地址设置如下:
那么我们在开发板的终端上运行下面这条命令即可测试与USB网卡之间的网络连接是否正常
ping 192.168.5.10
运行结果如下:
但要注意,此时从Windows向开发板发送Ping包,正常情况下也是得不到回应的,因为u-boot不具备对ping命令的回应能力,从Windows向开发板发送Ping包的截图如下:
Windows作为TFTP服务器对u-boot进行测试
设置u-boot的网络信息
依次运行下面的命令
setenv ipaddr 192.168.5.9
setenv netmask 255.255.255.0
setenv gatewayip 192.168.5.1
设置u-boot的TFTP的服务器地址
关于TFTP的介绍,见博文 https://blog.csdn.net/wenhao_ir/article/details/145795676
假设Windows上利用tftpd64配置的TFTP服务的情况如下:
则可运行下面这条命令设置u-boot的TFTP的服务器地址:
setenv serverip 192.168.5.10
测试u-boot作为TFTP客户端是否能正常下载文件到内存
Windows上打开tftpd64.exe
:
然后按下图这样配置:
具体的配置方法见博文:https://blog.csdn.net/wenhao_ir/article/details/145795676
确认目录E:\tftp_roots
中有文件aaa.txt
:
然后在开发板的u-boot下运行下面这条命令:
tftp 0x80000000 aaa.txt
这条命令表示把文件aaa.txt
下载到内存地址为 0x80000000 的位置。
运行结果如下:
这就表明TFTP设置生效了。
Ubuntu作为TFTP服务器对u-boot进行测试
博文 https://blog.csdn.net/wenhao_ir/article/details/145850749 中详细介绍了Ubuntu作为TFTP服务器的配置和测试
确认Ubuntu上的TFTP服务正常
方法来源于博文 https://blog.csdn.net/wenhao_ir/article/details/145850749
运行下面的命令查看Ubuntu上的TFTP服务是否正常
sudo systemctl status tftpd-hpa
如果是上面的结果说明运行正常。
设置u-boot的网络信息
依次运行下面的命令
setenv ipaddr 192.168.5.9
setenv netmask 255.255.255.0
setenv gatewayip 192.168.5.1
设置u-boot的TFTP的服务器地址
运行下面这条命令设置u-boot的TFTP的服务器地址:
setenv serverip 192.168.5.11
测试u-boot能否与Ubuntu间进行网络连接
ping 192.168.5.11
测试u-boot作为TFTP客户端是否能正常下载文件到内存
确认Ubuntu的TFTP目录 /home/book/tftpboot
,有aaa.txt
文件。
内容如下图所示:
在Ubuntu中设置好文件aaa.txt
的权限,运行下面的命令设置:
sudo chmod 644 /home/book/tftpboot/aaa.txt
然后在开发板的u-boot下运行下面这条命令:
tftp 0x80000000 aaa.txt
这条命令表示把文件aaa.txt
下载到内存地址为 0x80000000 的位置。
运行结果如下:
出现上图中的结果就说明测试成功了。
开发板上对TFTP测试的设置命令汇总
setenv ipaddr 192.168.5.9
setenv netmask 255.255.255.0
setenv gatewayip 192.168.5.1
setenv serverip 192.168.5.10
如何让以上设置一直有效?
如果你希望这些网络设置在之后的 U-Boot 启动中持续有效,可以使用 saveenv 命令来保存配置到 U-Boot 环境变量中,具体的命令如下:
saveenv
不过我不建议让保存设置有效,因为需要保持灵活性嘛。