Linux系统

Linux实用工具-minicom使用总结

2020-09-19  本文已影响0人  QuietHeart
SYNOPSIS
       minicom [options] [configuration]

功能

串口通信程序。

描述

简介

在嵌入式开发中,Linux主机上安装好minicom程序之后,将linux主机和开发板通过串口相连接,这样可以直接在pc上面通过启动的minicom,"登陆"到开发板上,和开发板进行交互,效果类似远程登陆telnet不过使用的是串口连接。

配置

启动minicom的时候,会检测 MINICOM 环境变量,将它们作为命令参数,如果命令中指定了某个参数,那么这个 MINICOM 中的相应的某个参数会被替换。注意必须对这个环境变量进行 export 才行。

例如:

MINICOM='-m -c on'
export MINICOM

这样,启动minicom的时候,会自动地将这个环境变量指定的参数作为minicom的启动参数。如果命令行中又指定了这个环境变量中的某个参数,那么命令行中指定的参数值将会覆盖这个环境变量的参数值。

或者其它等效的设置,然后启动minicom,minicom 会假定你的终端有Meta键或Alt键,并且支持彩色。如果你从一个不支持彩色的终端登录,并在你的启动文件( .profile 或等效文件)中设置了 MINICOM ,而且你又不想重置你的环境变量,那么你就可以键入 minicom -c off ,来运行这次没有色彩支持的会话。

The configuration 参数更有趣。通常,minicom从文件 minirc.dfl 中获取其缺省值。不过,若你给minicom一个参数,它将尝试从文件 minirc.configuration 中获取缺省值。因此,为不同端口、不同用户等创建多个配置文件是可能的。最好使用设备名,如: tty1, tty64,sio2 等。如果用户创建了自己的配置文件,那么该文件将以 .minirc.dfl 为名出现在他的home目录中。

minicom的全局配置文件通常在 /etc/minirc.dfl. minicom将其配置文件保存在一个目录中,通常是: /var/lib/minicom, /usr/local/etc 或者 /etc 。要想知道minicom编译时内定的缺省目录,可用命令 minicom -h ,在那儿你可能还会找到 runscript(1) 的demo文件。

配置文件的文件名格式: minirc.user 。minicom默认加载配置文件 minirc.df1 ,但你也可以仿照 minirc.df1 编辑自己的配置文件 minirc.user ,输入 minicom user 启动时则加载 minirc.user 。如在本机上,我做了一个 minirc.root ,输入 minicom root 启动minicom,则系统自动加载 /etc/minirc.root 中的配置。

