<Linux开发>linux开发工具- 之-TFTP

<Linux开发>linux开发工具- 之-TFTP

tftp命令的作用和nfs命令一样,都是用于通过网络下载东西到DRAM中,只是tftp命令使用的TFTP协议,Ubuntu主机作为TFTP服务器。因此需要在Ubuntu上搭建TFTP服务器,需要安装tftp-hpa和tftpd-hpa,命令如下:

sudo apt-get install tftp-hpa tftpd-hpa 
sudo apt-get install xinetd

和NFS一样,TFTP也需要一个文件夹来存放文件,在用户目录下新建一个目录,命令如下:

mkdir /home/water/linux/tftpboot
chmod 777 /home/water/linux/tftpboot

这样我就在我的电脑上创建了一个名为tftpboot的目录(文件夹),路径为“/home/water/linux/tftpboot”。注意!我们要给tftpboot文件夹权限,否则的话uboot不能从tftpboot文件夹里面下载文件。 最后配置tftp,安装完成以后新建文件/etc/xinetd.d/tftp,如果没有/etc/xinetd.d目录的话自行创建,然后在里面输入如下内容:

vi /etc/xinetd.d/tftp
  1 server tftp
  2 {
  3     socket_type =   dgram
  4     protocol    =   udp
  5     wait        =   yes
  6     user        =   root
  7     server      =   /usr/sbin/in.tftpd
  8     server_args =   -s /home/water/linux/tftpboot
  9     disable     =   on
 10     per_source  =   11
 11     cps         =   100.2
 12     flags       =   IPv4
 13 }
 14 

完了以后启动tftp服务,命令如下:

sudo service tftpd-hpa start

打开/etc/default/tftpd-hpa文件,将其修改为如下所示内容:

 vi /etc/default/tftpd-hpa 
  1 # /etc/default/tftpd-hpa
  2 
  3 TFTP_USERNAME="tftp"
  4 TFTP_DIRECTORY="/home/water/linux/tftpboot"
  5 TFTP_ADDRESS=":69"
  6 TFTP_OPTIONS="-1 -c -s"

TFTP_DIRECTORY就是我们上面创建的tftp文件夹目录,以后我们就将所有需要通过TFTP传输的文件都放到这个文件夹里面,并且要给予这些文件相应的权限。
最后输入如下命令, 重启tftp服务器:

sudo service tftpd-hpa restart

tftp服务器已经搭建好了,接下来就是使用了。将zImage镜像文件拷贝到tftpboot文件夹中,并且给予zImage相应的权限,命令如下:

cp zImage /home/water/linux/tftpboot/ 
cd /home/water/linux/tftpboot/ 
chmod 777 zImage

验证,uboot中的tftp命令格式如下:

tftpboot [loadAddress] [[hostIPaddr:]bootfilename] 

看起来和nfs命令格式一样的,loadAddress是文件在DRAM中的存放地址,[[hostIPaddr:]bootfilename]是要从Ubuntu中下载的文件。但是和nfs命令的区别在于,tftp命令不需要输入文件在Ubuntu中的完整路径,只需要输入文件名即可。比如我们现在将tftpboot文件夹里面的zImage文件下载到开发板DRAM的0X80800000地址处,命令如下:

tftp 80800000 zImage

下载过程如下图:
<Linux开发>linux开发工具- 之-TFTP_第1张图片
至此,TFTP工具搭建完成,后续linux系统移植会涉及使用。

你可能感兴趣的:(Linux,linux系统移植,tftp,linux,ubuntu,tftp)