一、基础知识介绍


 TFTP(Trivial File Transfer Protocol,简单文件传输协议),是一个基于 UDP 协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于开销不大、不复杂的应用场合。TFTP协议专门为小文件传输而设计,只能从服务器上获取文件,或者向服务器写入文件,不能列出目录,也不能进行认证。
        根据上面关于 TFTP 的介绍,实现TFTP 我们需要搭建一个TFTP 的服务器,ARM开发板当做客户端。
       使用虚拟机 Ubuntu来当做服务器,下面我们先讲解一下服务器端的配置。


二、搭建 TFTP 服务器


​​​​​​​​​​

1、安装依赖包

sudo apt-get install tftp-hpa tftpd-hpa
sudo apt-get install xinetd

2、第二步, 配置/etc/xinetd.conf

vi /etc/xinetd.conf

# Simple configuration file for xinetd
#
#Some defaults, and include /etc/xinetd.d/
defaults
{
#Please note that you need a log_type line to be able to use log_on_success
#and log_on_failure. The default is the following :
#log_type = SYSLOG daemon info
}
includedir /etc/xinetd.d

查看是否有 xinetd.conf 查看内容是否一致, 如果没有创建一个,并输入如下内容
 

3、第三步,配置/etc/default/tftpd-hpa

sudo vim /etc/default/tftpd-hpa

内容修改成 ,其中工作目录TFTP_DIRECTORY="/tftpboot" 如果根目录下没有tftpboot,需要自己创建------>这个很关键,不然tfp会启动失败,这个根据自己的路劲

#/etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/ema/tftpboot/"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"    // 这里是 -L 的小写 -l

4.、第四步,配置/etc/xinetd.d/tftp

vim /etc/xinetd.d/tftp  //pathname 不存在时自己创建

打开文件后,对比如下,保持一致

service tftp
{
        socket_type     = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server          = /usr/sbin/in.tftpd
        server_args     = -s /home/ema/tftpboot/ -c
        disable         = no
        per_source      = 11
        cps                     = 100 2
        flags                   = IPv4
}

5、创建文件夹 mkdir  /tftpboot  

6、给权限 chmod 777 /tftpboot -R

7、启动服务器 sudo service tftpd-hpa start

8、调试服务器 在/tftpboot  下 touch test.txt

9、核心板 使用tftp下载文件

10、tftp -g   -r test.c 10.1.41.116 (对应的ip  地址)  

成功下载证明测试成功

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