Автоматизировать загрузку файлов xmodem
У меня есть устройство, где обновление программного обеспечения выполняется путем загрузки файла через xmodem.
Я смог сделать это двумя способами, используя пакет lrzsz ( http://ohse.de/uwe/software/lrzsz.html).
1) Использование экрана
screen /dev/tty.myserialdevice 115200
а потом
^A:exec !! sz -X file.bin
или же
2) Использование cu
cu -l /dev/tty.myserialdevice -s 115200
а потом
~+lsz -X file.bin
Теперь я хотел бы написать скрипт (предпочтительно скрипт ruby или bash) для автоматизации загрузки файла.
Есть ли способ передать файл на экран или cu или использовать стандартный ввод? Когда я пытался написать сценарий, я только дошел до открытия соединения. Но даже тогда у меня были проблемы с правильным закрытием этой связи снова.
1 ответ
Не уверен, что у вас все еще есть эта проблема, но мне только что пришлось собрать что-то подобное для аналогичной ситуации.
Я использовал экран для автоматизации этой части, так как он имеет некоторые параметры командной строки для запуска в фоновом режиме. Сначала я создаю отдельный сеанс экрана, например:
screen -d -m /dev/tty.myserialdevice 115200
Затем я могу сослаться на свой созданный сеанс с параметром -p0 и дать ему команду для выполнения с -X, которая в этом случае является командой для проверки самого себя, чтобы начать передачу файла xmodem.
screen -p0 -X exec \!\! sz -X filetosend
В других местах в Интернете я заметил, что.\!\! также иногда использовался, так что имейте это в виду, если у вас все еще есть проблемы.