Ubuntu下安装和使用lrzsz,实现串口传输文件&&minicom

(经过博主的编辑)摘自:http://blog.csdn.net/xiao628945/article/details/8259063

一、安装配置minicom

1、安装minicom:sudo apt-get install minicom

2、配置minicom:sudo minicom -s ,

       A.进入Serial port setup 选择相应的端口和频率。

      (将选项A的值设置为/dev/ttyS0 表示是串口1,将选项E的值设置为115200,将选项F设置为NO(请根据实际情况配置))

       B.进入Filenames and paths 选择相应的上传/下载目录。

  | A - Download directory : /home/pinggle/download              
  | B - Upload directory   :/home/pinggle/opt/upload                    
       ( 注意:开发板发送给pc的文件将保存在Download directory所设定的目录中,而pc要下载到开发板的文件保存在Upload directory所设定的目录中

       C.设置完成后,选择Save setup as dfl, 保存为默认设置.

3、运行minicom:minicom.

      按Ctrl-A,再按z,可以获取到minicom CTRL-A命令的帮助信息。

      其中,我们用CTRL-A s来发送文件给开发板;而用CTRL-A r来接收开发板上的文件。

二、安装lrzsz

1、在PC上安装lrzsz:   sudo apt-get install lrzsz

2、交叉编译lrzsz并下载到开发板上:

      A.下载lrzsz源码包.http://download.chinaunix.net/download.php?id=12772&ResourceID=6293

      B.解压缩后,到解压目录中执行./configure (tar -zxf lrzsz-0.12.20.tar.gz;  cd lrzsz-0.12.20/;   ./configure )

      C.修改Makefile:

          有三个Makefile需要修改,分别是lrzsz-0.12.20/Makefile,  lrzsz-0.12.20/lib/Makefilelrzsz-0.12.20/src/Makefile       

          将这三个Makefile中的所有gcc替代成你开发板所需要的交叉编译器,如mipsel-linux-gcc

         (即: CC = gcc     CPP = gcc -E   都改成 CC = mipsel-linux-gcc     CPP = mipsel-linux-gcc -E
      D.编译:make
      E.在lrzsz-0.12.20/src目录下会生成两个可执行文件lsz、lrz(或者sz、rz),把它们下载到开发板linux系统的/bin目录下。

三、使用lrzsz:
      1、 开发板-->PC机
            在开发板上输入  lsz filename ,然后会出现一个传输界面,传输完成后可以在你设置的默认下载目录Download directory里找到这个文件。

      2、PC机-->开发板
           在开发板上先进入/tmp 目录,然后输入lrz。
            # cd /tmp
            # lrz                                                                         
            ?z waiting to receive.**B0100000023be50
            按Ctrl-A,再按s,选择zmoden,会出现一个选择文件的界面,选择你要传输的文件(按一下空格键选择目录,按两下空格键进入目录),回车后出现一个传输界面,传输完成后,便可以在开发板的/tmp目录下找到这个文件了。

|     Name             Program                 Name U/D FullScr IO-Red. Multi  |
| A  zmodem     /usr/bin/sz -vv -b              Y    U    N       Y       Y    |
| B  ymodem     /usr/bin/sb -vv                 Y    U    N       Y       Y    |
| C  xmodem     /usr/bin/sx -vv                 Y    U    N       Y       N    |
| D  zmodem     /usr/bin/rz -vv -b -E           N    D    N       Y       Y    |
| E  ymodem     /usr/bin/rb -vv                 N    D    N       Y       Y    |
| F  xmodem     /usr/bin/rx -vv                 Y    D    N       Y       N    |
| G  kermit     /usr/bin/kermit -i -l %l -b %b  Y    U    Y       N       N    |
| H  kermit     /usr/bin/kermit -i -l %l -b %b  N    D    Y       N       N    |
| I  ascii      /usr/bin/ascii-xfr -dsv         Y    U    N       Y       N    |

ubuntu下从PC机下载文件到开发板上:
1.在开发板的内核配置中,必须选上:openwrt->menuconfig->Base system-->busybox-->Miscellaneous Utilities-->rx
2.在mincom下,待开发板启动以后,运行: rx FILE 。##Receive a file using the xmodem protocol。
3.Ctrl+A, S ,选择xmodem,就会跳出一个选择传送文件的界面,选择好文件后,回车。
4.若提示:Transfer incomplete
        READY: press any key to continue... 
  就表明文件已成功下载到开发板的当前目录。   

报错:
root@BenNanoNote:/# rz
/bin/rz: line 1: syntax error: unexpected "("
解决方案:换成开发板上的编译工具编译。


minicom拓展

安装:
sudo apt-get install minicom

配置一:
配置使用命令:minicom -s
1.选择第三个菜单项,即"Serial port setup",根据目标板的串口通信参数设置.

  如果没有使用USB转串口,而是直接使用串口,那么Serial Device要配置为/dev/ttyS0。
  对波特率,数据位和停止位进行配置,键入“E”,波特率选为115200 8N1 (奇偶校验无, 停止位1),
  硬/软件流控制分别键入“F”“G”并且都选NO.
  在确认配置正确之后,可键入回车返回上级配置界面,并将其保存为默认配置。(即save setup as dfl),之后重启minicom是刚才配置生效,在连上开发板的串口线后,就可在minicom中打印正确的串口信息了。

配置二:
    1 . 在终端中输入minicom以启动minicom;
        2. 先按下Ctrl + a, 放开, 再按o, 出现配置菜单.

组合键的用法是:先按Ctrl+A组合键,然后松开这两个键,再按Z键。另外还有一些常用的组合键。
(1)S键:发送文件到目标系统中;
(2)W键:自动卷屏。当显示的内容超过一行之后,自动将后面的内容换行。这个功能在查看内核的启动信息时很有用。
(3)C键:清除屏幕的显示内容;
(4)B键:浏览minicom的历史显示;
(5)X键:退出mInicom,会提示确认退出。

这时候可以打印串口的信息了,但是在通过串口用xmodem协议烧写内核时会提示没有xmodem协议。
所以还必须安装软件包:lrzsz
   sudo apt-get install lrzsz
   这时候就可以正常地用minicom通过串口烧写内核了。

下次在输入minicon 即可直接进入。
命令minicom是进入串口超级终端画面,而minicom -s为配置minicom。
说明/dev/ttyS0 对应为串口0 为你连接开发板的端口。

编译lrzsz时报错:与libintl.h有关的。
解决方案:在src/zglobal.h中有libintl.h处修改:
#if 0 
 //ENABLE_NLS
# include <libintl.h>
# define _(Text) gettext (Text)
#else
#endif
# define bindtextdomain(Domain, Directory) /* empty */
# define textdomain(Domain) /* empty */
# define _(Text) Text
再make虽有警告,但不会报错,而且src目录下的lrz和lsz可以使用。

你可能感兴趣的:(Ubuntu下安装和使用lrzsz,实现串口传输文件&&minicom)