美文网首页
交叉编译 lrzsz 用于 minicom 文件传输

交叉编译 lrzsz 用于 minicom 文件传输

作者: heyzqq | 来源:发表于2017-12-19 19:08 被阅读0次

前两天, 装了 minicom, 准备用于在开发板和 Ubuntu PC 之间传输文件. 由于之前只用 minicom 简单连接了开发板(minicom 的简单使用), 并没有传输文件的需求, 没想到传输文件并不能直接 Ctrl+A -> S 这样子, 还要借助 lrz, lsz 才能在两端之间相互传输文件.

下载完 lrzsz 源码后, 编译还是相对比较简单的. 只是中间出现了一些问题, 相信要用到这个传输文件的, 编译方面的应该都多少了解点吧?

1. 我的编译环境

我的编译环境是: Ubuntu 16.04 64位.

2. 源码下载地址

源码: lrzsz-0.12.20.tar.gz
源码下载地址: http://www.ohse.de/uwe/software/lrzsz.html

3. 配置编译环境

我是这样编译的:

# 1. 首先生成自己的配置文件
[root@ lrzsz]# ./configure --cache-file=my_lrzsz.cache
#    这一步会检查并在当前目录下生成文件 my_lrzsz.cache, 直接 ./configure 默认生成的文件名为 config.h !

# 2. 配置交叉编译器 (直接修改 my_lrzsz.cache 文件)
[root@ lrzsz]# vim  my_lrzsz.cache 
# 将 ac_cv_prog_CC=${ac_cv_prog_CC=gcc} 最后的 gcc 编译器修改为开发板的编译工具
# 我这里修改为:
# ac_cv_prog_CC=${ac_cv_prog_CC=arm-linux-gcc}

# 3. 利用 my_lrzsz.cache 配置文件重新配置工程
[root@ lrzsz]#  ./configure --cache-file=./my_lrzsz.cache

# 4. 最后 make 通过就行了
[root@ lrzsz]#  make

注: 这里要注意了, 如果使用自己生成的配置文件 xxx.cache, 在第 3 步要加路径 ./, 如 ./configure --cache-file=./my_lrzsz.cache, 否则会报如下错误:

loading cache myname_xxx.cache
./configure: 509: .: myname_xxx.cache: not found

4. 出现的问题及解决方法

我在 make 的时候出错了:

..........
xxxxxxxx/bin/ld: cannot find -lnsl
collect2: error: ld returned 1 exit status
Makefile:219: recipe for target 'lrz' failed
make[2]: *** [lrz] Error 1
..........

这应该是 nsl 动态库没找到, 可以直接去掉 nls, 修改文件 config.h 如下:

[root@ lrzsz]# vim config.h

找到:

/* Define to 1 if NLS is requested.  */
#define ENABLE_NLS 1

1 改成 0就可以再 make 试试:

#define ENABLE_NLS 0

* 如果这时候编译不通过, 可以再修改一个地方试试, 同样修改 config.h 文件, 找到:

ac_cv_lib_nsl_gethostbyname=${ac_cv_lib_nsl_gethostbyname='yes'}

如果最后是 yes, 将它改成 no, 然后再 make:

ac_cv_lib_nsl_gethostbyname=${ac_cv_lib_nsl_gethostbyname='no'}

5. 使用方法

使用方法就简单了, 但是你会不会这样想: 我 TM 还没把 lrzsz 传到开发板呢, 我用什么传 !? 就是传不了文件才装 lrzsz 的...
当然, 传文件的方式有很多种, 好像有点麻烦, 我没去弄, 所以就把开发板连上网, 先传到网盘再下载下来, 放到 /usr/bin, 简直了!

编译出来的 lrz lszsrc 目录下, 直接放到开发板的 /usr/bin 目录下就行了. 我们要的只是这两个文件, 只要生成了这两个, 基本上算是编译完成了.

! 使用方法:

1. 就是在开发板端, 进入 minicom 配置的上传目录, 运行 lrz:

root@ROUTER:~/upload_dir# lrz
��z waiting to receive.**B0100000023be50

2. 在 PC 端 minicom 中 Ctrl+A -> S, 选择文件上传就可以看到文件了.

.


[1] lingdxuyan. Ubuntu下安装配置minicom并实现通过minicom传输文件. Linux时代 . 2011-02-03
[2] 陈狗蛋儿. lrzsz工具移植-交叉编译. 博客园. 2016-03-28 18:10
[3] skywalker_ll. 交叉编译lrzsz. CSDN. 2009-08-03 16:29

相关文章

网友评论

      本文标题:交叉编译 lrzsz 用于 minicom 文件传输

      本文链接:https://www.haomeiwen.com/subject/xjuiwxtx.html