TFTP 这种简单的基于 UDP 的文件传输协议,通常只能用于小文件的传输,并且它不具备通常的 FTP 的许多功能,因此它只能从文件服务器上获得或写入文件,不能列出目录,也不能进行认证。在嵌入式开发中,TFTP 服务用于通过网线从 PC 服务端的 TFTP 目录下下载镜像文件到开发板中。
基于 Red Hat Enterprise Linux 5 的 TFTP 服务器构建:
1.查看 TFTP 服务是否安装
用 setup 命令 或 rpm -qa | grep tftp
2.安装 TFTP 服务器
rpm -ivh tftp-server-0.42-3.1.i386.rpm
3.配置 TFTP 服务器
vi /etc/xinetd.d/tftp 进行如下配置
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
per_source = 11
cps = 100 2
flags = IPv4
}
4.查看 TFTP 服务是否启动
netstat -a | grep tftp
5.启动或重启 TFTP 服务器
/etc/init.d/xinetd start /etc/init.d/xinetd restart
补充:rpm 是 Red Hat 下的软件包管理工具,一般常用的命令有:
(1) 查询系统已安装的软件;语法:rpm -q 软件名
# rpm -q tftp-server
tftp-server-0.42-3.1
-q就是 --query ,中文意思是“问”,此命令表示的是,是不是系统安装了 tftp-server;如果已安装会有信息输出;如果没有安装,会输出 tftp-server 没有安装的信息。查看系统中所有已经安装的包,要加 -a 参数 。
# rpm -qa
(2) 安装新软件包;语法:rpm -ivh 软件包
(下面的都还没试过)
基于 Ubuntu 11.10 的 TFTP 服务器构建:
1.安装 TFTP 服务器
sudo apt-get install xinetd tftpd tftp
2.建立 TFTP 服务器配置文件
sudo vim /etc/xinetd.d/tftp 在文中输入如下配置信息
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /home/book/work/tftpboot
disable = no
}
3.启动 TFTP 服务器
sudo service xinetd start
注意:在 Ubuntu 11.10 中不允许直接执行 TFTP 服务的初始化脚本,例如:/etc/init.d/xinetd start 。xinetd(eXtended InterNET services daemon)
基于 Ubuntu 的另一种构建 TFTP 服务器的方法:
1.安装tftp客户端及服务器端的软件,tftp-hpa是客户端,tftpd-hpa是服务器端。
sudo aptitude install tftp-hpa tftpd-hpa
2.配置TFTP服务器
sudo vim /etc/default/tftpd-hpa
将原来的内容改为:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_ADDRESS="0.0.0.0:69"
#TFTP_OPTIONS="--secure"
TFTP_DIRECTORY="/tftpboot"
TFTP_OPTIONS="-l -c -s"
3.重新启动 TFTP 服务
sudo service tftpd-hpa restart
补充:/etc/init.d/ 目录下放的都是系统相关服务的初始化脚本,例如 nfs 服务:/etc/init.d/nfs 。
基于 Windows 的 TFTP 服务器构建:
在 Windows 下构建 TFTP服务器相对 Linux 容易得多,只要安装 TFTP 相关工具(tftpboot.rar)即可。安装完上述工具之后,就可以实现开发板使用 tftp 命令从 Windows PC 机上下载文件。