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 发布于 2 天前(06月02日) If it’s helpful to you, I’ll be happy too!
Click Here 发布于 2 周前(05月25日) Heya i am for the primary time here. I found this ...
BigPigBro 发布于 4 个月前(02月04日) :rolleyes: Love From China~
Hete 发布于 4 个月前(02月04日) peace~
标签聚合
CAN总线 2024 2023 SJW CAN总线网络 同步跳转宽度 Zynq 7020 TFTP更新下位机文件

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

Theme Kratos Made By Seaton Jiang