minicom/picocom не передает файлы с помощью zmodem на встроенную плату Linux
У меня есть встроенное устройство Linux на основе процессора DM368 от TI с версией ядра 2.6.32.17 и файловой системой BusyBox v1.13.2 (2011-03-24 18:58:44 CDT).
У меня проблема с передачей файлов с моего компьютера (ubuntu 14.04) на плату с помощью zmodem в minicom/picocom через последовательный порт.
Проблема в том, что когда я отправляю файл с помощью zmodem в minicom или picocom, он говорит, что произошел тайм-аут и "Transfer Incomplete". Должен ли я запустить какой-нибудь демон или программу на доске?
Предполагается, что zmodem очень прост, и у меня никогда не было проблем с zmodem и встроенными платами Linux.
Вот вывод picocom после нажатия ^A +S и ввода пути и имени файла:
И это вывод minicom после нажатия ^A +S и выбора нужного файла:
+-----------[zmodem upload - Press CTRL-C to quit]------------+
|RROR |
|oot@dm368-evm:/home# Retry 0: Got ZNAK |
|-sh: Retry 0: Got ZNAK |
| not foundroot@dm368-evm:/home# |
|Transfer incomplete |
| |
| READY: press any key to continue... |
+-------------------------------------------------------------+
Что случилось?
2 ответа
Хорошо, благодаря опилкам, я мог понять это. Проблема была просто в том, что у меня не было программ rz и sz, установленных в нужном каталоге. По-видимому, minicom или, если быть более точным, zmodem нуждается в этих программах и вызывает их каждый раз, когда вы хотите отправить или получить файлы. Поэтому нужно скомпилировать пакет lrzsz следующим образом:
export CC=arm-none-linux-gnueabi-gcc
./configure --target=arm-linux
make
Затем переименуйте два сгенерированных двоичных файла в каталоге src из lsz и lrz в sz и rz соответственно и просто скопируйте их в каталог /usr/bin платы. Таким образом, вы можете отправлять и получать файлы, используя zmodem внутри minicom или любого другого терминала.
Ваш U-boot должен иметь поддержку zmodem
протокол передачи (который обычно НЕ!), но вы можете использовать kermit
протокол передачи, который поддерживается по умолчанию.