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 и ввода пути и имени файла:

picocom zmodem error.png

И это вывод 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 протокол передачи, который поддерживается по умолчанию.

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