2016-03-04 64 views
2

我用XMODEM从一个Ubuntu VM传输的二进制文件,以嵌入式Linux目标,就像这样:确保XMODEM传输文件忠实

$ sudo screen /dev/ttyUSB0 115200 
$ rx test 

CTRL-A

$ exec !! sx -b test 

现在,“测试”成功转移,但是当我在VM和目标上检查它时,我会得到以下结果:

  • VM:尺寸= 22938个字节
  • 目标:尺寸= 23040个字节

此外,权限上的目标减小。

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

回答

4

XMODEM以128字节的块传输,所以文件总是被填充到下一个128字节的边界。 YMODEM和ZMODEM包含了协议中的文件大小,并且可以传输正确的字节数,但是如果您仅限于XMODEM,我建议使用tar来包装主机上的文件,这会对文件大小和权限进行编码,然后解压它在目标上。 tar可能会抱怨备用填充字节,但它应该仍然有效。

+0

谢谢,这很有用。现在我只需要解决如何在Busybox配置中启用解压缩焦油! –

+0

如果您的busybox配置具有'tar',但不支持gzip或bzip,则不需要它们。只需在VM端使用'tar -cvf files.tar binaryfile',然后在目标上使用'tar -xvf files.tar'。作为奖励,您可以根据需要在其中包含尽可能多的文件。但是如果文件很大,你可能想启用压缩('-z'或'-j'选项)。 – jamieguinan

+0

我的Busybox配置有'tar',但是我无法'''压缩包。我知道... –