tftp在TQ2440和ubuntu虚拟机中的一些问题

来源:互联网 发布:金川集团公司网络学校 编辑:程序博客网 时间:2024/05/22 15:21

首先申明一下,我是一个菜鸟,接触嵌入式时间也不长,现在也是处于初学者的阶段,所以我什么地方说的不正确,请大家指正哈。。

今天花了一天搞了在ubuntu下搭载tftp服务器,方便给开发板发送文件和一些程序。我在搭建过程中遇到了很多问题,后来也在网上查阅了一些资料和看了很多大神们写的blog最终也解决问题了,现在就给大家分享一下吧,希望对刚入门的同学们有点帮助。

linux下tftp的服务是由xinetd所设定的,所以第一步就是安装xinetd啦,(用sudo apt-get install xinetd),安装好后,默认状态是处于关闭的哦。

然后 安装tftp-hpa tftpd-hpa(是增强版的tftp),使用sudo apt-get install tftp-hpa tftpd-hpa

下面就是要在/etc/xinetd.d/目录下面新建一个tftp文件来做tftp的配置文件,并对其进行配置

代码如下

service tftp
{
           socket_type     = dgram
             protocol            = udp
             wait                    = yes
            user                    = root
            server                 = /usr/sbin/in.tftpd
              server_args      = -s /home/czn/tftpboot -c
            disable               = no
            per_source        = 11
            cps                      = 100 2
              flags                    = IPv4
}

其中server_args为tftp服务器端的默认根目录,大家可以根据自己的需要改变,注意:这里记得吧根目录的权限改成最大,chmod 777 ;但是-c不要省略,表示允许向根目录上传文件,参数-s指定chroot。

接下来就是重启xinetd服务,使更改生效,service xinetd restart

这样理论上服务器就可以开始工作啦;下面可以测试是否工作,通过本机测试,在根目录下新建一个文件test (touch test),然后新打开一个终端,在其他目录下

tftp 127.0.0.1,连接服务器,

tftp>get test 获取文件

tftp>q 退出后查看时候,在查看当前目录下是否有该文件

tftp>put <filename>测试向服务器上传文件 退出后查看根目录下时候有该文件


完成上面工作后,就是开发板和ubuntu建立连接啦,首先需要将两者配置成一个网段的地址,并通过ping来确认两者是否连接成功。其中注意,如果你是笔记本的话,要把无线网的网段与本地网段分开,不然是连接不上了,然后应该就没有问题了。

ping成功后,在我们的开发板上输入tftp

[root@EmbedSky czn]# tftp
BusyBox v1.16.0 (2010-04-17 19:14:08 CST) multi-call binary.
Usage: tftp [OPTIONS] HOST [PORT]
Transfer a file from/to tftp server
Options:
        -l FILE Local FILE
        -r FILE Remote FILE
        -g      Get file
        -p      Put file
        -b SIZE Transfer blocks of SIZE octets
[root@EmbedSky czn]# tftp -g -r test <ubuntu的ip>  

其中

-l  是local的缩写,后跟本地或下载到本地后重命名的文件名。
-r  是remote的缩写,后跟远程即ubuntu tftp服务器根目录中的文件名,或上传到ubuntu 后重命名后的文件名。
-g  是get的缩写,下载文件时用,后跟ubuntu 的IP地址
-p  是put的缩写,上传文件时用,后跟ubuntu 的IP地址

其中还有一个问题要注意,就是要关闭ubuntu的防火墙,不然文件传输会超时的(tftp: timeout)

防火墙相关指令是:

sudo ufw enable //启动

ufw disable //停止

希望对大家有帮助,其中我参考的资料链接如下:

http://www.cnblogs.com/bronte/articles/1828246.html

http://blog.chinaunix.net/uid-26009923-id-3131131.html

http://www.blogjava.net/bluebillow/archive/2007/07/24/132179.html



0 0
原创粉丝点击