File-Copy

通過串口終端發送二進製文件

  • October 6, 2019

我有一個與串列終端有關的問題。有時可以使用諸如screen. 一個例子是screen /dev/ttyUSB0 115200

我可以通過 Linux ARM 設備與它連接(甚至通過登錄階段)。因此,我可以輕鬆地傳輸所有文本。現在,我想通過它複製一個二進製文件。如何做呢?

除了使用 之外screen,您可能還想使用專用的串列終端仿真器程序,例如minicom,因為它內置了對 ZMODEM 等串列埠二進制傳輸協議的本地端的支持。

要將文件從本地系統傳輸到 ARM 設備,您需要在兩個設備上安裝 ZMODEM 協議的命令行工具。至少在 Debian 上,它位於名為lrzsz.

首先,您將登錄到 ARM 設備並在其上執行rz(Receive Zmodem) 命令。它將輸出一個特殊的“等待接收”字元序列,可以被 ZMODEM 感知的終端仿真程序檢測到,例如minicom. 此時,終端仿真器程序應自動允許您選擇要發送到遠端 ARM 設備的文件。如果這沒有發生,您仍然可以從終端仿真器中手動選擇“使用 ZMODEM 發送文件”(或“上傳文件…”)功能。

一些終端仿真器可能具有 ZMODEM 協議的完整內部實現,但minicom只是使用sz(發送 Zmodem)命令行工具來進行實際的文件傳輸,因此您還需要在lrzsz本地安裝該軟體包。

從遠端 ARM 傳輸到本地系統的工作原理基本相同:您sz <filename>在遠端端執行命令,終端仿真器應自動檢測傳入傳輸(“下載”)。

由於szrz工具設計用於遠端端,並將通過基本上是您的 shell 會話的標準輸入和輸出傳輸文件,因此在本地端使用命令需要特定的輸入/輸出重定向,並且終端仿真器必須在文件傳輸程序執行時停止讀取串口。所有這些都會使得在本地使用sz/工具非常不方便,因為這樣的程序不具備容納外部文件傳輸工具的必要功能。rz``screen

引用自:https://unix.stackexchange.com/questions/545339