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

《Linux操作系统-系统移植》第7章 工具移植 -第5节 lrzsz工具移植_开发板

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目录下也有生成了目标文件。

《Linux操作系统-系统移植》第7章 工具移植 -第5节 lrzsz工具移植_lrzsz_02《Linux操作系统-系统移植》第7章 工具移植 -第5节 lrzsz工具移植_移植_03

5.移植

通过网络、U盘、SD卡等方式,将生成的lrz和 lsz 复制到目标板的 /usr/sbin 目录,并在目标版上添加可执行权限:

$ chmod +x lrz lsz

5.3测试

1.配置串口

在使用之前,需要设置串口:

《Linux操作系统-系统移植》第7章 工具移植 -第5节 lrzsz工具移植_Linux_04

【注】笔者使用的xshell6。

2.使用

在目标版上,执行 lrz 命令将文件从PC机传送到目标版上,执行 lsz 命令将文件从目标版传到PC机上:

$ lrz

$ lsz myfile

【注】在开发板中busybox提供rx命令可直接Xmodem下载文件到开发板,上传到PC使用xz。命令:

xz 上传Zmodem

rx 下载Zmodem

《Linux操作系统-系统移植》第7章 工具移植 -第5节 lrzsz工具移植_lrzsz_05