$HOME/.minirc.*
$HOME/.dialdir
$HOME/minicom.log
/usr/share/locale/*/LC_MESSAGES/minicom.mo

命令行启动minicom的参数

更多的参数,参见 man minicom 的输出。

举例

启动minicom的时候,开启自动换行

$minicom -w

如果不加这个项,那么在minicom和pc交互的时候中键入命令超过一行时候会被截断,(这时候可以通过<C-a> w来开和关切换截断行功能).

启动minicom的时候,显示颜色

$minicom -c on

这样,启动之后我们会发现显示的内容不是黑白的了。

启动一个图形的minicom

$xminicom

启动minicom的时候,自动创建日志捕捉文件my_capturefile

$minicom -C my_capturefile

这样,启动之后,所在minicom的输出都会在my_capturefile中保留一份,如果原来文件存在,则追加,不存在则创建一个。

启动minicom的时候,将命令键修改成Meta键(<C-a>变成[Alt]或者[ESC]等)

$minicom -m

这样,我们可以取代用<C-a> *发送命令的方式,将<C-a>替换成[Alt]或者[ESC].

启动minicom的时候,指定运行的脚本

$minicom -S <filename>

这里,<filename>是你的脚本文件的名字,应该指定绝对路径,否则就会在你启动minicom的路径下寻找。关于minicom的脚本,可以参考man手册"man runscript".交互命令中可以运行"<C-a>G"来运行脚本。

关于runscript脚本:

目前发现,脚本功能比较弱。在minicom原代码中有简单的例子:scriptdemo和unixlogin,可以直接在linux运行runscript.

可以指定minicom的脚本运行程序,

D - Script program

作为脚本解释器的程序。缺省是“runscript”,也可用其它的东东(如: /bin/sh 或 "expect",这样就可以用shell或者其他的脚本了_)。Stdin和Stdout连接到modem,Stderr连接到屏幕。

minicom的交互使用

Minicom是基于窗口的。要弹出所需功能的窗口,可按下 Ctrl-A (以下使用 C-A 来表示 Ctrl-A),然后再按各功能键(a-z或A-Z)。先按 C-A ,再按 z ,将出现一个帮助窗口,提供了所有命令的简述。配置 minicom(-s 选项,或者C-A、O)时,可以改变这个转义键,不过现在我们还是用 Ctrl-A 吧。

这里,只给出很少的命令,更多的交互命令参见"<C-a> z"的帮助输出。

查看帮助

<C-a> z

这样会显示所命令列表,便于查找。

回到shell

<C-a> j

这样minicom会在后台stop,直到fg将它调到前台。

开/关捕捉minicom中的输出到一个文件

<C-a> l

这样会打开/关闭捕捉输出功能,捕捉的输出会存放在一个你选择的文件中。

退出minicom

<C-a> x

这样会退出minicom.

配置minicom

配置minicom的目的是让pc机可以通过minicom连接开发板。

下面是一个配置的例子:

  1. 运行Minicom

    #minicom -s
    
  2. 选择 Serial port setup

    配置其中的如下配置项:

    A - Serial Device : /dev/ttyS0
    E - Bps/Par/Bits : 115200 8N1
    F - Hardware Flow Control : No
    G - Software Flow Control : No
    

    这里,也可以在启动minicom之后运行 <C-a> o 来进行配置。

使用minicom在开发板和主机之间传输文件

这里详细讲述如何在minicom下面,开发板子和pc机器直接通过串口传输文件。

准备需要的文件

假设我的开发板是arm体系的cpu。那么需要如下文件:

  1. lrzsz-0.12.20.tar.gz: 传输文件的工具,需要编译成开发板子可运行的,也要再编译一份在pc上面运行的。
  2. bin_forarm/* :这里是随便建立的一个目录,里面存放编译好的在开发板子运行的文件传输工具(也就是前面那个lrzsz的arm运行版本,编译它们需要借助交叉编译工具),需要拷贝到板子上的/usr/bin目录下。
  3. bin_forpc_maybe/* :这里是随便建立的一个目录,里面存放编译好的在pc运行的文件传输工具(也就是前面那个lrzsz的pc运行版本),因为可能pc上面原来就有lrzsz工具,所以可以先只把bin_forarm的内容拷贝到开发板上面尝试一下看能否传输,如果只拷贝bin_forarm/*不好用的话就把这里的内容拷贝到pc的/usr/bin下。

工具(lrzsz,minicom)的获取

  1. 下载lrzsz-0.12.20: http://download.chinaunix.net/download/0007000/6293.shtml
  2. 编译:交叉编译lrzsz拷贝到开发板上, 编译lrzsz并拷贝到pc机器上.
  3. 下载minicom: #apt-get install minicom

这里假设我的系统是ubuntu.

配置

  1. 打开minicom,配置环境。

  2. 配置文件所在目录

    Ctrl + a o
    +-----[configuration]------+
    | Filenames and paths      |
    | File transfer protocols -|
    | Serial port setup        |
    | Modem and dialing        |
    | Screen and keyboard      |
    | Save setup as dfl        |
    | Save setup as..          |
    | Exit                     |
    +--------------------------+
    +-----------------------------------------------------------------------+
    | A - Download directory : /tmp                                         |  
    | B - Upload directory   : /home/quietheart/tmpTrans                    |  
    | C - Script directory   :                                              |  
    | D - Script program     : runscript                                    |  
    | E - Kermit program     :                                              |  
    | F - Logging options                                                   |  
    |                                                                       |  
    |    Change which setting?                                              |  
    +-----------------------------------------------------------------------+
    

    这里:

    • A - download 下载的文件的存放位置
    • B - upload 从此处读取上传的文件
    • download 开发板 —> PC
    • upload PC —> 开发板
    • B - Upload directory : /home/quietheart/tmpTrans

    PC机向开发板发送文件,需要发送的文件在/home/quietheart/tmpTrans目录下(PC机上的目录)。

做了此项配置后,每次向开发板发送文件时,只需输入文件名即可,无需输入文件所在目录的绝对路径

传输文件

实际前面的upload directory表示pc机器的上传目录,将会把这个目录中的内容传到板子上面.上面的配置不是必须的,但在后面选择的时候使用上面的目录做为默认。

方法:假设我在pc上面,使用minicom,在minicom中,

PC–>开发板

首先,在minicom中,运行开发板子上的rz,准备接受数据:

#lrz

然后,在minicom中,输入

[Ctrl]a S

这里的Send表示从pc发送到开发板子.然后会进入选择文件的目录(默认为upload目录),选择PC机上面准备传输的文件,然后确认即可。

这样会开始传输文件,传输的文件最终存放在开发板子上运行lrz命令的地方。

开发板–>PC

首先在开发板子上面运行:

#lsz filename

然后,在开发板子上minicom下运行(有时候不需要这一步)

[Ctrl]a R

这样,会自动把要传送的文件传送到前面设置的Download directory上面(/tmp)

其它

以上,是我对Minicom使用的一些经验的总结。

参考资料

上一篇 下一篇

猜你喜欢

热点阅读