Обеспечение правильной передачи файла 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
может жаловаться на запасные байты заполнения, но это все равно должно работать.