tftp包括客户端和服务器程序,通常客户端运行在嵌入式设备上,服务器运行在PC上。系统在启动BootLoader后,通过tftp来下载Linux内核镜像到内存运行,然后通过NFS来启动Linux主机上的目标文件系统,并通过DHCP服务器来为开发板分配IP地址。 按照tftp配置的一般步骤,最终配置成功,但没有进行测试,因为还是不明白tftp在主机与目标板之间是怎么传输的。
一、1 检查是否已经安装好TFTP
sudo netstat -au | grep tftp
没有任何信息的话则是没有安装
2、检查是否安装相关服务(一般没有)
(1)、安装tftp(客户端)、tftpd(服务端)
sudo apt-get install tftpd tftp
(2)、安装tftpd-hpa、tftp-hpa(功能增强的TFTP服务器)
sudo apt-get install tftpd-hpa tftp-hpa
(3)、安装openbsd-inetd xinetd(网络管理服务。Ubuntu中,tftp不能独立运行,需要网络管理服务器 支持。)
sudo apt-get install xinetd openbsd-inetd
(4)、建立tftp服务文件目录
sudo mkdir /tftpboot
sudo chmod 777 /tftpboot
二、配置TFTP服务器
(1)、配置tftpd-hpa(服务端)
sudo vim /etc/default/tftpd-hpa
1 # /etc/default/tftpd-hpa
2 RUN_DAEMON="yes"
3 TFTP_USERNAME="tftp"
4 TFTP_DIRECTORY="/tftpboot" 这里为TFTP服务器目录
5 TFTP_ADDRESS="0.0.0.0:69"
6 TFTP_OPTIONS="-l -s /tftpboot"
(2)、配置inetd
sudo vim /etc/inetd.conf
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot (在最末添加之)
(3)、建立配置文件
在/etc/xinetd.d/下建立一个配置文件tftp,主要是设置TFTP服务器的根目录,开启服务。
sudo vim tftp
在文件中输入以下内容:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot-c /tftpboot 此文件是tftp的服务文件目录
disable = no
log_on_success += PID HOST DURATION
log_on_failure += HOST
}
其中server_args一行是配置服务器的文件存放的位置,就是进行tftp传输的时候,都是从该文件夹中搜索文件的
保存退出
(4)、重启TFTP相关服务
sudo /etc/init.d/openbsd-inetd reload
* Reloading internet superserver inetd [ OK ]
sudo /etc/init.d/openbsd-inetd restart
* Restarting internet superserver inetd [ OK ]
sudo service tftpd-hpa restart
(如果没有反应,应重新安装sudo apt-get install tftpd-hpa)
sudo /etc/init.d/xinetd restart
* Stopping internet superserver xinetd [ OK ]
* Starting internet superserver xinetd [ OK ]