我有一个与串行终端相关的问题。有时可以使用诸如 之类的命令连接到设备screen
。一个例子是screen /dev/ttyUSB0 115200
。
我可以通过 Linux ARM 设备与其连接(甚至通过登录阶段)。因此,我可以轻松传输所有文本。现在,我想通过它复制一个二进制文件。如何做呢?
答案1
您可能不想使用 ,而是screen
使用专用的串行终端仿真程序,例如minicom
,因为它内置了对串行端口二进制传输协议(如 ZMODEM)本地端的支持。
要将文件从本地系统传输到 ARM 设备,您需要在两个设备上安装 ZMODEM 协议的命令行工具。至少在 Debian 上,它位于名为lrzsz
.
首先,您将登录到 ARM 设备并rz
在其上运行(接收 Zmodem)命令。它将输出一个特殊的“等待接收”字符序列,该序列可以由支持 ZMODEM 的终端仿真程序(例如minicom
.此时,终端仿真器程序应自动允许您选择要发送到远程 ARM 设备的文件。如果没有发生这种情况,您仍然可以从终端仿真器手动选择“使用 ZMODEM 发送文件”(或“上传文件...”)功能。
某些终端仿真器可能具有 ZMODEM 协议的完整内部实现,但minicom
仅使用sz
(发送 Zmodem)命令行工具来进行实际的文件传输,因此您也需要lrzsz
在本地安装该软件包。
从远程 ARM 传输到本地系统的工作原理本质上是相同的:您sz <filename>
在远程端运行命令,并且终端仿真器应该自动检测传入传输(“下载”)。
由于sz
和rz
工具设计为在远程端使用,并且将通过 shell 会话的标准输入和输出传输文件,因此在本地使用命令需要特定的输入/输出重定向,并且终端仿真器必须文件传输程序运行时停止读取串口。所有这些都会使得在本地使用sz
/工具与像这样的程序不具备容纳外部文件传输工具的必要功能变得非常不方便。rz
screen