天天看點

序列槽傳輸檔案 lrzsz

假設有一種開發環境,一塊闆子,除了序列槽,沒有任何外部出入輸出裝置,沒有sd卡,沒有網線,這個時候如果你想跟這塊闆子傳輸互動檔案,要怎麼辦?

根據modem所采用的檔案傳輸協定:xmodem,ymodem,zmodem将其分類  

xmodem:簡單通用,傳輸資訊機關是“包=128B”,傳輸速度慢,适合電話線路品質差的情況下用  

ymodem:由XMODEM演變來,效率可靠性高,包=128*8B;一次傳輸可發送或接受幾個檔案  

zmodem:于上兩種不同,已連續的資料流發送資料,效率更高

在ubuntu主機中可以直接使用rz或者sz指令與secureCRT互動檔案

在開發闆中busybox提供rx指令可直接Xmodem下載下傳檔案到開發闆,但是沒有找到上傳指令

指令:

rz 下載下傳Zmodem

xz 上傳Zmodem

rx 下載下傳Zmodem

如果想在開發闆中上傳檔案的話可以移植完整版的lrzsz到開發闆,完整使用其功能

一,移植lrzsz到開發闆中

lrzsz工具在配合secureCRT相當實用,現把其移植到arm-linux下

交代下環境:

pc ubuntu12.4

cross-compile arm-linux-gcc

--1--擷取源碼

<a href="http://www.ohse.de/uwe/software/lrzsz.html" target="_blank">http://www.ohse.de/uwe/software/lrzsz.html</a>

擷取lrzsz-0.12.20.tar.gz

--2--解壓源碼

tar -xzf lrzsz-0.12.20.tar.gz

--3--生成cache檔案

./configure --host=arm-linux --cache-file=./arm-linux.cache

這個時候目錄中應該生成了./arm-linux.cache檔案

--4--修改配置

vi arm-linux.cache

ac_cv_prog_CC=${ac_cv_prog_CC='gcc'}

改成

ac_cv_prog_CC=${ac_cv_prog_CC='arm-linux-gcc'}

--5--使用cache檔案配置源碼

./configure --host=arm-linux --cache-file=./arm-linux.cache

--6--編譯源碼

make

注:可能出現的問題:zglobal.h:188:22: error: libintl.h: No such file or directory

注:可能出現的問題:warning: incompatible implicit declaration of built-in function 'gettext'

解決方法:

vi config.h

修改/* Define to 1 if NLS is requested.  */

#define ENABLE_NLS 1

#define ENABLE_NLS 0

--6--得到工具

在src/檔案夾下的lrz和lsz工具即是交叉編譯成功的lrzsz工具了

--7--實用

将lrz和lsz複制到闆子/bin下,即可使用,當然要配合secureCRT

一,利用lrzsz通過序列槽與secureCRT傳輸檔案

--1--secureCRT設定,在序列槽的情況下需要打開XON/XOFF流控機制

會話選項-&gt;串行-&gt;流控-&gt;XON/XOFF 打鈎,然後重新開機會話

序列槽傳輸檔案 lrzsz

會話選項-&gt;終端-&gt;X/Y/Zmodem-&gt;目錄 選擇要存放的目錄(我選擇的是桌面)

序列槽傳輸檔案 lrzsz

--2--上傳檔案

終端輸入lrz指令後自動彈出選擇檔案對話框,選擇之後開始傳輸

      $ ./lrz 

序列槽傳輸檔案 lrzsz

--2--下載下傳檔案

終端中輸入lsz+檔案名

 $

./lsz &lt;檔案名&gt;

序列槽傳輸檔案 lrzsz

--3--通過BusyBox中的rx簡單下載下傳檔案

如果根本完全沒有任何外部接口,連lrzsz都灌不進去。或者隻想下載下傳傳輸檔案,不需要上傳的情況,可以使用Busybox中的rx指令簡單下載下傳檔案

終端中輸入rx+要儲存的名稱,比如$rx redmin.txt

然後在終端中發送檔案 菜單-&gt;傳輸-&gt;發送Xmodem-&gt;選擇redmin.txt檔案發送資料

序列槽傳輸檔案 lrzsz

版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。

繼續閱讀