如何以最简单的方式传输文件到开发板上-lrzsz-ZModem

news/2024/10/22 1:18:32

在某鱼上闲逛的时候,看到树莓派A+这个型号的板子,很便宜30来块钱,有6ULL的性能。
但是既没有网口、也没有WiFi,只有一个usb,电脑和它传数据岂不是非常麻烦?

其实有一个非常好用的协议叫ZModem,它的设计就是主要为了能在串口这种几乎无需配置的连接协议上传输文件。类似的还有XModem 和 YModem,但是正如他们的名字顺序一样,ZModem最为强大。rz、sz就可以在串口上用ZModem协议传输数据

基于网络的远程文件传输的工具有很多,例如scp、sftp、ftp等。如果开发板没网口、或者电脑与开发板ping通需要大量繁琐的网络配置,串口几乎是唯一交互方式的情况下,使用rz、sz传输更为方便。(其实还有USB虚拟网卡)

  • Xmodem:这种古老的传输协议速度较慢,但由于使用了CRC错误侦测方法,传输的准确率可高达99.6%
  • Ymodem:这是Xmodem的改良版,使用了1024位区段传送,速度比Xmodem要快。
  • Zmodem:Zmodem采用了串流式(streaming)传输方式,传输速度较快,而且还具有自动改变区段大小和断点续传、快速错误侦测等功能,是目前最流行的文件传输协议

ZModem强大在于它的稳定与可靠性

  • 自动重传:在出现传输错误时,可以自动重传数据。
  • 文件恢复:支持在断点处恢复文件传输,避免从头开始。
  • 动态缓冲:能够根据网络状况自动调整数据传输速度。
  • 支持长文件名:可以处理比其他协议更长的文件名。

我们常用的终端都支持ZModem传输,以下我会使用MobaXterm、XShell、Tabby三个终端举例

安装lrzsz

先在开发板上安装lrzsz,rz和sz分别是发送与接收的两个工具

sudo apt install lrzsz
  • 接收文件
rz
  • 发送文件
sz filename

MobaXterm

我使用的版本如上图,本身自带ZModem功能,有的老版本有可能需要安装插件。

输入rz,代表你要发送文件

此时界面会卡死, Ctrl+C终止都没用,也千万不要点击键盘发送任何字符,不然就只能等着强制断电重启

调出右键菜单,选中Send File Using Z-modem

我的习惯是右键设置为粘贴,左键选中复制,所以需要按住Ctrl+右键,调出右键菜单,

显示的上传的很快,但是其实并没那么快,要等到它跑完,过程是无法打断的

只有出现上面传输完成的字样后,按下回车就回到了系统。

使用sz filename来发送文件到电脑

还是一样的操作,这次选择Recieve file using Z-modem

可以看到传输过程中还是出现了错误,但是由于ZModem强大的错误校验自动重传功能,我们的文件还是完好的保存了下来

X Shell

xshell简单很多,输入rz自动打开文件选择框,传输就行了

sz也是一样的

Tabby

和xshell一样很方便,会自动弹出文件选择框

tabby和moba一样会显示假速度,需要等到文字提示完成才算完成。

出现Sent字样就代表完成了

下载文件显示的是真实的速度

传输完成

总结

我个人更喜欢Xshell,传输速度显示正确,终端稳定性和多开padding也很方便。唯一的缺点就是在vim和menuconfig的时候总是持续性卡顿,所有操作都慢一拍,不懂是我的问题还是它的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/74434.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

东山Pi柒号-3-STM32MP1 引导链概述

进行移植前先看看ST官网的一些资料,了解芯片的工作方式: STM32MP1 引导链概述 https://wiki.stmicroelectronics.cn/stm32mpu/wiki/STM32MP1_boot_chain_overview启动步骤如下BROM(BL1):芯片内部程序,根据BOOT PIN读取对应启动设备里的程序到内部SYSRAM执行,工作在在Secur…

派生类

派生类 1. 派生类2. 派生类对象定义时调用构造函数的顺序 Man man;3. public、protected、private 4. 函数遮蔽

2024年好用的短链接短网址工具推荐

小码短链接,作为一款专业的短链接生成和统计工具,能够帮助您轻松应对各种场景需求,让运营工作变得简单高效。 小码短链接功能介绍 1. 链接缩短 小码短链接不仅可以缩短您的原始链接,还可以提供简洁美观的短链接形式。通过短链接,您可以有效地减少短信或营销内容的字数,从…

Python找不到项目模块解决方法

BiliBili VsCode在使用Python过程中遇到找不到项目模块的问题问题描述 目录及代码如下的项目结构demo ├─ main.py └─ src├─ __init__.py├─ a.py└─ b.py在"src/a.py"文件中有一个方法,代码如下def xxc():print("hello")在"src/b.py"和…

循环结构程序设计

为什么需要循环控制 循环结构或称重复结构 几乎每一种计算机高级语言都提供了循环控制,用来处理需要进行的重复操作 大多数的应用程序都会包含循环结构 循环结构和顺序结构、选择结构是结构化程序设计的3中基本结构,它们是各种复杂程序的基本构成单元。 用 while 语句实现循环…

python 实现课堂练习

module.py中的:import math class Complex:def __init__(self,real=0,imag=0):self.real=realself.imag=imagdef add(self,other):if isinstance(other,Complex):self.real=self.real+other.realself.imag=self.imag+other.imag def output(other):if isinstance(other, Compl…

Portainer - 用于管理容器的 UI-k8s

简介 🔰什么是Portainer? Portainer 是一个开源的轻量级管理 UI,它允许我们在 Docker、Docker Swarm、Kubernetes 和 Azure ACI 中轻松构建和管理容器,例如管理 Swarm 服务的创建和删除、用户身份验证、授权、连接、执行命令运行容器的控制台,并查看容器的日志。 Portainer …

k8s-Portainer 让应用部署变得简单

什么是搬运工 Portainer 是一个 Kubernetes、Docker/Swarm 和 Nomad 通用容器管理系统,它简化了容器操作,因此我们可以更快地将软件部署到更多地方。 概述 Portainer 服务器和 Portainer 代理是 Portainer 的两个组件。两者都作为轻量级容器在您现有的容器化基础设施上运行。集…