《Linux作業系統-系統移植》第7章 工具移植 -第5節 lrzsz工具移植
5.1 lrzsz簡介
lrzsz是一個Unix通訊包,提供XMODEM、YMODEM和ZMODEM檔案傳輸協議。lrzsz以前是Omen科技的主打軟體,現在已經免費,並且遵循GNU開源協議。
lrzsz適合這樣一種開發環境,一塊板子,除了串列埠,沒有任何外部出入輸出裝置,沒有sd卡,沒有網線,這個時候如果想跟這塊板子傳輸互動檔案,就需要用到串列埠傳輸了。 根據modem所採用的檔案傳輸協議:xmodem、ymodem、zmodem將其分類。
- xmodem:簡單通用,傳輸資訊單位是“包=128B”,傳輸速度慢,適合電話線路質量差的情況下用。
- ymodem:由XMODEM演變來,效率可靠性高“包=128*8B”,一次傳輸可傳送或接受幾個檔案。
- zmodem:與上兩種不同,已連續的資料流傳送資料,效率更高。
在ubuntu主機中可以直接使用rz或者sz命令與secureCRT互動檔案,如果想在開發板中,上傳下載檔案的話,需要移植完整版的lrzsz到開發板,使用其完整功能。
下載地址:https://ohse.de/uwe/software/lrzsz.html
5.2 lrzsz編譯及移植
1.下載
首先下載最新版的lrzsz,地址:https://ohse.de/uwe/software/lrzsz.html。下面以 0.12.20 版本為例,下載原始碼包為:lrzsz-0.12.20.tar.gz。
2.複製並解壓原始碼包
將下載的原始碼包複製到Linux主機,然後進行解壓:
cd lrzsz-0.12.20/
$ ls
3.配置
$mkdir install
$ CC=arm-none-linux-gnueabi-gcc CFLAGS=-O2 ./configure --prefix=/home/bruceou/tools/lrzsz/lrzsz-0.12.20/install
【注】這裡 ./configure 必須放在後面,否則無法識別到交叉編譯工具。
1.CFLAGS=-O2 //編譯選項
2. CC=arm-none-linux-gnueabi-gcc //配置編譯器為交叉編譯器,加上CC引數表示即時生效。
3. ./configure //配置檔案 前面兩項必須放在./configure的前面 否則設定無效
4.編譯並安裝
$make
$make install
成功編譯後再install可以看到生成檔案lrz lsz,在src目錄下也有生成了目標檔案。
5.移植
通過網路、U盤、SD卡等方式,將生成的lrz和 lsz 複製到目標板的 /usr/sbin 目錄,並在目標版上新增可執行許可權:
$ chmod +x lrz lsz
5.3測試
1.配置串列埠
在使用之前,需要設定串列埠:
【注】筆者使用的xshell6。
2.使用
在目標版上,執行 lrz 命令將檔案從PC機傳送到目標版上,執行 lsz 命令將檔案從目標版傳到PC機上:
$ lrz
$ lsz myfile
【注】在開發板中busybox提供rx命令可直接Xmodem下載檔案到開發板,上傳到PC使用xz。命令:
xz 上傳Zmodem
rx 下載Zmodem