参考资料:http://www.linuxdiyf.com/viewarticle.php?id=104034
http://www.myhack58.com/Article/sort099/sort0102/2011/31249.htm
http://xiaoruanjian.iteye.com/blog/1093239
http://www.cnblogs.com/feisky/archive/2010/04/04/1704167.html
ubuntu提供了几个tftp的软件:
atftp - advanced TFTP client
atftpd - advanced TFTP server
tftp - Trivial file transfer protocol clienttftpd - Trivial file transfer protocol server
tftp-hpa - HPA's tftp client
tftpd-hpa - HPA's tftp server我主要按照第一个参考文档来安装的。安装配置如下:
apt-getinstall tftpd (服务端)
apt-get install tftp (客户端)
apt-get install xinetd2、建立配置文件
mkdir -p /home/tftpchmod777 /home/tftp
cd /etc/xinetd.d/
vi tftp输入如下内容:
servicetftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /home/tftpdisable= no
per_source = 11
cps = 100 2
flags = IPv4}
其中/home/tftp为该服务器的根目录。
重新启动服务器:/etc/init.d/xinetdrestart
下面进行测试:
在这里注意下,我用的是VM7.0的虚拟机,网络联接方式使用桥接。
我宿主机的ip为192.168.13.177,开发板的ip通过ifconfig eth0 192.168.13.10配置ip为192.168.13.10(与宿主机的ip在同一个网段内)。
在服务器的根目录/home/tftp下建一个文件testfile,然后在宿主机的其它目录下执行:
tftp127.0.0.1(或者192.168.13.177)
tftp>gettestfile //从tftp的根目录/home/tftp上下载文件testfile,下载的文件放在发当前文件夹下
tftp>q//退出tftp客户端
在开发板的系统上已经有tftp的客户端,通过ping命令确定开发板与宿主机能够通信后,再开发板的系统上执行如下命令:
tftp-g -l ./file -r ./testfile 192.168.13.177
-g表示下载(get)文件-l (locale)表示当地文件,即下载后该文件叫啥, -r(remote)表示服务器端的文件,后面的IP即是服务器端的IP。
最好是在/var或者/tmp下执行这个命令,因为这两个文件是在内存中的,是可写的,在有些只读的文件系统里,其它目录是不可写的。
用put命令即可上传文件,不过要有对服务器的写权限才可上传。
下面是执行的一些截图,执行图中的几个命令后tftp一直是好使的(奇怪的是stop后还是好使的):