tftp环境搭建

1. 背景

当拿到一块硬件设计的新板子或者新购买的开发板时,搭建一个网络文件传输通路十分重要,使用网络服务进行文件传输以及调试,效率会提升很大。

常见的网络文件传输有 FTP、SCP、NFS、TFTP等。其中 tftp 是一种简单的文件传输传输协议,适用于小文件的传输,在嵌入式开发中经常用到。

2. tftp 介绍

tftp(Trivial File Transfer Protocol,简单文件传输协议)是 TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务,端口号为 69。

tftp协议在uboot、bash环境都可以支持,常见的服务端是 windows 本地环境和 linux服务器。

3.tftp 环境搭建

3.1 服务端环境搭建

3.1.1 windows 环境搭建

windows下提供了一个叫做 tftpd 的工具,有32位和64位区分,是一个集成了 DHCP、TFTP、DNS、SNTP 和 Syslog 多种服务的免费开源、轻量级应用程序。

其下载地址为: tftpd64下载
在这里插入图片描述

下载完成后,直接双击就可以使用,使用方法参考下面文章 tftpd windows使用

注意要配置 PC 的 IP 网段和设备在同一局域网内。

3.1.2 linux 环境搭建

linux 下 需要安装服务端工具 tftpd-hpa (tftp daemon-had patches)。

  1. 工具安装
sudo apt-get install tftpd-hpa
  1. 修改配置文件

    • 查看配置文件

      wangzhonglai@shell:~$ cat /etc/default/tftpd-hpa 
      # /etc/default/tftpd-hpa
      
      TFTP_USERNAME="tftp"
      TFTP_DIRECTORY="/srv/tftp"
      TFTP_ADDRESS=":69"
      TFTP_OPTIONS="--secure"
      
    • 编辑配置文件

      wangzhonglai@shell:~$ sudo vi /etc/default/tftpd-hpa
      
      #改成如下内容
      
      # /etc/default/tftpd-hpa
      
      TFTP_USERNAME="tftp"
      TFTP_DIRECTORY="/home/wangzhonglai/share/tftp"
      TFTP_ADDRESS=":69"
      TFTP_OPTIONS="-l -c -s"
      
      • TFTP_DIRECTORY 目录需要设置可读可写可执行权限 777

      • 如果设置成 TFTP_OPTIONS"–secure" ,在使用 put 上传时,将会提示一个错误 : Error code 1 : Flle not found.

        • -l:以standalone/listen模式启动TFTP服务(–listen),即TFTP服务作为一个独立的服务运行,而不是依赖于网络守护进程服务。这种模式通常用于不需要复杂网络配置的简单文件传输场景。

          -c:允许上传文件到TFTP服务器。这个选项使得TFTP服务器不仅能够提供文件下载服务,还能够接收客户端上传的文件。

          -s:指定TFTP服务的工作目录。这个选项用于设置TFTP服务器的工作目录,即客户端上传或下载文件的根目录。

          综上所述,TFTP_OPTIONS=“-l -c -s” 的配置意味着TFTP服务将以独立模式运行,允许文件上传,并且指定了一个特定的工作目录用于文件传输。

    • 启动 tftpd-hpa 服务

      sudo systemctl restart tftpd-hpa.service 
      

      systemctl命令参考 systemctl 命令使用

3.2 客户端环境搭建

嵌入式中一般使用busybox中的tftp指令,busbox编译时开启对应配置即可:

BusyBox v1.31.1 (2020-07-28 18:26:21 CST) multi-call binary.

Usage: tftp [OPTIONS] HOST [PORT]

Transfer a file from/to tftp server

 
-l FILE Local FILE

-r FILE Remote FILE

-g Get file

-p Put file

-b SIZE Transfer blocks of SIZE octets

下载文件到板端

tftp -gr filename xx.xx.xx.xx -b 8192

上传文件到服务器

tftp -pl filename xx.xx.xx.xx -b8192
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来鸟 鸣间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值