欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

如何优雅地使用minicom

程序员文章站 2022-04-06 13:04:30
minicom简介 安装 minicom是linux下一款常用的串口调试工具。ubuntu环境下,使用如下命令安装 配置 使用前需要进行配置,执行 可打开minicom并进入配置模式,使用方向键,选择需要配置的项目,如 Serial port setup ,回车进入配置,可以看到多个配置项,此时光标 ......

minicom简介

安装

minicom是linux下一款常用的串口调试工具。ubuntu环境下,使用如下命令安装

sudo apt-get install minicom

配置

使用前需要进行配置,执行

sudo minicom -s

可打开minicom并进入配置模式,使用方向键,选择需要配置的项目,如 serial port setup ,回车进入配置,可以看到多个配置项,此时光标在最下方。

需要修改某个配置,则输入对应的字母,光标即会跳转到对应的项,编辑后,回车确认,光标再次回到最下方。

一般而言,需要修改

a -    serial device
e -    bps/par/bits
f -    hardware flow control

a配置项,指定usb设备。一般usb转串口会生成设备/dev/ttyusbx,x是数字序号。可以执行以下命令确认下

ls -l /dev/ttyusb*

e配置项,根据实际情况,指定波特率等参数

f配置项,硬件流控,要看你的设备是否有。如果没有,或者你不确定的话,可以先关掉,将默认的yes切换为no.

修改好之后,回车退到上一个界面,此时记得往下,选择 save setup as dfl 将刚刚的修改保存为默认配置,避免下次使用还需要再次配置。

最后,选择 exit 会退出配置界面,并打开minicom。选择 exit from minicom 则会直接退出minicom。

退出

minicom使用前缀按键 ctrl-a,即执行特殊操作时,都需要先按 ctrl+a,再按某个按键使用对应的功能。

ctrl+a,再按 z, 可查看帮助,从帮助可以看到,退出时,要先按 ctrl+a,再按 x

配置权限

minicom 本身不需要sudo权限,但因为要打开串口设备/dev/xxx ,所以一般会需要使用sudo来启动minicom。

这里我们可以修改下串口设备的权限,这样以后就不用使用sudo了。

方式一:使用命令更改

简单粗暴地使用chmod命令修改

sudo chmod 666 /dev/ttyusb0

方式二:配置udev规则(推荐)

修改配置文件

sudo vim /etc/udev/rules.d/70-ttyusb.rules

增加一行

kernel=="ttyusb[0-9]*", mode="0666"

修改后,需要重新插拔设备,以重新生成设备节点。

自动设置设备名

如果日常只用一个设备,设备名固定是/dev/ttyusb0,那每次直接打开minicom即可。

但当你可能需要使用多个串口时,问题就来了,每次需要先查看下设备名

ls /dev/ttyusb* 

再配置下minicom,手工改成这个设备,才能使用。一点都不方便。

这里给出两种解决方式

方式一:自动修改配置文件

首先建立配置文件

sudo vim /etc/minicom/minirc.ttyusbx

内容如下

# machine-generated file - use "minicom -s" to change parameters.
pu port             /dev/ttyusb0
pu rtscts           no

编写脚本~/.myminicom.sh,自动检测设备,并根据选择的设备,修改配置文件,再打开minicom

com() {
ports=`ls /dev/ttyusb*`
select port in $ports;do
    if [ $port ]; then
        echo "you select the choice '$port'"
        port=${port##*/}
        sed -i "s/\(pu port .*\/dev\/\).*/\1$port/" /etc/minicom/minirc.ttyusbx
        exec minicom ttyusbx $@
        break
    else
        echo "invaild selection"
    fi
done
}

在~/.bashrc中引入此函数

echo 'source ~/.myminicom.sh' >> ~/.bashrc
source ~/.bashrc

即可直接使用命令 com 调用此函数,自动列出设备,按数字键选择即可。

方式二:使用参数指定设备(推荐)

研究下mincom的参数后,发现有更简单的实现方式,使用minicom的-d参数。

同样编写脚本~/.myminicom.sh

com() {
    ports_usb=$(ls /dev/ttyusb*)
    ports_acm=$(ls /dev/ttyacm*)  #arduino
    ports="$ports_usb $ports_acm"
    select port in $ports;do
        if [ "$port" ]; then
            echo "you select the choice '$port'"
            minicom -d "$port" $@"
            break
        else
            echo "invaild selection"
        fi
    done
}

在~/.bashrc中引入此函数

echo 'source ~/.myminicom.sh' >> ~/.bashrc
source ~/.bashrc

添加完毕后,可使用 com 命令调用。

使用效果

zhuangqiubin@zhuangqiubin-pc:~$ com
1) /dev/ttyusb0
2) /dev/ttyusb1
#?

此时输入数字,选择要的打开的串口设备,回车即可。

自动保存log

让 minicom 自动保存log,可以方便调试。

查看参数,minicom可以使用 -c 参数指定保存log文件。于是完善脚本,自动把log以日期命名,保存到/tmp目录下。

注意,tmp目录关机即清空,如果想持久保存log,需要修改到其他目录。

修改后脚本如下

com() {
    ports_usb=$(ls /dev/ttyusb*)
    ports_acm=$(ls /dev/ttyacm*)  #arduino
    ports="$ports_usb $ports_acm"
    datename=$(date +%y%m%d-%h%m%s)
    select port in $ports;do
        if [ "$port" ]; then
            echo "you select the choice '$port'"
            minicom -d "$port" -c /tmp/"$datename".log "$@"
            break
        else
            echo "invaild selection"
        fi
    done
}

暂停输出

ctrl+a 是mimicom的特殊功能前缀按键,但还有另一个很实用的作用,就是暂停屏幕输出。

在设备开始大量输出log时,基本看不清屏幕内容。此时可以按 ctrl+a,暂停输出,方便查看所需log。

打开minicom时间戳

在minicom中,按下 ctrl+a,再按 n,即可激活时间戳,在每行log前添加当前系统的时间戳。

用于观察启动时间之类的,还是比较方便。

发送接收文件

设备端支持的话,按下 ctrl+a,再按 s,即可向设备端发送文件。

按 ctrl+a,再按 r,可接收文件。

自动换行

当你的log中可能存在,单行长度超过屏幕宽度的log时(比如启动时打印的kernel cmdline),可以使用mimicom的自动换行功能。

在启动minicom时加上 -w 选项,或者在minicom中,按 ctrl+a 再按 w。

更多功能

可以使用 minicom -h 查看,也可在mincon中,按 ctrl+a 再按 z 查看。

有什么其他使用功能或技巧,也欢迎留言告诉我。

代码很短,可直接复制文中的版本,或访问 https://github.com/zqb-all/easierminicom

如果觉得本文对你有帮助的的话,顺手点下推荐哦~~