Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1300236
  • 博文数量: 548
  • 博客积分: 7597
  • 博客等级: 少将
  • 技术积分: 4224
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-15 13:21
个人简介

嵌入式软件工程师&&太极拳

文章分类

全部博文(548)

文章存档

2014年(10)

2013年(76)

2012年(175)

2011年(287)

分类:

2011-11-27 16:07:00

服务器

TFTPTrivial File Transfer Protocol,简单文件传输协议),是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于开销不大、不复杂的应用场合。TFTP协议专门为小文件传输而设计,只能从服务器上获取文件,或者向服务器写入文件,不能列出目录,也不能进行认证。

在嵌入式Linux开发中,TFTP协议在很多场合都被用到,甚至是必不可少的,特别是在内核调试阶段,在U-Boot下通过TFTP协议从服务器上加载内核并运行,既方便又快捷。

一般的发行版默认都没有安装TFTP服务以及TFTP服务器。TFTP服务依赖于网络守护进程服务程序,可选择安装inetd或者升级版的xinetd,然后安装tftptftp-server,接着修改或者创建/etc/xinetd.d/tftp配置文件,最后重启xinetd,启动TFTP服务。无论采用什么发行版,TFTP服务器的安装都是这样的流程,只不过不同发行版的安装命令不同而已,下面以ubuntu为例进行说明。

安装xinetd

ky@ubuntu:~$ sudo apt-get install xinetd

       安装tftptftpd

ky@ubuntu:~$ sudo apt-get install tftp tftpd

或者安装tftp的增强版本tftp-hpa

ky@ubuntu:~$ sudo apt-get install tftp-hpa tftpd-hpa

建立配置文件建立/etc/xinetd.d/tftp文件,写入如下内容:

service tftp

{

        socket_type        = dgram

        protocol       = udp

        wait           = yes

        user           = root

        server             = /usr/sbin/in.tftpd

        server_args        = -s /var/lib/tftpboot/

        disable        = no

        per_source         = 11

        cps            = 100 2

        flags          = IPv4

}

其中server_args设置的/var/lib/tftpboot目录是tftp服务器的目录设置其访问权限为777

ky@ubuntu:~$ sudo chmod 777 /var/lib/tftpboot/

启动或者重启xinetd服务:

ky@ubuntu:~$ sudo /etc/init.d/xinetd start或者restart

本机测试。在/tftpboot目录下创建一个ky文件,启动另外一个终端,输入:

ky@ubuntu:~$ tftp 127.0.0.1

tftp> get ky     #获取ky文件

tftp> q                        #退出tftp

       在终端输入ls命令可以看到当前目录下看到ftp获取到的ky文件。

用开发板来验证tftp服务器是否可用。启动开发板,进入U-Boot命令行,用tftp命令加载tftp服务器中的文件,如:

U-Boot$ tftp 80008000 zImage

ENET:auto-negotiation complete

ENET:Link status up

ENET:FULL DUPLEX

ENET:100MBase

MAC: 00:61:62:69:6e:67

TFTP from server 192.168.1.3; our IP address is 192.168.1.5

Filename 'zImage'.

Load address: 0x80008000

Loading: #################################

done

Bytes transferred = 479927 (752b7 hex)

说明:

(1)使用开发板与虚拟机安装的客户系统进行TFTP通讯,需要将虚拟网卡设置为Bridged模式,并建议使用静态IP地址。

(2)如果以上设置都确认无误,但tftp还是不成功,请检查主机的防火墙是否已经关闭。


阅读(474) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~