参考:
1.百度百科–tftp
2.嵌入式linux开发之工具------tftp
什么是Tftp?
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。
tftp的应用:
在嵌入式linux开发中,需要用到Tftp服务,主要使用在这两个方面:
1.嵌入式目标板启动时,bootloader
启动时通过uboot
,下载linux_kernel内核文件
到目标板;
2.嵌入式目标板启动后,通过tftp让目标机和主机之间相互传输文件。
在ubuntu系统中安装Tftp服务:
1.sudo apt-get install xinetd
—tftpd的依赖文件,守护tftp
2.sudo apt-get install tftp
----tftp客户端,可以不用安装,可以用来测试tftp服务器是否启动
3.sudo apt-get install tftpd
----tftp服务器(d=daemon
),安装tftp服务器
也可以整体安装 sudo apt-get install tftp tftpd xinetd
安装后可以使用 dpkg -s 软件包
命令查看是否安装成功。
xinetd说明:xinetd即extended internet daemon,是新一代的网络守护进程服务程序,又叫超级Internet服务器,常用来管理多种轻量级Internet服务(比如tftp,echo-udp。这些服务配置在/etc/xinetd.d目录下)。
配置
创建tftp的工作目录,并修改权限
sudo mkdir /tftpboot
sudo chmod 777 /tftpboot
在/etc/xinetd.d/下创建并配置tftp文件
如果在xinetd.d目录下没有tftp这个配置文件,那就自己创建一个
sudo vim /etc/xinetd.d/tftp
-s:改变tftp启动的根目录。加了-s后,客户端使用tftp时,不在需要输入指定目录,填写文件的完整路径,而是使用配置文件中写好的目录----/tftpboot
service tftp
{
socket_type =dgram //套接字的类型
protocol =udp //传输协议udp
wait =yes
user =root
server =/usr/sbin/in.tftpd //tftp服务程序路径,保持默认
server_args =-s /tftpboot //tftpd服务器的目录
disable =no //这里选择no,表示不禁止服务,如果为yes服务开启不了
per_source = 11
cps = 100 2
flags = IPv4 //支持ipv4版本
}
重启xinetd服务:
sudo /etc/init.d/xinetd restart
或者service xinetd restart
查看服务是否启动: netstat -a | grep tftp
如果显示udp 0 0 0.0.0.0:tftp 0.0.0.0:* 字样,说明tftp已经启动
测试:
1.打开一个终端使用tftp客户端下载一个文件
2.在tftp服务器目录添加文件,如zImage
3.使用”tftp tftp服务器地址“
,然后使用“get 文件”
从tfftp服务器下载文件到客户端,如下图,可以看到,主目录中出现了一个文件(tftp服务器的地址是我ubuntu的静态地址)
4.使用put
命令在当前目录上传一个文件到tftp服务器,可以看到tftp服务器多了一个help文件
具体命令格式
tftp 服务器ip
下载文件:get 文件名
上传文件:put 文件名
退出:quit