Linux下如何使用minicom USB串口

系统 Linux 系统运维
minicom是linux下串口通信的软件,它的使用完全依靠键盘的操作,虽然没有“超级终端”那么易用,但是使用习惯之后读者将会体会到它的高效与便利,下面将讲解minicom的安装和配置。

Linux下查看串口信息

查看串口是否可用,可以对串口发送数据比如对com1口,echo helloworld >/dev/ttyS0

查看串口名称使用 ls -l /dev/ttyS*一般情况下串口的名称全部在dev下面,如果你没有外插串口卡的话默认是dev下的ttyS*,一般ttyS0对应com1,ttyS1对应com2,当然也不一定是必然的;

查看usb设备 lsusb

查看串口驱动:cat /proc/tty/drivers/serial

  1. [root@dy root]# cat /proc/tty/driver/* 
  2.  
  3. serinfo:1.0 driver revision: 
  4.  
  5. 0: uart:MPC52xx PSC mmio:0x80011300 irq:40 tx:10 rx:129 CTS|DSR|CD 
  6.  
  7. usbserinfo:1.0 driver:2.0  

例如,在终端输入:dmesg | grep tty显示从系统启动到现在串口插入拔出的信息,让后我在电脑上插入一个usb转rs232线,再在终端输入:dmesg | grep tty ,会显示:usb 2-2.1:pl2303 converter now attached to ttyUSB0;可以通过此法确定我新插入的串口线对应的串口号。

minicom是linux下串口通信的软件,它的使用完全依靠键盘的操作,虽然没有“超级终端”那么易用,但是使用习惯之后读者将会体会到它的高效与便利,下面将讲解minicom的安装和配置。

一、安装minicom:

使用以下命令:

  1. # sudo apt-get install minicom 

以下为安装的详细信息:

  1. # sudo apt-get install minicom 

正在读取软件包列表... 完成

正在分析软件包的依赖关系树

正在读取状态信息... 完成

将会安装下列额外的软件包:

lrzsz

下列【新】软件包将被安装:

lrzsz minicom

共升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 2 个软件未被升级。

需要下载 270kB 的软件包。

解压缩后会消耗掉 1389kB 的额外空间。

您希望继续执行吗?[Y/n]y

获取:1 http://ubuntu.uestc.edu.cn hardy/universe lrzsz 0.12.21-4.1 [97.0kB]

获取:2 http://ubuntu.uestc.edu.cn hardy/main minicom 2.3~rc1-2 [173kB]

下载 270kB,耗时 1s (184kB/s)

选中了曾被取消选择的软件包 lrzsz。

(正在读取数据库 ... 系统当前总共安装有 101203 个文件和目录。)

正在解压缩 lrzsz (从 .../lrzsz_0.12.21-4.1_i386.deb) ...

选中了曾被取消选择的软件包 minicom。

正在解压缩 minicom (从 .../minicom_2.3~rc1-2_i386.deb) ...

正在处理用于 man-db 的触发器...

正在设置 lrzsz (0.12.21-4.1) ...

正在设置 minicom (2.3~rc1-2) ...

PS:ubuntu 现在做的真是没话说,相当的实用和智能啊,把相关的依赖包(lrzsz)都相互关联并且安装上去了。但是如果使用ubuntu 8.10以前的版本可能就要单独安装lrzsz软件包了(lrzsz包括了x/y/zmodem协议)。也就是说,在通过串口用xmodem协议烧写内核 时会提示没有xmodem协议,所以这时就要安装lrzsz软件包了:

  1. # sudo apt-get install lrzsz 

然后就可以正常地使用minicom通过串口烧写内核了。

二、配置minicom:

1、在使用minicom之前,首先要保证你对串口有读/写的权限。我们知道,Linux的设备对应于/dev/目录中的某个文件,串口COM1对应ttyS0,COM2对应ttyS1,使用以下命令来查看你对COM1的权限:

  1. $ ls -l /dev/ttyS0 
  1. crw-rw---- 1 root dialout 4, 64 2009-08-01 11:05 /dev/ttyS0 

可以看到,它的属主是root。

2、正如在Windows中要配置超级终端一样,在使用minicom之前,先要对串口进行配置。

运行

  1. # sudo minicom -s 

选择Serial port setup,此时所示光标在"Change which setting"上,键入"A",此时光标移到第A项对应处:串口COM1对应ttyS0,COM2对应ttyS1(注意选择)。

然后对波特率,数据位和停止位进行配置,键入"E",波特率选为115200 8N1(数据位8,奇偶校验无,停止位1),硬/软件流控制分别键入"F"和"G",并且都选No。在确认配置正确之后,可键入回车返回上级配置界面,并 将其保存为默认配置(即save setup as dfl)。***,选择"Exit from Minicom"命令退出。

