Linux 确保XMODEM忠实地传输文件

Linux 确保XMODEM忠实地传输文件,linux,xmodem,Linux,Xmodem,我使用XMODEM将二进制文件从Ubuntu VM传输到嵌入式Linux目标,如下所示: $ sudo screen /dev/ttyUSB0 115200 $ rx test CTRL-A: 现在,“test”传输成功了,但是当我在VM和目标上检查它时,我得到以下结果: VM:Size=22938字节 目标:大小=23040字节 此外,目标上的权限也会减少 这是为什么?我如何确保传输的文件与源文件相同?XMODEM以128字节块传输,因此文件将始终填充到下一个128字节边界。YMODEM

我使用XMODEM将二进制文件从Ubuntu VM传输到嵌入式Linux目标,如下所示:

$ sudo screen /dev/ttyUSB0 115200
$ rx test
CTRL-A:

现在,“test”传输成功了,但是当我在VM和目标上检查它时,我得到以下结果:

  • VM:Size=22938字节
  • 目标:大小=23040字节
此外,目标上的权限也会减少


这是为什么?我如何确保传输的文件与源文件相同?

XMODEM以128字节块传输,因此文件将始终填充到下一个128字节边界。YMODEM和ZMODEM在协议中包含文件大小,并且可以传输正确的字节数,但是如果您仅限于XMODEM,我建议使用
tar
在主机上包装文件,这将对文件大小和排列进行编码,然后在目标上对其进行解压缩
tar
可能会抱怨多余的填充字节,但它仍然可以工作。

谢谢,这很有用。现在我只需要解决如何在Busybox配置中启用解压缩TAR!如果您的busybox配置有
tar
,但不支持gzip或bzip,则不需要它们。只需在VM端使用
tar-cvf files.tar二进制文件
,在目标端使用
tar-xvf files.tar
。作为奖励,您可以在其中打包任意数量的文件。但是如果文件很大,您可能需要启用压缩(
-z
-j
选项)。
$ exec !! sx -b test