Ubuntu下关于tftp的配置

来源:互联网 发布:js获取日期控件的值 编辑:程序博客网 时间:2024/05/01 18:41

关于tftp的配置

配置目的:建立与开发板的通信渠道,便于下载程序到目标版。

配置环境:Ubuntu 12.04,之所以没在window环境下,只是想尽量在一个平台下(Linux)进行嵌入式实验,同时更加熟悉Linux环境。

说明:因为从网上找的资料或者过时,或者安装出现错误,故此写写自己配置tftp的过程,关键是出现的错误,毕竟,这就是经验。

      

一、  给出目前自己成功配置的实例

1、         首先是需要安装tftp的客户端,tftpd服务端,xinetd网络守护进程服务程序(超级Internet服务器)

注意:以下命令在root权限下执行,否则加前缀sudo

1)         apt-getinstall tftp-hpa

2)         apt-getinstall tftpd-hpa

3)         apt-getinstall xinetd

4)         以下是我已经成功安装后再执行以上命令的效果:


2、         建立服务的目录

1)         我是在文件根目录下建立的,执行该命令:mkdir /tftpboot

2)         修改目录权限,执行该命令:chmod 777 /tftpboot –R

3、         修改tftp配置文件,如果没有,则自己创建:

1)         vim/etc/xinetd.d/tftp

2)         输入以下内容:

service tftp

{

      disable =no

      socket_type= dgram

      protocol =udp

      wait = yes

      user = root

      server =/usr/sbin/in.tftpd

      server_args= -s /tftpboot

      source = 11

      cps = 100 2

      flags =IPv4

}

4、         修改tftpd-hpa文件

1)         vim/etc/default/tftpd-hpa

2)         内容如下:

TFTP_USERNAME = “tftp”

TFTP_DIRECTORY = “/tftpboot”

TFTP_ADDRESS = “0.0.0.0:69”

TFTP_OPTIONS = “--secure”

3)         保存、基本大功搞成

5、         测试服务

1)         重启服务,输入以下命令执行:/etc/init.d/xinetd restart

2)         在/tftpboot目录下创建测试文件demo.txt并修改权限,命令:touch demo.txt

chmod 777 demo.txt

3)         再打开一个终端:输入以下命令进行文件下载测试,当然这是在本机上测试,但原理和下载到开发板上是一样的。

下图显示已经成功下载:


4)         下面我们测试下是否文件内容也成功下载(碰到过失败的),直接上图了:

vim demo.txt


在另外一个终端查看:

 

5)         至此,已经成功配置了tftp服务。

二、  给出自己在配置的时候出现的错误以供参考

1、        安装的不是tftpd-hpa和tftp-hpa,而是tftp和tftpd,而在执行get命令是报错:Transfer timout。但在下载目录下可以看到被下载的文件,可是打开一看,确实空文件。研究了好久,还是没搞明白是什么原因。

2、        在出现以上错误的之后,马上找到其他资料,安装了所谓加强版的tftpd-hpa,tftp-hpa,不巧的是,无法下载。只好更新源了试试了。原来的是163的源,改成了bjtu.edu的源。


记住,更改完源的第一件事情就是更新:apt-get update

完成更新后,再执行install,当然,我这里执行的是apt-getinstall tftp-hpa tftpd-hpa, 还是出现错误,只不过错误不一样了,有提示大概就是说尝试添加—fix-missing选项解决,果然,执行如下命令得到了有效解决:apt-get install tftpd-hpa –fix-missing

              apt-get install tftp-hpa –fix-missing

注意格式:


三、  附带下NFS最新碰到的一个问题解决。

1、        首先进行ping通测试:发现无论如何开发板无法与win7互相ping通,开发板无法与虚拟机Ubuntu系统互相ping通。

2、        但是win7和Ubuntu虚拟机能相互ping通,当然开发板自己可以ping通自己。

3、        问题解决:首先看了下桥接模式,没问题;然后检查网段也都设置处在同一个网段,没问题;最后还好,突然想到可能是网线的问题,当然不是网线松动的问题,而是我用的是一根Cotex A8开发试验箱的网线,具体是因为它是直通线还是交叉线而导致的失败就不太明白了。后来采用实验班自带的网线果然实验成功了,三者能够互相ping通了。

4、        要点回顾:1)桥接模式并且设置为物理网卡最好不是无线网卡。2)开发板和宿主机要属于同一个网络,网段一样。3)minicom超级中断进入开发板系统。设置网卡。4)建立共享目录,修改共享文件配置。5)宿主机进行挂载。mount –nolock 开发板ip地址:开发板文件目录 宿主机目录。6)程序编写与交叉编译。

0 0