2016-03-04 66 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',但是我無法'''壓縮包。我知道... –