1. 程式人生 > 實用技巧 >《Linux作業系統-系統移植》第7章 工具移植 -第5節 lrzsz工具移植

《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主機,然後進行解壓:

$ tar -xvf lrzsz-0.12.20.tar.gz
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. --prefix=/home/bruceou/tools/lrzsz/lrzsz-0.12.20/install //表示具體安裝到哪裡 這個可以不要 我們知道交叉編譯生成的lzr和lsr就可以了。

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
在這裡插入圖片描述