У меня вопрос, связанный с серийным терминалом. У меня есть компьютер с Linux, и я подключаюсь к мини-компьютеру ARM с Debian с помощью screen /dev/ttyUSB0 115200. Оттуда я могу войти в систему и вводить команды.

Это означает, что я могу практически передать любой текстовый файл, создав файл на ARM через последовательный терминал, открыв файл на компьютере с Linux и скопировав весь текст в открытый терминал.

Теперь я хотел бы передать двоичные данные. Мой компьютер ARM не имеет доступа к Интернету и, следовательно, не может устанавливать пакеты. К сожалению, это включает minicom. Кроме того, у него нет rz из коробки.

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

Ps: этот вопрос расширяет отправить двоичный файл через последовательный терминал, с немного большим количеством ограничений.

0
Emile D. 6 Окт 2019 в 20:11
Может ли ваша система ARM читать USB-накопители? Или у него вообще есть какая-то форма сети?
 – 
roaima
6 Окт 2019 в 20:20
Какие инструменты есть у компьютера ARM? Есть ли в нем uudecode, base64 или любой другой аналогичный инструмент, способный декодировать двоичный код в кодировке ASCII обратно в двоичную форму? Или perl, python или другой мощный интерпретатор скриптов, который можно использовать для создания одного?
 – 
telcoM
6 Окт 2019 в 20:22
Да, у меня есть Python, и я подумывал использовать его для выполнения такой функции. Но я надеялся, что для этого есть готовый инструмент.
 – 
Emile D.
6 Окт 2019 в 23:40

2 ответа

Лучший ответ

Используйте shar из GNU sharutils, чтобы создать текстовый файл из двоичного файла, затем скопируйте и вставьте этот текстовый файл, как вы это делали. Текстовый файл будет сценарием оболочки, который при выполнении восстановит исходный двоичный файл. https://en.wikipedia.org/wiki/GNU_Sharutils

3
Kenyon 6 Окт 2019 в 20:23

Зависит от того, что у вас есть на коробке ARM. У вас есть uuencode? base64? perl?

По сути, вы конвертируете двоичный файл в ASCII с помощью некоторой программы-оболочки, отправляете файл ASCII на удаленную машину, а затем разворачиваете его обратно в двоичный файл.

Так, например

uuencode myfile > myfile.uue

Теперь отправьте myfile.uue на удаленный конец

Затем на удаленном конце

uudecode myfile.uue

Есть много способов обернуть двоичный файл в ASCII; uuencode и base64 — два распространенных метода. Не зная, что у вас есть на машине, невозможно понять, какой метод будет лучше для вас.

Как только вы разберетесь, как это сделать, тогда вы можете использовать этот метод для переноса лучшей программы, такой как minicom или rz, и использовать ее. В основном используйте оболочку ASCII для «запуска» надежного процесса передачи.

3
Stephen Harris 6 Окт 2019 в 20:22