TFTP(Trivial File Transfer Protocol,简单文件传输协议)是 TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务,端口号为 69。
在 U-Boot 中也支持 TFTP 协议,可以通过 tftp 命令从服务端下载文件。服务端可以是 Linux,也可以是 Windows,只要支持 TFTP 服务就可以。
本文介绍如何在 Linux(虚拟机 Ubuntu 18.04) 下搭建 TFTP 服务,并实现在 U-Boot 中使用 tftp 命令下载 Linux 内核镜像文件到开发板 RAM 中。
sudo apt-get install tftp-hpa tftpd-hpa
sudo apt-get install xinetd
mkdir /home/alpha/tftpboot
chmod 777 /home/alpha/tftpboot
server tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /home/alpha/tftpboot/
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
sudo service tftpd-hpa start
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/alpha/tftpboot/"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s --secure"
sudo service tftpd-hpa restart
setenv ipaddr 192.168.0.232 # U-Boor IP 地址
setenv ethaddr 00:aa:bb:cc:dd:ef # MAC 地址
setenv gatewayip 192.168.0.1 # 网关地址
setenv netmask 255.255.255.0 # 子网掩码
setenv serverip 192.168.0.120 # 服务器 IP 地址
saveenv # 保存环境变量
tftp 80800000 zImage