通過串口終端發送二進製文件
我有一個與串列終端有關的問題。有時可以使用諸如
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>
在遠端端執行命令,終端仿真器應自動檢測傳入傳輸(“下載”)。由於
sz
和rz
工具設計用於遠端端,並將通過基本上是您的 shell 會話的標準輸入和輸出傳輸文件,因此在本地端使用命令需要特定的輸入/輸出重定向,並且終端仿真器必須在文件傳輸程序執行時停止讀取串口。所有這些都會使得在本地使用sz
/工具非常不方便,因為這樣的程序不具備容納外部文件傳輸工具的必要功能。rz``screen