ubuntu下安装tftp-server

       最近在用ARM-cotex(AM3517)开发板做一个虹膜识别的程序的优化,首先要把opencv2.0移植到开发板的linux系统上,在这里,我有一个问题,怎么把文件从宿主机传到开发板上。这里有两种方式,一个是通过串口传,一种是通过tftp传。我宿主机用的是utuntu9.04,没有装tftp的服务器,所以下面就是装这个服务器的一些步聚。

参考资料: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 client

tftpd            - 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 xinetd

2、建立配置文件
mkdir -p /home/tftp

chmod777 /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/tftp

     disable= 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后还是好使的):

ubuntu下安装tftp-server_第1张图片ubuntu下安装tftp-server_第2张图片ubuntu下安装tftp-server_第3张图片

 

 

你可能感兴趣的:(虚拟机,socket,server,File,服务器,ubuntu)