通過串列終端發送二進製文件
我有一個與串列終端有關的問題。我有一台 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 的方法有很多種。
uuencode
和base64
是兩種常用的方法。如果不知道機器上有什麼,就不可能知道哪種方法最適合您。一旦你弄清楚如何做到這一點,那麼你可以使用這種方法來傳輸更好的程序,例如
minicom
orrz
並使用它。基本上使用 ASCII 包裝來“引導”一個可靠的傳輸過程。