注意:非正常关闭minicom,会在/var/lock下创建几个文件LCK*,这几个文件阻止了minicom的运行,将它们删除后即可恢复

具体的配置信息如下所示:

Serial port setup [Enter] 

  1. +-------------------------------------------------------------+ 
  2. | A - Serial Device : /dev/ttyUSB0 | 
  3. | B - Lockfile Location : /var/lock | 
  4. | C - Callin Program : | 
  5. | D - Callout Program -: | 
  6. | E - Bps/Par/Bits : 115200 8N1 | 
  7. | F - Hardware Flow Control : No | 
  8. | G - Software Flow Control : No | 
  9. | | 
  10. | Change which setting? | 
  11. +-------------------------------------------------------------+  

注意:如果没有使用USB转串口,而是直接使用串口,那么Serial Device要配置为/dev/ttyS0。

然后重启minicom(即直接在shell下执行minicom命令就可以进入minicom的控制台)使刚才的配置生效,再连上开发板的串口线后,就可以在minicom中打印出正确的串口信息了。在控制台下通过组合键Ctrl+A Z可以进入minicom菜单。

组合键的用法是:先按Ctrl+A组合键,然后松开这两个键,再按Z键。另外还有一些常用的组合键。

(1)S键:发送文件到目标系统中;

(2)W键:自动卷屏。当显示的内容超过一行之后,自动将后面的内容换行。这个功能在查看内核的启动信息时很有用。

(3)C键:清除屏幕的显示内容;

(4)B键:浏览minicom的历史显示;

(5)X键:退出mInicom,会提示确认退出。

3、配置文件所在目录

Ctrl + A --> O

  1. +-----[configuration]------+ 
  2. | Filenames and paths | 
  3. | File transfer protocols -| 
  4. | Serial port setup | 
  5. | Modem and dialing | 
  6. | Screen and keyboard | 
  7. | Save setup as dfl | 
  8. | Save setup as.. | 
  9. | Exit | 
  10. +--------------------------+  

选择"Filenames and paths"

  1. +-----------------------------------------------------------------------+ 
  2. | A - Download directory : /home/crliu | 
  3. | B - Upload directory : /tmp | 
  4. | C - Script directory : | 
  5. | D - Script program : runscript | 
  6. | E - Kermit program : | 
  7. | F - Logging options | 
  8. | | 
  9. | Change which setting? | 
  10. +-----------------------------------------------------------------------+  

(1)A - download 下载文件的存放位置(开发板 ---> PC)

开发板上的文件将被传输到PC机上的/home/crliu目录下。

(2)B - upload 从此处读取上传的文件(PC ---> 开发板)

PC机向开发板发送文件,需要发送的文件在/tmp目录下(PC机上的目录)。做了此项配置后,每次向开发板发送文件时,只需输入文件名即可,无需输入文件所在目录的绝对路径。

三、Linux下如何使用USB转串口设备

对没有串口的笔记本持有者来说,做硬件开发经常为没有串口而烦恼,不过现在有了USB转串口设备。但是新的问题又出现了,比如说对于Minicom下的PC机和目标机通信还是存在着一些配置问题,下面就说一下linux下USB转串口的具体配置和问题:

注意:默认情况下ubuntu已经安装了USB转串口驱动(pl2303)。

1、# lsmod | grep usbserial

如果有usbserial,说明系统支持USB转串口。

2、插上USB转串口,在终端输入命令#dmesg | grep ttyUSB0,如果出现连接成功信息,则说明ubuntu系统已经识别该设备了。

注意:虚拟机环境下的ubuntu默认情况下是不能自动识别的,需要在虚拟机窗口右下角点击"Prolific USB-Serial Controller",然后选择"Connect (Disconnect from Host)",这样才能被ubuntu系统识别。

3、在上面minicom的配置中设置Serial Device: /dev/ttyUSB0,重启开发板,这样基本上就可以正常使用minicom来打印串口信息了。

4、问题

如果经过上面的步骤minicom还是不能正常工作,出现如下错误提示:

  1. # sudo minicom 

minicom: cannot open /dev/ttyUSB0: 没有该文件或目录

这时可以尝试换一个USB口,然后再次操作以上流程。如果还是提示这个错误,那么可以使用下面的方法来解决。

这种方法是在硬件里添加串口设备,将window下的设备添加到虚拟机里。也就是 说,要在window获得焦点的时 候加入usb转串口,然后再到虚拟机下将这个设备添加进去,这时就可以在ubuntu下查看添加的这个设备的设备文件,一般是/dev/tty0或者 /dev/ttyS0。

这种方法其实是将window的usb转串口作为虚拟机的串口,所以就是tty0或者ttyS0了,而不是真正在ubuntu下加载的。

具体步骤如下:

(1)打开虚拟机环境,然后选择"VM-->Settings(Ctrl+D)"。

