一. tftp命令简介
tftp 命令的作用和 nfs 命令一样,都是用于通过网络下载文件到 开发板的 DRAM 中。
本文学习 tftp 命令的使用。通过 tftp服务下载文件到开发板的 DRAM中。
二. tftp命令
1. tftp命令
uboot 中的 tftp 命令格式如下:
tftpboot [loadAddress] [[hostIPaddr:]bootfilename]
loadAddress 是文件在开发板的 DRAM 中 的存 放 地 址 ,
[[hostIPaddr:]bootfilename] 是要从 Ubuntu 中下载的文件。
但是和 nfs 命令的区别在于, tftp 命令不需要输入文件在 Ubuntu 中的完整路径,只需要输入文件名即可。
2. 搭建 tftp环境
(1) 在 Ubuntu 上搭建 TFTP 服务器, 需要安装 tftp-hpa 和 tftpd-hpa。安装命令如下:
wangtian@wangtian-virtual-machine:/etc/apt$ sudo apt-get install tftp-hpa tftpd-hpa
(2) 和 NFS 一样,tftp 也需要一个文件夹来存放文件,在 ubuntu系统下创建目录。
操作如下:
wangtian@wangtian-virtual-machine:~/linux$ mkdir tftp_file
wangtian@wangtian-virtual-machine:~/linux$ cd tftp_file/
wangtian@wangtian-virtual-machine:~/linux/tftp_file$ pwd
/home/wangtian/linux/tftp_file
(3) 更改所创建文件的访问权限,输入如下命令:
wangtian@wangtian-virtual-machine:~/linux$ chmod 777 tftp_file
(4) 配置 tftp:安装完成以后新建文件/etc/xinetd.d/tftp,如果没有/etc/xinetd.d 目录就需要创建。
创建 /etc/inetd.d目录:
wangtian@wangtian-virtual-machine:/$ sudo mkdir /etc/xinetd.d
[sudo] wangtian 的密码:
wangtian@wangtian-virtual-machine:/$ cd /etc/xinetd.d/
wangtian@wangtian-virtual-machine:/etc/xinetd.d$
创建 tftp 文件,如下:
wangtian@wangtian-virtual-machine:/etc/xinetd.d$ sudo gedit tftp
tftp文件内容如下:
server tftp
{socket_type = dgramprotocol = udpwait = yesuser = rootserver = /usr/sbin/in.tftpdserver_args = -s /home/wangtian/linux/tftp_filedisable = noper_source = 11cps = 100 2flags = IPv4
}
更改 /etc/default/tftpd-hpa 文件,如下:
打开 tftpd-hpa 文件,输入如下命令:
wangtian@wangtian-virtual-machine:~$ sudo gedit /etc/default/tftpd-hpa
tftpd-hpa文件更改如下:
# /etc/default/tftpd-hpaTFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/wangtian/linux/tftp_file"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s"
(5) 重启 tftp 服务器,输入如下命令:
wangtian@wangtian-virtual-machine:~$ sudo service tftpd-hpa restart
wangtian@wangtian-virtual-machine:~$
3. 下载 zImage
将 zImage 镜像文件拷贝到 tftpboot 文件夹中,并且给予 zImage 相应的权限,命令如下:
wangtian@wangtian-virtual-machine:~/linux/tftp_file$ cp ../nfs_File/zImage ./
wangtian@wangtian-virtual-machine:~/linux/tftp_file$ ls -l
总用量 960
-rw-rw-r-- 1 wangtian wangtian 983040 7月 6 00:59 zImage
向开发板下载 zImage文件
前提工作: 开发板可以 ping通 ubuntu系统。如下:
=> ping 192.168.1.66
Using FEC1 device
host 192.168.1.66 is alive
=>
开发板上电,进入 uboot命令模式下(即uboot刚启动完,可以输入 uboot命令的时刻),下载 zImage文件,输入命令如下:
=> tftp 80800000 zImage
Using FEC1 device
TFTP from server 192.168.1.66; our IP address is 192.168.1.50
Filename 'zImage'.
Load address: 0x80800000
Loading: ###################################################################2.4 MiB/s
done
Bytes transferred = 983040 (f0000 hex)
=>
可以看出:通过tftp服务成功下载文件到 开发板。
注意:如果下载失败,提示如下信息,可以通过更改 /linux/目录下的 zImage文件权限解决。
=> tftp 80800000 zImage
Using FEC1 device
TFTP from server 192.168.1.66; our IP address is 192.168.1.50
Filename 'zImage'
Loading address: 0x80800000
Loading: *
TFTP error: 'Permission denied' (0)
Starting again
即给 zImage最大权限,即可解决:
wangtian@wangtian-virtual-machine:~/linux/tftp_file$ sudo chmod 777 zImage