我有一个与串行终端相关的问题。我有一台 Linux 计算机,我连接到一台运行 debian 且带有screen /dev/ttyUSB0 115200
.从那里,我可以登录并输入命令。
这意味着我可以通过串行终端在 ARM 上创建文件,在 Linux 计算机中打开该文件并将所有文本复制到打开的终端,从而虚拟地传输任何文本文件。
现在,我想传输二进制数据。我的 ARM 计算机无法访问互联网,因此无法安装软件包。可悲的是,这包括minicom
。此外,它没有rz
开箱即用的功能。
总之,我可以轻松传输所有文本。现在,我想通过它复制一个二进制文件。如何做呢?
PS:这个问题延伸通过串口终端发送二进制文件,有更多的限制。
答案1
使用shar
GNU 从sharutils
二进制文件创建一个文本文件,然后像您所做的那样复制并粘贴该文本文件。该文本文件将是一个 shell 脚本,执行时将恢复原始二进制文件。https://en.wikipedia.org/wiki/GNU_Sharutils
答案2
取决于你的 ARM 盒子上有什么。你有uuencode
? base64
? perl
?
基本上,您可以使用一些包装程序将二进制文件转换为 ASCII,将 ASCII 文件发送到远程计算机,然后将其解包回二进制文件。
所以,例如
uuencode myfile > myfile.uue
现在将 myfile.uue 发送到远程端
然后在远程端
uudecode myfile.uue
将二进制包装成 ASCII 的方法有很多种;uuencode
和base64
是两种常用的方法。如果不知道机器上有什么,就不可能知道哪种方法最适合您。
一旦你弄清楚如何做到这一点然后您可以使用此方法来传输更好的程序(例如minicom
或 )rz
并使用它。基本上使用 ASCII 包装来“引导”可靠的传输过程。