File-Copy

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

  • October 6, 2019

我有一個與串列終端有關的問題。我有一台 Linux 電腦,我連接到一台執行 debian 的 ARM 迷你電腦screen /dev/ttyUSB0 115200。從那裡,我可以登錄並輸入命令。

這意味著我可以通過串列終端在 ARM 上創建文件,在 Linux 電腦中打開文件並將所有文本複製到打開的終端,從而虛擬傳輸任何文本文件。

現在,我想傳輸二進制數據。我的 ARM 電腦無法訪問網際網路,因此無法安裝軟體包。minicom可悲的是,這包括。此外,它沒有rz開箱即用。

總之,我可以輕鬆地傳輸所有文本。現在,我想通過它複製一個二進製文件。如何做呢?

Ps:這個問題擴展了 Send a binary file through serial terminal,有更多的限制。

shar從 GNU使用從sharutils二進製文件中創建一個文本文件,然後像你一直在做的那樣複製並粘貼該文本文件。文本文件將是一個 shell 腳本,執行時將恢復原始二進製文件。https://en.wikipedia.org/wiki/GNU_Sharutils

取決於你在 ARM 盒子上有什麼。你有uuencode嗎? base64? perl?

基本上,您使用一些包裝程序將二進製文件轉換為 ASCII,將 ASCII 文件發送到遠端機器,然後將其解包回二進製文件。

所以,例如

uuencode myfile > myfile.uue

現在將 myfile.uue 發送到遠端端

然後在遠端

uudecode myfile.uue

將二進制包裝成 ASCII 的方法有很多種。uuencodebase64是兩種常用的方法。如果不知道機器上有什麼,就不可能知道哪種方法最適合您。

一旦你弄清楚如何做到這一點,那麼你可以使用這種方法來傳輸更好的程序,例如minicomorrz並使用它。基本上使用 ASCII 包裝來“引導”一個可靠的傳輸過程。

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