Обеспечение правильной передачи файла XMODEM

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

$ sudo screen /dev/ttyUSB0 115200
$ rx test

CTRL-A:

$ exec !! sx -b test

Теперь "тест" успешно переносится, но когда я проверяю его как на виртуальной машине, так и на цели, я получаю следующее:

  • VM: размер = 22938 байт
  • Цель: Размер = 23040 байт.

Кроме того, разрешения на цели уменьшены.

Почему это так, и как я могу убедиться, что передаваемый файл совпадает с исходным?

1 ответ

Решение

XMODEM передает в 128-байтовых блоках, поэтому файл всегда будет заполнен до следующей 128-байтовой границы. YMODEM и ZMODEM включают размер файла в протокол и могут передавать правильное количество байтов, но если вы ограничены XMODEM, я предлагаю использовать tar обернуть файл на хосте, который будет кодировать размер файла и перми, а затем распаковать его на цели. tar может жаловаться на запасные байты заполнения, но это все равно должно работать.

Другие вопросы по тегам