确保 XMODEM 忠实地传输文件

Ensuring XMODEM Transfers a File Faithfully

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

$ sudo screen /dev/ttyUSB0 115200
$ rx test

CTRL-A:

$ exec !! sx -b test

现在,"test" 传输成功,但是当我在 VM 和目标上检查它时,我得到以下信息:

此外,目标的权限也降低了。

为什么会这样,如何确保传输的文件与源文件相同?

XMODEM 以 128 字节块为单位传输,因此文件将始终填充到下一个 128 字节边界。 YMODEM 和 ZMODEM 在协议中包含文件大小,可以传输正确的字节数,但如果你仅限于 XMODEM,我建议使用 tar 来包装主机上的文件,这将编码文件大小和烫发,然后在目标上解压。 tar 可能会抱怨多余的填充字节,但它应该仍然有效。