(2)点"Add",进入添加硬件向导,选择"Serial Port",点"Next"。

(3)选择***项"Use physical port on the host",点"Next"。

(4)选择"Physical serial port"方式为"Auto detect",勾选"Connect at power on",点"Finish"完成。

(5)然后在上面minicom的配置中设置Serial Device: /dev/tty0或者Serial Device: /dev/ttyS0,重启开发板,这样就可以正常运行minicom了。

Linux下如何使用USB转串口设备

对没有串口的笔记本持有者来说,做硬件开发经常为没有串口而烦恼,不过现在有了USB转串口设备。但是新的问题又出现了,比如说对于Minicom下的PC机和目标机通信还是存在着一些配置问题,下面就说一下linux下USB转串口的具体配置和问题:

注意: 默认情况下ubuntu已经安装了USB转串口驱动(pl2303)。

1、# lsmod | grep usbserial

如果有usbserial,说明系统支持USB转串口。

2、插上USB转串口,在终端输入命令#dmesg | grep ttyUSB0,如果出现连接成功信息,则说明ubuntu系统已经识别该设备了。

注意: 虚拟机环境下的ubuntu默认情况下是不能自动识别的,需要在虚拟机窗口右下角点击"Prolific USB-Serial Controller",然后选择"Connect (Disconnect from Host)",这样才能被ubuntu系统识别。

3、在上面minicom的配置中设置Serial Device: /dev/ttyUSB0,重启开发板,这样基本上就可以正常使用minicom来打印串口信息了。

4、问题

如果经过上面的步骤minicom还是不能正常工作,出现如下错误提示: 

  1. # sudo minicom 
  1. minicom: cannot open /dev/ttyUSB0: 没有该文件或目录 

这时可以尝试换一个USB口,然后再次操作以上流程。 如果还是提示这个错误,那么可以使用下面的方法来解决。

这种方法是在硬件里添加串口设备,将window下的设备添加到虚拟机里。也就 是说,要在window获得焦点的时 候加入usb转串口,然后再到虚拟机下将这个设备添加进去,这时就可以在ubuntu下查看添加的这个设备的设备文件,一般是/dev/tty0或者 /dev/ttyS0。

这种方法其实是将window的usb转串口作为虚拟机的串口,所以就是tty0或者ttyS0了,而不是真正在ubuntu下加载的。

具体步骤如下:

(1)打开虚拟机环境,然后选择"VM-->Settings(Ctrl+D)"。  

 

(2)点"Add",进入添加硬件向导,选择"Serial Port",点"Next"。  

 

(3)选择***项"Use physical port on the host",点"Next"。 

 

(4)选择"Physical serial port"方式为"Auto detect",勾选"Connect at power on",点"Finish"完成。   

 

(5)然后在上面minicom的配置中设置Serial Device: /dev/tty0或者Serial Device: /dev/ttyS0,重启开发板,这样就可以正常运行minicom了。

------------------------

使用

Minicom是基于窗口的。要弹出所需功能的窗口,可按下Ctrl-A (以下

使用C-A来表示Ctrl-A),然后再按各功能键(a-z或A-Z)。先按C-A,再

按'z',将出现一个帮助窗口,提供了所有命令的简述。配置minicom

(-s 选项,或者C-A、O)时,可以改变这个转义键,不过现在我们还

是用Ctrl-A吧。

以下键在所有菜单中都可用:

UP arrow-up 或 'k'

DOWN arrow-down 或 'j'

LEFT arrow-left 或 'h'

RIGHT arrow-right 或 'l'

CHOOSE Enter

CANCEL ESCape.

屏幕分为两部分:上部24行为终端模拟器的屏幕。 ANSI或VT100转义

序列在此窗口中被解释。若底部还剩有一行,那么状态行就放在这儿;

否则,每次按C-A时状态行出现。 在那些有专门状态行的终端上将会

使用这一行,如果termcap信息完整且加了-k标志的话。

下面按字母顺序列出可用的命令:

C-A 两次按下C-A将发送一个C-A命令到远程系统。如果你把"转义字符"

换成了C-A以外的什么字符,则对该字符的工作方式也类似。

A 切换"Add Linefeed"为on/off。若为on,则每上回车键在屏幕上

显示之前,都要加上一个linefeed。

B 为你提供一个回卷(scroll back)的缓冲区。可以按u上卷,按d下卷,

按b上翻一页,按f下翻一页。也可用箭头键和翻页键。可用s或S键

(大小写敏感)在缓冲区中查找文字串,按N键查找该串的下一次出现。

按c进入引用模式,出现文字光标,你就可以按Enter键指定起始行。

然后回卷模式将会结束,带有前缀'>'的内容将被发送。

C 清屏。

D 拨一个号,或转向拨号目录。

