Yong's blog

  • 首页
  • 个人简介
  1. 首页
  2. 嵌入式
  3. 正文

Ubuntu虚拟机利用TFTP更新下位机文件

2024年1月30日 0人点赞 0条评论

1 背景

TFTP(Trivial File Transfer Protocol,简单文件传输协议)是一个基于UDP协议的简单文件传输协议,工作在69端口。它适用于开销较小、应用简单的场景。TFTP专为小文件传输设计,功能包括从服务器获取文件或向服务器写入文件,但不能列出目录或进行认证。

在嵌入式Linux开发中,TFTP协议在很多场合都被用到,比如利用TFTP更新下位机中的文件。

2 环境

虚拟机:VMware 16.2.3

系统:Ubuntu 16.04.4 LTS

硬件:Zynq 7020平台

3 TFTP更新下位机文件的步骤

3.1 Ubuntu上搭建TFTP服务器

1、安装软件:一般的Linux发行版默认都没有安装TFTP服务以及TFTP服务器。

a. 安装xinetd:为TFTP服务器提供网络复位管理。

yong@yong-virtual-machine:~$ sudo apt-get install xinetd

b. 安装tftpd-hpa和tftp-hpa:tftpd-hpa为服务器,tftp-hpa为客户端

yong@yong-virtual-machine:~$ sudo apt-get install tftpd-hpa tftp-hpa

2、修改配置文件

a. 新建/etc/xinetd.d/tftp文件

yong@yong-virtual-machine:~$ sudo vi /etc/xinetd.d/tftp

b. 写入如下内容

service tftp

{

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/sbin/in.tftpd

server_args = -s /home/yong/tftpboot/

disable = no

per_source = 11

cps = 100 2

flags = IPv4

}

其中server_args参数为TFTP服务器的根目录,disable为是否关闭TFTP服务器自动启动。

c. TFTP服务器文件夹

1. 创建TFTP服务器文件夹(确保此文件夹地址与上一步骤的server_args目录地址一致)。

yong@yong-virtual-machine:~$ mkdir -pv /home/yong/tftpboot

2. 将TFTP服务器文件夹访问权限设置为777

yong@yong-virtual-machine:~$ sudo chmod 777 /home/yong/tftpboot

d. 查看虚拟机Ubuntu本地IP地址

此IP地址将用作TFTP服务器监听的本地局域网地址

IP地址为:192.168.1.120

e. 修改文件/etc/default/tftpd-hpa:此文件用于定义tftpd-hpa服务的运行参数

1. 修改文件

yong@yong-virtual-machine:~$ sudo vi /etc/default/tftpd-hpa

2. 文件内容修改如下

# /etc/default/tftpd-hpa TFTP_USERNAME="yong"

TFTP_DIRECTORY="/home/yong/tftpboot"

TFTP_ADDRESS="192.168.1.120:69" // 此处IP地址需与Ubuntu本地IP地址相同

TFTP_OPTIONS="-s -c"

TFTP_USERNAME:这指定了运行TFTP服务的用户。在这个例子中,TFTP服务将以用户yong的权限运行。

TFTP_DIRECTORY:这设置了TFTP服务器的根目录。所有的TFTP文件传输都将限制在这个目录及其子目录中。在此例中,根目录被设置为/home/yong/tftpboot。

TFTP_ADDRESS="192.168.1.120:69":这指定了TFTP服务器监听的地址和端口。192.168.1.120是Ubuntu本地IP地址,端口为标准的TFTP端口69。

TFTP_OPTIONS="-s -c":这里定义了传递给tftpd-hpa服务的附加选项。-s选项将TFTP服务器操作限制在指定的根目录,而-c选项允许客户端创建新文件。

f. 启动服务

1. 启动xinetd

yong@yong-virtual-machine:~$ sudo service xinetd restart

3. 启动tftpd-hpa

yong@yong-virtual-machine:~$ sudo service tftpd-hpa restart

.3、测试TFTP服务

a. 在/home/yong目录下创建文件puttest

echo "tftp put test" >> /home/yong/puttest

b. 在/home/zlf/tftpboot目录下创建文件gettest

echo "tftp get test" >> /home/yong/tftpboot/gettest

c. 进入/home/yong目录

yong@yong-virtual-machine:~$ cd /home/yong

d. 运行TFTP

tftp 192.168.1.120

e. 测试从TFTP服务器获取文件

tftp> get gettest

f. 测试上传文件到TFTP

tftp> put puttes

g. 退出TFTP

tftp> q

h.如果在/home/yong目录下可以看到下载的gettest文件,在/home/yong/tftpboot目录下可以看到上传的puttest文件,则证明TFTP服务器搭建成功!

3.2更新下位机文件

1、进入板卡下位机系统

2、为板卡网络接口 eth0 分配 IP 地址 192.168.1.10(确保该地址与之前设定的 TFTP 服务器地址在同一网段内)。

# ifconfig eth0 192.168.1.10

3、VMware虚拟机使用桥接模式,确保虚拟机与板卡之间能够相互ping通。(见文章《 VMware虚拟机使用桥接模式ping通主机》)

板卡ping虚拟机:

虚拟机ping板卡:

4、从虚拟机的TFTP服务器中获取测试文件gettest

tftp -gr gettest 192.168.1.120

5、如果板卡当前目录下成功获取了测试文件gettest,证明成功利用TFTP服务器远程获取更新文件!

4 Reference

1. https://www.cnblogs.com/tureno/articles/6627724.html

标签: TFTP更新下位机文件
最后更新:2024年3月12日

Yong

JUST FOR FUN~

点赞

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
文章目录
  • 1 背景
  • 2 环境
  • 3 TFTP更新下位机文件的步骤
    • 3.1 Ubuntu上搭建TFTP服务器
    • 3.2更新下位机文件
  • 4 Reference
最近评论
Yong 发布于 3 个月前(06月02日) If it’s helpful to you, I’ll be happy too!
Click Here 发布于 3 个月前(05月25日) Heya i am for the primary time here. I found this ...
BigPigBro 发布于 7 个月前(02月04日) :rolleyes: Love From China~
Hete 发布于 7 个月前(02月04日) peace~
标签聚合
2023 CAN总线 CAN总线网络 SJW 2024 Zynq 7020 TFTP更新下位机文件 同步跳转宽度

COPYRIGHT © 2023 Yong's blog. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang