Отправить бинарный файл через последовательный терминал

Для этого можно использовать три крючка:

  • DPkg::Pre-Invokeзапускается один раз перед всеми последовательностями манипуляций с пакетами за один aptвызов;
  • DPkg::Pre-Install-Pkgsтакже запускается один раз, до последовательностей манипулирования пакетами, после хука Pre-Invokeи со списком всех пакетов, которые будут установлены;
  • DPkg::Post-Invokeзапускается один раз, после последовательностей операций с пакетами.

Документация не совсем ясна (читайтеman apt.confхотя ), но чтение исходного кода подтверждает вышеизложенное. Указание хуков также подтверждает это (, например, вот как работает apt-listbugs).

1
06.10.2019, 05:14
1 ответ

Вместо использования screenвы можете использовать специальную программу-эмулятор последовательного терминала, такую ​​как minicom, так как она имеет встроенную -поддержку протоколов передачи двоичных данных последовательного -порта на локальной стороне. как ЗМОДЕМ.

Чтобы передать файл из локальной системы на устройство ARM, на обоих устройствах должен быть установлен инструмент командной строки -для протокола ZMODEM. По крайней мере, в Debian он поставляется в пакете с именем lrzsz.

Во-первых, вы должны войти на устройство ARM и выполнить на нем командуrz(Receive Zmodem ). Он выводит специальную последовательность символов «ожидание приема», которая может быть обнаружена программой эмулятора терминала, поддерживающей ZMODEM -, например minicom. В этот момент программа эмулятора терминала должна автоматически позволить вам выбрать файл для отправки на удаленное устройство ARM. Если этого не произошло, вы все равно можете выбрать функцию «отправить файл с помощью ZMODEM» (или «загрузить файл...» )вручную в эмуляторе терминала.

Некоторые эмуляторы терминала могут иметь полную внутреннюю реализацию протокола ZMODEM.но minicomпросто использует линейный инструментsz(Send Zmodem )command -для фактической передачи файлов, поэтому вам также необходимо установить пакет lrzszлокально.

Перенос с удаленного ARM на локальную систему работает по существу так же, :вы запускаете команду sz <filename>на удаленном конце, и входящая передача («загрузка» )должна автоматически обнаруживаться вашим эмулятор терминала.

Поскольку инструменты szи rzпредназначены для использования на удаленном конце и будут передавать файл через стандартный ввод и вывод сеанса оболочки, использование команд на локальной стороне требует определенных перенаправления ввода/вывода, а эмулятор терминала должен прекратить чтение последовательного порта во время работы программы передачи файлов. Все это сделало бы крайне неудобным использование инструментов sz/rzна локальной стороне с такой программой, как screen, которая не имеет необходимых функций для размещения внешних инструментов передачи файлов.

1
28.04.2021, 23:28

Теги

Похожие вопросы