tftp 命令的作用和 nfs 命令一样,都是用于通过网络下载东西到 DRAM 中 。
一、 TFTP服务器搭建步骤
-
安装依赖库
sudo apt-get install tftp-hpa tftpd-hpa sudo apt-get install xinetd
-
Ubuntu中创建tftp服务器文件件
mkdir /home/lsy/Tools/tftp chmod 777 /home/lsy/Tools/tftp
-
创建tftp文件,如果没有【/etc/xinetd.d】文件夹,则先创建该文件夹
sudo touch /etc/xinetd.d/tftp
-
打开tftp文件
sudo vim /etc/xinetd.d/tftp
加入如下代码
server tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /home/lsy/Tools/tftp disable = no per_source = 11 cps = 100 2 flags = IPv4 }
-
启动tftp服务
sudo service tftpd-hpa start
-
打开tftpd-hpa文件
sudo vim /etc/default/tftpd-hpa
-
修改为如下内容
# /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/home/lsy/Tools/tftp" TFTP_ADDRESS=":69" TFTP_OPTIONS="-l -c -s"
-
重启tftp服务器
sudo service tftpd-hpa restart
至此tftp服务器搭建完成。
另外,如果开发板硬件环境已经能够ping通,且已经能够进入u-boot,则可按照下面步骤进行测试。
二、功能测试
-
拷贝zImage到tftp目录下
cp zImage /home/lsy/Tools/tftp
-
修改权限
chmod 777 /home/lsy/Tools/tftp/zImage
-
进入开发板u-boot界面,输入如下命令,下载zImage镜像
tftp 80800000 zImage
-
若成功,则界面如下
=> ping 192.168.0.250 Using FEC1 device host 192.168.0.250 is alive => tftp 80800000 zImage Using FEC1 device TFTP from server 192.168.0.250; our IP address is 192.168.0.100 Filename 'zImage'. Load address: 0x80800000 Loading: ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ######## 1.7 MiB/s done Bytes transferred = 6786368 (678d40 hex)
三、U-Boot中设置TFTP服务器环境变量方法
在板卡中设置TFTP服务器默认下载文件和启动位置方法如下:
- 板卡上电,倒计时结束前按下任意键进入U-Boot
- 输入如下命令来设置环境变量:
setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000'
- 保存环境变量
saveenv