E 切换本地回显为on/off (若你的minicom版本支持)。

F 将break信号送modem。

G 运行脚本(Go)。运行一个登录脚本。

H 挂断。

I 切换光标键在普通和应用模式间发送的转义序列的类型(另参下面

关于状态行的注释)。

J 跳至shell。返回时,整个屏幕将被刷新(redrawn)。

K 清屏,运行kermit,返回时刷新屏幕。

L 文件捕获开关。打开时,所有到屏幕的输出也将被捕获到文件中。

M 发送modem初始化串。若你online,且DCD线设为on,则modem被初始化

前将要求你进行确认。

O 配置minicom。转到配置菜单。

P 通信参数。允许你改变bps速率,奇偶校验和位数。

Q 不复位modem就退出minicom。如果改变了macros,而且未存盘,

会提供你一个save的机会。

R 接收文件。从各种协议(外部)中进行选择。若filename选择窗口和下

载目录提示可用,会出现一个要求选择下载目录的窗口。否则将使用

Filenames and Paths菜单中定义的下载目录。

S 发送文件。选择你在接收命令中使用的协议。如果你未使文件名选择

窗口可用(在File Transfer Protocols菜单中设置),你将只能在一

个对话框窗口中写文件名。若将其设为可用,将弹出一个窗口,显示

你的上传目录中的文件名。可用空格键为文件名加上或取消标记,用

光标键或j/k键上下移动光标。被选的文件名将高亮显示。 目录名在

方括号中显示,两次按下空格键可以在目录树中上下移动。***,按

Enter发送文件,或按ESC键退出。

T 选择终端模拟:ANSI(彩色)或VT100。此处还可改变退格键,打开或

关闭状态行。

W 切换linewrap为on/off。

X 退出minicom,复位modem。如果改变了macros,而且未存盘,会提供

你一个save的机会。

Z 弹出help屏幕。

2.1 修改 在终端输入如下指令

[plain] view plaincopyprint? 

sudo nano /boot/cmdline.txt

[plain] view plain copy

print?

sudo nano /boot/cmdline.txt

打开后将红色部分删除

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

删除后,变成如下结果保存退出

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

2.2 修改 /etc/inittab

在终端输入如下指令

  1. $sudo nano /etc/inittab 

打开后将***一行注释掉 在前面加上一个#号即可

#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

3.修改完毕后,需要在树莓派上安装一个minicom,这里的minicom是Linux平台的串口调试工具,相当于Windows上的串口调试助手

3.1 安装minicom,输入以下命令

  1. $ sudo apt-get install minicon 

3.2 安装完毕后需要对minicom进行配置,此处配置文件需要root权限,不然无法保存配置的参数,那么在命令行中输入如下命令

  1. $ sudo passwd root 

执行此命令后系统会提示输入两遍的root密码,输入你想设的密码即可,然后在执行

  1. $ sudo passwd --unlock 

这样就解锁了root账户

3.3 切换到root账户,再次打开命令行,输入minicom参数配置命令

  1. $ minicom -s 

在主菜单的第三项Serial Port Setup,进入下一级菜单,根据菜单项的提示字母选择,按A将串口设备修改为 /dev/ttyAMA0

,按E将波特率修改为9600或者自己需要的数值,设置好以后返回主菜单,选择Save Setup as Dfl

然后选择Exit,此时如果正常的话就可以进行串口收发了,这里我的树莓派是连接到一台PC上去的,我利用PC的串口调试软件成功进行了收发

tips: 按CTRL+A,接着按Z可以查看minicom的帮助 

责任编辑:庞桂玉 来源: 嵌入式Linux中文站
相关推荐

2011-08-29 14:27:25

Ubuntu

2017-03-01 15:38:34

LinuxUSB网络

2010-04-01 16:46:15

CentOS系统

2013-07-02 10:25:03

LinuxUSB设备

2012-03-30 15:51:52

ibmdw

2011-06-20 09:36:29

LinuxLive USB

2011-03-29 09:08:50

Linux配置Cacti

2017-03-09 19:32:22

LinuxWindowsUSB

2022-09-28 12:57:13

USBLinux系统

2022-03-25 14:53:32

Linuxvmstat 命令

2014-12-23 09:37:09

Linuxrsync

2020-11-22 07:20:15

LinuxEtcherUSB

2022-09-28 16:35:50

FedoraUSBLinux

2011-06-22 17:36:50

QT Linux 串口

2010-01-13 13:04:25

minicom软件

2023-09-24 19:29:44

LinuxWebP图像

2017-12-12 09:38:46

LinuxUSB存储数据泄露

2019-10-16 16:20:30

Linux Live USBWindows 10

2011-08-24 10:53:41

LinuxLua静态

2010-02-25 17:36:38

Linux USB
点赞
收藏

51CTO技术栈公众号