本想把我原来用的新浪博客上的弄过来呢,结果竟然照片不能看。还是把这个地址记下来吧
http://blog.sina.com.cn/s/blog_b90c3cdf0101fxgz.html
PC机系统:win7 虚拟机linux系统:fedora9 开发板:mini2440 虚拟机联网方式:桥接
在谈到将宿主机的文件下载到目标机的日志里,当利用网络将宿主机的文件下载到开发板上时,就是利用的tftp服务器。
一:tftp的概念
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号位69.
TFTP这种简单的基于UDP的文件传输协议,通常只能用于小文件的传输。并且它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,也不能进行认证。
在嵌入式开发中,tftp服务常用于通过从PC机服务端的tftp目录中下载镜像文件到目标开发板中,以待烧写或运行。使用这种方式下载文件,操作方便、并且速度也挺快。
二:①linux下的tftp安装:
首先利用命令:rpm -qa | grep tftp,查看tftp是否安装,如果安装,会出现图一所示界面
如果没有安装,则执行命令:rpm -ivh tftp-sever-0.42-3.1.i386.rpm,进行安装,具体安装教程网上有很多的。这里假设我已经安装好。
②建立tftp服务主工作目录:
使用命令mkdir建立tftp的主工作目录(这个目录用于存放宿主机与目标机之间使用tftp时传递的文件),在这里我使用命令:mkdir /home/song/tftpboot将主工作目录建在了路径/home/song下。如图二所示。当然,你也可以使用命令:mkdir /tftpboot直接建立在根目录下,依自己喜好而定。
③tftp服务配置文件
Linux下的tftp服务是由xinetd(还有openbsd-inetd等其它服务)所设定的,默认情况下tftp是处于关闭状态。
所以要修改tftp的配置文件,开启tftp服务,如下图所示:
输入图三所示的命令后,出现图四的配置文件。图四中红线标注的第①项,是用于指定tftp服务器目录的,也就是说提供给别人下载的文件是放在哪个位置的。这里目录改为上一步设置好的目录/home/song/tftpboot。
红线标注的第②项,是控制tftp服务器的关闭与启动,默认值为“yes”,即关闭tftp服务器;这里修改为“no”,即开启tftp服务器。
该配置文件其它项不变。
④重启xinetd服务
使用命令:/etc/init.d/xinetd restart,是刚才图四的更改生效,如下所示:
然后,使用命令:netstat -au | grep tftp,已确认tftp服务是否已经开启,如下所示:
出现“udp 0 0 *:tftp *:*”则说明tftp服务已经开启。
⑤本机测试tftp服务器的功能。
首先,在/home/song/tftpboot目录下使用命令:vi test创建一个文档test,并向其中写入“hello tftp”,在使用命令:ifconfig 查本机的IP,如下所示:
通过命令:tftp 211.64.20.159,进入tftp命令模式,如图八所示,输入help命令,查看tftp支持的命令。通过命令: get test,可以将/home/song/tftpboot中的文件下载到当前目录下(这里是/home)下,如图九所示,这就完成了在本机上测试tftp服务器的功能。
------------------------------------分割线----------------------------------------------
⑥由本机向开发板mini2440中传输文件。
这里首先说明,第⑥部分是我后来补充上去的,期间由于其他需要,虚拟机系统的IP改变成了211.64.20.163了,不是211.64.20.159了,其他部分都没变,注意一下就行了。使用ifconfig命令查看一下本机IP,如图10所示
现在介绍一下利用tftp服务由本机向开发板传输文件,前面已经说了,tftp是利用网络传输文件的,所以要想利用tftp向开发板中传输文件,必须使用网线就开发板与你的PC机连通,方法就是利用网线一端连接到开发板的网络接口,另一端连接到PC机的网络接口(这样子你的电脑就不能通过网线上网了哈),然后开发板的IP等设置好。
使用终端SecuereCRT,进入到开发板中,在任意一个目录下,使用命令
#tftp –g –r test 211.64.20.163 //-g:表示get,下载,-r:remove,移动。
现在开发板上已经下载好了文件test,如图11所示