2016-03-04 2 views
2

Я использую XMODEM для передачи двоичного файла из Ubuntu VM для встраиваемых Linux цели, например, так:Обеспечение XMODEM Передает файл Faithfully

$ 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 для обертывания файла на хосте, который будет кодировать размер файла и perms, затем распаковать это на цель. tar может жаловаться на запасные байты заполнения, но он все равно должен работать.

+0

Спасибо, это полезно. Теперь мне просто нужно решить, как включить распаковку смол в моей конфигурации Busybox! –

+0

Если ваша конфигурация busybox имеет «tar», но не поддерживает gzip или bzip, они вам не нужны. Просто используйте «tar -cvf files.tar двоичный файл» на стороне VM и «tar -xvf files.tar» на целевом сервере. В качестве бонуса вы можете упаковать столько файлов, сколько хотите. Но, возможно, вы захотите включить сжатие ('-z' или' -j'), если файлы большие. – jamieguinan

+0

У моей конфигурации Busybox есть «tar», но я не могу «x» tarball. Я знаю... –

Смежные вопросы